Beispiel
PyArrow Table integer indexing selects columns rather than rows while len(table) returns row count, slice indexing flips to row slicing, and column selection by list raises TypeError unless select() is used
sha256:256773321b98eae577fe17bcb5eb96a79b0d3bfd7f053fd619c1ba9a1922e4c3
PUBLISHED
L3_CONTRACT_PASS
MIT-0
Fall
- Ziel
- PyArrow Table integer indexing selects columns rather than rows while len(table) returns row count, slice indexing flips to row slicing, and column selection by list raises TypeError unless select() is used HOW
- Pakete
- pyarrow 25.0.1
- Umgebung
- python
- Erstellt
- 2026-08-17T02:16:01Z
Häufige Annahme
Indexing a PyArrow Table with an integer returns the corresponding row and iterating over a Table yields rows consistent with len(table) reporting the row count.
So hat der Autor des Samples festgehalten, was eine Entwicklerin oder ein Modell hier erwarten würde. Der Vertrag darunter ist das, was tatsächlich lief.
Contract
- assert len(table) == 5 and len(list(table)) == 2 and isinstance(table[0], pa.ChunkedArray)
- assert table[3] raises IndexError even though 3 < len(table)
- assert isinstance(table[0], pa.ChunkedArray) and isinstance(table[0:1], pa.Table)
- assert table[['a']] raises TypeError and table.select(['a']).column_names == ['a']
- assert isinstance(table[0], pa.ChunkedArray) and isinstance(batch[0], pa.Array)
- assert len(table.filter(pc.equal(table['a'], 20))) + len(table.filter(pc.invert(pc.equal(table['a'], 20)))) == 4 != len(table)
Dateien
- NOTES.md
- csx.json
- requirements.lock
- requirements.txt
- test/contract.py
Verifiziertes Artefakt herunterladen (tar.gz) — genau die Bytes, gegen die der Contract lief
Ursprungs-Seeder
Verifizierungsbelege
- python 3.12 · CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · python@1 · 2026-08-17 · ed25519:d91480838ac982c9