Skip to main content

readstat-arrow

Read and write SPSS (.sav) and Stata (.dta) files as Apache Arrow tables, using the excellent ReadStat C library:

import readstat_arrow

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

Motivation

There are several options in this space. readstat-arrow relies on the ReadStat library for reading and writing since it is mature and battle-tested, and on Apache Arrow for in-memory representation in Python since it provides zero-copy interoperability with libraries like Pandas, Polars, and DuckDB.

Much of the inspiration for readstat-arrow comes from the great pyreadstat library.

Status

Early development. The library works and is tested, but the API is not stable: names, signatures and return shapes may change in any release, without a deprecation period. Pin an exact version if you depend on it. There is currently support for reading and writing SPSS and Stata files. More file formats can be added on request.

Examples

Reading files

import readstat_arrow

# SPSS
table, metadata = readstat_arrow.read_sav("survey.sav")
# Stata:
table, metadata = readstat_arrow.read_dta("survey.dta")

Every read_* function returns the same pair: a pyarrow.Table, and a Metadata object.

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, not the metadata's. Nothing is required: a name absent from a mapping simply declares nothing.

Metadata(
    file_label="2026 satisfaction survey",
    variable_labels={
        "id": "Respondent id",
        "q1": "How satisfied are you ...?",
        "q2": "How many hours ...?",
    },
    value_labels={
        "q1": [
            {"value": 1, "label": "Very unsatisfied"},
            {"value": 5, "label": "Very satisfied"},
            {"value": 9, "label": "No answer"},
        ]
    },
    formats={"q1": "F1.0", "q2": "F2.0"},
    measures={"q1": "ordinal", "q2": "scale"},
)

Use with Pandas or Polars

import readstat_arrow

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

# pandas:
df = table.to_pandas()
# polars:
import polars as pl
df = pl.from_arrow(table)

Writing files:

import pyarrow as pa

import readstat_arrow
from readstat_arrow import Metadata

table = pa.table({"id": [1, 2, 3], "q1": [1, 5, 4], "q2": [10, 11, 2]})

metadata = Metadata(
    file_label="2026 satisfaction survey",
    variable_labels={
        "id": "Respondent id",
        "q1": "How satisfied are you ...?",
        "q2": "How many hours ...?",
    },
    value_labels={
        "q1": [
            {"value": 1, "label": "Very unsatisfied"},
            {"value": 5, "label": "Very satisfied"},
        ]
    },
    formats={"q1": "F1.0", "q2": "F2.0"},
    measures={"q1": "ordinal", "q2": "scale"},
)

# SPSS:
readstat_arrow.write_sav("survey.sav", table, metadata)
# Stata:
readstat_arrow.write_dta("survey.dta", table, metadata)

Writing in batches

To avoid holding an entire table in memory at once, it is possible to write files in batches

import pyarrow as pa
import readstat_arrow
from readstat_arrow import Metadata

def my_data_source():
    # Let's pretend this comes from some external source
    for _ in range(10):
        yield pa.table(
            {
                "q1": pa.array([1, 2, 3, 4, 5], pa.int8()),
                "q2": pa.array([10, 20, 30, 40, 50], pa.int32()),
                "q3": pa.array([100, 200, 300, 400, 500], pa.int32()),
            }
        )

# we need to know these up front:
schema = pa.schema({"q1": pa.int8(), "q2": pa.int32(), "q3": pa.int32()})
num_rows = 50
metadata = Metadata()

# SPSS:
with readstat_arrow.SavWriter("survey.sav", schema, num_rows, metadata) as writer:
    for table in my_data_source():
        writer.write_table(table)
# Stata:
with readstat_arrow.DtaWriter("survey.dta", schema, num_rows, metadata) as writer:
    for table in my_data_source():
        writer.write_table(table)

Handling missing values

By default every kind of missing — system-missing, a Stata tagged missing, an SPSS value the file declares missing — reads as an Arrow null. With preserve_user_missing=True the user-level ones survive, in the way each format has of saying them.

Stata tags its missings .a to .z, so every numeric column becomes a struct<value, tag> to carry both:

import readstat_arrow

table, metadata = readstat_arrow.read_dta("panel.dta", preserve_user_missing=True)

table.schema.field("income").type  # -> struct<value: double, tag: dictionary<int8, string>>
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 .

SPSS instead declares ordinary values missing, so those values simply stay in the column — the type is unchanged, and Metadata.missing_values says which values were the missing ones:

import readstat_arrow

default, metadata = readstat_arrow.read_sav("survey.sav")
kept, _ = readstat_arrow.read_sav("survey.sav", preserve_user_missing=True)

metadata.missing_values["q1"]  # -> {"values": [9.0]}, declared by MISSING VALUES q1 (9)

default.column("q1")[0].as_py()  # -> None, the 9 collapsed to null
kept.column("q1")[0].as_py()  # -> 9.0, the declared missing value itself

System-missing is null either way, and the writers accept both shapes back.

An SPSS declaration takes one of two shapes in Metadata.missing_values:

Metadata(
    missing_values={
        # up to three discrete values: MISSING VALUES q1 (7, 8, 9)
        "q1": {"values": [7, 8, 9]},
        # an inclusive range: MISSING VALUES q2 (90 THRU 99)
        "q2": {"lo": 90, "hi": 99},
        # a range and one value beside it: MISSING VALUES q3 (LO THRU 0, 999)
        "q3": {"lo": float("-inf"), "hi": 0, "value": 999},
    }
)

-inf and inf are SPSS's LO and HI, and more than three discrete values is an error — SPSS itself allows no more.

Reading the metadata without the data

read_sav_metadata and read_dta_metadata stop before reading the actual data. What comes back is the schema a full read would have given, the row count, and the Metadata object.

import readstat_arrow

schema, num_rows, metadata = readstat_arrow.read_dta_metadata("panel.dta")

schema.names  # -> ["id", "year", "income", ...], the variables in file order
schema.field("income").type  # -> the type a full read would give that column
num_rows  # -> 4_000_000, from the header
metadata.variable_labels["income"]  # -> "Annual income, NOK"

The row count is None where the file does not record one — Stata files always do, some non-SPSS writers of .sav do not. The schema describes a preserve_user_missing=False read, so it does not show the struct<value, tag> columns that option gives a .dta.

Reading only part of a file

Use columns, row_offset and row_limit to read parts of a file:

import readstat_arrow

table, metadata = readstat_arrow.read_dta(
    "panel.dta",
    columns=["id", "income"],  # only these two; they come back in file order
    row_offset=1_000,  # skip the first 1_000 rows
    row_limit=1_000,  # then read at most 1_000
)

row_limit=0 means no limit, and the returned Metadata covers the columns that were read, not the whole file.

Narrowing types to reduce memory usage

In memory-constrained environments, it can be difficult to hold the whole table in memory at once — especially since 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 even 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, metadata = 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.

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, int64, float32, float64int64 saves nothing over the stored double, but it is the cleaner type for a column of whole numbers. Strings are untouched.

Reading in batches

Read a fixed number of rows at a time and hand each one over as a pyarrow.RecordBatch,

import pyarrow.parquet as pq
import readstat_arrow

reader = readstat_arrow.open_sav("big.sav")
with pq.ParquetWriter("big.parquet", reader.schema) as writer:
    reader.read_batches(writer.write_batch)

open_sav and open_dta return a SavStreamingReader / DtaStreamingReader. Opening reads the metadata and nothing else, so schema, num_rows and metadata are all there before the data itself is read:

reader = readstat_arrow.open_sav("panel.sav")
reader.schema  # the schema every batch has
reader.num_rows  # rows the header declares, or None
reader.metadata.variable_labels["income"]

read_batches(callback) then reads the file, calling callback with each batch and returning the rows read.

The writers in readstat-arrow take a batch at a time too, so converting between the two formats can be done on the fly:

reader = readstat_arrow.open_sav("panel.sav")
with readstat_arrow.DtaWriter(
    "survey.dta", reader.schema, reader.num_rows, reader.metadata
) as writer:
    reader.read_batches(writer.write_batch)

A reader takes the same arguments the matching read_* takes: columns, row_offset, row_limit, encoding, preserve_user_missing, and scan_and_narrow_types.

Making a pyarrow.RecordBatchReader

read_batches pushes: it drives the parse and calls you. Some consumers want to pull instead — DuckDB, pyarrow.dataset.write_dataset, anything that takes a pyarrow.RecordBatchReader. Turning one around into the other needs a thread, and can be done like this:

import queue
import threading

import pyarrow as pa


def record_batch_reader(reader, *, batch_rows=65_536, ahead=2):
    """A pyarrow.RecordBatchReader over a readstat-arrow streaming reader."""
    queued: queue.Queue = queue.Queue(maxsize=ahead)
    done = object()

    def run():
        try:
            reader.read_batches(queued.put, batch_rows=batch_rows)
        except BaseException as exc:  # comes back out of the consumer
            queued.put(exc)
        else:
            queued.put(done)

    threading.Thread(target=run, daemon=True).start()

    def batches():
        while True:
            item = queued.get()
            if item is done:
                return
            if isinstance(item, BaseException):
                raise item
            yield item

    return pa.RecordBatchReader.from_batches(reader.schema, batches())

maxsize is the backpressure: the parse runs at most ahead batches in front of whoever is reading and then waits, so the file is never held. What comes back is an ordinary pyarrow.RecordBatchReader, which DuckDB will query in place:

import duckdb
import readstat_arrow

survey = record_batch_reader(readstat_arrow.open_sav("big.sav"))
duckdb.sql("select region, avg(income) from survey group by region").show()

or pyarrow.dataset will write out partitioned:

import pyarrow.dataset as ds

ds.write_dataset(
    record_batch_reader(readstat_arrow.open_dta("panel.dta")),
    "panel/",
    format="parquet",
)

One thing to know: a consumer that stops reading part way leaves the worker thread parked on a full queue until the process ends. Read it to the end, or add a flag the callback checks if that matters.

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, metadata = readstat_arrow.read_sav(member)

# or from bytes you already have in hand
table, metadata = 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:
    schema, num_rows, metadata = 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 isort --check-only . && uv run black --check . && uv run mypy
uv run pre-commit install    # optional: run those same checks on every commit

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/black/isort/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_*, read_*_metadata, open_* (streaming), 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.9.1.0, then 2026.9.1.1 for a fix on the same day). 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.24.3

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.24.3
File Size Uploaded
readstat_arrow-2026.9.24.3.tar.gz 264.3 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for readstat-arrow 2026.9.24.3
File
readstat_arrow-2026.9.24.3-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
readstat_arrow-2026.9.24.3-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.24.3-cp314-cp314-musllinux_1_2_aarch64.whl CPython 3.14 CPython 3.14 Linux musl 1.2+ ARM64 Details
readstat_arrow-2026.9.24.3-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.24.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ ARM64, Linux glibc 2.17+ ARM64 Details
readstat_arrow-2026.9.24.3-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
readstat_arrow-2026.9.24.3-cp314-cp314-macosx_10_15_x86_64.whl CPython 3.14 CPython 3.14 macOS 10.15+ x86-64 Details
readstat_arrow-2026.9.24.3-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
readstat_arrow-2026.9.24.3-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.24.3-cp313-cp313-musllinux_1_2_aarch64.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ ARM64 Details
readstat_arrow-2026.9.24.3-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.17+ x86-64, Linux glibc 2.28+ x86-64 Details
readstat_arrow-2026.9.24.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details
readstat_arrow-2026.9.24.3-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
readstat_arrow-2026.9.24.3-cp313-cp313-macosx_10_13_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.13+ x86-64 Details
readstat_arrow-2026.9.24.3-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
readstat_arrow-2026.9.24.3-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.24.3-cp312-cp312-musllinux_1_2_aarch64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ ARM64 Details
readstat_arrow-2026.9.24.3-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.17+ x86-64, Linux glibc 2.28+ x86-64 Details
readstat_arrow-2026.9.24.3-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.24.3-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
readstat_arrow-2026.9.24.3-cp312-cp312-macosx_10_13_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.13+ x86-64 Details
readstat_arrow-2026.9.24.3-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
readstat_arrow-2026.9.24.3-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.24.3-cp311-cp311-musllinux_1_2_aarch64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ ARM64 Details
readstat_arrow-2026.9.24.3-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.17+ x86-64, Linux glibc 2.28+ x86-64 Details
readstat_arrow-2026.9.24.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details
readstat_arrow-2026.9.24.3-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
readstat_arrow-2026.9.24.3-cp311-cp311-macosx_10_9_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.9+ x86-64 Details

Total release size: 41.9 MB

Release files / readstat_arrow-2026.9.24.3.tar.gz

Download URL readstat_arrow-2026.9.24.3.tar.gz
Size 264.3 kB
Tags Source
SHA-256 checksum
How to use checksums
33e278cdeef33a0b4de5b8b36d31488ca0b24d4ae4011db3eb96ae65e7813fe0
BLAKE2b-256 checksum
How to use checksums
262a0cab0dab8a421247508dda769110d08633189c498d0e98ca3532d51e2f01
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 24, 2026.

Transparency log

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

Download URL readstat_arrow-2026.9.24.3-cp314-cp314-win_amd64.whl
Size 365.4 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
55804a8ad22a3fa3ee276b69be8f049be456541ac3961c1fc3ccee8214cc51b3
BLAKE2b-256 checksum
How to use checksums
190d21b2bebf7c0def1bc697feec8c07ee4771613f1e0478b9ce062e2b3b80d5
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 24, 2026.

Transparency log

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

Download URL readstat_arrow-2026.9.24.3-cp314-cp314-musllinux_1_2_x86_64.whl
Size 2.3 MB
Tags CPython 3.14 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
b80bf4091e8f909367c547b1972aa5a21b8387a241eb0d210428dabe0a4fc915
BLAKE2b-256 checksum
How to use checksums
2e4551820062997209b171c50eabddf199de27ad706a956db24f177f04b96515
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 24, 2026.

Transparency log

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

Download URL readstat_arrow-2026.9.24.3-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
03a74c532a8c8fdf30490790b044dbf527c019bbd71c16a6cf86ceca5f56adc2
BLAKE2b-256 checksum
How to use checksums
af2fa5511c845bbd10850baa43dfe0cef23a0e80b2a0606ee1f864c9c97a61da
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 24, 2026.

Transparency log

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

Download URL readstat_arrow-2026.9.24.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 2.3 MB
Tags CPython 3.14 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
0835e0371333ab43f98e83a84dd259f2fd5315c481373418fd47afed3e03ea67
BLAKE2b-256 checksum
How to use checksums
73235546909531c8e21efddeaee9832b5bf03ba4cb6804d3372546e5071a4910
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 24, 2026.

Transparency log

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

Download URL readstat_arrow-2026.9.24.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 2.3 MB
Tags CPython 3.14 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
2eaa5e5d749998b1bf0b09521f6206ec0fdc31150237baae0be52baa5fe10ae5
BLAKE2b-256 checksum
How to use checksums
5c2d94668f4e998d5e859dacf1d56b6365375aa6abc02a8452ce4158b3f293b6
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 24, 2026.

Transparency log

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

Download URL readstat_arrow-2026.9.24.3-cp314-cp314-macosx_11_0_arm64.whl
Size 438.3 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
1a6162c0012cf0ff0fb1819e8b71c7302e679026754875a01fe18632d2d5afcc
BLAKE2b-256 checksum
How to use checksums
139c233caf30f15165d7d0741deabf923aaf70b1c47d5e6b3ff9d4143cbcb379
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 24, 2026.

Transparency log

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

Download URL readstat_arrow-2026.9.24.3-cp314-cp314-macosx_10_15_x86_64.whl
Size 451.6 kB
Tags CPython 3.14 macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
4bd7012f3ee179579b3feb1608ad698f87c540739f01beec84c8c9ef1720a8d9
BLAKE2b-256 checksum
How to use checksums
6ec919fd296e47305d71bee13f95a67f35ad27240717aaa698e0046c700bf058
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 24, 2026.

Transparency log

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

Download URL readstat_arrow-2026.9.24.3-cp313-cp313-win_amd64.whl
Size 354.9 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
e7758bba83d4f7572887de80a56a1587e98d8d1d4fe8ea6a9ba59e39eb45bb4e
BLAKE2b-256 checksum
How to use checksums
cb3db644d0046a1a047235b108fee96101ec0086d446167ff9cfde6bc6ea4f90
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 24, 2026.

Transparency log

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

Download URL readstat_arrow-2026.9.24.3-cp313-cp313-musllinux_1_2_x86_64.whl
Size 2.3 MB
Tags CPython 3.13 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
c84a10d212efec568651528a4d239c7b785fe1e3906ecb0fdec5a4e6e4a51f03
BLAKE2b-256 checksum
How to use checksums
9b007529205be6e3a5dd83682ccc4ab1d1d6437d32481970c212fb6a2f7fe140
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 24, 2026.

Transparency log

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

Download URL readstat_arrow-2026.9.24.3-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
19633ac36f08f4dd8c76b3e20cefa5720817a7ab6c1c13947762d23360368ce8
BLAKE2b-256 checksum
How to use checksums
fdcad882f3cca890b1c4dd61923167b8c296a6b0f23668127669fb0dff398e7f
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 24, 2026.

Transparency log

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

Download URL readstat_arrow-2026.9.24.3-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
14d52e205bbcc1e260ef0ed6678f77f62b28ec2a2bac52229dbbadaa760cd625
BLAKE2b-256 checksum
How to use checksums
65942be96f913bba23a97b42df635e14d5c5aff6608c10801550980b5f461f4a
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 24, 2026.

Transparency log

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

Download URL readstat_arrow-2026.9.24.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 2.3 MB
Tags CPython 3.13 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
94da943b10550048510ebc3d62f29ae502cf12d7ede077823dcbf581279e87dc
BLAKE2b-256 checksum
How to use checksums
7794d4c21b50292cccbd61c02aa9816db1404b95b12841bec440c08dc75488ac
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 24, 2026.

Transparency log

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

Download URL readstat_arrow-2026.9.24.3-cp313-cp313-macosx_11_0_arm64.whl
Size 435.7 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
5c1732ffb5e8f855d13196a43146dc8035c61f3c2560510901dd4d57732f70e4
BLAKE2b-256 checksum
How to use checksums
8cd685d63c5c7ccc90ce7b55b24dcabba900707ad07e624da0026477424373ee
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 24, 2026.

Transparency log

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

Download URL readstat_arrow-2026.9.24.3-cp313-cp313-macosx_10_13_x86_64.whl
Size 450.2 kB
Tags CPython 3.13 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
38e8464329c80bde8f4657a38481189dc2bcd3142a143d1f7fbbd69002c1b38f
BLAKE2b-256 checksum
How to use checksums
31ca7d6a2d2a65cbcc24d848c6d9a82b259f004857ab43d635e97cb8ac0b4b30
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 24, 2026.

Transparency log

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

Download URL readstat_arrow-2026.9.24.3-cp312-cp312-win_amd64.whl
Size 355.0 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
4e876f3f0c5e5afc0096443fbc034d8d00b51c8629099bac1ebd0ca505f4529f
BLAKE2b-256 checksum
How to use checksums
22c719349937b0609a10c854f364675f5f4d1e8688ae6b8101e244e67cccb766
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 24, 2026.

Transparency log

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

Download URL readstat_arrow-2026.9.24.3-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
22bbe66133c680616c6522df19049dd3120e6a7fc297aa48d677dad5e3f43121
BLAKE2b-256 checksum
How to use checksums
da025dfed20b48e55a95ba802381cd012aae0da0731201be2ce83a5cf1039b6f
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 24, 2026.

Transparency log

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

Download URL readstat_arrow-2026.9.24.3-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
3f81c693cd3d3fc584d361e0b14dc63a81d7c2964f96b7bc15c049e5f8f6cd87
BLAKE2b-256 checksum
How to use checksums
a27f457350be0ae94954b05d9cacf668fa1c5f4f66f602f18e9a5506678709c5
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 24, 2026.

Transparency log

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

Download URL readstat_arrow-2026.9.24.3-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
69b259daa19b416a3fb0e5381d1f55b217e928849243b3eb2d393088c5608c53
BLAKE2b-256 checksum
How to use checksums
40a8da21de6ad588c40db0a4413746a993cc5a3dd02dc6f226c8b4b50002cf8b
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 24, 2026.

Transparency log

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

Download URL readstat_arrow-2026.9.24.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 2.3 MB
Tags CPython 3.12 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
37e3f28934e4be5eb36a9357e5f3214c9c2eed342914c51bf9ad14a9861f05be
BLAKE2b-256 checksum
How to use checksums
c56d32c6cd82ea85d4f3de757ad0949e7ce0cb4062b9a61a31fa121bb834aa80
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 24, 2026.

Transparency log

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

Download URL readstat_arrow-2026.9.24.3-cp312-cp312-macosx_11_0_arm64.whl
Size 434.5 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
0678e02bb376f06bb9606d9c4b5b2fd0b0b21fa5cd42bbd79912a94a605606ee
BLAKE2b-256 checksum
How to use checksums
4a0d5f3bfdc13218e6b89d5f00121327c0707c531e9666a2645dd7aaa48c5948
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 24, 2026.

Transparency log

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

Download URL readstat_arrow-2026.9.24.3-cp312-cp312-macosx_10_13_x86_64.whl
Size 449.2 kB
Tags CPython 3.12 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
456604a9d9d87a7141510376cda25a0b849ed188e410f8ec8fadbe3ae0bc27f1
BLAKE2b-256 checksum
How to use checksums
49b58615935adb01b3592d706d12d5a62eb91b9beb0641b9b9a84737b41b5355
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 24, 2026.

Transparency log

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

Download URL readstat_arrow-2026.9.24.3-cp311-cp311-win_amd64.whl
Size 355.5 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
b90cb311bb2ed79334a88b403a6ad5d8d7a058ad78fc9c01e0e8daf7b46fc791
BLAKE2b-256 checksum
How to use checksums
c617a307206acad3dee13a2b02069ad5643afa862bb986c0abd57caa153cf395
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 24, 2026.

Transparency log

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

Download URL readstat_arrow-2026.9.24.3-cp311-cp311-musllinux_1_2_x86_64.whl
Size 2.4 MB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
e27643f91ef850c2013b3ea4e1c4a6ff93d646c2d90955da46bb47543066bdf2
BLAKE2b-256 checksum
How to use checksums
6d90063c33fc7d910f2a1662e1ac1e6a73afafc67450593e89f4aa46098c5206
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 24, 2026.

Transparency log

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

Download URL readstat_arrow-2026.9.24.3-cp311-cp311-musllinux_1_2_aarch64.whl
Size 2.3 MB
Tags CPython 3.11 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
e1d8453a2d0a07e0dfc1440bb6a86b31dcd30e299fc6279142ed41c7411ad63b
BLAKE2b-256 checksum
How to use checksums
a844961bb11b32ca0484fb989a2c3aba6f8027d5174ee30e16a80a7a4da7541a
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 24, 2026.

Transparency log

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

Download URL readstat_arrow-2026.9.24.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 2.4 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
6cf7b7aca8e0d9511b039e870e8c8a45ec6f7e6d93413c14545d5300a532f1e4
BLAKE2b-256 checksum
How to use checksums
6d39177b9cd2aa87e5f6085bae90e7f4d5ab1b9b7deb721dd5a466aeb25021fc
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 24, 2026.

Transparency log

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

Download URL readstat_arrow-2026.9.24.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 2.3 MB
Tags CPython 3.11 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
34a6b6f8958669bc5ef714bf8bfafae1d90eaf7de0fc7f7fc9e430435202e1c8
BLAKE2b-256 checksum
How to use checksums
6531453f7f4afab4e0920ec6d6f38343412ee0e6feb9b5944a38c3035e6b25ce
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 24, 2026.

Transparency log

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

Download URL readstat_arrow-2026.9.24.3-cp311-cp311-macosx_11_0_arm64.whl
Size 436.0 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
340ecb4c502beb2c1ee43087f76a2dfb9af7d9f4ef9240ed39b8e376d6089487
BLAKE2b-256 checksum
How to use checksums
9647711a19a11d58ac2489d4e95378831e382d6d071f0d696b5ca0f0045268aa
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 24, 2026.

Transparency log

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

Download URL readstat_arrow-2026.9.24.3-cp311-cp311-macosx_10_9_x86_64.whl
Size 448.6 kB
Tags CPython 3.11 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
c7dadb7f58d47b381df07d50aa0a32a537c19f91944b308bb6187c5124596df4
BLAKE2b-256 checksum
How to use checksums
dde14579a64b6fe42d548492e788656727d9b7ebc6c2c39bd78acdd931c3f1c1
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 24, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

2026.9.24.3 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