Skip to main content

readstat-arrow

Read and write SPSS (.sav) and Stata (.dta) files as Apache Arrow tables.

A thin, typed Python wrapper around the excellent ReadStat C library. Where pyreadstat returns pandas data frames, readstat-arrow returns a pyarrow.Table, which converts for free to pandas, polars, DuckDB, Parquet and anything else that speaks Arrow.

import readstat_arrow

table, meta = readstat_arrow.read_sav("survey.sav")  # -> (pyarrow.Table, Metadata)
readstat_arrow.write_dta("survey.dta", table, meta)  # the same pair back out, as Stata

Examples

Write an SPSS file

import pyarrow as pa
import readstat_arrow
from readstat_arrow import Metadata

table = pa.table({"id": pa.array([1, 2, 3], pa.int32()), "sex": pa.array([1, 2, None])})

meta = Metadata(
    file_label="Tiny survey",
    variable_labels={"id": "Respondent id", "sex": "Sex"},
    value_labels={
        "sex": [
            {"value": 1, "label": "Male"},
            {"value": 2, "label": "Female"},
            {"value": 9, "label": "Unknown"},
        ]
    },
    formats={"sex": "F1.0"},
    measures={"sex": "nominal"},
    storage_widths={"sex": 1},
    missing_values={"sex": {"values": [9]}},  # or a range: {"lo": 90, "hi": 99}
)

readstat_arrow.write_sav("tiny.sav", table, meta)

readstat_arrow.write_sav("bare.sav", table)  # no metadata at all: just the columns

Metadata is a set of mappings from variable name to one attribute — variable_labels, value_labels, formats, storage_widths, display_widths, measures, alignments, missing_values — plus the file-level file_label, notes and multiple_response_sets. Which columns exist, and in what order, is the Arrow schema's business. Nothing is required: a name absent from a mapping declares nothing and the writer falls back to the format's own default, and the metadata may be left out altogether. SPSS stores every number as a double, so id reads back as float64, not int32.

Write a Stata file, whole or in batches

import readstat_arrow

table, meta = readstat_arrow.read_sav("survey.sav")
readstat_arrow.write_dta("survey.dta", table, meta)  # a whole table in one call

# or stream it, without holding every row in memory
with readstat_arrow.DtaWriter("survey.dta", table.schema, table.num_rows, meta) as writer:
    for batch in table.to_batches(max_chunksize=100_000):
        writer.write_batch(batch)

DtaWriter (and SavWriter) needs the final row count up front.

Read an SPSS file

import readstat_arrow

table, meta = readstat_arrow.read_sav("survey.sav")

table.num_rows  # -> 12_345
table.schema  # dates and times are already temporal types
table.column("q1")

table.column_names  # -> every variable, in file order
meta.file_label  # -> "2026 satisfaction survey"
meta.variable_labels["q1"]  # -> "How satisfied are you ...?"
meta.value_labels["q1"]  # -> [{"value": 1, "label": "Very unsatisfied"}, ...]
meta.missing_values["q1"]  # -> {"values": [9]}, or {"lo": 90, "hi": 99}

table.to_pandas()  # or
import polars as pl

pl.from_arrow(table)

Read part of a Stata file

import readstat_arrow

# header only, no rows decoded: the schema a full read would give comes back
# beside the metadata
row_count, schema, meta = readstat_arrow.read_dta_metadata("panel.dta")
schema.names  # -> ["id", "income", ...], the variables in file order
schema.field("income").type  # -> the type read_dta would give that column

table, meta = readstat_arrow.read_dta(
    "panel.dta",
    columns=["id", "income"],  # only these, in this order
    row_offset=1_000,  # skip the first 1_000 rows
    row_limit=1_000,  # then read at most 1_000
    preserve_user_missing=True,  # keep Stata's tagged missings .a-.z
)

# with preserve_user_missing every numeric column is struct<value, tag>
table.column("income")[0].as_py()  # -> {"value": None, "tag": "a"}, Stata's .a
table.column("income")[1].as_py()  # -> {"value": 42.0, "tag": None}, a real number
table.column("income")[2].as_py()  # -> None, a plain .

Read a big file in less memory

Where memory is the constraint, holding the whole table in it is the expensive part of reading a file — and the type a column is stored as is often wider than its values need. A .sav is the worst of it: every numeric column is a 64-bit double whatever it holds, so a survey of one-digit codes costs 8 bytes a cell. A .dta has narrow types of its own — byte, int, long, float — but a variable is only as narrow as whoever wrote the file declared it.

scan_and_narrow_types=True reads each column at the width its values actually need instead:

import readstat_arrow

table, meta = readstat_arrow.read_sav("big.sav", scan_and_narrow_types=True)

table.schema.field("q1").type  # -> DataType(int8), where the file says double

The file is parsed twice — once to measure the values, keeping none of them, then once to read them at the widths that fit — so the trade is time for memory: about twice the wall clock of a plain read, and no column is ever built at its stored width.

Only a type that holds the column exactly is ever chosen: integer types when every value was a whole number, float32 when every value round-trips through it, else float64. The ladder is int8, int16, int32, float32, float64 — there is no int64, which would save nothing over the double it replaces, and no unsigned type. Strings are untouched, and a column of nothing but nulls comes back as int8. Dates and times come back as the same temporal types either way: the width they are read at only decides how much there is to convert.

Read from something other than a path

Every read_* function also takes a binary file object, so a file that arrives over the network or out of an archive never has to be written to disk first.

import io, zipfile
import readstat_arrow

# straight out of a zip archive, without extracting it
with zipfile.ZipFile("survey.zip") as archive, archive.open("survey.sav") as member:
    table, meta = readstat_arrow.read_sav(member)

# or from bytes you already have in hand
table, meta = readstat_arrow.read_sav(io.BytesIO(downloaded))

# an open file works too, and is left open where reading stopped
with open("survey.sav", "rb") as file:
    row_count, schema, meta = readstat_arrow.read_sav_metadata(file)

The file object must be seekable, and is read from wherever it currently is - so a .sav embedded in a larger stream can be read by seeking to its first byte. The writers have taken a file object all along.

Development

Requires uv and a C compiler.

git clone <repo-url>
cd readstat-arrow
uv sync            # builds the Cython extension into .venv
uv run coverage run -m pytest && uv run coverage report || uv run  coverage html
uv run ruff check . && uv run ruff format --check . && uv run mypy

uv run mypy checks src/ and tests/ in strict mode. The Cython sources in src/readstat_arrow/_cython/ are excluded — they are typed for Cython's C type system, which mypy cannot follow, and Cython checks them at compile time.

ReadStat is vendored as a git submodule at vendor/ReadStat; bump it with git submodule update --remote vendor/ReadStat. uv sync rebuilds the extension whenever _cython/, setup.py or the ReadStat sources change (see [tool.uv] cache-keys in pyproject.toml).

Layout

pyproject.toml            project metadata, deps, tool config (uv/ruff/mypy/pytest)
setup.py                  Cython extension definition (compiles ReadStat in)
vendor/ReadStat/          git submodule
src/readstat_arrow/
  __init__.py             public API re-exports
  reader.py               read_* and read_*_metadata functions, table assembly, type narrowing
  writer.py               SavWriter / DtaWriter, write_* functions, type planning
  metadata.py             the Metadata dataclass and its per-variable mappings
  errors.py               ReadstatError, ReadstatWarning
  _formats.py             FileFormat literal type
  _dates.py               display-format -> temporal type conversion
  _cython/                everything Cython compiles (private)
    parser.py             pure-Python-mode Cython: ReadStat callbacks -> Arrow buffers
    writer.py             pure-Python-mode Cython: Arrow buffers -> readstat_insert_*
    readstat.pxd          C declarations for readstat.h
tests/                    pytest suite; sample files under tests/data/

Versioning

Releases use CalVer in the form YYYY.MM.DD.INC0 (e.g. 2026.09.01.0, then 2026.09.01.1 for a fix in the same dat). There are no compatibility promises encoded in the number. The version is set once in pyproject.toml and exposed as readstat_arrow.__version__.

Licence

MIT. ReadStat is MIT-licensed; the sample files under tests/data/ come from pyreadstat (Apache 2.0) — see tests/data/README.md.

Release files for readstat-arrow 2026.9.21.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for readstat-arrow 2026.9.21.1
File Size Uploaded
readstat_arrow-2026.9.21.1.tar.gz 219.6 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for readstat-arrow 2026.9.21.1
File
readstat_arrow-2026.9.21.1-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
readstat_arrow-2026.9.21.1-cp314-cp314-musllinux_1_2_x86_64.whl CPython 3.14 CPython 3.14 Linux musl 1.2+ x86-64 Details
readstat_arrow-2026.9.21.1-cp314-cp314-musllinux_1_2_aarch64.whl CPython 3.14 CPython 3.14 Linux musl 1.2+ ARM64 Details
readstat_arrow-2026.9.21.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
readstat_arrow-2026.9.21.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details
readstat_arrow-2026.9.21.1-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
readstat_arrow-2026.9.21.1-cp314-cp314-macosx_10_15_x86_64.whl CPython 3.14 CPython 3.14 macOS 10.15+ x86-64 Details
readstat_arrow-2026.9.21.1-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
readstat_arrow-2026.9.21.1-cp313-cp313-musllinux_1_2_x86_64.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ x86-64 Details
readstat_arrow-2026.9.21.1-cp313-cp313-musllinux_1_2_aarch64.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ ARM64 Details
readstat_arrow-2026.9.21.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details
readstat_arrow-2026.9.21.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ ARM64, Linux glibc 2.17+ ARM64 Details
readstat_arrow-2026.9.21.1-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
readstat_arrow-2026.9.21.1-cp313-cp313-macosx_10_13_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.13+ x86-64 Details
readstat_arrow-2026.9.21.1-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
readstat_arrow-2026.9.21.1-cp312-cp312-musllinux_1_2_x86_64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ x86-64 Details
readstat_arrow-2026.9.21.1-cp312-cp312-musllinux_1_2_aarch64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ ARM64 Details
readstat_arrow-2026.9.21.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details
readstat_arrow-2026.9.21.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details
readstat_arrow-2026.9.21.1-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
readstat_arrow-2026.9.21.1-cp312-cp312-macosx_10_13_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.13+ x86-64 Details
readstat_arrow-2026.9.21.1-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
readstat_arrow-2026.9.21.1-cp311-cp311-musllinux_1_2_x86_64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ x86-64 Details
readstat_arrow-2026.9.21.1-cp311-cp311-musllinux_1_2_aarch64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ ARM64 Details
readstat_arrow-2026.9.21.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details
readstat_arrow-2026.9.21.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ ARM64, Linux glibc 2.17+ ARM64 Details
readstat_arrow-2026.9.21.1-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
readstat_arrow-2026.9.21.1-cp311-cp311-macosx_10_9_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.9+ x86-64 Details

Total release size: 40.6 MB

Release files / readstat_arrow-2026.9.21.1.tar.gz

Download URL readstat_arrow-2026.9.21.1.tar.gz
Size 219.6 kB
Tags Source
SHA-256 checksum
How to use checksums
410635d202b39fdcf4f07a6923c087d86aeeb87ac2ce6ac7a9d7246ebfcb36c2
BLAKE2b-256 checksum
How to use checksums
3f5607338fe78618ff4ef8ff2798e3d97a22c49f2d75925b5aeedfc35a2e7643
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 Sep 21, 2026.

Transparency log

Release files / readstat_arrow-2026.9.21.1-cp314-cp314-win_amd64.whl

Download URL readstat_arrow-2026.9.21.1-cp314-cp314-win_amd64.whl
Size 346.9 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
2d29a992571238672fca3d9c887e16548be0eaad9abb126ba63ec9d94222e386
BLAKE2b-256 checksum
How to use checksums
72f472c7bb6f4d78471391cd9499d08f6a9e5d35fcae0c488e2f6b3862246a53
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 Sep 21, 2026.

Transparency log

Release files / readstat_arrow-2026.9.21.1-cp314-cp314-musllinux_1_2_x86_64.whl

Download URL readstat_arrow-2026.9.21.1-cp314-cp314-musllinux_1_2_x86_64.whl
Size 2.2 MB
Tags CPython 3.14 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
c0ad94ba99af7837c6700bb9a4f1614ee2e85904a4352a4ffc95f4e571b08c35
BLAKE2b-256 checksum
How to use checksums
67e41bd7577d48434c0cf3ec0e3ca6faa2a00d25b927a931e215d36fa397f206
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 Sep 21, 2026.

Transparency log

Release files / readstat_arrow-2026.9.21.1-cp314-cp314-musllinux_1_2_aarch64.whl

Download URL readstat_arrow-2026.9.21.1-cp314-cp314-musllinux_1_2_aarch64.whl
Size 2.2 MB
Tags CPython 3.14 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
c531026c2e24b446a1353bcd9d01bdaf483c974ef64774085adc94b6a67addf2
BLAKE2b-256 checksum
How to use checksums
35dba77436dc60739a12b6aab4584a5aa79ee16d735f2857022440ba5d90ca1a
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 Sep 21, 2026.

Transparency log

Release files / readstat_arrow-2026.9.21.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL readstat_arrow-2026.9.21.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 2.2 MB
Tags CPython 3.14 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
b6af98c0b45f3534450a2b1a39439cee526165ac3eaa8f9bb75bca2c82c53d22
BLAKE2b-256 checksum
How to use checksums
bf68bf60370108df4ccebd4b4d5686f8f673bc59097ed4a1bff5c62ab5b4ee72
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 Sep 21, 2026.

Transparency log

Release files / readstat_arrow-2026.9.21.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL readstat_arrow-2026.9.21.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 2.2 MB
Tags CPython 3.14 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
99bbadf5cb53f6ebf643dac8b08a37f3cbe1ce355e2541bf46a2f52b7a664e66
BLAKE2b-256 checksum
How to use checksums
195f3b6da32b2324123940ee246d4edb517bb15df1cd238ed89426211af02c3e
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 Sep 21, 2026.

Transparency log

Release files / readstat_arrow-2026.9.21.1-cp314-cp314-macosx_11_0_arm64.whl

Download URL readstat_arrow-2026.9.21.1-cp314-cp314-macosx_11_0_arm64.whl
Size 418.0 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
6b4031a817b2c0321b2f23212ecc4d3fbbe73f599ff24b2ad63ba0f21dde7205
BLAKE2b-256 checksum
How to use checksums
5a0c3e663290ee9d2fb4eefc9212bf30195181fc7bef52bff7067a8b6f85a781
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 Sep 21, 2026.

Transparency log

Release files / readstat_arrow-2026.9.21.1-cp314-cp314-macosx_10_15_x86_64.whl

Download URL readstat_arrow-2026.9.21.1-cp314-cp314-macosx_10_15_x86_64.whl
Size 430.7 kB
Tags CPython 3.14 macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
3a9b9a578fb717e7a4535760c103b2814dd1d8e04461a91c5f2ee3f4dac5a0e7
BLAKE2b-256 checksum
How to use checksums
5a0bc98943205c58222d1fc5e6dd6f2eca06c3a8715ab79a92a191639204a8fc
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 Sep 21, 2026.

Transparency log

Release files / readstat_arrow-2026.9.21.1-cp313-cp313-win_amd64.whl

Download URL readstat_arrow-2026.9.21.1-cp313-cp313-win_amd64.whl
Size 337.0 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
1900dc3af7f10d52d0d6d8d1e6cc77d5a45e31d41c388d23f76fa62967c43140
BLAKE2b-256 checksum
How to use checksums
053b44606847c307e7ec6604c1fdb4a30048822b4cd260754664c0b12317a9c2
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 Sep 21, 2026.

Transparency log

Release files / readstat_arrow-2026.9.21.1-cp313-cp313-musllinux_1_2_x86_64.whl

Download URL readstat_arrow-2026.9.21.1-cp313-cp313-musllinux_1_2_x86_64.whl
Size 2.2 MB
Tags CPython 3.13 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
66396ace24b8520fbaa1960b13ade1b8ca563534d87c5a985e1af4b2ef0d38a5
BLAKE2b-256 checksum
How to use checksums
133b227a76fb337aaa1df40b13d3733386728d211c04ca1533f8580a41a6d0da
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 Sep 21, 2026.

Transparency log

Release files / readstat_arrow-2026.9.21.1-cp313-cp313-musllinux_1_2_aarch64.whl

Download URL readstat_arrow-2026.9.21.1-cp313-cp313-musllinux_1_2_aarch64.whl
Size 2.2 MB
Tags CPython 3.13 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
113195f74900df158aa20f067d84fed7780d2fd6f345a5a72734d859be43dcef
BLAKE2b-256 checksum
How to use checksums
5f0c7184de7156e3ca5f278db9eb8fcad7e10e4d04282220de42f06c1ce4f0dd
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 Sep 21, 2026.

Transparency log

Release files / readstat_arrow-2026.9.21.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL readstat_arrow-2026.9.21.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 2.3 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
140063fbb19ed80dddd872c4a8dd32e37b832e52b3e58b98a4a7812b441aaab0
BLAKE2b-256 checksum
How to use checksums
a60c087ffabf80ddf7ab24325bc60740216ee0503e1169b38af4257b9c9830e3
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 Sep 21, 2026.

Transparency log

Release files / readstat_arrow-2026.9.21.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL readstat_arrow-2026.9.21.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 2.2 MB
Tags CPython 3.13 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
a2f6b8a5cb7b6ff4966dfa01bebe7bcbc1b51cb1f20da3810f88c517c86fbba1
BLAKE2b-256 checksum
How to use checksums
13c03e0ef21c5daee908f92e7a1d766b444890cba195dc6f2d8abb3e1b2ee775
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 Sep 21, 2026.

Transparency log

Release files / readstat_arrow-2026.9.21.1-cp313-cp313-macosx_11_0_arm64.whl

Download URL readstat_arrow-2026.9.21.1-cp313-cp313-macosx_11_0_arm64.whl
Size 414.9 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
d2799ff57d24ccde6a9f97098a6bdb5ddfadf0c3c1c00624481ff10e6814d69d
BLAKE2b-256 checksum
How to use checksums
594e0a23905f116888837a7d27ec306a4b1b0e0396ee5d079700ade64ff28d6e
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 Sep 21, 2026.

Transparency log

Release files / readstat_arrow-2026.9.21.1-cp313-cp313-macosx_10_13_x86_64.whl

Download URL readstat_arrow-2026.9.21.1-cp313-cp313-macosx_10_13_x86_64.whl
Size 429.5 kB
Tags CPython 3.13 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
99d7e257d12c657d30703d0cca01a917fc1edfce15e1ff79e6197e540e35872c
BLAKE2b-256 checksum
How to use checksums
5bbae2b73f69317ef729e7b255a0da17760b3a6a4fc37268957920b2da99a48e
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 Sep 21, 2026.

Transparency log

Release files / readstat_arrow-2026.9.21.1-cp312-cp312-win_amd64.whl

Download URL readstat_arrow-2026.9.21.1-cp312-cp312-win_amd64.whl
Size 337.0 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
877cc4023e4a99d2bd3e76acf19862b2081e5b9cf0c12775f9b80a45a9c5513b
BLAKE2b-256 checksum
How to use checksums
9c202d0c1733a67faedb2aef980cd2757893b827bfb680d417335b23a4247e92
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 Sep 21, 2026.

Transparency log

Release files / readstat_arrow-2026.9.21.1-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL readstat_arrow-2026.9.21.1-cp312-cp312-musllinux_1_2_x86_64.whl
Size 2.3 MB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
55f75241dfd9aa027cd70b42561f333720f4223dc4d584f23a805301a28c4de7
BLAKE2b-256 checksum
How to use checksums
962925aa67cef9a55a374d67e6e997a561fb0168baa8bd86d106878f491ae348
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 Sep 21, 2026.

Transparency log

Release files / readstat_arrow-2026.9.21.1-cp312-cp312-musllinux_1_2_aarch64.whl

Download URL readstat_arrow-2026.9.21.1-cp312-cp312-musllinux_1_2_aarch64.whl
Size 2.2 MB
Tags CPython 3.12 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
32bf47970a79762e7e3d6f0fcb9df37474e855783e332434f590823e4ed660fc
BLAKE2b-256 checksum
How to use checksums
a48c4e8a725a8f6cb08514e868a0e685b7f93b9e4d9947f8be35b66e1105f088
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 Sep 21, 2026.

Transparency log

Release files / readstat_arrow-2026.9.21.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL readstat_arrow-2026.9.21.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 2.3 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
f6cb8a67432c0260966645b46b23428c6836f00daf5b61f2bed06e35aad52ea1
BLAKE2b-256 checksum
How to use checksums
29993492e4d84c14a3d6bc13011bae42a52d9155d81fa9688e55b737fa1617f2
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 Sep 21, 2026.

Transparency log

Release files / readstat_arrow-2026.9.21.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL readstat_arrow-2026.9.21.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 2.2 MB
Tags CPython 3.12 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
877ee1cd6ff2bd52461200e7ff1515649fd7fa9a1786ee4d8a98b8c5f00f8117
BLAKE2b-256 checksum
How to use checksums
8c194d525e36c790830941648c0623f13da920a86aba98c64b32ef9de95cc4cd
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 Sep 21, 2026.

Transparency log

Release files / readstat_arrow-2026.9.21.1-cp312-cp312-macosx_11_0_arm64.whl

Download URL readstat_arrow-2026.9.21.1-cp312-cp312-macosx_11_0_arm64.whl
Size 413.6 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
c565e0b45d9e3b0767c3760d1ff317233a843d65b9f6ba5e8e4cfb831dfd2b42
BLAKE2b-256 checksum
How to use checksums
ff4fd4bf6d014c93df438055a436ac63f1edf069c032fd2cd5bcb0ba654b7032
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 Sep 21, 2026.

Transparency log

Release files / readstat_arrow-2026.9.21.1-cp312-cp312-macosx_10_13_x86_64.whl

Download URL readstat_arrow-2026.9.21.1-cp312-cp312-macosx_10_13_x86_64.whl
Size 428.5 kB
Tags CPython 3.12 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
01a32e2b11ad171daa8b54fdf842b6a2432fe8d5ec8c15311286f244860efa92
BLAKE2b-256 checksum
How to use checksums
4fa0caab2a9383035fbcf5f5c6f9bcd299b073373f6bddcdec181cd7ae984309
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 Sep 21, 2026.

Transparency log

Release files / readstat_arrow-2026.9.21.1-cp311-cp311-win_amd64.whl

Download URL readstat_arrow-2026.9.21.1-cp311-cp311-win_amd64.whl
Size 337.2 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
7d07705d1f002d6c983391b78facea41d630c7d72388409dd4c73fef6add978b
BLAKE2b-256 checksum
How to use checksums
fd6199d8a4c6869ea9c02da9ef439d211613cc8d10aa00f12490894150b9890f
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 Sep 21, 2026.

Transparency log

Release files / readstat_arrow-2026.9.21.1-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL readstat_arrow-2026.9.21.1-cp311-cp311-musllinux_1_2_x86_64.whl
Size 2.3 MB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
307624738b8ec3e1cda090a1b6a8e27528a7eee96fd5331bbd64cea46750f5f3
BLAKE2b-256 checksum
How to use checksums
8b6f16c60ee621a78a96dd08536d8226e8e288d37993e8a73690d2b0bff457e8
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 Sep 21, 2026.

Transparency log

Release files / readstat_arrow-2026.9.21.1-cp311-cp311-musllinux_1_2_aarch64.whl

Download URL readstat_arrow-2026.9.21.1-cp311-cp311-musllinux_1_2_aarch64.whl
Size 2.2 MB
Tags CPython 3.11 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
e80d58a5b462ff8dd06d20d7fda97d0ab23f9ac3cc5b4042a7d640b1dc471516
BLAKE2b-256 checksum
How to use checksums
66aae91d9a98a41a1021bca72bc7e3f5e9f20fc9882bcab30e00a9e8b371927e
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 Sep 21, 2026.

Transparency log

Release files / readstat_arrow-2026.9.21.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL readstat_arrow-2026.9.21.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 2.3 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
96f6fed32553cbea863e0dfbe683a9077710c9b2582baf39fa4de8437382e085
BLAKE2b-256 checksum
How to use checksums
117e0b61e779561d753ca5a80772c72c735379edf2b9a18363b881c7e8bf0e75
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 Sep 21, 2026.

Transparency log

Release files / readstat_arrow-2026.9.21.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL readstat_arrow-2026.9.21.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 2.2 MB
Tags CPython 3.11 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
48eb7b7163090432340ae510c4e985e0922b47eaf14b8564068e75cb510dcb38
BLAKE2b-256 checksum
How to use checksums
111664157304a863b452b3fc14c90943e3a674307b9d37b26bbcb84c2a469ead
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 Sep 21, 2026.

Transparency log

Release files / readstat_arrow-2026.9.21.1-cp311-cp311-macosx_11_0_arm64.whl

Download URL readstat_arrow-2026.9.21.1-cp311-cp311-macosx_11_0_arm64.whl
Size 415.1 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
cd88de9d805e9e3d30aa49be9edd4aa3b99180dcc48e629aaa96d57476031d99
BLAKE2b-256 checksum
How to use checksums
f9b8a1f1cf543602d9941a678b8a3d9baab632fa3560e9cc10409e63fb3b0651
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 Sep 21, 2026.

Transparency log

Release files / readstat_arrow-2026.9.21.1-cp311-cp311-macosx_10_9_x86_64.whl

Download URL readstat_arrow-2026.9.21.1-cp311-cp311-macosx_10_9_x86_64.whl
Size 428.2 kB
Tags CPython 3.11 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
dd66246358ab417caf8cc5a197d4229f7cd68c798835ebcf31bfacf3ecbc4eb0
BLAKE2b-256 checksum
How to use checksums
205b2f0d2f86e2dc6777583b7c797f0cd6b68ec7d31a3c45acb73434ec87976d
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 Sep 21, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

2026.9.21.1 This release

29 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