hypertabular
Delimited text — CSV, TSV, any single-byte ASCII separator — and workbooks — XLSX and ODS — read a batch at a time into typed columns, with a HyperCast verdict for every cell.
pip install hypertabular
from hypertabular import Column, DelimitedReader, Dialect, Fault, SheetOptions, Success, Workbook
plan = [Column.i32(0), Column.text(1), Column.f64(2)]
with DelimitedReader.open("orders.csv", Dialect.CSV, plan) as reader:
print(reader.header) # ('id', 'name', 'score')
for batch in reader:
ids, names, scores = batch.columns
# A column at a time, as the core wrote it…
total = sum(scores.values) # a memoryview of C doubles
for row, fault in scores.faults():
print(row, fault.reason.name, scores.raw(row))
# …or a cell at a time, as HyperCast's union.
for row in range(batch.rows):
match scores[row]:
case Success(value):
print(names.values[row], value)
case Fault(reason, offset, length):
print(reason.name, "on line", batch.line(row), "in", scores.raw(row))
# A workbook reads into the same batch.
book = Workbook.open("orders.xlsx")
print(book.sheets) # (SheetInfo(name='Orders', hidden=False),)
for batch in book.sheet("Orders", SheetOptions(), plan):
...
The shape
The native core owns no memory and reads no files. It is linked straight into a CPython
extension module (hypertabular._native, PyO3), and the extension is the binding: it
allocates a value array and a verdict array per column, once, and the core fills them in one
call per batch with the interpreter released. A column reaches Python whole — a read-only
memoryview of the door's own item type, which anything that takes a buffer takes — with no
Python call per cell.
- One batch type. Iterating a reader or a sheet (or calling
read()) gives aBatch:rows,columns,column(i),line(row)andraw(column, row). Each column is aColumnDatawithvalues,verdicts,fault_count,faults(),raw(row)andcolumn[row]for one cell asSuccessorFault. A batch owns what it shows: it stays valid after the reader has moved on. - Nothing is sniffed. The
Dialectstates the separator, the quoting and the header;SheetOptionsstates a sheet's header, whether empty rows are skipped and the batch size; the plan states each column's door and, for numbers, itsNumFormat. - HyperCast is the judge.
Success,Fault,CastFailure,NumFormat,UnixPrecision,DateOrderandExcelEpochare thehypercastpackage's own objects, re-exported here unchanged. A text cell means exactly whathypercast.cast_*says of the same text, a typed workbook cell is converted by the door directly, and its value is the Python type that door gives:int,float,bool,decimal.Decimal,uuid.UUID,datetime,date,time,timedelta, andstrfor text. - A bad value is a verdict; a broken file is an exception. A cell that does not cast is
a
Faultin its column and the read goes on. A record of the wrong width, input that ends inside a quoted cell, a workbook whose container or parts cannot be read, raisesTabularError— after every intact row before it has been delivered.
hypertabular.native_version() reports the core the extension was built from.
Platforms
One abi3 wheel per platform serves every CPython from 3.11 up, so nothing is compiled on install: Linux (glibc and musl) on x86-64 and arm64, macOS on Apple silicon and Intel, and Windows on x86-64 and arm64.
In the browser (Pyodide)
The same PyO3 extension, compiled for Pyodide's Emscripten target, is published to PyPI as a
ninth wheel, hypertabular-X.Y.Z-cp311-abi3-pyemscripten_2026_0_wasm32.whl, so micropip
finds it the way pip finds the native wheels, and HyperCast's beside it:
import micropip
await micropip.install("hypertabular")
import hypertabular
hypertabular.BACKEND # "native"
hypertabular.native_version() # the linked core's version
It is the same native extension, with the same API and no JavaScript bridge. CI installs the
wheel into Pyodide and runs this package's whole pytest suite in it twice, under Node and in
headless Chrome, corpus replay included; the one test that starts threads is skipped, since
Pyodide cannot. The wheel is for Pyodide 314.x (Python 3.14, platform
pyemscripten_2026_0): each Pyodide ABI year needs its own wheel.
Verifying provenance
Every wheel is built and attested by the SkunkWerkx forge's reusable workflow:
gh attestation verify hypertabular-0.7.0-*.whl --repo SkunkWerkx/HyperTabular --signer-repo SkunkWerkx/.github
License
Metadata
Release files for hypertabular 0.7.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| hypertabular-0.7.0-cp311-abi3-win_arm64.whl | CPython 3.11 | abi3 | Windows ARM64 | Details |
| hypertabular-0.7.0-cp311-abi3-win_amd64.whl | CPython 3.11 | abi3 | Windows x86-64 | Details |
| hypertabular-0.7.0-cp311-abi3-pyemscripten_2026_0_wasm32.whl | CPython 3.11 | abi3 | PyEmscripten 2026.0+ WebAssembly | Details |
| hypertabular-0.7.0-cp311-abi3-musllinux_1_2_x86_64.whl | CPython 3.11 | abi3 | Linux musl 1.2+ x86-64 | Details |
| hypertabular-0.7.0-cp311-abi3-musllinux_1_2_aarch64.whl | CPython 3.11 | abi3 | Linux musl 1.2+ ARM64 | Details |
| hypertabular-0.7.0-cp311-abi3-manylinux_2_28_x86_64.whl | CPython 3.11 | abi3 | Linux glibc 2.28+ x86-64 | Details |
| hypertabular-0.7.0-cp311-abi3-manylinux_2_28_aarch64.whl | CPython 3.11 | abi3 | Linux glibc 2.28+ ARM64 | Details |
| hypertabular-0.7.0-cp311-abi3-macosx_11_0_arm64.whl | CPython 3.11 | abi3 | macOS 11.0+ ARM64 | Details |
| hypertabular-0.7.0-cp311-abi3-macosx_10_12_x86_64.whl | CPython 3.11 | abi3 | macOS 10.12+ x86-64 | Details |
Total release size: 3.8 MB
Release files / hypertabular-0.7.0-cp311-abi3-win_arm64.whl
| Download URL | hypertabular-0.7.0-cp311-abi3-win_arm64.whl |
|---|---|
| Size | 341.2 kB |
| Tags | CPython 3.11 Windows ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
a1c376b14aca5642cea28a9704c9c7338835b2e3967108ddc1a69ec3211ee0d1
|
|
BLAKE2b-256 checksum How to use checksums |
bd32ef84ae750e53c7dcec443ecca9247982f38061668b4250f39741cbc9ad87
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.
Transparency logRelease files / hypertabular-0.7.0-cp311-abi3-win_amd64.whl
| Download URL | hypertabular-0.7.0-cp311-abi3-win_amd64.whl |
|---|---|
| Size | 363.5 kB |
| Tags | CPython 3.11 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
f8b3a03f9498bb7e729751caa03594c0cb92e1fa72c5be8593f0c7c473dd1324
|
|
BLAKE2b-256 checksum How to use checksums |
4ea09a5cc7c67548b22ffd565ed38e89a22085f3a63944332a6edfaeb2ff17c2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.
Transparency logRelease files / hypertabular-0.7.0-cp311-abi3-pyemscripten_2026_0_wasm32.whl
| Download URL | hypertabular-0.7.0-cp311-abi3-pyemscripten_2026_0_wasm32.whl |
|---|---|
| Size | 206.2 kB |
| Tags | CPython 3.11 PyEmscripten 2026.0+ WebAssembly abi3 |
|
SHA-256 checksum How to use checksums |
2e9b36679aafc7f48e5d6b62eb50eab8d86a580f6bc4876a0bc8ae3d3451fc2e
|
|
BLAKE2b-256 checksum How to use checksums |
d984e8fee63dcf671070951deaf3a94531089f35dfbe30020ddd013e949cf830
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.
Transparency logRelease files / hypertabular-0.7.0-cp311-abi3-musllinux_1_2_x86_64.whl
| Download URL | hypertabular-0.7.0-cp311-abi3-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 651.9 kB |
| Tags | CPython 3.11 Linux musl 1.2+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
95851e01be376f6487d3318bdc52fbcdea308cd7dcd129589d233472cdba696c
|
|
BLAKE2b-256 checksum How to use checksums |
9efb4bafb5221662dd06505bada7a0ae35007b4474dbc8f64ef397a20c1dae07
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.
Transparency logRelease files / hypertabular-0.7.0-cp311-abi3-musllinux_1_2_aarch64.whl
| Download URL | hypertabular-0.7.0-cp311-abi3-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 591.3 kB |
| Tags | CPython 3.11 Linux musl 1.2+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
297a065d251fa7ee441a45c40ceb0ebe6c9328061e57c9dab88c3133ec8b926d
|
|
BLAKE2b-256 checksum How to use checksums |
0b67cc8821ee0680f4471dae1a8b8540521906987b9e9983f540a68c2baa11ea
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.
Transparency logRelease files / hypertabular-0.7.0-cp311-abi3-manylinux_2_28_x86_64.whl
| Download URL | hypertabular-0.7.0-cp311-abi3-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 439.9 kB |
| Tags | CPython 3.11 Linux glibc 2.28+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
6635738ec1197c5aab4c869962a06bd1ed26758074d34e6ba5a3d6d89317d71e
|
|
BLAKE2b-256 checksum How to use checksums |
333899d39a6dfbf74379632cf12809188654a5c5514d2e06bb950795019ba315
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.
Transparency logRelease files / hypertabular-0.7.0-cp311-abi3-manylinux_2_28_aarch64.whl
| Download URL | hypertabular-0.7.0-cp311-abi3-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 413.6 kB |
| Tags | CPython 3.11 Linux glibc 2.28+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
116c1f207fdc7115054cfc15d90b7a01d09d119c24163c912ac141da796d94ed
|
|
BLAKE2b-256 checksum How to use checksums |
460f95cb916456419b696944384c5bdcdc83296642f4f24450116aee17f9585e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.
Transparency logRelease files / hypertabular-0.7.0-cp311-abi3-macosx_11_0_arm64.whl
| Download URL | hypertabular-0.7.0-cp311-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 401.8 kB |
| Tags | CPython 3.11 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
cbed69bac54fcf3a86c327bb7e4acab80b788476e3fb6bafab96806a8ebc7414
|
|
BLAKE2b-256 checksum How to use checksums |
d1e2596e4443aeb31f12e8d2e9dd34a15d5233203bc36ef2e85dcc6f46ada885
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.
Transparency logRelease files / hypertabular-0.7.0-cp311-abi3-macosx_10_12_x86_64.whl
| Download URL | hypertabular-0.7.0-cp311-abi3-macosx_10_12_x86_64.whl |
|---|---|
| Size | 429.7 kB |
| Tags | CPython 3.11 abi3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
428a15fdc77d2673ac773bf6e9d28dcc26c0541289482df6cfc28ad478ed810a
|
|
BLAKE2b-256 checksum How to use checksums |
8a696e1712409818cee4f91eb3a0ecc143b15119ac53c05c7a5f2bc6c23c7326
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.
Transparency log