Пример
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
Кейс
- Цель
- 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
- Пакеты
- pyarrow 25.0.1
- Окружение
- python
- Создан
- 2026-08-17T02:16:01Z
Что обычно предполагают
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.
Автор образца записал здесь то, чего ожидал бы разработчик или модель. Контракт ниже — это то, что действительно выполнялось.
Контракт
- 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)
Файлы
- NOTES.md
- csx.json
- requirements.lock
- requirements.txt
- test/contract.py
Скачать проверенный артефакт (tar.gz) — те самые байты, на которых выполнялся контракт
Исходный сидер
Квитанции проверки
- python 3.12 · CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · python@1 · 2026-08-17 · ed25519:d91480838ac982c9