Skip to main content

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 a Batch: rows, columns, column(i), line(row) and raw(column, row). Each column is a ColumnData with values, verdicts, fault_count, faults(), raw(row) and column[row] for one cell as Success or Fault. A batch owns what it shows: it stays valid after the reader has moved on.
  • Nothing is sniffed. The Dialect states the separator, the quoting and the header; SheetOptions states a sheet's header, whether empty rows are skipped and the batch size; the plan states each column's door and, for numbers, its NumFormat.
  • HyperCast is the judge. Success, Fault, CastFailure, NumFormat, UnixPrecision, DateOrder and ExcelEpoch are the hypercast package's own objects, re-exported here unchanged. A text cell means exactly what hypercast.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, and str for text.
  • A bad value is a verdict; a broken file is an exception. A cell that does not cast is a Fault in 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, raises TabularError — 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

MIT

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)

Table of built distributions (wheels) for hypertabular 0.7.0
File
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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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

Release history Release notifications | RSS feed

0.8.0

9 release files

This release

0.7.0 This release

9 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page