Skip to main content

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 such 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

All while still needing no schema and having 0 limitations.

So, if reading your data by hand isn't something that's important to you, Pinch is for you.

Benchmarks

Even with its great flexibility, Pinch performs on-par and often better than other, less flexible libraries:

repodata.png

Full list of Benchmarks

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
  • 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

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

Dates

Dates can 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

Custom types

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
unsupported_types = [uuid4(), 1 + 4j]

# Pass a mapping, for each type how should it be serialized
serialized = pinch.dump_bytes(unsupported_types, custom_types={
    UUID: pinch.CustomType(identifier=0, converter=lambda x: str(x)),
    complex: pinch.CustomType(identifier="complex", converter=str), # no real need for the lambda
})

# Pass a mapping, for each type (identified by its identifier) how should it be deserialized
deserialized = pinch.load_bytes(serialized, custom_types={
    0: lambda x: UUID(x),
    "complex": complex  # no real need for the lambda
})

# Confirm it worked
assert deserialized == unsupported_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"

Writing to a file (or other buffer)

In order to save memory usage, or if this is you're desired outcome anyway, you can dump straight to a file (or anything else which has a write(bytes) method).

However note that because of the extra IO this will likely be significantly slower.

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

In Python, tuples are usually more memory efficient. 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 you're 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'de 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pypinch-0.0.19.tar.gz (32.1 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pypinch-0.0.19-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (250.2 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

pypinch-0.0.19-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (246.3 kB view details)

Uploaded CPython 3.15manylinux: glibc 2.17+ x86-64

pypinch-0.0.19-cp314-cp314-win_amd64.whl (131.5 kB view details)

Uploaded CPython 3.14Windows x86-64

pypinch-0.0.19-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (246.3 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

pypinch-0.0.19-cp314-cp314-macosx_11_0_arm64.whl (224.5 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

pypinch-0.0.19-cp313-cp313-win_amd64.whl (135.6 kB view details)

Uploaded CPython 3.13Windows x86-64

pypinch-0.0.19-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (250.3 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

pypinch-0.0.19-cp313-cp313-macosx_11_0_arm64.whl (227.6 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pypinch-0.0.19-cp312-cp312-win_amd64.whl (135.6 kB view details)

Uploaded CPython 3.12Windows x86-64

pypinch-0.0.19-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (250.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

pypinch-0.0.19-cp312-cp312-macosx_11_0_arm64.whl (227.6 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pypinch-0.0.19-cp311-cp311-win_amd64.whl (135.1 kB view details)

Uploaded CPython 3.11Windows x86-64

pypinch-0.0.19-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (249.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

pypinch-0.0.19-cp311-cp311-macosx_11_0_arm64.whl (226.2 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pypinch-0.0.19-cp310-cp310-win_amd64.whl (135.1 kB view details)

Uploaded CPython 3.10Windows x86-64

pypinch-0.0.19-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (249.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

pypinch-0.0.19-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (249.4 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

File details

Details for the file pypinch-0.0.19.tar.gz.

File metadata

  • Download URL: pypinch-0.0.19.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

Hashes for pypinch-0.0.19.tar.gz
Algorithm Hash digest
SHA256 61f0ebdac2e2ffa41bca7389ad826c74ed5a6cce6c29116bf1c9a0036f6988a3
MD5 1514fc97d3ccb736806a217c430ba2cc
BLAKE2b-256 6e6d0a4aa24227e22140a182552f5fa44a94be4bd16c6a1ec2e6c09db9584f03

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypinch-0.0.19.tar.gz:

Publisher: publish.yml on AharonSambol/pypinch

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pypinch-0.0.19-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pypinch-0.0.19-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 711fdf1e206853b41d12d85c08a4c6d5f50574221b7ecaa6a2b722df675cc362
MD5 fafb6a14d749ef2a924aa17e9dac1fbd
BLAKE2b-256 26fdb185c0337ac71304469f9c01d0cb1466dfe59370096f2f59c389f43fcdc1

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypinch-0.0.19-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on AharonSambol/pypinch

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pypinch-0.0.19-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pypinch-0.0.19-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6ede4ebfbe380eb8161d822837a45c871bbb283b83645b20cc029854279e788f
MD5 d05a4e62bb0dd3bfcdee5b6e3acf28c4
BLAKE2b-256 6cd498a40d8ec8f127f2df03d60147f31fe1b622cc5d3d7bdd17de176b42d7c9

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypinch-0.0.19-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on AharonSambol/pypinch

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pypinch-0.0.19-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: pypinch-0.0.19-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 131.5 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

Hashes for pypinch-0.0.19-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 19891f601be1eae3c4635518ed616baf3209d7235e813511038ad3a179e2ba16
MD5 8d6f7602bda2210a51e1e6b93b0fff58
BLAKE2b-256 7920eedc1eaf5b5a96bc8ac4926ebaaa5e2ae3d6a593c71e67ebe074ea26aefe

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypinch-0.0.19-cp314-cp314-win_amd64.whl:

Publisher: publish.yml on AharonSambol/pypinch

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pypinch-0.0.19-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pypinch-0.0.19-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 040bc8dd9a49f57ab053d658b9ef0c527f0b6f0609b9acc598f943bb8d92d586
MD5 a4bf41f4e5bde20d0aea1d29fae6fec8
BLAKE2b-256 dadbe6a471f1130b68fe8fa1c8a6135ad48c80471186affe8fc7105f03e836d6

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypinch-0.0.19-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on AharonSambol/pypinch

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pypinch-0.0.19-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pypinch-0.0.19-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 17bcb2dbbbed9313945f57e9c134f0526be64ce69274e5e41f33ec1a8fd19bf4
MD5 e8c3df0ad89fc77285a5b87fe3b8f250
BLAKE2b-256 bc848090e017f893527a487b6824e482604de2324d3cc1062cf09e76825def59

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypinch-0.0.19-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: publish.yml on AharonSambol/pypinch

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pypinch-0.0.19-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: pypinch-0.0.19-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 135.6 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

Hashes for pypinch-0.0.19-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 c10b8b0cb3b0c386ef6e5479b1575f834ddc4f2a4ca1a565018d84a0d1ec831f
MD5 55e74caf649437120621066d244a2257
BLAKE2b-256 7c3b08e1f4458594d554dec5700e0364dd0153da647b896b908add6f0fffb256

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypinch-0.0.19-cp313-cp313-win_amd64.whl:

Publisher: publish.yml on AharonSambol/pypinch

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pypinch-0.0.19-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pypinch-0.0.19-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0eaf6986e23cc9aeb685b8bdc90672af008f6ff984fb50f37e788df37e2efd5b
MD5 18153f6f3f67a7478056c6d63d82955f
BLAKE2b-256 ffcb4e98d99916f90657a6856207eb15edc0cf312b82b285994fe5f576230d73

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypinch-0.0.19-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on AharonSambol/pypinch

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pypinch-0.0.19-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pypinch-0.0.19-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 23626635aef9d64fe09b7f5505fe86aacfe268495f6ccd0c2ab14d951b1f0604
MD5 cc63443a2ecba335dfbdcbf8b45c2695
BLAKE2b-256 7798f7830748a2642563db059d5baeb0a474d3ed4fd392813736fcc4fd92de33

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypinch-0.0.19-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: publish.yml on AharonSambol/pypinch

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pypinch-0.0.19-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: pypinch-0.0.19-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 135.6 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

Hashes for pypinch-0.0.19-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 b220f555b299f3ce2266c2f3573a6aeeb8d7a2643144e8849bdac358f2cc3706
MD5 5a98b322d1894023525127e4bd0ddbca
BLAKE2b-256 7a7fe4c48e9c7a987cf9fae492f7f86780a7560e07874dea665efca28a432b93

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypinch-0.0.19-cp312-cp312-win_amd64.whl:

Publisher: publish.yml on AharonSambol/pypinch

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pypinch-0.0.19-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pypinch-0.0.19-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fc424ee518d75aad78669b98f9fdf2167e6c3ef5f971f3a570d3a4bba5289255
MD5 d9a89f2220f115471430d5fed36d52a5
BLAKE2b-256 b14a4fe9034c1cc3ca4a5232fcc64c7b188421e818cf9e3cfb890948a69e34d8

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypinch-0.0.19-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on AharonSambol/pypinch

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pypinch-0.0.19-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pypinch-0.0.19-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c1f48cbc0cb207a1786af8681373d8bd871b1f2b9fd21985d6b3ce5930154784
MD5 31c06a44fda57ca3e9651da1cd56c1d2
BLAKE2b-256 2d70be0b114180dcc6cabaee80fd08c1e2afbee28916c34ebd0b9f9020b26901

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypinch-0.0.19-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: publish.yml on AharonSambol/pypinch

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pypinch-0.0.19-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: pypinch-0.0.19-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 135.1 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

Hashes for pypinch-0.0.19-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 d39654844910ffdc6fe3f81397b1a9748c29bea94183e8e6d390ed94f3c50eb2
MD5 799e06a331452c5ec16379559b7d5f2d
BLAKE2b-256 2d39f5a3ad3585d423f38a0c5f25cbf665568543cfb8a59eecdad41cd0b719f0

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypinch-0.0.19-cp311-cp311-win_amd64.whl:

Publisher: publish.yml on AharonSambol/pypinch

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pypinch-0.0.19-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pypinch-0.0.19-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cfd7d83d0a56b78e9ebbfbca516508c19d337d653bb1053de3832b8cb4421b92
MD5 0d2512c875d23da0de043645cf42f9c5
BLAKE2b-256 31038b908a418a71d21abbd0b6a16d8a6860fa2151492a4acfb72f7c998f6050

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypinch-0.0.19-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on AharonSambol/pypinch

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pypinch-0.0.19-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pypinch-0.0.19-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 14043c0546691fc5c7a4b131fbdbc36f1515b70c01e38061c72d34c3d54b2a73
MD5 32af708c96b1484152c82e782be88766
BLAKE2b-256 2146d5a448b41af19426b51122949309c23156d37aff0b2e6491c650a0008587

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypinch-0.0.19-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: publish.yml on AharonSambol/pypinch

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pypinch-0.0.19-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: pypinch-0.0.19-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 135.1 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

Hashes for pypinch-0.0.19-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 1befb16c1408f705cdc906d8ed90c14703ee9df6b7f2f526ae69223436ab79df
MD5 4a9730298a9d398c37a1180471ca512d
BLAKE2b-256 9cfccb2cc95868ee7d3a85db94bd3579e37005618da0538b600f58bf8dd7d959

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypinch-0.0.19-cp310-cp310-win_amd64.whl:

Publisher: publish.yml on AharonSambol/pypinch

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pypinch-0.0.19-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pypinch-0.0.19-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ee2b63bb608c0fd95cd3e8d5d88b4e0f1f68126817f6dbd5f0a78d0b362e05fc
MD5 32aa6b5e6bf53e369a94b7e383e3224d
BLAKE2b-256 3b3b9ac62725cf67528773330d89012c54035b2133c98b1b7c9c627bda337efe

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypinch-0.0.19-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on AharonSambol/pypinch

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pypinch-0.0.19-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pypinch-0.0.19-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9102279eacae55e4c50d4e5c600af4ee551c418c9c308f7d8745c0300fe3cba2
MD5 0cbfce856f23804297ebeba26ddc329f
BLAKE2b-256 7fd79a5e283bbcf83db31ad5ba6b0bffa4368ae46d027d3930fb231c8ab016a5

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypinch-0.0.19-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on AharonSambol/pypinch

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page