Skip to main content

pydynox 🐍⚙️

Main PyPI version Python versions License Downloads OpenSSF Scorecard OpenSSF Best Practices

A fast, async-first DynamoDB ORM for Python with a Rust core.

🎉 v1.0 is here! The API is stable and fully async. Production-ready with a Rust core for speed.

Why pydynox?

Py(thon) + Dyn(amoDB) + Ox(ide/Rust)

Key features

  • Async-first - Async by default, sync with sync_ prefix. True non-blocking I/O with Rust's tokio
  • Fast - Rust core for serialization, compression, and encryption. Zero Python runtime dependencies
  • Simple API - Class-based models like PynamoDB. Define once, use everywhere
  • Type-safe - Full type hints for IDE autocomplete and type checkers
  • Pydantic support - Use your existing Pydantic models with DynamoDB
  • Batteries included - TTL, hooks, auto-generate, optimistic locking, rate limiting, encryption, compression, S3 attributes, PartiQL, observability

Installation

pip install pydynox

Optional extras:

pip install pydynox[pydantic]       # Pydantic integration
pip install pydynox[opentelemetry]  # OpenTelemetry tracing

Quick start

Define a model

from pydynox import Model, ModelConfig
from pydynox.attributes import StringAttribute, NumberAttribute

class User(Model):
    model_config = ModelConfig(table="users")
    
    pk = StringAttribute(partition_key=True)
    sk = StringAttribute(sort_key=True)
    name = StringAttribute()
    age = NumberAttribute(default=0)

Async operations (default)

Async methods have no prefix. This is the default.

import asyncio

async def main():
    # Create
    user = User(pk="USER#123", sk="PROFILE", name="John")
    await user.save()

    # Read
    user = await User.get(pk="USER#123", sk="PROFILE")

    # Update
    await user.update(name="Jane", age=30)

    # Query
    async for user in User.query(partition_key="USER#123"):
        print(user.name)

    # Delete
    await user.delete()

asyncio.run(main())

Sync operations (use sync_ prefix)

For scripts, CLI tools, or code that doesn't need async.

# Create
user = User(pk="USER#123", sk="PROFILE", name="John")
user.sync_save()

# Read
user = User.sync_get(pk="USER#123", sk="PROFILE")

# Update
user.sync_update(name="Jane", age=30)

# Query
for user in User.sync_query(partition_key="USER#123"):
    print(user.name)

# Delete
user.sync_delete()

Async-first API

pydynox is async-first. Methods without prefix are async, methods with sync_ prefix are sync.

Async (default) Sync
await model.save() model.sync_save()
await model.delete() model.sync_delete()
await model.update() model.sync_update()
await Model.get() Model.sync_get()
async for x in Model.query() for x in Model.sync_query()
async for x in Model.scan() for x in Model.sync_scan()
await Model.batch_get() Model.sync_batch_get()
async with BatchWriter() with SyncBatchWriter()

Why async? Python's GIL blocks threads during I/O. With async, your app can handle other work while waiting for DynamoDB. pydynox releases the GIL during network calls, so async operations are truly non-blocking.

Conditions

# Save only if item doesn't exist
await user.save(condition=User.pk.not_exists())

# Delete with condition
await user.delete(condition=User.version == 5)

# Combine with & (AND) and | (OR)
await user.save(condition=User.pk.not_exists() | (User.version == 1))

Atomic updates

# Increment
await user.update(atomic=[User.age.add(1)])

# Append to list
await user.update(atomic=[User.tags.append(["verified"])])

# Multiple operations
await user.update(atomic=[
    User.age.add(1),
    User.tags.append(["premium"]),
])

Batch operations

from pydynox import BatchWriter, SyncBatchWriter, DynamoDBClient

client = DynamoDBClient()

# Async (default)
async with BatchWriter(client, "users") as batch:
    for i in range(100):
        batch.put({"pk": f"USER#{i}", "sk": "PROFILE", "name": f"User {i}"})

# Sync
with SyncBatchWriter(client, "users") as batch:
    batch.put({"pk": "USER#1", "sk": "PROFILE", "name": "John"})

Global Secondary Index

from pydynox.indexes import GlobalSecondaryIndex

class User(Model):
    model_config = ModelConfig(table="users")
    
    pk = StringAttribute(partition_key=True)
    email = StringAttribute()
    
    email_index = GlobalSecondaryIndex(
        index_name="email-index",
        partition_key="email",
    )

# Async
async for user in User.email_index.query(partition_key="john@test.com"):
    print(user.name)

# Sync
for user in User.email_index.sync_query(partition_key="john@test.com"):
    print(user.name)

Transactions

from pydynox import DynamoDBClient, Transaction

client = DynamoDBClient()

async 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"})

Pydantic integration

from pydantic import BaseModel, EmailStr
from pydynox import DynamoDBClient
from pydynox.integrations.pydantic import dynamodb_model

client = DynamoDBClient()

@dynamodb_model(table="users", partition_key="pk", sort_key="sk", client=client)
class User(BaseModel):
    pk: str
    sk: str
    name: str
    email: EmailStr

# Async (default)
user = User(pk="USER#123", sk="PROFILE", name="John", email="john@test.com")
await user.save()
user = await User.get(pk="USER#123", sk="PROFILE")

# Sync
user.sync_save()
user = User.sync_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.

from pydynox.attributes import S3Attribute, S3File

class Document(Model):
    model_config = ModelConfig(table="documents")
    
    pk = StringAttribute(partition_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")
await doc.save()

# Download (async)
data = await doc.content.get_bytes()
await doc.content.save_to("/path/to/file.pdf")
url = await doc.content.presigned_url(3600)

# Download (sync)
data = doc.content.sync_get_bytes()
doc.content.sync_save_to("/path/to/file.pdf")

Table management

# Async (default)
await User.create_table(wait=True)
if await User.table_exists():
    print("Table exists")

# Sync
User.sync_create_table(wait=True)
if User.sync_table_exists():
    print("Table exists")

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.

Documentation

Full documentation: https://ferrumio.github.io/pydynox

License

Apache 2.0 License

Inspirations

  • PynamoDB - The ORM-style API and model design
  • Pydantic - Data validation patterns
  • dynarust - Rust DynamoDB client patterns
  • dyntastic - Pydantic + DynamoDB integration ideas

Building from source

# Clone
git clone https://github.com/ferrumio/pydynox.git
cd pydynox

# Build (requires Python 3.11+, Rust 1.70+)
pip install maturin
maturin develop

# Test
pip install -e ".[dev]"
pytest

Download files

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

Source Distribution

pydynox-1.3.1.tar.gz (570.1 kB view details)

Uploaded Source

Built Distributions

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

pydynox-1.3.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.5 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

pydynox-1.3.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (6.2 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

pydynox-1.3.1-cp314-cp314-macosx_11_0_arm64.whl (5.2 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

pydynox-1.3.1-cp314-cp314-macosx_10_12_x86_64.whl (6.2 MB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

pydynox-1.3.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.5 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

pydynox-1.3.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (6.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

pydynox-1.3.1-cp313-cp313-macosx_11_0_arm64.whl (5.2 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pydynox-1.3.1-cp313-cp313-macosx_10_12_x86_64.whl (6.2 MB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

pydynox-1.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

pydynox-1.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (6.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

pydynox-1.3.1-cp312-cp312-macosx_11_0_arm64.whl (5.2 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pydynox-1.3.1-cp312-cp312-macosx_10_12_x86_64.whl (6.2 MB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

pydynox-1.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

pydynox-1.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (6.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

pydynox-1.3.1-cp311-cp311-macosx_11_0_arm64.whl (5.2 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pydynox-1.3.1-cp311-cp311-macosx_10_12_x86_64.whl (6.2 MB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

File details

Details for the file pydynox-1.3.1.tar.gz.

File metadata

  • Download URL: pydynox-1.3.1.tar.gz
  • Upload date:
  • Size: 570.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pydynox-1.3.1.tar.gz
Algorithm Hash digest
SHA256 7ca3fc7119c97e80864edf978eb628b263cda8f7bbd3a6f4de78f4f3704befa3
MD5 fdb4e558d288a156a8aadd28e036732b
BLAKE2b-256 66b68c2f55c0856e95bc10cf25bb510c2f09618e9cbd5742cd391d67465c990f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pydynox-1.3.1.tar.gz:

Publisher: release.yml on ferrumio/pydynox

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

File details

Details for the file pydynox-1.3.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pydynox-1.3.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 99986159ac6f9f0aebb05cd15c37ba5b2a029048e969dcb71582e157fd432a14
MD5 a61df3533f37a477fd569f12af779d4f
BLAKE2b-256 a620c99a9f89eda28cf0a76eb8132bddbcdd9bf6363041e1440b21c925b2413d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pydynox-1.3.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on ferrumio/pydynox

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

File details

Details for the file pydynox-1.3.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pydynox-1.3.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 40836e269263557e775b24a571a8c38b6098d49094e10c9c7ba1a2805480bc8f
MD5 e3b1e01ebc6610f295444e20a4ddf512
BLAKE2b-256 dad8d3390b1bee1da55a82b9bbfd623dac56f5d3a8b21e3b6a0592b017f66d42

See more details on using hashes here.

Provenance

The following attestation bundles were made for pydynox-1.3.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on ferrumio/pydynox

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

File details

Details for the file pydynox-1.3.1-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pydynox-1.3.1-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 08370236e85d52d8075a0f41dbd9490815957c102615939e3eb51cb80426556c
MD5 47179bc9c74777210dca58f712924bd2
BLAKE2b-256 0c266a88c44d975211534364d236f063426eb972ef58a2ae4f4d0caf3a1f7870

See more details on using hashes here.

Provenance

The following attestation bundles were made for pydynox-1.3.1-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: release.yml on ferrumio/pydynox

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

File details

Details for the file pydynox-1.3.1-cp314-cp314-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for pydynox-1.3.1-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 b64fb56afd00bd23ac35fc6e5b77f4485be27cf29f799794269a8c8a1723237d
MD5 c2025212e9dc9e52ec5640767f3d970a
BLAKE2b-256 8ae4a4d8845cf110d5f9f135501b42ffd81a6182dfc7b3d7efd8c7d8e82ea77f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pydynox-1.3.1-cp314-cp314-macosx_10_12_x86_64.whl:

Publisher: release.yml on ferrumio/pydynox

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

File details

Details for the file pydynox-1.3.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pydynox-1.3.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f16a1594371bc7f26d2e9e1437f3eaafda05c54219611c06ee1ecaaddd4c4fbb
MD5 5c48bf34a32362fbd9c7e0794383f306
BLAKE2b-256 41d1d199226ecfa6633955aac53fb8fdc0fd85cb4fcd7d4b9d9f35ffbd1eb74f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pydynox-1.3.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on ferrumio/pydynox

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

File details

Details for the file pydynox-1.3.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pydynox-1.3.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 6ea949f45a7014216cedddc55b12f8b893025cbe102e342b101b67f6a4af2840
MD5 76b676642e74b89c3f1c310976f44f50
BLAKE2b-256 585bffc7b0715420246ce678215e8d56319263b6e5dbc6307d6250eaa771c51c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pydynox-1.3.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on ferrumio/pydynox

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

File details

Details for the file pydynox-1.3.1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pydynox-1.3.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 49e7e3029bf5aff7daa9069c492bcad62805c097b4a8547c3b23bde33d67f6a9
MD5 ec805c87f26db879d5a1dd3d68483f07
BLAKE2b-256 c39c484fc747c3b3094ed5301c47a46c292311a99b745b2fa729e374ba3921e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for pydynox-1.3.1-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: release.yml on ferrumio/pydynox

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

File details

Details for the file pydynox-1.3.1-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for pydynox-1.3.1-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 0b1d6ba5c7b4d86c196c8a2a8b2ba7980d6aad8ac3fafb01233b7f8570119514
MD5 79b4af0c5165c81b768ff34dae0d53ae
BLAKE2b-256 c877a74a4518b09e64a813b5cc5c0b4b51aa6ad451935cec54556ab3de724a05

See more details on using hashes here.

Provenance

The following attestation bundles were made for pydynox-1.3.1-cp313-cp313-macosx_10_12_x86_64.whl:

Publisher: release.yml on ferrumio/pydynox

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

File details

Details for the file pydynox-1.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pydynox-1.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b9cb61624d34ad755c5e8594a4369a900c332b3de33c3bb42fb2660e2864b353
MD5 39860304ecffd02335a69b6ce99aa0c6
BLAKE2b-256 08bf2e336a85d04a860ce656c5cfd1999cad2286d4632dace53448efc98bdd57

See more details on using hashes here.

Provenance

The following attestation bundles were made for pydynox-1.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on ferrumio/pydynox

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

File details

Details for the file pydynox-1.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pydynox-1.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 bcb6bac4e15f2975a14556e58a7a327c84464836213939fd2e0200fe8f8a9a10
MD5 fb58895f0fb5f24174c0df9aa96a3cd9
BLAKE2b-256 b88d3d8404cc3bd88e2b23687fe5350ceb08e8157c421d0c1a27a2d31f6d3139

See more details on using hashes here.

Provenance

The following attestation bundles were made for pydynox-1.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on ferrumio/pydynox

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

File details

Details for the file pydynox-1.3.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pydynox-1.3.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9aa991a4530bb4b925f0667a6004eeb977fb7a1d789733e67ad2ce1f02b6de5a
MD5 379302ae109e1c98f494cd01a9770c22
BLAKE2b-256 d3db2c1b9773c650728fcc0e2076870641ab47a56db19458d2032a3a05e480e7

See more details on using hashes here.

Provenance

The following attestation bundles were made for pydynox-1.3.1-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release.yml on ferrumio/pydynox

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

File details

Details for the file pydynox-1.3.1-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for pydynox-1.3.1-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 7f63b37b78a7079d3398730ab6fe1b45bc246cacb2e1a28495a754510eb58fa3
MD5 b6b6836d76bae89ad36ef047bc3581bb
BLAKE2b-256 d43bf8227248fe6a0b0740847ecf6bf0fcb7c5c63e5fc23a6fc944870ab48988

See more details on using hashes here.

Provenance

The following attestation bundles were made for pydynox-1.3.1-cp312-cp312-macosx_10_12_x86_64.whl:

Publisher: release.yml on ferrumio/pydynox

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

File details

Details for the file pydynox-1.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pydynox-1.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4cf5c364b160e7e0012232f19896515199be6965510779e9bfa1e525276da91e
MD5 633ab1b6cef4c3759bb98636da1bf05e
BLAKE2b-256 549f33d867a4be4fe2d7a5deaa5de34e1a51a541b8c9684982dc4d8481979d0d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pydynox-1.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on ferrumio/pydynox

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

File details

Details for the file pydynox-1.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pydynox-1.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 110106aabf3838349527b8564d7f8aad978dd9fe6b3a6c898c0e31f88975bac6
MD5 da322c256129790c545fa4e68dfdc2c7
BLAKE2b-256 0e7df87f603b94746bebdf8cc55b69a3a1aad7c3f8f40b76636aec8b5e73e3c7

See more details on using hashes here.

Provenance

The following attestation bundles were made for pydynox-1.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on ferrumio/pydynox

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

File details

Details for the file pydynox-1.3.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pydynox-1.3.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ba0c3a7c5fc32602074fc5e2dc8fb152381bf49038a778f8cfc055eaca911b31
MD5 dc2c4b0067016d1f15390b30e090351a
BLAKE2b-256 4baa7621ef8e64568b10e68766f0f15b85330e7b583efb451374e59f351dd3ec

See more details on using hashes here.

Provenance

The following attestation bundles were made for pydynox-1.3.1-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: release.yml on ferrumio/pydynox

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

File details

Details for the file pydynox-1.3.1-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for pydynox-1.3.1-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 694d769a76904987122e41ff604baa6f76ec304415ccbfd08e2cb1229ca44747
MD5 f09bcacace23f634d50671204fa873ad
BLAKE2b-256 e6a1e17f28c5267c06da3ebc4b9545ac01aa8d3c73176e79aad9a76f006f9825

See more details on using hashes here.

Provenance

The following attestation bundles were made for pydynox-1.3.1-cp311-cp311-macosx_10_12_x86_64.whl:

Publisher: release.yml on ferrumio/pydynox

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

Release history Release notifications | RSS feed

1.4.0

17 files

This release

1.3.1 This release

17 files

1.3.0

17 files

1.2.0

17 files

1.1.1

17 files

1.1.0

17 files

1.0.0

17 files

0.27.0

17 files

0.26.0

17 files

0.25.0

17 files

0.24.0

17 files

0.23.0

17 files

0.22.0

17 files

0.21.0

17 files

0.20.0

17 files

0.19.0

17 files

0.18.0

17 files

0.17.0

17 files

0.16.0

17 files

0.15.0

17 files

0.14.0

17 files

0.13.0

17 files

0.12.0

17 files

0.11.0

17 files

0.10.0

17 files

0.9.0

17 files

0.8.0

17 files

0.7.0

17 files

0.6.0

17 files

0.5.0

17 files

0.4.0

17 files

0.3.0

17 files

0.2.0

1 file

0.1.1

1 file

0.1.0

1 file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page