anyio 4.15.1
- Source
- https://github.com/agronholm/anyio
- Artifact scanned
anyio-4.15.1-py3-none-any.whl- Compared with
anyio-4.15.0-py3-none-any.whl(0 signals introduced since)- Files
- 48 scanned, 5 skipped (binary, oversized, or unrecognised)
- Signals
- 0 critical · 0 warn · 5 info
- Scan time
- 5.2 s
- LLM review
- Reviewed by claude-haiku-5-5 (Anthropic): 5 of 5 warn and critical signals; 5 demoted to info.
- Disclude version
- 4.3.0
- Scanned (UTC)
- 2026-10-23 00:03
Signals
Ordered by severity, then signals introduced in this release. Hidden characters are shown as ⟨U+…⟩.
-
= . = = +likely benign Frame introspection to access caller module globals for a lazy importer.Reasoning
sys._getframe(1).f_globals is the standard technique for lazy-importer modules that rewrite the calling module's globals (module __getattr__ emulation). Used here for lazy import of the caller's package. Flagged only because the file also contains exec/eval-like calls; the frame access itself is legitimate framework code.
-
= . = + dellikely benign Frame introspection to modify the caller module's globals after lazy setup.Reasoning
Same pattern: fix_package_names reads the caller's globals to adjust __name__-based prefixes and deletes its own helper from the namespace. This is ordinary module-level metaprogramming in anyio's lazy import utility, not malicious.
-
= . = dellikely benign Frame introspection to install deprecated aliases in the caller's module namespace.Reasoning
set_deprecated_aliases uses the caller's globals to register deprecated name aliases and removes its helper. Consistent with the anyio lazy-import design; no network, process, or decoding behavior.
-
= assert : =likely benign Parses a module's source file into an AST to inspect its contents.Reasoning
compile(source, ..., PyCF_ONLY_AST) parses source text of a module into an AST to scan its names for re-export handling. Parsing only (no exec of the result) on a module's own source file is a common static-analysis pattern and is benign here.
-
=likely benign Builds a code string executed in a subinterpreter to run a function there.Reasoning
compile() builds a code string that imports _interpqueues and is executed in a subinterpreter. This is the expected mechanism for running a function in a Python subinterpreter; the embedded code is generated from the library's own logic. The pickle and exec co-occurrence matches the library's documented cross-interpreter data transfer, though it is a dynamic-execution pattern worth a glance.
Reproduce This Scan
Run disclude locally to verify. These commands scan the published file; the "new in this release" marks come from comparing it with the previous release's file, which they don't repeat. Add --format sarif for SARIF output. Add --llm (with an API key in the environment) to include the LLM review.
|