PyPI / python-dateutil / 2.9.0

python-dateutil 2.9.0

Source
https://github.com/dateutil/dateutil
Tag scanned
2.9.0
Compared with
2.8.2 (0 signals introduced since)
Files
64 scanned, 12 skipped (binary, oversized, or unrecognised)
Signals
0 critical · 0 warn · 4 info
Scan time
2.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:10

Signals

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

  1. info warn → info by review dynamic-execution ci_tools/retry.sh:6:5

    command name is a variable (`$@`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    for i in `seq 1 $n_retries`; do
        "$@" && exit 0
        sleep $sleep_time
    done
    likely benign LLM, confidence 0.90 A bash CI helper that retries a caller-provided command a set number of times with a sleep between attempts.
    Reasoning

    This is a standard retry wrapper: it loops a fixed number of times, runs the passed-in command with "$@", exits on success and sleeps between attempts. Running an argument-supplied command is the entire purpose of such a helper, and nothing in the snippet is encoded, hidden, or fetched from elsewhere. The dynamic-execution flag only reflects that the command is caller-supplied, which is expected for a CI retry script.

  2. info dynamic-execution ci_tools/run_tz_master_env.sh:88:1

    command name is a variable (`$CITOOLS_DIR`) that this file sets only to plain text (ast pass, confidence 0.40)

    ZONEFILE_METADATA_NAME=zonefile_metadata_master.json
    ${CITOOLS_DIR}/make_zonefile_metadata.py \
        $TARBALL_NAME \
        $VERSION \
  3. info identifier-low-length src/dateutil/easter.py:1:1

    26 of 54 non-conventional identifiers are single-character (48%) (token pass, confidence 0.50)

  4. info unicode-homoglyph tests/test_isoparser.py:268:17

    identifier `Т12` contains homoglyph candidates: Т (0422)→T (in string/comment) (raw pass, confidence 0.35)

        ('2013366', ValueError),                    # Invalid ordinal day
        ('2014-03-12Т12:30:14', ValueError),        # Cyrillic T
        ('2014-04-21T24:00:01', ValueError),        # Invalid use of 24 for midnight
        ('2014_W01-1', ValueError),                 # Invalid separator

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/dateutil/dateutil dateutil && cd dateutil
git checkout 2.9.0
disclude scan --severity info --diff 2.8.2 .