PyPI / h11 / 0.16.0

h11 0.16.0

Source
https://github.com/python-hyper/h11
Tag scanned
v0.16.0
Compared with
v0.15.0 (0 signals introduced since)
Files
49 scanned, 15 skipped (binary, oversized, or unrecognised)
Signals
0 critical · 0 warn · 1 info
Scan time
3.7 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:13

Signals

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

  1. info critical → info by review dynamic-execution setup.py:4:1

    `exec` at module scope (runs on import) on a non-literal expression (ast pass, confidence 0.80)

    # defines __version__
    exec(open("h11/_version.py").read())
    
    setup(
    likely benign LLM, confidence 0.82 setup.py execs the contents of the package's own h11/_version.py to obtain __version__ for the setup() call.
    Reasoning

    The exec call reads a version file from the package's own source tree (h11/_version.py) and runs it to define __version__ before setup(). This is a known, widely used idiom in Python packaging for sharing a version string. The exec is not fed remote data, encoded blobs, or a network source, and the snippet has no sign of obfuscation. The finding is flagged because exec runs at import time on a non-literal expression, which is a fair description of the mechanism but not evidence of malicious intent. The residual doubt is that the snippet doesn't show the contents of _version.py, though nothing here suggests it is anything other than a version assignment.

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/python-hyper/h11 h11 && cd h11
git checkout v0.16.0
disclude scan --severity info --diff v0.15.0 .