PyPI / tokenizers / 1.0.0rc3

tokenizers 1.0.0rc3

Source
https://github.com/huggingface/tokenizers
Artifact scanned
tokenizers-1.0.0rc3.tar.gz (sdist · 457.0 KB · SHA-256 a0bb19c9b219…)
Compared with
tokenizers-1.0.0rc2.tar.gz (2 signals introduced since)
Files
195 scanned, 19 skipped (binary, oversized, or unrecognised)
Signals
0 critical · 0 warn · 9 info
Scan time
4.6 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 07:37

Signals

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

  1. info dynamic-execution tokenizers/scripts/verify_bindings.sh:56:1 new in this release

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

    echo "==> import check"
    "${VENV}/bin/python" - <<'PY'
    import tokenizers
    print(f"    tokenizers {tokenizers.__version__} from {tokenizers.__file__}")
  2. info dynamic-execution tokenizers/scripts/verify_bindings.sh:64:1 new in this release

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

    # tutorial, not a binding test.
    "${VENV}/bin/python" -m pytest tests -q --no-header -p no:cacheprovider \
      --ignore=tests/documentation/test_tutorial_train_from_iterators.py "$@"
  3. info warn → info by review long-line tokenizers/bitcannon/src/classify/atom_tables.rs:7:1

    line length 5461 characters (raw pass, confidence 0.65)

    static GROUP: [[[u8; 64]; 4]; 8] = [[[12,12,12,12,12,12,12,12,12,5,3,5,5,3,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,4,8,8,8,8,8,8,9,8,8,8,8,8,8,8,8,1,1,1,1,1,1,1,1,1,1,8,8,8,8,8,8],[8,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,8,8,8,8,7,8,32,32,32,32,32,32,32,32,32,32,32,
    likely benign LLM, confidence 0.93 Generated Rust static lookup table of byte class values for a tokenizer.
    Reasoning

    Long single-line static table literal of numeric class codes; this is generated Unicode lookup data for a tokenizer classifier. The long-line signal alone reflects formatting, with no execution, decoding or network behaviour.

  4. info warn → info by review long-line tokenizers/bitcannon/src/classify/atom_tables.rs:17:1

    line length 34553 characters (raw pass, confidence 0.65)

    static FAST3_MIXED: [([u8; 64], [u8; 64]); 108] = [([12,12,12,12,12,12,12,12,12,5,3,5,5,3,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,4,8,8,8,8,8,8,9,8,8,8,8,8,8,8,8,1,1,1,1,1,1,1,1,1,1,8,8,8,8,8,8],[8,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,8,8,8,8,7,8,32,32,32,32,32,32,
    likely benign LLM, confidence 0.93 Large generated static Unicode classification table in Rust.
    Reasoning

    Very long static array of numeric tables generated for Unicode character classification in a Rust tokenizer. Pure data constant with no code paths that execute or exfiltrate anything.

  5. info warn → info by review long-line tokenizers/bitcannon/src/classify/atom_tables.rs:19:1

    line length 27773 characters (raw pass, confidence 0.65)

    static BMP_RLE: [(u16, u8); 2468] = [(0x0,12),(0x9,5),(0xA,3),(0xB,5),(0xD,3),(0xE,12),(0x20,4),(0x21,8),(0x27,9),(0x28,8),(0x30,1),(0x3A,8),(0x41,16),(0x5B,8),(0x5F,7),(0x60,8),(0x61,32),(0x7B,8),(0x7F,12),(0x85,5),(0x86,12),(0xA0,5),(0xA1,8),(0xA2,10),(0xA7,8),(0xA8,10),(0xAA,0),(0xAB,8),(0xAC,10),(0xAD,12),(0xAE,10)
    likely benign LLM, confidence 0.93 Generated run-length encoded BMP Unicode class table.
    Reasoning

    Run-length encoded Unicode BMP class table as a static array of (codepoint, class) tuples. This is typical generated data for a lexer and is inert.

  6. info warn → info by review long-line tokenizers/bitcannon/src/classify/atom_tables.rs:21:1

    line length 14227 characters (raw pass, confidence 0.65)

    static ASTRAL: [(u32, u8); 1133] = [(0x10000,0),(0x1000C,12),(0x1000D,0),(0x10027,12),(0x10028,0),(0x1003B,12),(0x1003C,0),(0x1003E,12),(0x1003F,0),(0x1004E,12),(0x10050,0),(0x1005E,12),(0x10080,0),(0x100FB,12),(0x10100,8),(0x10103,12),(0x10107,2),(0x10134,12),(0x10137,10),(0x10140,1),(0x10175,2),(0x10179,10),(0x1018A,
    likely benign LLM, confidence 0.93 Generated astral-plane Unicode class range table.
    Reasoning

    Astral-plane Unicode range table of (codepoint, class) pairs, generated data for a tokenizer. The long line is only a formatting artifact of a data constant.

  7. identifier `ʰABC` mixes scripts: Other + Latin (in string/comment) (raw pass, confidence 0.40)

    //!  1. **The case split is a scalar escape, on purpose.** `[UC]*[LC]+ | [UC]+[LC]*` has no local
    //!     form: `中Qz` is ONE token (a U after a C is not a boundary) but `ʰABC` is two (it is, when no
    //!     L follows) — the difference is whether an L appears LATER in the run, so no `bk` decides it.
  8. identifier `ʰABC` mixes scripts: Other + Latin (in string/comment) (raw pass, confidence 0.40)

                // The one backtrack: alt-1 needs an `lc` AFTER `uc*`, so a `uc`-run that ENDS the letter
                // run cuts after its last `cm` (`ʰABC` -> `ʰ`,`ABC`). `中Qz` is untouched because an `l`
                // follows. "is there an X later in this run" is `fill_to_last` on reversed streams.
  9. info critical → info by review high-complexity tokenizers/bitcannon/tests/classes.rs:71:22

    string literal compression ratio 0.991 (226 bytes) (raw pass, confidence 0.70)

    /// Mixed enough that every branch is live, and long enough to span several blocks.
    const MIXED: &str = "Hello, world! 42 items — naïve café 3.14\tX\r\n\n  ¡Hola!  \
         日本語テスト、句読点。 Ⅻ ½ ٣٤٥ देवनागरी full width 007 a_b-c'd \
    likely benign LLM, confidence 0.90 Test fixture string containing mixed Unicode text for classifier tests.
    Reasoning

    A test fixture string deliberately mixing many Unicode scripts, whitespace and punctuation to exercise every classifier branch. The high compression ratio reflects repetitive test content, not an encoded payload, and the file is a test.

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.

cargo install disclude --version 4.3.0
curl -fsSL -o tokenizers-1.0.0rc3.tar.gz https://files.pythonhosted.org/packages/99/5a/42947f99359de8ac229f97f8e43c738860d90f522868446ab4bc5cca4adf/tokenizers-1.0.0rc3.tar.gz
printf '%s  %s\n' a0bb19c9b219f59e39933c3b7c5621187174f9ff000cc5bd851d2e0c86e7f4b2 tokenizers-1.0.0rc3.tar.gz | shasum -a 256 -c -
mkdir pkg && tar -xzf tokenizers-1.0.0rc3.tar.gz -C pkg --strip-components 1
disclude scan --untrusted --severity info pkg