Tafra: essence of a dataframe
Project description
Tafra: a minimalist dataframe
The tafra began life as a thought experiment: how could we reduce the idea
of a dataframe (as expressed in libraries like pandas or languages
like R) to its useful essence, while carving away the cruft?
The original proof of concept
stopped at "group by".
This library expands on the proof of concept to produce a practically
useful tafra, which we hope you may find to be a helpful lightweight
substitute for certain uses of pandas.
A tafra is, more-or-less, a set of named columns or dimensions.
Each of these is a typed numpy array of consistent length, representing
the values for each column by rows.
The library provides lightweight syntax for manipulating rows and columns,
support for managing data types, iterators for rows and sub-frames,
pandas-like "transform" support and conversion from pandas Dataframes,
and SQL-style "group by" and join operations.
Getting Started
Install from conda-forge (includes pre-built C extension -- no compiler needed):
conda install tafra -c conda-forge
Or install from PyPI with pip:
pip install tafra
Note:
conda installprovides a pre-built binary with the C extension already compiled for your platform.pip installfrom PyPI will attempt to compile the C extension from source; if no C compiler is available, the package installs without it and falls back to pure Python + numpy.
Building from source
To build from source (including the optional C extension):
git clone https://github.com/petbox-dev/tafra.git
cd tafra
pip install -e .
Requirements:
- Python >=3.9
- numpy >=2.1
- A C compiler (optional, for the
_accelextension):- Windows: Visual Studio Build Tools (with Windows SDK) or MinGW-w64
- Linux:
gcc(usually pre-installed, orapt install build-essential) - macOS: Xcode Command Line Tools (
xcode-select --install)
If no C compiler is available, the package installs without the extension and falls back to pure Python + numpy at runtime. To verify the C extension is active:
>>> from tafra._accel import groupby_sum
>>> print("C extension active")
To build a distributable wheel:
pip install build
python -m build
Windows build notes
The C extension requires the MSVC compiler to find the Windows SDK headers.
If you get fatal error C1083: Cannot open include file: 'io.h', the
Windows SDK include/lib paths are not set. Two options:
-
Use a Developer Command Prompt (recommended): Open "Developer Command Prompt for VS" or "Developer PowerShell for VS" from the Start menu. This runs
vcvarsall.batautomatically and sets all required paths. -
Use MinGW-w64 instead of MSVC:
python setup.py build_ext --inplace --compiler=mingw32
MinGW-w64 can be installed via conda (
conda install m2w64-gcc -c conda-forge) or from winlibs.com.
If building with python -m build (which creates an isolated environment),
use --no-isolation to inherit your shell's environment variables, or run
from a Developer Command Prompt:
python -m build --no-isolation
A short example
>>> from tafra import Tafra
>>> t = Tafra({
... 'x': np.array([1, 2, 3, 4]),
... 'y': np.array(['one', 'two', 'one', 'two']),
... })
>>> t.pformat()
Tafra(data = {
'x': array([1, 2, 3, 4]),
'y': array(['one', 'two', 'one', 'two'])},
dtypes = {
'x': 'int', 'y': 'str'},
rows = 4)
>>> print('List:', '\n', t.to_list())
List:
[array([1, 2, 3, 4]), array(['one', 'two', 'one', 'two'], dtype=object)]
>>> print('Records:', '\n', tuple(t.to_records()))
Records:
((1, 'one'), (2, 'two'), (3, 'one'), (4, 'two'))
>>> gb = t.group_by(
... ['y'], {'x': sum}
... )
>>> print('Group By:', '\n', gb.pformat())
Group By:
Tafra(data = {
'x': array([4, 6]), 'y': array(['one', 'two'])},
dtypes = {
'x': 'int', 'y': 'str'},
rows = 2)
group_by vs partition
group_by reduces -- one row per group, applies aggregation functions:
>>> tf.group_by(['wellid'], {'total_oil': (np.sum, 'oil')})
# Returns: one row per wellid, with summed oil
partition splits -- returns all original rows, grouped into sub-Tafras
for independent processing (e.g., multiprocessing):
>>> from concurrent.futures import ProcessPoolExecutor
>>> def forecast_well(tf):
... """Run a forecast on one well's production data."""
... # tf contains all rows for a single well, sorted by date
... return compute_forecast(tf['date'], tf['oil'])
>>> parts = tf.partition(['wellid'], sort_by=['date'])
>>> with ProcessPoolExecutor(max_workers=4) as pool:
... results = list(pool.map(
... forecast_well, [sub for _, sub in parts]))
>>> combined = Tafra.concat(results)
With 8 workers and ~13 ms of work per group, partition achieves ~5x
speedup over serial execution. For light aggregations (sum, mean, std),
group_by is 10-100x faster -- use it instead. See
benchmarks for
detailed benchmarks.
chunks splits by row count (for data-parallel workloads where group
integrity doesn't matter):
>>> for chunk in tf.chunks(n=4, sort_by=['date']):
... process(chunk)
Flexibility
Have some code that works with pandas, or just a way of doing things
that you prefer? tafra is flexible:
>>> df = pd.DataFrame(np.c_[
... np.array([1, 2, 3, 4]),
... np.array(['one', 'two', 'one', 'two'])
... ], columns=['x', 'y'])
>>> t = Tafra.from_dataframe(df)
And going back is just as simple:
>>> df = pd.DataFrame(t.data)
Timings
Note: Benchmarks collected with
tafra2.2.0. See benchmarks for full benchmarks againstpandas2.3/3.0 andpolars1.39.
Lightweight means performant. By minimizing abstraction to access the
underlying numpy arrays, tafra provides dramatic speedups over
pandas and polars on construction and access:
# Construction: 100k rows, 5 columns
Tafra(): 0.02 ms
pd.DataFrame(): 2.80 ms # 140x slower
pl.DataFrame(): 0.04 ms # 2x slower
# Column access: 100k rows, per access
tf['x']: 0.13 µs
df['x']: 1.81 µs # 14x slower (pandas 2.3)
plf['x']: 0.70 µs # 5x slower
tafra uses vectorized numpy operations (np.bincount,
ufunc.reduceat) and an optional C extension (single-pass aggregation,
hash joins) for GroupBy and joins. With the C extension:
# GroupBy: 10k rows, 50 groups, sum + mean
Tafra+C: 0.15 ms
pandas: 0.73 ms # 5x slower
polars: 0.60 ms # 4x slower
# Transform: 10k rows, 50 groups
Tafra+C: 0.06 ms
pandas: 0.60 ms # 10x slower
polars: 1.67 ms # 28x slower
# Equi inner join: 1k x 1k
Tafra+C: 0.08 ms
pandas: 0.93 ms # 12x slower
polars: 1.53 ms # 19x slower
- Import note If you assign directly to the
Tafra.dataorTafra._dataattributes, you must callTafra._coalesce_dtypesafterwards in order to ensure the typing is consistent.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
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 tafra-2.2.0.tar.gz.
File metadata
- Download URL: tafra-2.2.0.tar.gz
- Upload date:
- Size: 61.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3f7efeab82a90801bfa48e9d1d4ef30b5be74ed8c1951e112e0a13e64d42f468
|
|
| MD5 |
b359bd4857894541fa06739b9a29b89f
|
|
| BLAKE2b-256 |
757419073a9d75cc64034a3cc1d99ea1655fa5fa1071f0ebb2193366aa75f6be
|
Provenance
The following attestation bundles were made for tafra-2.2.0.tar.gz:
Publisher:
publish.yml on petbox-dev/tafra
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tafra-2.2.0.tar.gz -
Subject digest:
3f7efeab82a90801bfa48e9d1d4ef30b5be74ed8c1951e112e0a13e64d42f468 - Sigstore transparency entry: 1150032855
- Sigstore integration time:
-
Permalink:
petbox-dev/tafra@a320539edc84061ece7203cd92dd29c3b7307ddf -
Branch / Tag:
refs/tags/v2.2.0 - Owner: https://github.com/petbox-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a320539edc84061ece7203cd92dd29c3b7307ddf -
Trigger Event:
release
-
Statement type:
File details
Details for the file tafra-2.2.0-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: tafra-2.2.0-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 55.1 kB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7b5064ae6886b89a1c45d05e2957d1861e6aa29de3144063e8e89f6604a52bc5
|
|
| MD5 |
b05413eb2b68112b2a4a3f9c316e3ed4
|
|
| BLAKE2b-256 |
804200544e9c8e884d2318faecdfbf5ca865a83b7b5be2db4353cb21f692994b
|
Provenance
The following attestation bundles were made for tafra-2.2.0-cp313-cp313-win_amd64.whl:
Publisher:
publish.yml on petbox-dev/tafra
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tafra-2.2.0-cp313-cp313-win_amd64.whl -
Subject digest:
7b5064ae6886b89a1c45d05e2957d1861e6aa29de3144063e8e89f6604a52bc5 - Sigstore transparency entry: 1150033550
- Sigstore integration time:
-
Permalink:
petbox-dev/tafra@a320539edc84061ece7203cd92dd29c3b7307ddf -
Branch / Tag:
refs/tags/v2.2.0 - Owner: https://github.com/petbox-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a320539edc84061ece7203cd92dd29c3b7307ddf -
Trigger Event:
release
-
Statement type:
File details
Details for the file tafra-2.2.0-cp313-cp313-win32.whl.
File metadata
- Download URL: tafra-2.2.0-cp313-cp313-win32.whl
- Upload date:
- Size: 54.0 kB
- Tags: CPython 3.13, Windows x86
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
37f67d8426cd3b2855ea6b683e73c3144f981225926bbb2ed64609e639d32009
|
|
| MD5 |
b735208d1382a0abcbff359a8b4e94e6
|
|
| BLAKE2b-256 |
170ab97ec1dba518e8910a6a9665bc5885a4c054d0b5f2cafee8d4e7a98fb0fa
|
Provenance
The following attestation bundles were made for tafra-2.2.0-cp313-cp313-win32.whl:
Publisher:
publish.yml on petbox-dev/tafra
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tafra-2.2.0-cp313-cp313-win32.whl -
Subject digest:
37f67d8426cd3b2855ea6b683e73c3144f981225926bbb2ed64609e639d32009 - Sigstore transparency entry: 1150033306
- Sigstore integration time:
-
Permalink:
petbox-dev/tafra@a320539edc84061ece7203cd92dd29c3b7307ddf -
Branch / Tag:
refs/tags/v2.2.0 - Owner: https://github.com/petbox-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a320539edc84061ece7203cd92dd29c3b7307ddf -
Trigger Event:
release
-
Statement type:
File details
Details for the file tafra-2.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: tafra-2.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 86.2 kB
- Tags: CPython 3.13, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
73a215c6aff8f15383a59dd3091a994b8adc846aaa4ca4503799e0e43b2837c6
|
|
| MD5 |
d51b4bd691550c5d2af332ba4eed5cab
|
|
| BLAKE2b-256 |
8a9c324174cfef07313f61495e5523fbf534e7b25b387413803bd7f89651032b
|
Provenance
The following attestation bundles were made for tafra-2.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
publish.yml on petbox-dev/tafra
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tafra-2.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
73a215c6aff8f15383a59dd3091a994b8adc846aaa4ca4503799e0e43b2837c6 - Sigstore transparency entry: 1150033678
- Sigstore integration time:
-
Permalink:
petbox-dev/tafra@a320539edc84061ece7203cd92dd29c3b7307ddf -
Branch / Tag:
refs/tags/v2.2.0 - Owner: https://github.com/petbox-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a320539edc84061ece7203cd92dd29c3b7307ddf -
Trigger Event:
release
-
Statement type:
File details
Details for the file tafra-2.2.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.
File metadata
- Download URL: tafra-2.2.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 85.2 kB
- Tags: CPython 3.13, manylinux: glibc 2.17+ i686, manylinux: glibc 2.5+ i686
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4e66332c16f61725bca00930dc2f01e0272e5b3086a38dacc40f7d890339df2f
|
|
| MD5 |
21ba20deecfda43d11547d045e815bf3
|
|
| BLAKE2b-256 |
7667afc1a9bedb98d219fac33affd3a39f29dfafab4cab5478a1d1a74b1dce5f
|
Provenance
The following attestation bundles were made for tafra-2.2.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl:
Publisher:
publish.yml on petbox-dev/tafra
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tafra-2.2.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl -
Subject digest:
4e66332c16f61725bca00930dc2f01e0272e5b3086a38dacc40f7d890339df2f - Sigstore transparency entry: 1150033420
- Sigstore integration time:
-
Permalink:
petbox-dev/tafra@a320539edc84061ece7203cd92dd29c3b7307ddf -
Branch / Tag:
refs/tags/v2.2.0 - Owner: https://github.com/petbox-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a320539edc84061ece7203cd92dd29c3b7307ddf -
Trigger Event:
release
-
Statement type:
File details
Details for the file tafra-2.2.0-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: tafra-2.2.0-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 51.6 kB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
968f30cd9d7f654523c2aef278b26ecb2a9fa3d90ac21dec3634373926caf912
|
|
| MD5 |
fd9744fa410dcdb2723fbcd3c44ee885
|
|
| BLAKE2b-256 |
b678fa33c9d0e5b5f01a561f99b9499ff65872f77f44761e51c7b97ce62a0634
|
Provenance
The following attestation bundles were made for tafra-2.2.0-cp313-cp313-macosx_11_0_arm64.whl:
Publisher:
publish.yml on petbox-dev/tafra
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tafra-2.2.0-cp313-cp313-macosx_11_0_arm64.whl -
Subject digest:
968f30cd9d7f654523c2aef278b26ecb2a9fa3d90ac21dec3634373926caf912 - Sigstore transparency entry: 1150033479
- Sigstore integration time:
-
Permalink:
petbox-dev/tafra@a320539edc84061ece7203cd92dd29c3b7307ddf -
Branch / Tag:
refs/tags/v2.2.0 - Owner: https://github.com/petbox-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a320539edc84061ece7203cd92dd29c3b7307ddf -
Trigger Event:
release
-
Statement type:
File details
Details for the file tafra-2.2.0-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: tafra-2.2.0-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 55.1 kB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3111b1441ba66f7222d8b2cc00f500b5f05c5fd7128ec67a13679e91710e0315
|
|
| MD5 |
2dc7ff1af21b8f98489d69ff38abd7d5
|
|
| BLAKE2b-256 |
c02219b08ee8c89bfd2ac2af5d61298ac035838bbeba1dca253a275eef498c20
|
Provenance
The following attestation bundles were made for tafra-2.2.0-cp312-cp312-win_amd64.whl:
Publisher:
publish.yml on petbox-dev/tafra
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tafra-2.2.0-cp312-cp312-win_amd64.whl -
Subject digest:
3111b1441ba66f7222d8b2cc00f500b5f05c5fd7128ec67a13679e91710e0315 - Sigstore transparency entry: 1150033005
- Sigstore integration time:
-
Permalink:
petbox-dev/tafra@a320539edc84061ece7203cd92dd29c3b7307ddf -
Branch / Tag:
refs/tags/v2.2.0 - Owner: https://github.com/petbox-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a320539edc84061ece7203cd92dd29c3b7307ddf -
Trigger Event:
release
-
Statement type:
File details
Details for the file tafra-2.2.0-cp312-cp312-win32.whl.
File metadata
- Download URL: tafra-2.2.0-cp312-cp312-win32.whl
- Upload date:
- Size: 54.1 kB
- Tags: CPython 3.12, Windows x86
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9cc674cb0581b3d53f328582d4d063c227148cd85f921154045e7cbd69e3c6b7
|
|
| MD5 |
9ab27a803bff233fecb2b0bd032ce8d7
|
|
| BLAKE2b-256 |
73e5b4826a866caa1b47be50d41b9f9c0b493770561bac91c55fd0d4348e719a
|
Provenance
The following attestation bundles were made for tafra-2.2.0-cp312-cp312-win32.whl:
Publisher:
publish.yml on petbox-dev/tafra
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tafra-2.2.0-cp312-cp312-win32.whl -
Subject digest:
9cc674cb0581b3d53f328582d4d063c227148cd85f921154045e7cbd69e3c6b7 - Sigstore transparency entry: 1150033753
- Sigstore integration time:
-
Permalink:
petbox-dev/tafra@a320539edc84061ece7203cd92dd29c3b7307ddf -
Branch / Tag:
refs/tags/v2.2.0 - Owner: https://github.com/petbox-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a320539edc84061ece7203cd92dd29c3b7307ddf -
Trigger Event:
release
-
Statement type:
File details
Details for the file tafra-2.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: tafra-2.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 86.2 kB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a9156a838cee84a6d45220775baa262d08971ae6b82fe4db2fd9bb9d829342d9
|
|
| MD5 |
841cf9cd5ec1ed7748a2cc0a13044335
|
|
| BLAKE2b-256 |
f72ae2bed909073a9f3f5383a47fd8d6ce264b848d56d081cc099707466799b1
|
Provenance
The following attestation bundles were made for tafra-2.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
publish.yml on petbox-dev/tafra
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tafra-2.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
a9156a838cee84a6d45220775baa262d08971ae6b82fe4db2fd9bb9d829342d9 - Sigstore transparency entry: 1150032934
- Sigstore integration time:
-
Permalink:
petbox-dev/tafra@a320539edc84061ece7203cd92dd29c3b7307ddf -
Branch / Tag:
refs/tags/v2.2.0 - Owner: https://github.com/petbox-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a320539edc84061ece7203cd92dd29c3b7307ddf -
Trigger Event:
release
-
Statement type:
File details
Details for the file tafra-2.2.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.
File metadata
- Download URL: tafra-2.2.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 85.2 kB
- Tags: CPython 3.12, manylinux: glibc 2.17+ i686, manylinux: glibc 2.5+ i686
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8000da83d589e215506eb62fd95279503e47f5e0b80229f8bd5e12de1c228acf
|
|
| MD5 |
6f051b8d005e98815b36fd669c0406d9
|
|
| BLAKE2b-256 |
905375291d6e304de5ef741168293098dd5f7694b2dfa25bb9c29ee82b562b88
|
Provenance
The following attestation bundles were made for tafra-2.2.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl:
Publisher:
publish.yml on petbox-dev/tafra
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tafra-2.2.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl -
Subject digest:
8000da83d589e215506eb62fd95279503e47f5e0b80229f8bd5e12de1c228acf - Sigstore transparency entry: 1150033257
- Sigstore integration time:
-
Permalink:
petbox-dev/tafra@a320539edc84061ece7203cd92dd29c3b7307ddf -
Branch / Tag:
refs/tags/v2.2.0 - Owner: https://github.com/petbox-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a320539edc84061ece7203cd92dd29c3b7307ddf -
Trigger Event:
release
-
Statement type:
File details
Details for the file tafra-2.2.0-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: tafra-2.2.0-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 51.6 kB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
31b3753d1cc77fa41305d3299820045e5e919fb2e25da6ed4b17b8322a448bfc
|
|
| MD5 |
daf305c4e71351b5f2e70f90f8b69f02
|
|
| BLAKE2b-256 |
1155bd5637c7f7307a84c93b6e9e2b34e6526720f1c4cd6f72bf0df51d25e1b8
|
Provenance
The following attestation bundles were made for tafra-2.2.0-cp312-cp312-macosx_11_0_arm64.whl:
Publisher:
publish.yml on petbox-dev/tafra
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tafra-2.2.0-cp312-cp312-macosx_11_0_arm64.whl -
Subject digest:
31b3753d1cc77fa41305d3299820045e5e919fb2e25da6ed4b17b8322a448bfc - Sigstore transparency entry: 1150033190
- Sigstore integration time:
-
Permalink:
petbox-dev/tafra@a320539edc84061ece7203cd92dd29c3b7307ddf -
Branch / Tag:
refs/tags/v2.2.0 - Owner: https://github.com/petbox-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a320539edc84061ece7203cd92dd29c3b7307ddf -
Trigger Event:
release
-
Statement type:
File details
Details for the file tafra-2.2.0-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: tafra-2.2.0-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 54.9 kB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0d769cd521ded739112e063f1a76db9930de91108f8f5d2aaf6b1e2a6fc284b1
|
|
| MD5 |
16d29599f6d91a54886ffc0793a8a887
|
|
| BLAKE2b-256 |
420d109cbc2ee6edc30c55b265d30610153d93581d7054b81fdb82166976e5a2
|
Provenance
The following attestation bundles were made for tafra-2.2.0-cp311-cp311-win_amd64.whl:
Publisher:
publish.yml on petbox-dev/tafra
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tafra-2.2.0-cp311-cp311-win_amd64.whl -
Subject digest:
0d769cd521ded739112e063f1a76db9930de91108f8f5d2aaf6b1e2a6fc284b1 - Sigstore transparency entry: 1150034005
- Sigstore integration time:
-
Permalink:
petbox-dev/tafra@a320539edc84061ece7203cd92dd29c3b7307ddf -
Branch / Tag:
refs/tags/v2.2.0 - Owner: https://github.com/petbox-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a320539edc84061ece7203cd92dd29c3b7307ddf -
Trigger Event:
release
-
Statement type:
File details
Details for the file tafra-2.2.0-cp311-cp311-win32.whl.
File metadata
- Download URL: tafra-2.2.0-cp311-cp311-win32.whl
- Upload date:
- Size: 54.0 kB
- Tags: CPython 3.11, Windows x86
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e041f0f412f9a7a17dc81480f3e9be81d38a6ebe92d77c0aac108bf0ef6e82a3
|
|
| MD5 |
5554b3c11a80ce8f8130aa03c81a158d
|
|
| BLAKE2b-256 |
7358d6a2fd3d919024d5c294aaac75e4774e0b5962733bc26d88d338d2023926
|
Provenance
The following attestation bundles were made for tafra-2.2.0-cp311-cp311-win32.whl:
Publisher:
publish.yml on petbox-dev/tafra
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tafra-2.2.0-cp311-cp311-win32.whl -
Subject digest:
e041f0f412f9a7a17dc81480f3e9be81d38a6ebe92d77c0aac108bf0ef6e82a3 - Sigstore transparency entry: 1150034089
- Sigstore integration time:
-
Permalink:
petbox-dev/tafra@a320539edc84061ece7203cd92dd29c3b7307ddf -
Branch / Tag:
refs/tags/v2.2.0 - Owner: https://github.com/petbox-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a320539edc84061ece7203cd92dd29c3b7307ddf -
Trigger Event:
release
-
Statement type:
File details
Details for the file tafra-2.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: tafra-2.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 83.5 kB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6928ebc4bb9ad2a3a04d3985c54aef041fcc9210d6b7e46dac606d75e40a471c
|
|
| MD5 |
d68cfd6c610c8185e97a839c966e519b
|
|
| BLAKE2b-256 |
41b8d3de814c79f21be846591701a1da7ca022388d4544c7aa072828ac7bf97d
|
Provenance
The following attestation bundles were made for tafra-2.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
publish.yml on petbox-dev/tafra
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tafra-2.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
6928ebc4bb9ad2a3a04d3985c54aef041fcc9210d6b7e46dac606d75e40a471c - Sigstore transparency entry: 1150033608
- Sigstore integration time:
-
Permalink:
petbox-dev/tafra@a320539edc84061ece7203cd92dd29c3b7307ddf -
Branch / Tag:
refs/tags/v2.2.0 - Owner: https://github.com/petbox-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a320539edc84061ece7203cd92dd29c3b7307ddf -
Trigger Event:
release
-
Statement type:
File details
Details for the file tafra-2.2.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.
File metadata
- Download URL: tafra-2.2.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 82.8 kB
- Tags: CPython 3.11, manylinux: glibc 2.17+ i686, manylinux: glibc 2.5+ i686
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7858e06d9da5050adf8c8469e63612205370ed1cf4a622212bc52f9f102afd88
|
|
| MD5 |
8a1289a9a9c30c6fd0486c7a99692006
|
|
| BLAKE2b-256 |
cfc187d54be93c1acb4c3944bd1efc1637fb22c60131239ea074c33fb29a25a3
|
Provenance
The following attestation bundles were made for tafra-2.2.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl:
Publisher:
publish.yml on petbox-dev/tafra
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tafra-2.2.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl -
Subject digest:
7858e06d9da5050adf8c8469e63612205370ed1cf4a622212bc52f9f102afd88 - Sigstore transparency entry: 1150033094
- Sigstore integration time:
-
Permalink:
petbox-dev/tafra@a320539edc84061ece7203cd92dd29c3b7307ddf -
Branch / Tag:
refs/tags/v2.2.0 - Owner: https://github.com/petbox-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a320539edc84061ece7203cd92dd29c3b7307ddf -
Trigger Event:
release
-
Statement type:
File details
Details for the file tafra-2.2.0-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: tafra-2.2.0-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 51.5 kB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b7f7701dc0cde5e9d5586db0b5af3c405d546bad158b1395fb3cdd1017155f25
|
|
| MD5 |
052f7f9ded5d75789612e493e3e09c0b
|
|
| BLAKE2b-256 |
589a335e861c426745bd93c82d6972a9d6cbd9348c62f274cfe645929f492b81
|
Provenance
The following attestation bundles were made for tafra-2.2.0-cp311-cp311-macosx_11_0_arm64.whl:
Publisher:
publish.yml on petbox-dev/tafra
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tafra-2.2.0-cp311-cp311-macosx_11_0_arm64.whl -
Subject digest:
b7f7701dc0cde5e9d5586db0b5af3c405d546bad158b1395fb3cdd1017155f25 - Sigstore transparency entry: 1150034268
- Sigstore integration time:
-
Permalink:
petbox-dev/tafra@a320539edc84061ece7203cd92dd29c3b7307ddf -
Branch / Tag:
refs/tags/v2.2.0 - Owner: https://github.com/petbox-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a320539edc84061ece7203cd92dd29c3b7307ddf -
Trigger Event:
release
-
Statement type:
File details
Details for the file tafra-2.2.0-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: tafra-2.2.0-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 54.9 kB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aa04a2929fdbf795d735bf941e887a3833608491f6242ab72d29e7479fe3d984
|
|
| MD5 |
c0527f77c2a4d1c50eb1567411a710ca
|
|
| BLAKE2b-256 |
fd995bffb1470fb6b086a115f2f21dfdb5034a92324a20a163f833d869257c46
|
Provenance
The following attestation bundles were made for tafra-2.2.0-cp310-cp310-win_amd64.whl:
Publisher:
publish.yml on petbox-dev/tafra
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tafra-2.2.0-cp310-cp310-win_amd64.whl -
Subject digest:
aa04a2929fdbf795d735bf941e887a3833608491f6242ab72d29e7479fe3d984 - Sigstore transparency entry: 1150034227
- Sigstore integration time:
-
Permalink:
petbox-dev/tafra@a320539edc84061ece7203cd92dd29c3b7307ddf -
Branch / Tag:
refs/tags/v2.2.0 - Owner: https://github.com/petbox-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a320539edc84061ece7203cd92dd29c3b7307ddf -
Trigger Event:
release
-
Statement type:
File details
Details for the file tafra-2.2.0-cp310-cp310-win32.whl.
File metadata
- Download URL: tafra-2.2.0-cp310-cp310-win32.whl
- Upload date:
- Size: 53.9 kB
- Tags: CPython 3.10, Windows x86
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
898f9bcb469a357c65ffba7edcdcb0ba74fead946606c5589998be0090d31750
|
|
| MD5 |
1f5e203b186ec3cacd687611d6bbe17a
|
|
| BLAKE2b-256 |
e7e8ce82877893930409436bf84e2a00200413f3addd1dca29ea832b0dc2035f
|
Provenance
The following attestation bundles were made for tafra-2.2.0-cp310-cp310-win32.whl:
Publisher:
publish.yml on petbox-dev/tafra
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tafra-2.2.0-cp310-cp310-win32.whl -
Subject digest:
898f9bcb469a357c65ffba7edcdcb0ba74fead946606c5589998be0090d31750 - Sigstore transparency entry: 1150034148
- Sigstore integration time:
-
Permalink:
petbox-dev/tafra@a320539edc84061ece7203cd92dd29c3b7307ddf -
Branch / Tag:
refs/tags/v2.2.0 - Owner: https://github.com/petbox-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a320539edc84061ece7203cd92dd29c3b7307ddf -
Trigger Event:
release
-
Statement type:
File details
Details for the file tafra-2.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: tafra-2.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 82.9 kB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c114d7ba1bf615d52e9c479ea6f351629a60471ef3eec66289b9a44afcc56bae
|
|
| MD5 |
73127b86fb7a2478deb0609cd02769f5
|
|
| BLAKE2b-256 |
3a0799ec8e754612abcb490c6e59a80293bf02582f0083f673677cd4aca9f438
|
Provenance
The following attestation bundles were made for tafra-2.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
publish.yml on petbox-dev/tafra
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tafra-2.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
c114d7ba1bf615d52e9c479ea6f351629a60471ef3eec66289b9a44afcc56bae - Sigstore transparency entry: 1150033811
- Sigstore integration time:
-
Permalink:
petbox-dev/tafra@a320539edc84061ece7203cd92dd29c3b7307ddf -
Branch / Tag:
refs/tags/v2.2.0 - Owner: https://github.com/petbox-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a320539edc84061ece7203cd92dd29c3b7307ddf -
Trigger Event:
release
-
Statement type:
File details
Details for the file tafra-2.2.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.
File metadata
- Download URL: tafra-2.2.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 82.1 kB
- Tags: CPython 3.10, manylinux: glibc 2.17+ i686, manylinux: glibc 2.5+ i686
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4e72458c845bc91a43749a55045b6785940e40032a697222a920fd830b3f67eb
|
|
| MD5 |
9fded1fd09f7d97e0a3beaf4c57cb61b
|
|
| BLAKE2b-256 |
abdefcba5df152bea94b7759d5fc668940a5116475a97a7de9e2286cf3611090
|
Provenance
The following attestation bundles were made for tafra-2.2.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl:
Publisher:
publish.yml on petbox-dev/tafra
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tafra-2.2.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl -
Subject digest:
4e72458c845bc91a43749a55045b6785940e40032a697222a920fd830b3f67eb - Sigstore transparency entry: 1150033906
- Sigstore integration time:
-
Permalink:
petbox-dev/tafra@a320539edc84061ece7203cd92dd29c3b7307ddf -
Branch / Tag:
refs/tags/v2.2.0 - Owner: https://github.com/petbox-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a320539edc84061ece7203cd92dd29c3b7307ddf -
Trigger Event:
release
-
Statement type:
File details
Details for the file tafra-2.2.0-cp310-cp310-macosx_11_0_arm64.whl.
File metadata
- Download URL: tafra-2.2.0-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 51.5 kB
- Tags: CPython 3.10, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
21f44567ac3281afbd7c596d64eb2209208b04ac56b2973b3f4eb42caba572e0
|
|
| MD5 |
fcebdb3fe142cbc5391294f8364ea22d
|
|
| BLAKE2b-256 |
67a71ddc37fff4735766c3f7bc60fa72e02e10ce1a6aed0f284fd5992b781ed4
|
Provenance
The following attestation bundles were made for tafra-2.2.0-cp310-cp310-macosx_11_0_arm64.whl:
Publisher:
publish.yml on petbox-dev/tafra
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tafra-2.2.0-cp310-cp310-macosx_11_0_arm64.whl -
Subject digest:
21f44567ac3281afbd7c596d64eb2209208b04ac56b2973b3f4eb42caba572e0 - Sigstore transparency entry: 1150033365
- Sigstore integration time:
-
Permalink:
petbox-dev/tafra@a320539edc84061ece7203cd92dd29c3b7307ddf -
Branch / Tag:
refs/tags/v2.2.0 - Owner: https://github.com/petbox-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a320539edc84061ece7203cd92dd29c3b7307ddf -
Trigger Event:
release
-
Statement type: