Pure-Python implementation of starfix Arrow logical hasher
Project description
starfix-python
Pure-Python implementation of the starfix Arrow logical hasher.
Produces stable SHA-256 hashes of Arrow tables, record batches, and arrays that are:
- Column-order independent — reordering columns does not change the hash
- Batch-split independent — splitting data across batches does not change the hash
- Cross-language compatible — identical hashes to the Rust implementation
Installation
pip install starfix
Usage
import pyarrow as pa
from starfix import ArrowDigester
schema = pa.schema([
pa.field("id", pa.int32(), nullable=False),
pa.field("value", pa.float64(), nullable=True),
])
# Hash a full table
table = pa.table({"id": [1, 2, 3], "value": [1.1, 2.2, 3.3]}, schema=schema)
digest = ArrowDigester.hash_table(table)
# Streaming: feed record batches incrementally
digester = ArrowDigester(schema)
for batch in batches:
digester.update(batch)
digest = digester.finalize()
License
MIT OR Apache-2.0
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
starfix-0.2.0.tar.gz
(30.7 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file starfix-0.2.0.tar.gz.
File metadata
- Download URL: starfix-0.2.0.tar.gz
- Upload date:
- Size: 30.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.4 {"installer":{"name":"uv","version":"0.11.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3883fdc34cf03c87bccf1af6f1a5e27e00fde5e4391eacf5051f5ba1e005872c
|
|
| MD5 |
3094ecd992cf98f7764d822b83d1989a
|
|
| BLAKE2b-256 |
97c4dd269b1213ea1ed09b3d98f10bc3cff6e4e018c60cf758e3444e25e6e170
|
File details
Details for the file starfix-0.2.0-py3-none-any.whl.
File metadata
- Download URL: starfix-0.2.0-py3-none-any.whl
- Upload date:
- Size: 8.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.4 {"installer":{"name":"uv","version":"0.11.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4f26ab052fdb9432ec2fab79fe68a0bfa31b73a6fd12763a811a91fd7704692e
|
|
| MD5 |
5d09cbfc2ba4b43456b41f1d9afae5bd
|
|
| BLAKE2b-256 |
1f97991ba486b98434d3e850799d6d877942dd57b368a1a115855d70505538dd
|