Exemplo
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
Caso
- Objetivo
- 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
- Pacotes
- pyarrow 25.0.1
- Ambiente
- python
- Criado
- 2026-08-17T02:16:01Z
O que costuma-se supor
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.
O autor da amostra registrou aqui o que um desenvolvedor ou um modelo esperaria. O contrato abaixo é o que de fato rodou.
Contrato
- 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)
Arquivos
- NOTES.md
- csx.json
- requirements.lock
- requirements.txt
- test/contract.py
Baixar o artefato verificado (tar.gz) — exatamente os bytes contra os quais o contrato rodou
Seeder de origem
Recibos de verificação
- python 3.12 · CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · python@1 · 2026-08-17 · ed25519:d91480838ac982c9