PyPI / uvloop / 0.23.0

uvloop 0.23.0

Source
https://github.com/MagicStack/uvloop
Tag scanned
v0.23.0
Compared with
v0.22.1 (0 signals introduced since)
Files
42 scanned, 59 skipped (binary, oversized, or unrecognised)
Signals
0 critical · 0 warn · 1 info
Scan time
2.0 s
LLM review
Reviewed by claude-haiku-5-5 (Anthropic): 1 of 1 warn and critical signal; 1 demoted to info.
Disclude version
4.0.0
Scanned (UTC)
2026-10-14 18:32

Signals

Ordered by severity, then signals introduced in this release. Hidden characters are shown as ⟨U+…⟩.

  1. info warn → info by review dynamic-attribute uvloop/__init__.py:233:12

    reach-by-name through `globals` (ast pass, confidence 0.60)

        globals()['EventLoopPolicy'] = EventLoopPolicy
        return globals()[name]
    likely benign LLM, confidence 0.93 A module-level dynamic attribute lookup in uvloop that stores and retrieves names through globals(), consistent with lazy attribute loading.
    Reasoning

    This is a module-level __getattr__ lazy-loading pattern: the module assigns an attribute into globals() and then returns globals()[name] for lazy attribute access. It is a common, legitimate Python idiom for deferring imports or exposing names dynamically. The snippet shows no network, execution, or decoding behavior, and uvloop is a well-known asyncio event loop library, so this is a benign dynamic attribute access.

Reproduce This Scan

Run disclude locally to verify. Add --format sarif for SARIF output. Add --llm (with an API key in the environment) to include the LLM review.

cargo install disclude --version 4.0.0
git clone https://github.com/MagicStack/uvloop uvloop && cd uvloop
git checkout v0.23.0
disclude scan --severity info --diff v0.22.1 .