PyPI / pyarrow / 26.0.0

pyarrow 26.0.0

Source
https://github.com/apache/arrow
Tag scanned
apache-arrow-26.0.0
Directory
python (only this part of the repository was scanned)
Compared with
apache-arrow-25.0.1 (0 signals introduced since)
Files
196 scanned, 93 skipped (binary, oversized, or unrecognised)
Signals
0 critical · 10 warn · 8 info
Scan time
4.8 s
LLM review
The LLM review by claude-haiku-5-5 (Anthropic) failed; signals are shown unreviewed.
Disclude version
4.1.0
Scanned (UTC)
2026-10-22 00:19

Signals

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

  1. `source` called with a dynamic path — sourcing a variable script path (ast pass, confidence 0.75)

    
    . $MINICONDA/etc/profile.d/conda.sh
    conda activate pyarrow-$PYTHON
    export ARROW_HOME=$CONDA_PREFIX
  2. `source` called with a dynamic path — sourcing a variable script path (ast pass, confidence 0.75)

    python3 -m venv $WORKDIR/venv
    source $WORKDIR/venv/bin/activate
    
    git config --global --add safe.directory $ARROW_ROOT
  3. warn dynamic-attribute python/pyarrow/compute.py:218:16

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

        try:
            return globals()[class_name]
        except KeyError:
            warnings.warn(f"Python binding for {class_name} not exposed",
  4. concatenated bytes literal contains 77 `\xNN` escapes (63% of content) — binary payload shape (ast pass, confidence 0.85)

        # SELECT str WHERE i64 = 4
        projection = (b'\nS\x08\x0c\x12Ohttps://github.com/apache/arrow/blob/main/format'
                      b'/substrait/extension_types.yaml\x12\t\n\x07\x08\x0c\x1a\x03u64'
                      b'\x12\x0b\n\t\x08\x0c\x10\x01\x1a\x03u32\x1a\x0f\n\x08\x12\x06'
  5. concatenated bytes literal contains 107 `\xNN` escapes (65% of content) — binary payload shape (ast pass, confidence 0.85)

                      b'\n\x04b\x02\x10\x01\x18\x01\n\x04*\x02\x10\x01\n\x04b\x02\x10\x01')
        filtering = (b'\n\x1e\x08\x06\x12\x1a/functions_comparison.yaml\nS\x08\x0c\x12'
                     b'Ohttps://github.com/apache/arrow/blob/main/format'
  6. warn decoder-decompress-payload python/pyarrow/tests/test_io.py:840:24

    file imports decoder module(s) bz2, gzip and calls `.decompress()` — embedded payload decompressed at runtime (ast pass, confidence 0.75)

    
        decompressed_buf = pa.decompress(compressed_buf, INPUT_SIZE,
                                         codec=compression)
        decompressed_bytes = pa.decompress(compressed_bytes, INPUT_SIZE,
  7. concatenated bytes literal contains 34 `\xNN` escapes (63% of content) — binary payload shape (ast pass, confidence 0.85)

        # SELECT project_release, project_version
        message = (b'\x1a\x1b\n\x08\x12\x06\n\x04\x12\x02\x08\x01\x1a\x0fproject_release'
                   b'\x1a\x19\n\x06\x12\x04\n\x02\x12\x00\x1a\x0fproject_version'
                   b'"0\n\x0fproject_version\n\x0fproject_release'
  8. warn frame-introspection python/pyarrow/tests/test_util.py:211:43

    `sys._getframe` — call-stack frame introspection (ast pass, confidence 0.70)

            assert wr() is not None
            _break_traceback_cycle_from_frame(sys._getframe(0))
            assert wr() is None
  9. warn frame-introspection python/pyarrow/util.py:213:18

    `sys._getframe` — call-stack frame introspection (ast pass, confidence 0.70)

        # reference cycle.
        this_frame = sys._getframe(0)
        refs = gc.get_referrers(frame)
        while refs:
  10. reach-by-name through `vars.get` (ast pass, confidence 0.60)

                try:
                    obj = vars(parent).get(part)
                    if obj is not None:
                        continue
  11. identifier `𝑓ö` mixes scripts: Other + Latin (in string/comment) (raw pass, confidence 0.40)

    def test_slice_compatibility():
        arr = pa.array(["", "𝑓", "𝑓ö", "𝑓öõ", "𝑓öõḍ", "𝑓öõḍš"])
        for start in range(-6, 6):
            for stop in itertools.chain(range(-6, 6), [None]):
  12. identifier `𝑓öõ` mixes scripts: Other + Latin (in string/comment) (raw pass, confidence 0.40)

    def test_slice_compatibility():
        arr = pa.array(["", "𝑓", "𝑓ö", "𝑓öõ", "𝑓öõḍ", "𝑓öõḍš"])
        for start in range(-6, 6):
            for stop in itertools.chain(range(-6, 6), [None]):
  13. identifier `𝑓öõḍ` mixes scripts: Other + Latin (in string/comment) (raw pass, confidence 0.40)

    def test_slice_compatibility():
        arr = pa.array(["", "𝑓", "𝑓ö", "𝑓öõ", "𝑓öõḍ", "𝑓öõḍš"])
        for start in range(-6, 6):
            for stop in itertools.chain(range(-6, 6), [None]):
  14. identifier `𝑓öõḍš` mixes scripts: Other + Latin (in string/comment) (raw pass, confidence 0.40)

    def test_slice_compatibility():
        arr = pa.array(["", "𝑓", "𝑓ö", "𝑓öõ", "𝑓öõḍ", "𝑓öõḍš"])
        for start in range(-6, 6):
            for stop in itertools.chain(range(-6, 6), [None]):
  15. identifier `πb` mixes scripts: Greek + Latin (in string/comment) (raw pass, confidence 0.40)

    
        arr = pa.array([None, '', 'π', 'πb', 'πbθ', 'πbθd', 'πbθde'])
        series = arr.to_pandas().astype(object).replace({np.nan: None})
        for start in offsets:
  16. identifier `πbθ` mixes scripts: Greek + Latin (in string/comment) (raw pass, confidence 0.40)

    
        arr = pa.array([None, '', 'π', 'πb', 'πbθ', 'πbθd', 'πbθde'])
        series = arr.to_pandas().astype(object).replace({np.nan: None})
        for start in offsets:
  17. identifier `πbθd` mixes scripts: Greek + Latin (in string/comment) (raw pass, confidence 0.40)

    
        arr = pa.array([None, '', 'π', 'πb', 'πbθ', 'πbθd', 'πbθde'])
        series = arr.to_pandas().astype(object).replace({np.nan: None})
        for start in offsets:
  18. identifier `πbθde` mixes scripts: Greek + Latin (in string/comment) (raw pass, confidence 0.40)

    
        arr = pa.array([None, '', 'π', 'πb', 'πbθ', 'πbθd', 'πbθde'])
        series = arr.to_pandas().astype(object).replace({np.nan: None})
        for start in offsets:

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.1.0
git clone https://github.com/apache/arrow arrow && cd arrow
git checkout apache-arrow-26.0.0
disclude scan --severity info --diff apache-arrow-25.0.1 python