Schemaless binary serialization format without limitations
Project description
Pinch
Schemaless binary serialization with ZERO LIMITATIONS
Pinch is a binary serialization format, aimed to be both fast and memory efficient, while being as dynamic as possible.
- No schema needed
- Out-of-the-box support for all JSON types (+ binary!)
- Support for custom types
- No limitations:
- ints can be indefinitely large (or small) - no limit at all
- strings, bytes, lists, and dicts can be indefinitely long
- Extremely compact serialization, which leads to lower memory usage, easy storage, and less network traffic
- Consumes little memory while serializing\deserializing
- Supports lazy loading
- Support writing to a buffer, such as a file, to decrease memory usage
- Written in Rust ⚡️🚀🦀🔥
Motivation
JSON is a popular choice because of how flexible and easy it is to use. But it has one major flaw, is far from efficient. It also lacks support for binary data, and depending on which library you choose, also custom types.
What Pinch offers is to trade in the readability of JSON and in exchange get
- High performance, both in speed and in memory usage
- Support for binary fields & custom types
- Smaller serialized objects
All while still needing no schema and having 0 limitations.
So, if human readability isn't something that's important to you, Pinch is for you.
Benchmarks
Even with its great flexibility, Pinch performs on-par with and often better than other, less flexible libraries:
Comparison to other options
- Protobuf / FlatBuffers / Cap'n Proto / Avro
- You need a Schema, so if you have one go for it, but often this just isn't plausible or not worth the effort
- BSON
- Limits the size of numbers, lists, dicts, strings, and binary
- Limits the size of the document itself
- Preforms rather poorly in the benchmarks
- MessagePack
- A great option, but:
- Limits the size of numbers, lists, dicts, strings, and binary
- In many cases Pinch outperforms MessagePack both in speed and in peak memory usage
- A great option, but:
- Orjson
- High memory overhead
- Doesn't support binary (you can, as a custom type, but it will be much less effecient)
- Pickle
- If you're programing specifically in Python and only Python this is an option. Although it will couple you to Python which usually isn't ideal.
- You need to be more aware of security risks
- Smile
- Looks promising, but I couldn't find a Python3 library that worked...
- XML / YAML / TOML
- Why??
- Ion
- Rather good at creating small serialized data, but not as good as Pinch
- Terrible speed and memory consumption
Usage
- Basic
- Custom types
- Dates
- Lazy Loading
- Writing to a file (or other buffer)
- Optimizations
- Backends
- Exceptions
Basic
pip install pypinch
import pypinch as pinch
original_data = {"pinchable": True, "collection": [b"101010", {}, 0.1]}
# Serialize the data
serialized_data = pinch.dump_bytes(original_data)
# And now deserialize it
loaded_data = pinch.load_bytes(serialized_data)
# Confirm they are the same
assert loaded_data == original_data
Custom types
By default, these are the types that are supported:
- List
- Dictionary (HashMap/Objects/...)
- Integer (up to infinit sizes)
- Float
- String
- Bytes
- Boolean
- Null
- Binary
But you can add additional types as well.
For each custom type, you need to give some type of identifier. An identifier can be any default supported type.
When serializing you need to provide a function that serializes your data into a supported type.
When deserializing you need to provide a function which gets your serialized item (the output of the function you provided in the serialization phase)
and returns a deserialized object
For readability, I recommend a using a string identifier.
For performance I recommend an int.
Choose whichever suites your needs best.
import pypinch as pinch
from uuid import uuid4, UUID
# Types which aren't supported by default
object_with_unsupported_types = [uuid4(), 1 + 4j]
# Create a mapping for each type how should it be serialized
SERIALIZATION_MAPPING = {
UUID: pinch.CustomType(identifier=0, converter=lambda x: str(x)),
complex: pinch.CustomType(identifier="complex", converter=str), # no real need for the lambda
}
# And a mapping for how it should be deserialized.
# Each type is identified by the same identifier as in the SERIALIZATION_MAPPING
DESERIALIZATION_MAPPING = {
0: lambda x: UUID(x),
"complex": complex # no real need for the lambda
}
# Pass the serialization mapping
serialized = pinch.dump_bytes(object_with_unsupported_types, custom_types=SERIALIZATION_MAPPING)
# Pass the deserialization mapping
deserialized = pinch.load_bytes(serialized, custom_types=DESERIALIZATION_MAPPING)
# Confirm it worked
assert deserialized == object_with_unsupported_types
One way conversions are also possible using the one_way flag.
This allows you to convert an object during serialization into a supported type, without the intention of converting it
back into the custom type.
In these cases, you can pass None to the identifier.
For example:
import pypinch as pinch
from dataclasses import dataclass
@dataclass
class DictLike:
name: str
age: int
dict_like = DictLike("Bob", 21)
# Create a mapping for each type how should it be serialized
SERIALIZATION_MAPPING = {
DictLike: pinch.CustomType(identifier=None, converter=lambda x: x.__dict__, one_way=True),
}
serialized = pinch.dump_bytes(dict_like, custom_types=SERIALIZATION_MAPPING)
# No need for a deserialization mapping
deserialized = pinch.load_bytes(serialized)
# deserialized != the original object
assert deserialized == {"name": "Bob", "age": 21}
Dates
Dates aren't a type which is supported by default, but there is a flag which allows dates to be serialized to iso format.
import pypinch as pinch
from datetime import datetime
now = datetime.now()
# Pass the `serialize_dates` flag
serialized = pinch.dump_bytes(now, serialize_dates=True)
# And now deserialize it
loaded_now = pinch.load_bytes(serialized)
# Confirm it worked
assert loaded_now == now.isoformat()
Note: If you want the deserialization to result in a datetime object you're better off using custom types
Lazy Loading
Sometimes you might not want to load the whole object into memory but only a single field.
import pypinch as pinch
# Setup
obj = {"people": [{"name": "Bob", "age": 30}, {"name": "Joe", "age": 45}]}
serialized_obj = pinch.dump_bytes(obj)
# Load only a specific field
field = pinch.lazy_load_bytes(serialized_obj, ["people", pinch.Idx(1), "name"])
assert field == "Joe"
You can even just check that the field exists, without loading it
import pypinch as pinch
# Setup
obj = {"people": [{"name": "Bob", "age": 30}, {"name": "Joe", "age": 45}]}
serialized_obj = pinch.dump_bytes(obj)
# Don't load any fields, just check that it exists
exists = pinch.bytes_check_if_contains(serialized_obj, ["people", pinch.Idx(1)])
assert exists == True
Writing to a file (or other buffer)
In order to save memory usage, or if this is your desired outcome anyway, you can dump straight to a file (or anything else which has a write(bytes) method).
Note that the extra IO will likely have overhead.
import pypinch as pinch
# Setup
obj = b"very large data" * 10_000
with open("file", "wb") as f:
serialized_obj = pinch.dump_bytes(obj, writer=f)
You can also configure how often the data should be dumped to the file:
pinch.dump_bytes(
obj,
writer=f,
flush_threshold=10*1024*1024,
direct_write_threshold=5*1024*1024
)
When the in memory buffer reaches flush_threshold it will flush to the writer.
If there is a byte field larger than direct_write_threshold it will flush directly to the writer.
Optimizations
Note that in the name of fairness, none of these were used in the benchmarks :)
In Python, tuples are usually more memory efficient than lists. So you can use use_tuples=True when deserializing to deserialize
the lists as tuples instead.
import pypinch as pinch
obj = [[1, 2], 3, [4, 5]]
serialized_obj = pinch.dump_bytes(obj)
deserialize = pinch.load_bytes(serialized_obj, use_tuples=True)
assert deserialize == ((1, 2), 3, (4, 5))
If you really care about speed, you can disable the GC while the deserialization is happening (use at your own risk)
pinch.load_bytes(..., stop_gc=True)
Backends
When possible, Pinch uses a backend written in Rust. But it also has a fallback implementation in Python, for cases where the Rust implementation is not available.
If you'd like to use the Python implementation, you can do so by setting this environment variable:
export PYPINCH_FORCE_PYTHON="true"
Exceptions
If the data is corrupted or incorrect, Pinch will raise pinch.DeserializationError or pinch.SerializationError
By default, Pinch expects the input to load_bytes to be a valid input. But if you have a stream which starts with a
valid pinch object and then more data after it, you can pass the flag ignore_extra_data to suppress the exception
import pypinch as pinch
original_data = "data"
serialized_data = pinch.dump_bytes(original_data)
# This won't raise an exception now
loaded_data = pinch.load_bytes(serialized_data + b"extra bytes", ignore_extra_data=True)
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 pypinch-1.0.3.tar.gz.
File metadata
- Download URL: pypinch-1.0.3.tar.gz
- Upload date:
- Size: 32.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
00add149c0b7bb51d7b5a5cd319fe7b616638999c14e8062fbe8759736761e3d
|
|
| MD5 |
a0c555a1742d508cc8ce982d3c57cac2
|
|
| BLAKE2b-256 |
a25e9dc49590798e6701624f2565ddc71f90d44d8aa3767c20545bb162ef70cb
|
Provenance
The following attestation bundles were made for pypinch-1.0.3.tar.gz:
Publisher:
publish.yml on AharonSambol/pypinch
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pypinch-1.0.3.tar.gz -
Subject digest:
00add149c0b7bb51d7b5a5cd319fe7b616638999c14e8062fbe8759736761e3d - Sigstore transparency entry: 1871069433
- Sigstore integration time:
-
Permalink:
AharonSambol/pypinch@e429f62bbe0ef2b4d8ad27f7cbe19f6607b6c073 -
Branch / Tag:
refs/tags/1.0.3 - Owner: https://github.com/AharonSambol
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e429f62bbe0ef2b4d8ad27f7cbe19f6607b6c073 -
Trigger Event:
release
-
Statement type:
File details
Details for the file pypinch-1.0.3-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: pypinch-1.0.3-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 251.0 kB
- Tags: PyPy, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2ec1deb43824ea8edc30b18459a310d61292bf8fed382f6910159bce5079e06d
|
|
| MD5 |
b1281de6c9d97236f223179fdd1e157e
|
|
| BLAKE2b-256 |
5baa69144e7a3c58da4213e470de948d0d3be08bf7accdfba6e87a6a87e8dae9
|
Provenance
The following attestation bundles were made for pypinch-1.0.3-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
publish.yml on AharonSambol/pypinch
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pypinch-1.0.3-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
2ec1deb43824ea8edc30b18459a310d61292bf8fed382f6910159bce5079e06d - Sigstore transparency entry: 1871069931
- Sigstore integration time:
-
Permalink:
AharonSambol/pypinch@e429f62bbe0ef2b4d8ad27f7cbe19f6607b6c073 -
Branch / Tag:
refs/tags/1.0.3 - Owner: https://github.com/AharonSambol
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e429f62bbe0ef2b4d8ad27f7cbe19f6607b6c073 -
Trigger Event:
release
-
Statement type:
File details
Details for the file pypinch-1.0.3-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: pypinch-1.0.3-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 246.0 kB
- Tags: CPython 3.15t, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
61068c029883a23b0b4e96a4f63d30dffe4a0104c1c27652f8c60081baf62179
|
|
| MD5 |
dc720306bf40ec12559191685f78519e
|
|
| BLAKE2b-256 |
46deef28acd8cb59366cc9c99cd593705544a5dca3b575c01203eba87a1baf55
|
Provenance
The following attestation bundles were made for pypinch-1.0.3-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
publish.yml on AharonSambol/pypinch
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pypinch-1.0.3-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
61068c029883a23b0b4e96a4f63d30dffe4a0104c1c27652f8c60081baf62179 - Sigstore transparency entry: 1871069993
- Sigstore integration time:
-
Permalink:
AharonSambol/pypinch@e429f62bbe0ef2b4d8ad27f7cbe19f6607b6c073 -
Branch / Tag:
refs/tags/1.0.3 - Owner: https://github.com/AharonSambol
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e429f62bbe0ef2b4d8ad27f7cbe19f6607b6c073 -
Trigger Event:
release
-
Statement type:
File details
Details for the file pypinch-1.0.3-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: pypinch-1.0.3-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 247.2 kB
- Tags: CPython 3.15, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8809ba17ee220de0b491485f6f26e8c679cd1b9fcf67e3368266193a607b9c25
|
|
| MD5 |
d2b24a8723eb781b6cdf73c9c15b42b3
|
|
| BLAKE2b-256 |
b3dac14339214bbc6b88fde1bff9e3c30661536587766b7fd39245230cbbd487
|
Provenance
The following attestation bundles were made for pypinch-1.0.3-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
publish.yml on AharonSambol/pypinch
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pypinch-1.0.3-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
8809ba17ee220de0b491485f6f26e8c679cd1b9fcf67e3368266193a607b9c25 - Sigstore transparency entry: 1871069965
- Sigstore integration time:
-
Permalink:
AharonSambol/pypinch@e429f62bbe0ef2b4d8ad27f7cbe19f6607b6c073 -
Branch / Tag:
refs/tags/1.0.3 - Owner: https://github.com/AharonSambol
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e429f62bbe0ef2b4d8ad27f7cbe19f6607b6c073 -
Trigger Event:
release
-
Statement type:
File details
Details for the file pypinch-1.0.3-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: pypinch-1.0.3-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 246.0 kB
- Tags: CPython 3.14t, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d63d2aecd3df0b09e4ac5ea5d8f04016646b083cdced37dc9bf673472aacd483
|
|
| MD5 |
ff61ef932327be2cf506436f9dbe786d
|
|
| BLAKE2b-256 |
10311dec765f5622ba24d0532ab02fa33b9453b8f6c4e0f00b9f05152d116cc5
|
Provenance
The following attestation bundles were made for pypinch-1.0.3-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
publish.yml on AharonSambol/pypinch
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pypinch-1.0.3-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
d63d2aecd3df0b09e4ac5ea5d8f04016646b083cdced37dc9bf673472aacd483 - Sigstore transparency entry: 1871069796
- Sigstore integration time:
-
Permalink:
AharonSambol/pypinch@e429f62bbe0ef2b4d8ad27f7cbe19f6607b6c073 -
Branch / Tag:
refs/tags/1.0.3 - Owner: https://github.com/AharonSambol
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e429f62bbe0ef2b4d8ad27f7cbe19f6607b6c073 -
Trigger Event:
release
-
Statement type:
File details
Details for the file pypinch-1.0.3-cp314-cp314-win_amd64.whl.
File metadata
- Download URL: pypinch-1.0.3-cp314-cp314-win_amd64.whl
- Upload date:
- Size: 132.1 kB
- Tags: CPython 3.14, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
485ea8720ab837a69636ce8181366516ee818b180d8b9b37aefa0765a7b0959c
|
|
| MD5 |
7fc1c6beaae77533850f23644698b78e
|
|
| BLAKE2b-256 |
5ae8d18c35c4e70df08df0c4569d9b6722b62abe1e51908822b07e0dba483286
|
Provenance
The following attestation bundles were made for pypinch-1.0.3-cp314-cp314-win_amd64.whl:
Publisher:
publish.yml on AharonSambol/pypinch
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pypinch-1.0.3-cp314-cp314-win_amd64.whl -
Subject digest:
485ea8720ab837a69636ce8181366516ee818b180d8b9b37aefa0765a7b0959c - Sigstore transparency entry: 1871069500
- Sigstore integration time:
-
Permalink:
AharonSambol/pypinch@e429f62bbe0ef2b4d8ad27f7cbe19f6607b6c073 -
Branch / Tag:
refs/tags/1.0.3 - Owner: https://github.com/AharonSambol
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e429f62bbe0ef2b4d8ad27f7cbe19f6607b6c073 -
Trigger Event:
release
-
Statement type:
File details
Details for the file pypinch-1.0.3-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: pypinch-1.0.3-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 247.2 kB
- Tags: CPython 3.14, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
679ff73f7b6e4acaac11f43acecabc50824be97f0bdb18125425a2a1e8f26f75
|
|
| MD5 |
b27187784994adb8ab05f1fc7e16b729
|
|
| BLAKE2b-256 |
2d085ea54317f7a5097dd96308f42cc8544bd9152f9f3c797ed0bc2dd86d8dbf
|
Provenance
The following attestation bundles were made for pypinch-1.0.3-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
publish.yml on AharonSambol/pypinch
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pypinch-1.0.3-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
679ff73f7b6e4acaac11f43acecabc50824be97f0bdb18125425a2a1e8f26f75 - Sigstore transparency entry: 1871070030
- Sigstore integration time:
-
Permalink:
AharonSambol/pypinch@e429f62bbe0ef2b4d8ad27f7cbe19f6607b6c073 -
Branch / Tag:
refs/tags/1.0.3 - Owner: https://github.com/AharonSambol
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e429f62bbe0ef2b4d8ad27f7cbe19f6607b6c073 -
Trigger Event:
release
-
Statement type:
File details
Details for the file pypinch-1.0.3-cp314-cp314-macosx_11_0_arm64.whl.
File metadata
- Download URL: pypinch-1.0.3-cp314-cp314-macosx_11_0_arm64.whl
- Upload date:
- Size: 225.5 kB
- Tags: CPython 3.14, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
95344025b1d4a27314fd05b1c59d5a371b64877960226782b616119cebea3754
|
|
| MD5 |
62d32dbb4ad7af8c2b0857aca912d8f7
|
|
| BLAKE2b-256 |
3ad10499b6623604146ba79fe821172bb9b34ffbcf4f1c09d605b7adc2d1b91f
|
Provenance
The following attestation bundles were made for pypinch-1.0.3-cp314-cp314-macosx_11_0_arm64.whl:
Publisher:
publish.yml on AharonSambol/pypinch
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pypinch-1.0.3-cp314-cp314-macosx_11_0_arm64.whl -
Subject digest:
95344025b1d4a27314fd05b1c59d5a371b64877960226782b616119cebea3754 - Sigstore transparency entry: 1871069465
- Sigstore integration time:
-
Permalink:
AharonSambol/pypinch@e429f62bbe0ef2b4d8ad27f7cbe19f6607b6c073 -
Branch / Tag:
refs/tags/1.0.3 - Owner: https://github.com/AharonSambol
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e429f62bbe0ef2b4d8ad27f7cbe19f6607b6c073 -
Trigger Event:
release
-
Statement type:
File details
Details for the file pypinch-1.0.3-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: pypinch-1.0.3-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 136.2 kB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b3c0771c518aac7d4484bb71527ba42ea255ac5c65ee84420de79e9941251cdc
|
|
| MD5 |
1b27f0ea60085e729a70a1aeac5237b0
|
|
| BLAKE2b-256 |
77fb573da1a218b6791ad14bbf4525ef2721aae7896fc9b715fcc354a223b19d
|
Provenance
The following attestation bundles were made for pypinch-1.0.3-cp313-cp313-win_amd64.whl:
Publisher:
publish.yml on AharonSambol/pypinch
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pypinch-1.0.3-cp313-cp313-win_amd64.whl -
Subject digest:
b3c0771c518aac7d4484bb71527ba42ea255ac5c65ee84420de79e9941251cdc - Sigstore transparency entry: 1871069826
- Sigstore integration time:
-
Permalink:
AharonSambol/pypinch@e429f62bbe0ef2b4d8ad27f7cbe19f6607b6c073 -
Branch / Tag:
refs/tags/1.0.3 - Owner: https://github.com/AharonSambol
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e429f62bbe0ef2b4d8ad27f7cbe19f6607b6c073 -
Trigger Event:
release
-
Statement type:
File details
Details for the file pypinch-1.0.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: pypinch-1.0.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 251.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.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2656c1619059f0cf357ffac4d8557e88491f68132576b5f627c51b9b7c500f08
|
|
| MD5 |
17f0e8ae341227ce0dc5237a9b4bb479
|
|
| BLAKE2b-256 |
cd1540ad475d464747a8fce471ecaeac7099a2403bef0b4fa8bba398f12954d0
|
Provenance
The following attestation bundles were made for pypinch-1.0.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
publish.yml on AharonSambol/pypinch
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pypinch-1.0.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
2656c1619059f0cf357ffac4d8557e88491f68132576b5f627c51b9b7c500f08 - Sigstore transparency entry: 1871069897
- Sigstore integration time:
-
Permalink:
AharonSambol/pypinch@e429f62bbe0ef2b4d8ad27f7cbe19f6607b6c073 -
Branch / Tag:
refs/tags/1.0.3 - Owner: https://github.com/AharonSambol
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e429f62bbe0ef2b4d8ad27f7cbe19f6607b6c073 -
Trigger Event:
release
-
Statement type:
File details
Details for the file pypinch-1.0.3-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: pypinch-1.0.3-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 228.4 kB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d8ebfccff4adeb3e8b5780493ea6cf7ee8e51b795f639c12f9b457b7309fe786
|
|
| MD5 |
b657f83bcfadfe8b7e8ac58e0e493653
|
|
| BLAKE2b-256 |
a436098cd89d00d6144dbee5971900cf302816fdd510fa897f7ce5847419a563
|
Provenance
The following attestation bundles were made for pypinch-1.0.3-cp313-cp313-macosx_11_0_arm64.whl:
Publisher:
publish.yml on AharonSambol/pypinch
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pypinch-1.0.3-cp313-cp313-macosx_11_0_arm64.whl -
Subject digest:
d8ebfccff4adeb3e8b5780493ea6cf7ee8e51b795f639c12f9b457b7309fe786 - Sigstore transparency entry: 1871069537
- Sigstore integration time:
-
Permalink:
AharonSambol/pypinch@e429f62bbe0ef2b4d8ad27f7cbe19f6607b6c073 -
Branch / Tag:
refs/tags/1.0.3 - Owner: https://github.com/AharonSambol
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e429f62bbe0ef2b4d8ad27f7cbe19f6607b6c073 -
Trigger Event:
release
-
Statement type:
File details
Details for the file pypinch-1.0.3-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: pypinch-1.0.3-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 136.2 kB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1161bf8c1e07372614f54722ebbdd79f496434e84a0a15b65e71372fddf40785
|
|
| MD5 |
57727dcc731917a953e565eda21b7b53
|
|
| BLAKE2b-256 |
bbe578b53daddfa69b74dd3ab61b784feb20a4670f9bfbb3b751f43d7e641ada
|
Provenance
The following attestation bundles were made for pypinch-1.0.3-cp312-cp312-win_amd64.whl:
Publisher:
publish.yml on AharonSambol/pypinch
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pypinch-1.0.3-cp312-cp312-win_amd64.whl -
Subject digest:
1161bf8c1e07372614f54722ebbdd79f496434e84a0a15b65e71372fddf40785 - Sigstore transparency entry: 1871070006
- Sigstore integration time:
-
Permalink:
AharonSambol/pypinch@e429f62bbe0ef2b4d8ad27f7cbe19f6607b6c073 -
Branch / Tag:
refs/tags/1.0.3 - Owner: https://github.com/AharonSambol
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e429f62bbe0ef2b4d8ad27f7cbe19f6607b6c073 -
Trigger Event:
release
-
Statement type:
File details
Details for the file pypinch-1.0.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: pypinch-1.0.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 251.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.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0657193a6f2b9dbae3622b7f0b2cd5a583778253c4bb03cd03d16fb072f72e81
|
|
| MD5 |
a344d4d743b8a5896b634319459d59bf
|
|
| BLAKE2b-256 |
a44fde59668849a70491660c22f02311102795b918cd83b4b4ca7c85799dd0cf
|
Provenance
The following attestation bundles were made for pypinch-1.0.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
publish.yml on AharonSambol/pypinch
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pypinch-1.0.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
0657193a6f2b9dbae3622b7f0b2cd5a583778253c4bb03cd03d16fb072f72e81 - Sigstore transparency entry: 1871069632
- Sigstore integration time:
-
Permalink:
AharonSambol/pypinch@e429f62bbe0ef2b4d8ad27f7cbe19f6607b6c073 -
Branch / Tag:
refs/tags/1.0.3 - Owner: https://github.com/AharonSambol
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e429f62bbe0ef2b4d8ad27f7cbe19f6607b6c073 -
Trigger Event:
release
-
Statement type:
File details
Details for the file pypinch-1.0.3-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: pypinch-1.0.3-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 228.4 kB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ccb66b4e8237090e1437ea00a522aa3bce5cea1a5d7e906ce199175bb23700d9
|
|
| MD5 |
1dd70bcb3373eeb444750a63e981373e
|
|
| BLAKE2b-256 |
2dd52b2d78db5de93d34075a4035e229ee43e10199d1e5b4e7cb9e18045a0b49
|
Provenance
The following attestation bundles were made for pypinch-1.0.3-cp312-cp312-macosx_11_0_arm64.whl:
Publisher:
publish.yml on AharonSambol/pypinch
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pypinch-1.0.3-cp312-cp312-macosx_11_0_arm64.whl -
Subject digest:
ccb66b4e8237090e1437ea00a522aa3bce5cea1a5d7e906ce199175bb23700d9 - Sigstore transparency entry: 1871069701
- Sigstore integration time:
-
Permalink:
AharonSambol/pypinch@e429f62bbe0ef2b4d8ad27f7cbe19f6607b6c073 -
Branch / Tag:
refs/tags/1.0.3 - Owner: https://github.com/AharonSambol
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e429f62bbe0ef2b4d8ad27f7cbe19f6607b6c073 -
Trigger Event:
release
-
Statement type:
File details
Details for the file pypinch-1.0.3-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: pypinch-1.0.3-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 135.3 kB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4aaa8f2616e38da156c8ac70ebb8ae424d349183e4c7d1aa4f1997f8e2ad6471
|
|
| MD5 |
861e5c70b014b10903357c7a56ba100e
|
|
| BLAKE2b-256 |
4e0797a1f9e7699b736018882b99cebf9a9ebf1db228d36480cb95a21f4ca9a4
|
Provenance
The following attestation bundles were made for pypinch-1.0.3-cp311-cp311-win_amd64.whl:
Publisher:
publish.yml on AharonSambol/pypinch
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pypinch-1.0.3-cp311-cp311-win_amd64.whl -
Subject digest:
4aaa8f2616e38da156c8ac70ebb8ae424d349183e4c7d1aa4f1997f8e2ad6471 - Sigstore transparency entry: 1871069859
- Sigstore integration time:
-
Permalink:
AharonSambol/pypinch@e429f62bbe0ef2b4d8ad27f7cbe19f6607b6c073 -
Branch / Tag:
refs/tags/1.0.3 - Owner: https://github.com/AharonSambol
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e429f62bbe0ef2b4d8ad27f7cbe19f6607b6c073 -
Trigger Event:
release
-
Statement type:
File details
Details for the file pypinch-1.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: pypinch-1.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 250.4 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.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ec260bbf46f1e2f10b77252ca9da7507ea385247a1e4fe734c54f29de20f25a0
|
|
| MD5 |
3e6efefc1584db655fbff4abf3393e98
|
|
| BLAKE2b-256 |
a3b58c86796a2c479e2ff636132fdda9220b62de2baa58cfcbd9cdd3bad2a9a3
|
Provenance
The following attestation bundles were made for pypinch-1.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
publish.yml on AharonSambol/pypinch
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pypinch-1.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
ec260bbf46f1e2f10b77252ca9da7507ea385247a1e4fe734c54f29de20f25a0 - Sigstore transparency entry: 1871069566
- Sigstore integration time:
-
Permalink:
AharonSambol/pypinch@e429f62bbe0ef2b4d8ad27f7cbe19f6607b6c073 -
Branch / Tag:
refs/tags/1.0.3 - Owner: https://github.com/AharonSambol
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e429f62bbe0ef2b4d8ad27f7cbe19f6607b6c073 -
Trigger Event:
release
-
Statement type:
File details
Details for the file pypinch-1.0.3-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: pypinch-1.0.3-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 227.1 kB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7816e50126e1d841a42942a813909a624aea88742b83fda0aa1e1d97adc0aa85
|
|
| MD5 |
3a62221d4950a6e9aeba511446370d36
|
|
| BLAKE2b-256 |
25d78a91e6f9c17b4fe3cc4b747896c078ab1153b144d65e42f955c5b19d7c2e
|
Provenance
The following attestation bundles were made for pypinch-1.0.3-cp311-cp311-macosx_11_0_arm64.whl:
Publisher:
publish.yml on AharonSambol/pypinch
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pypinch-1.0.3-cp311-cp311-macosx_11_0_arm64.whl -
Subject digest:
7816e50126e1d841a42942a813909a624aea88742b83fda0aa1e1d97adc0aa85 - Sigstore transparency entry: 1871069597
- Sigstore integration time:
-
Permalink:
AharonSambol/pypinch@e429f62bbe0ef2b4d8ad27f7cbe19f6607b6c073 -
Branch / Tag:
refs/tags/1.0.3 - Owner: https://github.com/AharonSambol
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e429f62bbe0ef2b4d8ad27f7cbe19f6607b6c073 -
Trigger Event:
release
-
Statement type:
File details
Details for the file pypinch-1.0.3-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: pypinch-1.0.3-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 135.3 kB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
080695006175dec61458c45ca631e2b853de585b6596903990691ad60f333a13
|
|
| MD5 |
a1db2061a2178ddca3d83b30f7fbaaab
|
|
| BLAKE2b-256 |
e736338101fe4a8ed43301316920988b1f1da4a195aae4ef3298574da7f9ef84
|
Provenance
The following attestation bundles were made for pypinch-1.0.3-cp310-cp310-win_amd64.whl:
Publisher:
publish.yml on AharonSambol/pypinch
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pypinch-1.0.3-cp310-cp310-win_amd64.whl -
Subject digest:
080695006175dec61458c45ca631e2b853de585b6596903990691ad60f333a13 - Sigstore transparency entry: 1871069741
- Sigstore integration time:
-
Permalink:
AharonSambol/pypinch@e429f62bbe0ef2b4d8ad27f7cbe19f6607b6c073 -
Branch / Tag:
refs/tags/1.0.3 - Owner: https://github.com/AharonSambol
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e429f62bbe0ef2b4d8ad27f7cbe19f6607b6c073 -
Trigger Event:
release
-
Statement type:
File details
Details for the file pypinch-1.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: pypinch-1.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 250.4 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.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
159d7891bdc5de091bd49b81218f4f182b57f5624498d6770c6d3390b7af2d62
|
|
| MD5 |
7bc1b78011f76fc0fe8c35cfc2fb6549
|
|
| BLAKE2b-256 |
4214542290fc86d305e0e30e9e4c4eda02cb76a777e51c4a3835b1bf634f8cee
|
Provenance
The following attestation bundles were made for pypinch-1.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
publish.yml on AharonSambol/pypinch
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pypinch-1.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
159d7891bdc5de091bd49b81218f4f182b57f5624498d6770c6d3390b7af2d62 - Sigstore transparency entry: 1871069768
- Sigstore integration time:
-
Permalink:
AharonSambol/pypinch@e429f62bbe0ef2b4d8ad27f7cbe19f6607b6c073 -
Branch / Tag:
refs/tags/1.0.3 - Owner: https://github.com/AharonSambol
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e429f62bbe0ef2b4d8ad27f7cbe19f6607b6c073 -
Trigger Event:
release
-
Statement type:
File details
Details for the file pypinch-1.0.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: pypinch-1.0.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 250.3 kB
- Tags: CPython 3.9, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1be9212e697f3db4a3a3b9d26f52320fd00fb65e9a10ec12e02e610c22f5ded2
|
|
| MD5 |
03cb37a74c38b77ed2c7e9b9ccad4a9b
|
|
| BLAKE2b-256 |
28b7bb6ea5a8ade1d5c1a3a3ca68e6b31c97cc4aa2539dfd92f652c16cd732bf
|
Provenance
The following attestation bundles were made for pypinch-1.0.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
publish.yml on AharonSambol/pypinch
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pypinch-1.0.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
1be9212e697f3db4a3a3b9d26f52320fd00fb65e9a10ec12e02e610c22f5ded2 - Sigstore transparency entry: 1871069676
- Sigstore integration time:
-
Permalink:
AharonSambol/pypinch@e429f62bbe0ef2b4d8ad27f7cbe19f6607b6c073 -
Branch / Tag:
refs/tags/1.0.3 - Owner: https://github.com/AharonSambol
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e429f62bbe0ef2b4d8ad27f7cbe19f6607b6c073 -
Trigger Event:
release
-
Statement type: