A fast DynamoDB ORM for Python with a Rust core
Project description
pydynox 🐍⚙️
A fast DynamoDB ORM for Python with a Rust core.
📢 Stable Release: March 2-6, 2026 - We're in the final stretch! The API is stabilizing, performance is being polished, and we're building the remaining features. We might release earlier if everything goes well. Stay tuned!
Why "pydynox"?
Py(thon) + Dyn(amoDB) + Ox(ide/Rust)
GenAI Contributions 🤖
I believe GenAI is transforming how we build software. It's a powerful tool that accelerates development when used by developers who understand what they're doing.
To support both humans and AI agents, I created:
.ai/folder - Guidelines for agentic IDEs (Cursor, Windsurf, Kiro, etc.)ADR/folder - Architecture Decision Records for humans to understand the "why" behind decisions
If you're contributing with AI help:
- Understand what the AI generated before submitting
- Make sure the code follows the project patterns
- Test your changes
I reserve the right to reject low-quality PRs where project patterns are not followed and it's clear that GenAI was driving instead of the developer.
Features
- Simple class-based API like PynamoDB
- Fast serialization with Rust
- Batch operations with auto-splitting
- Transactions
- Global Secondary Indexes
- Async support
- Pydantic integration
- TTL (auto-expiring items)
- Lifecycle hooks
- Auto-generate IDs and timestamps
- Optimistic locking
- Rate limiting
- Field encryption (KMS)
- Compression (zstd, lz4, gzip)
- S3 attribute for large files
- PartiQL support
- Observability (logging, metrics, OpenTelemetry tracing)
Installation
pip install pydynox
For Pydantic support:
pip install pydynox[pydantic]
For OpenTelemetry tracing:
pip install pydynox[opentelemetry]
Quick Start
Define a Model
from pydynox import Model, ModelConfig
from pydynox.attributes import StringAttribute, NumberAttribute, BooleanAttribute, ListAttribute
class User(Model):
model_config = ModelConfig(table="users")
pk = StringAttribute(hash_key=True)
sk = StringAttribute(range_key=True)
name = StringAttribute()
email = StringAttribute()
age = NumberAttribute(default=0)
active = BooleanAttribute(default=True)
tags = ListAttribute()
CRUD Operations
# Create
user = User(pk="USER#123", sk="PROFILE", name="John", email="john@test.com")
user.save()
# Read
user = User.get(pk="USER#123", sk="PROFILE")
# Update - full save
user.name = "John Doe"
user.save()
# Update - partial
user.update(name="John Doe", age=31)
# Delete
user.delete()
Query
# Query by hash key
for user in User.query(hash_key="USER#123"):
print(user.name)
# With range key condition
for user in User.query(
hash_key="USER#123",
range_key_condition=User.sk.begins_with("ORDER#")
):
print(user.sk)
# With filter
for user in User.query(
hash_key="USER#123",
filter_condition=User.age > 18
):
print(user.name)
# Get first result
first = User.query(hash_key="USER#123").first()
# Collect all
users = list(User.query(hash_key="USER#123"))
Conditions
Conditions use attribute operators directly:
# Save only if item doesn't exist
user.save(condition=User.pk.not_exists())
# Delete with condition
user.delete(condition=User.version == 5)
# Combine conditions with & (AND) and | (OR)
user.save(
condition=User.pk.not_exists() | (User.version == 1)
)
Available condition methods:
User.field == value- equalsUser.field != value- not equalsUser.field > value- greater thanUser.field >= value- greater than or equalUser.field < value- less thanUser.field <= value- less than or equalUser.field.exists()- attribute existsUser.field.not_exists()- attribute does not existUser.field.begins_with(prefix)- string starts withUser.field.contains(value)- string or list containsUser.field.between(low, high)- value in rangeUser.field.is_in(val1, val2, ...)- value in list
Atomic Updates
# Increment a number
user.update(atomic=[User.age.add(1)])
# Append to list
user.update(atomic=[User.tags.append(["verified"])])
# Remove from list
user.update(atomic=[User.tags.remove([0])]) # Remove first element
# Set if not exists
user.update(atomic=[User.views.if_not_exists(0)])
# Multiple atomic operations
user.update(atomic=[
User.age.add(1),
User.tags.append(["premium"]),
])
# With condition
user.update(
atomic=[User.age.add(1)],
condition=User.status == "active"
)
Batch Operations
from pydynox import BatchWriter, DynamoDBClient
client = DynamoDBClient()
# Batch write - items are sent in groups of 25
with BatchWriter(client, "users") as batch:
for i in range(100):
batch.put({"pk": f"USER#{i}", "sk": "PROFILE", "name": f"User {i}"})
# Mix puts and deletes
with BatchWriter(client, "users") as batch:
batch.put({"pk": "USER#1", "sk": "PROFILE", "name": "John"})
batch.delete({"pk": "USER#2", "sk": "PROFILE"})
Global Secondary Index
from pydynox import Model, ModelConfig
from pydynox.attributes import StringAttribute
from pydynox.indexes import GlobalSecondaryIndex
class User(Model):
model_config = ModelConfig(table="users")
pk = StringAttribute(hash_key=True)
sk = StringAttribute(range_key=True)
email = StringAttribute()
status = StringAttribute()
# GSI with hash key only
email_index = GlobalSecondaryIndex(
index_name="email-index",
hash_key="email",
)
# GSI with hash and range key
status_index = GlobalSecondaryIndex(
index_name="status-index",
hash_key="status",
range_key="pk",
)
# Query on index
for user in User.email_index.query(hash_key="john@test.com"):
print(user.name)
Transactions
from pydynox import DynamoDBClient, Transaction
client = DynamoDBClient()
with Transaction(client) as tx:
tx.put("users", {"pk": "USER#1", "sk": "PROFILE", "name": "John"})
tx.put("orders", {"pk": "ORDER#1", "sk": "DETAILS", "user": "USER#1"})
tx.delete("temp", {"pk": "TEMP#1"})
Async Support
# All methods have async versions with async_ prefix
user = await User.async_get(pk="USER#123", sk="PROFILE")
await user.async_save()
await user.async_update(name="Jane")
await user.async_delete()
# Async iteration
async for user in User.async_query(hash_key="USER#123"):
print(user.name)
Pydantic Integration
from pydantic import BaseModel, EmailStr
from pydynox import DynamoDBClient
from pydynox.integrations.pydantic import dynamodb_model
client = DynamoDBClient()
@dynamodb_model(table="users", hash_key="pk", range_key="sk", client=client)
class User(BaseModel):
pk: str
sk: str
name: str
email: EmailStr
age: int = 0
# Pydantic validation works
user = User(pk="USER#123", sk="PROFILE", name="John", email="john@test.com")
user.save()
# Get
user = User.get(pk="USER#123", sk="PROFILE")
S3 Attribute (Large Files)
DynamoDB has a 400KB item limit. S3Attribute stores files in S3 and keeps metadata in DynamoDB. Upload on save, download on demand, delete when the item is deleted.
from pydynox import Model, ModelConfig
from pydynox.attributes import StringAttribute, S3Attribute
from pydynox._internal._s3 import S3File
class Document(Model):
model_config = ModelConfig(table="documents")
pk = StringAttribute(hash_key=True)
content = S3Attribute(bucket="my-bucket", prefix="docs/")
# Upload
doc = Document(pk="DOC#1")
doc.content = S3File(b"...", name="report.pdf", content_type="application/pdf")
doc.save()
# Download
doc = Document.get(pk="DOC#1")
data = doc.content.get_bytes() # Load to memory
doc.content.save_to("/path/to/file.pdf") # Stream to file
url = doc.content.presigned_url(3600) # Share via URL
# Metadata (no S3 call)
print(doc.content.size)
print(doc.content.content_type)
# Delete - removes from both DynamoDB and S3
doc.delete()
Table Management
from pydynox import DynamoDBClient
client = DynamoDBClient()
# Create table
client.create_table(
"users",
hash_key=("pk", "S"),
range_key=("sk", "S"),
wait=True,
)
# Create with on-demand billing (default)
client.create_table(
"users",
hash_key=("pk", "S"),
billing_mode="PAY_PER_REQUEST",
)
# Create with provisioned capacity
client.create_table(
"users",
hash_key=("pk", "S"),
billing_mode="PROVISIONED",
read_capacity=10,
write_capacity=5,
)
# Check if table exists
if not client.table_exists("users"):
client.create_table("users", hash_key=("pk", "S"))
# Delete table
client.delete_table("users")
Documentation
Full documentation: https://leandrodamascena.github.io/pydynox
License
MIT License
Inspirations
This project was inspired by:
- PynamoDB - The ORM-style API and model design
- Pydantic - Data validation patterns and integration approach
- dynarust - Rust DynamoDB client patterns
- dyntastic - Pydantic + DynamoDB integration ideas
Building from Source
Requirements
- Python 3.11+
- Rust 1.70+
- maturin
Setup
# Clone the repo
git clone https://github.com/leandrodamascena/pydynox.git
cd pydynox
# Install maturin
pip install maturin
# Build and install locally
maturin develop
# Or with uv
uv run maturin develop
Running Tests
# Install dev dependencies
pip install -e ".[dev]"
# Run tests
pytest
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 pydynox-0.18.0.tar.gz.
File metadata
- Download URL: pydynox-0.18.0.tar.gz
- Upload date:
- Size: 432.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 |
6db85d1afcd43b4685c6decf1a35abf8a71403bea593b969382374c38fc5b981
|
|
| MD5 |
b18eac678260ceda08572b7f5f7453e3
|
|
| BLAKE2b-256 |
d6dbe22b96f9d835c7156ea8926321587392f18f44e20270534831613938965c
|
Provenance
The following attestation bundles were made for pydynox-0.18.0.tar.gz:
Publisher:
release.yml on ferrumio/pydynox
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pydynox-0.18.0.tar.gz -
Subject digest:
6db85d1afcd43b4685c6decf1a35abf8a71403bea593b969382374c38fc5b981 - Sigstore transparency entry: 831991540
- Sigstore integration time:
-
Permalink:
ferrumio/pydynox@7e9926271edc77912255d1f33d741070345a6c00 -
Branch / Tag:
refs/tags/v0.18.0 - Owner: https://github.com/ferrumio
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7e9926271edc77912255d1f33d741070345a6c00 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pydynox-0.18.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: pydynox-0.18.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 8.2 MB
- Tags: CPython 3.14, 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 |
f2e3de6b95b273ca6236cae678757fbb7ea16872b593f856afe7263790000ae4
|
|
| MD5 |
ad0179337b1a1e60ba16e84925845eb6
|
|
| BLAKE2b-256 |
398b86f3a3257ebd3e8f38a720addb965bdcb4ec261e05b279418dedfbaf74e8
|
Provenance
The following attestation bundles were made for pydynox-0.18.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
release.yml on ferrumio/pydynox
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pydynox-0.18.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
f2e3de6b95b273ca6236cae678757fbb7ea16872b593f856afe7263790000ae4 - Sigstore transparency entry: 831991626
- Sigstore integration time:
-
Permalink:
ferrumio/pydynox@7e9926271edc77912255d1f33d741070345a6c00 -
Branch / Tag:
refs/tags/v0.18.0 - Owner: https://github.com/ferrumio
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7e9926271edc77912255d1f33d741070345a6c00 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pydynox-0.18.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: pydynox-0.18.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 7.8 MB
- Tags: CPython 3.14, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
66674d94970d23771fc5d8f2d93105e8922b331474a81334e713aad122cf049b
|
|
| MD5 |
2f5cb2418f49611981144a8edc45ef00
|
|
| BLAKE2b-256 |
88c7374fd749e58e6ddba42f0d4d344188b8a7b1083018382a2e801d6d57667e
|
Provenance
The following attestation bundles were made for pydynox-0.18.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:
Publisher:
release.yml on ferrumio/pydynox
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pydynox-0.18.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl -
Subject digest:
66674d94970d23771fc5d8f2d93105e8922b331474a81334e713aad122cf049b - Sigstore transparency entry: 831991643
- Sigstore integration time:
-
Permalink:
ferrumio/pydynox@7e9926271edc77912255d1f33d741070345a6c00 -
Branch / Tag:
refs/tags/v0.18.0 - Owner: https://github.com/ferrumio
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7e9926271edc77912255d1f33d741070345a6c00 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pydynox-0.18.0-cp314-cp314-macosx_11_0_arm64.whl.
File metadata
- Download URL: pydynox-0.18.0-cp314-cp314-macosx_11_0_arm64.whl
- Upload date:
- Size: 6.9 MB
- Tags: CPython 3.14, 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 |
47e91b6f0b660855d7d2f0823c0a76e4b01039e456dc124bbeecc952f7ff21b1
|
|
| MD5 |
6fa58ec60d358f092f0cf944b7d9ff4b
|
|
| BLAKE2b-256 |
2d6fa938a905516dfd5df17635a07b568800885907022a14b464c2adf768d37b
|
Provenance
The following attestation bundles were made for pydynox-0.18.0-cp314-cp314-macosx_11_0_arm64.whl:
Publisher:
release.yml on ferrumio/pydynox
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pydynox-0.18.0-cp314-cp314-macosx_11_0_arm64.whl -
Subject digest:
47e91b6f0b660855d7d2f0823c0a76e4b01039e456dc124bbeecc952f7ff21b1 - Sigstore transparency entry: 831991633
- Sigstore integration time:
-
Permalink:
ferrumio/pydynox@7e9926271edc77912255d1f33d741070345a6c00 -
Branch / Tag:
refs/tags/v0.18.0 - Owner: https://github.com/ferrumio
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7e9926271edc77912255d1f33d741070345a6c00 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pydynox-0.18.0-cp314-cp314-macosx_10_12_x86_64.whl.
File metadata
- Download URL: pydynox-0.18.0-cp314-cp314-macosx_10_12_x86_64.whl
- Upload date:
- Size: 7.9 MB
- Tags: CPython 3.14, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
31407818b22c135224da749c70af30fdb714783961607deac93409775309dc38
|
|
| MD5 |
79c98554d96702f6978565c4c2bcac29
|
|
| BLAKE2b-256 |
1f099016c407e812e9eeed5bc3751302e383e811a4cad713b09492dce40d1182
|
Provenance
The following attestation bundles were made for pydynox-0.18.0-cp314-cp314-macosx_10_12_x86_64.whl:
Publisher:
release.yml on ferrumio/pydynox
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pydynox-0.18.0-cp314-cp314-macosx_10_12_x86_64.whl -
Subject digest:
31407818b22c135224da749c70af30fdb714783961607deac93409775309dc38 - Sigstore transparency entry: 831991693
- Sigstore integration time:
-
Permalink:
ferrumio/pydynox@7e9926271edc77912255d1f33d741070345a6c00 -
Branch / Tag:
refs/tags/v0.18.0 - Owner: https://github.com/ferrumio
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7e9926271edc77912255d1f33d741070345a6c00 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pydynox-0.18.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: pydynox-0.18.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 8.2 MB
- 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 |
a714fe10ac4e9aac6d6e1af2759e45dd804cf020c1377a68dec93a8d26746529
|
|
| MD5 |
5108d6f7214c7a0946b6a29e35c40bb5
|
|
| BLAKE2b-256 |
c865851323e02bbd216915c6f1cfafb3b0465cbad17bfb6c17acc1d90ed4e4c0
|
Provenance
The following attestation bundles were made for pydynox-0.18.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
release.yml on ferrumio/pydynox
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pydynox-0.18.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
a714fe10ac4e9aac6d6e1af2759e45dd804cf020c1377a68dec93a8d26746529 - Sigstore transparency entry: 831991614
- Sigstore integration time:
-
Permalink:
ferrumio/pydynox@7e9926271edc77912255d1f33d741070345a6c00 -
Branch / Tag:
refs/tags/v0.18.0 - Owner: https://github.com/ferrumio
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7e9926271edc77912255d1f33d741070345a6c00 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pydynox-0.18.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: pydynox-0.18.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 7.8 MB
- Tags: CPython 3.13, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
41b697ce54f7d131363cdfb3620e74a29e597c065947833047b3916cbaf54456
|
|
| MD5 |
35787e414f28214a00b435a94f8794c9
|
|
| BLAKE2b-256 |
01619122abd12eaa27724618cf976736835b8f2fad41a862c6bc735a75efabf8
|
Provenance
The following attestation bundles were made for pydynox-0.18.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:
Publisher:
release.yml on ferrumio/pydynox
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pydynox-0.18.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl -
Subject digest:
41b697ce54f7d131363cdfb3620e74a29e597c065947833047b3916cbaf54456 - Sigstore transparency entry: 831991600
- Sigstore integration time:
-
Permalink:
ferrumio/pydynox@7e9926271edc77912255d1f33d741070345a6c00 -
Branch / Tag:
refs/tags/v0.18.0 - Owner: https://github.com/ferrumio
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7e9926271edc77912255d1f33d741070345a6c00 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pydynox-0.18.0-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: pydynox-0.18.0-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 6.9 MB
- 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 |
7c68775dca4e8fbd24b0b93835b5cafac1dbc40d2aa56bf2ea8bf9af9d561e0e
|
|
| MD5 |
eb04ee670f228e8b084bcce301b90569
|
|
| BLAKE2b-256 |
91bfa86f107d20eedd0bca0caed089067ef312626f8597dd34738c962f83f87e
|
Provenance
The following attestation bundles were made for pydynox-0.18.0-cp313-cp313-macosx_11_0_arm64.whl:
Publisher:
release.yml on ferrumio/pydynox
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pydynox-0.18.0-cp313-cp313-macosx_11_0_arm64.whl -
Subject digest:
7c68775dca4e8fbd24b0b93835b5cafac1dbc40d2aa56bf2ea8bf9af9d561e0e - Sigstore transparency entry: 831991654
- Sigstore integration time:
-
Permalink:
ferrumio/pydynox@7e9926271edc77912255d1f33d741070345a6c00 -
Branch / Tag:
refs/tags/v0.18.0 - Owner: https://github.com/ferrumio
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7e9926271edc77912255d1f33d741070345a6c00 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pydynox-0.18.0-cp313-cp313-macosx_10_12_x86_64.whl.
File metadata
- Download URL: pydynox-0.18.0-cp313-cp313-macosx_10_12_x86_64.whl
- Upload date:
- Size: 8.0 MB
- Tags: CPython 3.13, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4a78cbb37dc896eb2a660d960f9c45d504609b6eb39d9ed68fc21f9896631668
|
|
| MD5 |
2678b8dbb46d264de9380fdf73594b1f
|
|
| BLAKE2b-256 |
d4fc65ed190834c01fd0f8f17d979484eb1b4ab13f972ab4e301183e65d0b9db
|
Provenance
The following attestation bundles were made for pydynox-0.18.0-cp313-cp313-macosx_10_12_x86_64.whl:
Publisher:
release.yml on ferrumio/pydynox
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pydynox-0.18.0-cp313-cp313-macosx_10_12_x86_64.whl -
Subject digest:
4a78cbb37dc896eb2a660d960f9c45d504609b6eb39d9ed68fc21f9896631668 - Sigstore transparency entry: 831991668
- Sigstore integration time:
-
Permalink:
ferrumio/pydynox@7e9926271edc77912255d1f33d741070345a6c00 -
Branch / Tag:
refs/tags/v0.18.0 - Owner: https://github.com/ferrumio
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7e9926271edc77912255d1f33d741070345a6c00 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pydynox-0.18.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: pydynox-0.18.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 8.2 MB
- 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 |
62159ed1fd5921511b80d1f5007dfc27a1b2b68ee29fca4ed98f1cee6c3e95e9
|
|
| MD5 |
086ad8e55c72e945ef2f238cd06b2e3f
|
|
| BLAKE2b-256 |
054a8d1543ab211237829bbcb54811dccbc4db150a2bd0912c727937c57ac2c2
|
Provenance
The following attestation bundles were made for pydynox-0.18.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
release.yml on ferrumio/pydynox
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pydynox-0.18.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
62159ed1fd5921511b80d1f5007dfc27a1b2b68ee29fca4ed98f1cee6c3e95e9 - Sigstore transparency entry: 831991700
- Sigstore integration time:
-
Permalink:
ferrumio/pydynox@7e9926271edc77912255d1f33d741070345a6c00 -
Branch / Tag:
refs/tags/v0.18.0 - Owner: https://github.com/ferrumio
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7e9926271edc77912255d1f33d741070345a6c00 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pydynox-0.18.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: pydynox-0.18.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 7.8 MB
- Tags: CPython 3.12, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a095ddb74b96164391b1e76538ecf798ea0cefbf38145082705546f0d2904d34
|
|
| MD5 |
7060401a2ec576aa683e99452775523e
|
|
| BLAKE2b-256 |
2d1d06f02d14156626bbadc04050f7fa51c2ae553e763113a945994e5dc1508e
|
Provenance
The following attestation bundles were made for pydynox-0.18.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:
Publisher:
release.yml on ferrumio/pydynox
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pydynox-0.18.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl -
Subject digest:
a095ddb74b96164391b1e76538ecf798ea0cefbf38145082705546f0d2904d34 - Sigstore transparency entry: 831991661
- Sigstore integration time:
-
Permalink:
ferrumio/pydynox@7e9926271edc77912255d1f33d741070345a6c00 -
Branch / Tag:
refs/tags/v0.18.0 - Owner: https://github.com/ferrumio
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7e9926271edc77912255d1f33d741070345a6c00 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pydynox-0.18.0-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: pydynox-0.18.0-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 6.9 MB
- 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 |
9928357f2306af306b4bf5990d126cfa1964f081ce4b76609b63420a720a3c79
|
|
| MD5 |
5e82637cf9036494e61bcea7077afe0d
|
|
| BLAKE2b-256 |
f057c02280bb4322e14ee048873a203a4cd2339d501207f77cca860b675d2dfe
|
Provenance
The following attestation bundles were made for pydynox-0.18.0-cp312-cp312-macosx_11_0_arm64.whl:
Publisher:
release.yml on ferrumio/pydynox
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pydynox-0.18.0-cp312-cp312-macosx_11_0_arm64.whl -
Subject digest:
9928357f2306af306b4bf5990d126cfa1964f081ce4b76609b63420a720a3c79 - Sigstore transparency entry: 831991552
- Sigstore integration time:
-
Permalink:
ferrumio/pydynox@7e9926271edc77912255d1f33d741070345a6c00 -
Branch / Tag:
refs/tags/v0.18.0 - Owner: https://github.com/ferrumio
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7e9926271edc77912255d1f33d741070345a6c00 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pydynox-0.18.0-cp312-cp312-macosx_10_12_x86_64.whl.
File metadata
- Download URL: pydynox-0.18.0-cp312-cp312-macosx_10_12_x86_64.whl
- Upload date:
- Size: 7.9 MB
- Tags: CPython 3.12, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
338ecf5f2e42b975f0d5c1709d75bb2debd73c5c7b48d7257bed4d6edb5d15c2
|
|
| MD5 |
87d5671a9fd5a546af445ea37fbdf631
|
|
| BLAKE2b-256 |
f390c993f38c161773d634a67f7710a59af6ba79f629ca26ce2d6481726bf2a6
|
Provenance
The following attestation bundles were made for pydynox-0.18.0-cp312-cp312-macosx_10_12_x86_64.whl:
Publisher:
release.yml on ferrumio/pydynox
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pydynox-0.18.0-cp312-cp312-macosx_10_12_x86_64.whl -
Subject digest:
338ecf5f2e42b975f0d5c1709d75bb2debd73c5c7b48d7257bed4d6edb5d15c2 - Sigstore transparency entry: 831991568
- Sigstore integration time:
-
Permalink:
ferrumio/pydynox@7e9926271edc77912255d1f33d741070345a6c00 -
Branch / Tag:
refs/tags/v0.18.0 - Owner: https://github.com/ferrumio
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7e9926271edc77912255d1f33d741070345a6c00 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pydynox-0.18.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: pydynox-0.18.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 8.2 MB
- 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 |
872625bc8828f218e25941edf84c09bdcc8c51f64e35e4277dd54f5fef43eba9
|
|
| MD5 |
a1c83d80c947d32f518ff2f34d8bc8c0
|
|
| BLAKE2b-256 |
c19e00fa660f79ef4e804b47e57de15c9256bb58ab8c8254c43b0f7561dff001
|
Provenance
The following attestation bundles were made for pydynox-0.18.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
release.yml on ferrumio/pydynox
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pydynox-0.18.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
872625bc8828f218e25941edf84c09bdcc8c51f64e35e4277dd54f5fef43eba9 - Sigstore transparency entry: 831991586
- Sigstore integration time:
-
Permalink:
ferrumio/pydynox@7e9926271edc77912255d1f33d741070345a6c00 -
Branch / Tag:
refs/tags/v0.18.0 - Owner: https://github.com/ferrumio
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7e9926271edc77912255d1f33d741070345a6c00 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pydynox-0.18.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: pydynox-0.18.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 7.8 MB
- Tags: CPython 3.11, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
60fc9a2e7c13ed62ecc52cdf0a42c6c5b7ef8d8e8b2838f0a5e71e12612f7716
|
|
| MD5 |
24d6f3a55cea02ccee3a9778643ddbd1
|
|
| BLAKE2b-256 |
58b42d9fc7249d492f0d20d1cc3819e5baa8b9d51f64848d8f6960a3fa968a60
|
Provenance
The following attestation bundles were made for pydynox-0.18.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:
Publisher:
release.yml on ferrumio/pydynox
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pydynox-0.18.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl -
Subject digest:
60fc9a2e7c13ed62ecc52cdf0a42c6c5b7ef8d8e8b2838f0a5e71e12612f7716 - Sigstore transparency entry: 831991680
- Sigstore integration time:
-
Permalink:
ferrumio/pydynox@7e9926271edc77912255d1f33d741070345a6c00 -
Branch / Tag:
refs/tags/v0.18.0 - Owner: https://github.com/ferrumio
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7e9926271edc77912255d1f33d741070345a6c00 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pydynox-0.18.0-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: pydynox-0.18.0-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 6.9 MB
- 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 |
8d76fde071b3115cde01af9fca572de810055bbaf4d9f3f05923466a30783fb1
|
|
| MD5 |
f9f46ecb59a2898cee8deaf308eaa94c
|
|
| BLAKE2b-256 |
7acbf5d834bed808430ebf10881be540971376ed9f398b272706d569773924f8
|
Provenance
The following attestation bundles were made for pydynox-0.18.0-cp311-cp311-macosx_11_0_arm64.whl:
Publisher:
release.yml on ferrumio/pydynox
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pydynox-0.18.0-cp311-cp311-macosx_11_0_arm64.whl -
Subject digest:
8d76fde071b3115cde01af9fca572de810055bbaf4d9f3f05923466a30783fb1 - Sigstore transparency entry: 831991686
- Sigstore integration time:
-
Permalink:
ferrumio/pydynox@7e9926271edc77912255d1f33d741070345a6c00 -
Branch / Tag:
refs/tags/v0.18.0 - Owner: https://github.com/ferrumio
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7e9926271edc77912255d1f33d741070345a6c00 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pydynox-0.18.0-cp311-cp311-macosx_10_12_x86_64.whl.
File metadata
- Download URL: pydynox-0.18.0-cp311-cp311-macosx_10_12_x86_64.whl
- Upload date:
- Size: 7.9 MB
- Tags: CPython 3.11, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f0ca769f90f50fdec0e2ac93a4d9c3f179cdd6b3ea58e6dbdc4ad0f9952244cf
|
|
| MD5 |
2222a5952c079ea5fa588469ad96cc8b
|
|
| BLAKE2b-256 |
23a857c073e94fd0aff9b49203bca6e3df99559082bef89ffda17d972b5389ef
|
Provenance
The following attestation bundles were made for pydynox-0.18.0-cp311-cp311-macosx_10_12_x86_64.whl:
Publisher:
release.yml on ferrumio/pydynox
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pydynox-0.18.0-cp311-cp311-macosx_10_12_x86_64.whl -
Subject digest:
f0ca769f90f50fdec0e2ac93a4d9c3f179cdd6b3ea58e6dbdc4ad0f9952244cf - Sigstore transparency entry: 831991670
- Sigstore integration time:
-
Permalink:
ferrumio/pydynox@7e9926271edc77912255d1f33d741070345a6c00 -
Branch / Tag:
refs/tags/v0.18.0 - Owner: https://github.com/ferrumio
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7e9926271edc77912255d1f33d741070345a6c00 -
Trigger Event:
push
-
Statement type: