Skip to main content

Python bindings for nono capability-based sandboxing

Project description

nono-py

Python bindings for nono, a capability-based sandboxing library.

nono provides OS-enforced sandboxing using Landlock (Linux) and Seatbelt (macOS). Once a sandbox is applied, unauthorized operations are structurally impossible.

Installation

pip install nono-py

From source

Requires Rust toolchain and maturin:

pip install maturin
maturin develop

Usage

from nono_py import CapabilitySet, AccessMode, apply, is_supported

# Check platform support
if not is_supported():
    print("Sandboxing not supported on this platform")
    exit(1)

# Build capability set
caps = CapabilitySet()
caps.allow_path("/tmp", AccessMode.READ_WRITE)
caps.allow_path("/home/user/project", AccessMode.READ)
caps.allow_file("/etc/hosts", AccessMode.READ)
caps.block_network()

# Apply sandbox (irreversible!)
apply(caps)

# Now the process can only access granted paths
# Network access is blocked
# This applies to all child processes too

API Reference

Sandboxing

CapabilitySet + apply()

Sandbox the current process (irreversible):

caps = CapabilitySet()
caps.allow_path("/tmp", AccessMode.READ_WRITE)
caps.block_network()
apply(caps)  # Process is now sandboxed

sandboxed_exec

Run a command in a sandboxed child process. The parent stays unsandboxed and can call this repeatedly with different capabilities:

caps = CapabilitySet()
caps.allow_path("/workspace", AccessMode.READ_WRITE)
caps.block_network()
result = sandboxed_exec(caps, ["python", "agent.py"], cwd="/workspace", timeout_secs=30.0)
print(result.stdout, result.exit_code)

sandboxed_exec does not inherit the parent process environment by default. Pass only the variables the child needs through env=[("NAME", "value")]. Full parent environment inheritance requires inherit_env=True; dynamic-loader variables such as LD_* and DYLD_* are rejected.

Network Proxy

Domain-filtered network access for sandboxed children. The proxy intercepts outbound HTTP requests and enforces a host allowlist. For API calls, it performs credential injection: the sandboxed process sends a dummy token, and the proxy transparently swaps in the real API key (loaded from the OS keyring) before forwarding upstream. The sandboxed process never sees the real secret.

from nono_py import ProxyConfig, RouteConfig, start_proxy

config = ProxyConfig(
    allowed_hosts=["api.openai.com", "*.anthropic.com"],
    routes=[
        RouteConfig(prefix="/openai", upstream="https://api.openai.com", credential_key="openai-key"),
    ],
)
proxy = start_proxy(config)

# Inject only the current proxy/session env vars into the sandboxed child
env = proxy.sandbox_env(extra_env=[("NONO_SESSION_ID", "session-001")])
result = sandboxed_exec(caps, ["python", "agent.py"], env=env)

# Audit trail
events = proxy.drain_audit_events()
proxy.shutdown()

Filesystem Snapshots

Content-addressable snapshots with Merkle-committed state and rollback:

from nono_py import SnapshotManager, ExclusionConfig

mgr = SnapshotManager(
    session_dir="~/.nono/rollbacks/session-001",
    tracked_paths=["/workspace"],
    exclusion=ExclusionConfig(exclude_patterns=["node_modules", "__pycache__"]),
)
mgr.create_baseline()

# ... agent runs and modifies files ...

manifest, changes = mgr.create_incremental()
for change in changes:
    print(f"{change.change_type}: {change.path}")

# Roll back
mgr.restore_to(snapshot_number=0)

Audit Trail

Append-only, Merkle-chained audit logging with tamper detection:

from nono_py.audit import AlphaRecorder, verify_log, iter_session, session_started, session_ended

recorder = AlphaRecorder()
with open("audit-events.ndjson", "w") as f:
    recorder.write(f, session_started(started="2026-01-01T00:00:00Z", command=["agent"]))
    recorder.write(f, session_ended(ended="2026-01-01T00:05:00Z", exit_code=0))

# Verify integrity — detects any tampering
result = verify_log("/path/to/session")
assert result["records_verified"]

Other Classes

  • QueryContext - Check permissions without applying the sandbox
  • SandboxState - Serialize/restore capability sets as JSON
  • SupportInfo - Platform support details
  • Policy / ResolvedPolicy - Load and resolve policy.json documents
  • SessionMetadata - Session audit trail with Merkle roots and network events
  • ExecResult - Result of sandboxed_exec (stdout, stderr, exit_code)
  • InjectMode - Credential injection method enum

Functions

  • apply(caps) - Apply sandbox (irreversible)
  • sandboxed_exec(caps, command, ...) - Run command in sandboxed child
  • start_proxy(config) - Start network filtering proxy
  • is_supported() / support_info() - Platform support
  • load_policy(json) / load_embedded_policy() - Policy loading
  • embedded_policy_json() - Raw embedded policy JSON
  • validate_deny_overlaps(paths, caps) - Validate deny paths against capabilities

Platform Support

Platform Backend Requirements
Linux Landlock Kernel 5.13+ with Landlock enabled
macOS Seatbelt macOS 10.5+
Windows - Not supported

Development

# Install dev dependencies
pip install maturin pytest mypy

# Build and install for development
make dev

# Run tests
make test

# Run linters
make lint

# Format code
make fmt

License

Apache-2.0

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

nono_py-0.10.1.tar.gz (180.3 kB view details)

Uploaded Source

Built Distributions

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

nono_py-0.10.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

nono_py-0.10.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.7 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

nono_py-0.10.1-cp314-cp314-macosx_11_0_arm64.whl (3.3 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

nono_py-0.10.1-cp314-cp314-macosx_10_12_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

nono_py-0.10.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

nono_py-0.10.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

nono_py-0.10.1-cp313-cp313-macosx_11_0_arm64.whl (3.3 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

nono_py-0.10.1-cp313-cp313-macosx_10_12_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

nono_py-0.10.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

nono_py-0.10.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

nono_py-0.10.1-cp312-cp312-macosx_11_0_arm64.whl (3.3 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

nono_py-0.10.1-cp312-cp312-macosx_10_12_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

nono_py-0.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

nono_py-0.10.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

nono_py-0.10.1-cp311-cp311-macosx_11_0_arm64.whl (3.3 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

nono_py-0.10.1-cp311-cp311-macosx_10_12_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

nono_py-0.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

nono_py-0.10.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

nono_py-0.10.1-cp310-cp310-macosx_11_0_arm64.whl (3.3 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

nono_py-0.10.1-cp310-cp310-macosx_10_12_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

File details

Details for the file nono_py-0.10.1.tar.gz.

File metadata

  • Download URL: nono_py-0.10.1.tar.gz
  • Upload date:
  • Size: 180.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for nono_py-0.10.1.tar.gz
Algorithm Hash digest
SHA256 92b6e752be708380ceccaa6f11bacdb7251fbd4b3c91cce981e7553da99b3fbf
MD5 24b2ac090d0e3b90996c6c09dcf5f7bd
BLAKE2b-256 f19895ffd4e37e924af1c7c5b9d131db62f4e1494e9ff0863b4cc8b7e5af88cb

See more details on using hashes here.

Provenance

The following attestation bundles were made for nono_py-0.10.1.tar.gz:

Publisher: publish.yml on always-further/nono-py

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

File details

Details for the file nono_py-0.10.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for nono_py-0.10.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 12db2cd45638e7576f8972090c0344d02a8b6d9c7ed6435fa2fbf1c8797742ae
MD5 20fd28fd6e910cbc645a517e360b4dd4
BLAKE2b-256 95e261feb295647530e31bcf891ba16b0080ad65dbb2e7b7549fb8c8947830d0

See more details on using hashes here.

Provenance

The following attestation bundles were made for nono_py-0.10.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on always-further/nono-py

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

File details

Details for the file nono_py-0.10.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for nono_py-0.10.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 04f1d46c3a85bdd0cc89d88e2771867941b6aff15b5dbd26104046297f86283e
MD5 76b975f740ba398a35a45bd7f76d6793
BLAKE2b-256 2ad7d87b4e934763379423a7545b901f27147beb3a571eb24eea1ea95f96b7ba

See more details on using hashes here.

Provenance

The following attestation bundles were made for nono_py-0.10.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on always-further/nono-py

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

File details

Details for the file nono_py-0.10.1-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for nono_py-0.10.1-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2a2f9d944b71b930aa7e7c4d156b363dfb63a85b3d07815f7d7cb6510fd531d2
MD5 36461bf04a53aa3c285a281b5492126f
BLAKE2b-256 edd92b4e26f650938e8081510681204c94cc1fcc97060ffdf4b71464007a1788

See more details on using hashes here.

Provenance

The following attestation bundles were made for nono_py-0.10.1-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: publish.yml on always-further/nono-py

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

File details

Details for the file nono_py-0.10.1-cp314-cp314-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for nono_py-0.10.1-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 6c23893d42143b8a6d9b3ba309fe1cd7be06d4744c51669c34563fe7e3c20227
MD5 c8fe78359b511fdc44d86f3fbc3fb658
BLAKE2b-256 c5c651074c040c11166a29a7e32314bc514494b7ff6061a6d03d78d32375ab26

See more details on using hashes here.

Provenance

The following attestation bundles were made for nono_py-0.10.1-cp314-cp314-macosx_10_12_x86_64.whl:

Publisher: publish.yml on always-further/nono-py

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

File details

Details for the file nono_py-0.10.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for nono_py-0.10.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fa7c5989c9854a5c0a20e2c641b9c75f65ae38a445fa27d00192b1f1f62f8b62
MD5 15df8e0bf3c89d920a666d609ad50839
BLAKE2b-256 ddba2d852f888f3b6aae4b291fbbae0724f5db9a4e7d27ce4edcac673987d286

See more details on using hashes here.

Provenance

The following attestation bundles were made for nono_py-0.10.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on always-further/nono-py

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

File details

Details for the file nono_py-0.10.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for nono_py-0.10.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0b00fe06ccea84bb098293cb4638735af18d1b1807a487330e3a4f0aaab2bf55
MD5 15818162bef1dcca80b91358a1df38fa
BLAKE2b-256 3b29da10a4dc9e1e24d05e27a7b22e0359969123109ee2a1e6bd2377a187bf14

See more details on using hashes here.

Provenance

The following attestation bundles were made for nono_py-0.10.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on always-further/nono-py

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

File details

Details for the file nono_py-0.10.1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for nono_py-0.10.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e6bf7dd1d09466f41948d55b6ac132cb49a6a7566a86be7eb4c1e739fc94af7f
MD5 7d57acc5605e5db8afb88d94d21328cd
BLAKE2b-256 f4efc648c9eabec2eb709a9d963872b41e0bee12e792651a2cf001cbd2430cd3

See more details on using hashes here.

Provenance

The following attestation bundles were made for nono_py-0.10.1-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: publish.yml on always-further/nono-py

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

File details

Details for the file nono_py-0.10.1-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for nono_py-0.10.1-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 a26518332c1edc7b2b450eac0323b95d326fcfab302b76bbb8d3ba47c31c1315
MD5 2d47f404182674eb4b636c93ab55e681
BLAKE2b-256 1ed737f25da8d189409f6f857139545d6190401f2934d1c955fe7b27b0c57af3

See more details on using hashes here.

Provenance

The following attestation bundles were made for nono_py-0.10.1-cp313-cp313-macosx_10_12_x86_64.whl:

Publisher: publish.yml on always-further/nono-py

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

File details

Details for the file nono_py-0.10.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for nono_py-0.10.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a33f5c56c7e7e383fd03d00c20b05b359d35b104a4799e341dbdf0b369465909
MD5 545e381d1a8e5125042d2426a4d9f29a
BLAKE2b-256 2099c8363daba7b169569abc1be3a071e45a519ead4946652e41ba12d98a3cf3

See more details on using hashes here.

Provenance

The following attestation bundles were made for nono_py-0.10.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on always-further/nono-py

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

File details

Details for the file nono_py-0.10.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for nono_py-0.10.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e81e20b1d2d017f6073d080fd607e0eb2bd2961960824a75faa7731e30e33880
MD5 444806f8471bbe0dd4a2d99caeb6f1da
BLAKE2b-256 6c16e80fd77c6a306307f737c11fc5b1e63a9ae677ae6b3b8fa29984bcdbaaec

See more details on using hashes here.

Provenance

The following attestation bundles were made for nono_py-0.10.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on always-further/nono-py

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

File details

Details for the file nono_py-0.10.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for nono_py-0.10.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 646697ed44f94f5c31360bf4d5bad959d18ed28b0595f3e28a233dae82605a7f
MD5 b333cd028cb6a38163797cde2dc9202f
BLAKE2b-256 9f2d0225d2648359c7f217cc5a9d7dad287c43ffd84146d6ce035a044cd1680f

See more details on using hashes here.

Provenance

The following attestation bundles were made for nono_py-0.10.1-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: publish.yml on always-further/nono-py

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

File details

Details for the file nono_py-0.10.1-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for nono_py-0.10.1-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d67b086d5c33a39c490c53dcd86dbc04848cd1427c85d12082f6cfcfadf89866
MD5 58ec893b314bbd0e5763ba0d4370cae5
BLAKE2b-256 8bbec7471b9be1bd1acb13f609b1b228e8fe8dd96cd64f1aa1229457173112b1

See more details on using hashes here.

Provenance

The following attestation bundles were made for nono_py-0.10.1-cp312-cp312-macosx_10_12_x86_64.whl:

Publisher: publish.yml on always-further/nono-py

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

File details

Details for the file nono_py-0.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for nono_py-0.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ff9c9d4a8e752abf21ea93db6316d69395e8cccd04d80d2b70b0974a24298d2b
MD5 0b2c747df5f3ad0f8b1268dc36940078
BLAKE2b-256 9b7b23ce7de093c9de749fafaac681bdbec1d2fe837c24254d16d8017011020e

See more details on using hashes here.

Provenance

The following attestation bundles were made for nono_py-0.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on always-further/nono-py

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

File details

Details for the file nono_py-0.10.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for nono_py-0.10.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 68f9f06b687b17da5cfbd8eaa968ddb6d6ef20ec8237cf45f0a2f1278411c694
MD5 b2381ca3a4004d34c50ce562e3aa9710
BLAKE2b-256 9a6706deb387b2ae9863729c5041d3a1fa724e8ce5e984e8d3b3ab0934e709b1

See more details on using hashes here.

Provenance

The following attestation bundles were made for nono_py-0.10.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on always-further/nono-py

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

File details

Details for the file nono_py-0.10.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for nono_py-0.10.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 afc2f785ef3ebd7d99d945d5b71b8ee7cc71d389b0f791714bed484a4b992e6a
MD5 fdc3930e4c00849850507a91c215212a
BLAKE2b-256 73548d42ba75c61af32e3bc23fe95a07e4ca4e64eb44af32f207ee6d08c02112

See more details on using hashes here.

Provenance

The following attestation bundles were made for nono_py-0.10.1-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: publish.yml on always-further/nono-py

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

File details

Details for the file nono_py-0.10.1-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for nono_py-0.10.1-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 71eed4042d3594930519d4c6ac1e9a11e332ba9059c343971c31dc857366e6be
MD5 2b07f399a3c38f5f8f8896d92d46b2b2
BLAKE2b-256 aaf8be02ad10b38bb4969ef8e98dfa6a51a45139f9ead7b6fcd6e2fdd5590ba2

See more details on using hashes here.

Provenance

The following attestation bundles were made for nono_py-0.10.1-cp311-cp311-macosx_10_12_x86_64.whl:

Publisher: publish.yml on always-further/nono-py

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

File details

Details for the file nono_py-0.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for nono_py-0.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b20479a42e8ff8bd65ed31409666e52782648fa649d42c86e31354417805f39f
MD5 659414ed0995356b8256ce56b49c9c0c
BLAKE2b-256 432a9b0529bff845b8b42fad9fc0ca5bb09bafcac015c1245fb877d657b18380

See more details on using hashes here.

Provenance

The following attestation bundles were made for nono_py-0.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on always-further/nono-py

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

File details

Details for the file nono_py-0.10.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for nono_py-0.10.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b28ac04963ebd765e8fc84049847efb4fc8ecabc55067e0899b9f80413100674
MD5 a19b33fbe8b1fc890418d7f29aad5a11
BLAKE2b-256 d8a7f20fc697609d422601dea4f849bfe3381bf6437f2be103bf2366fb3776b0

See more details on using hashes here.

Provenance

The following attestation bundles were made for nono_py-0.10.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on always-further/nono-py

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

File details

Details for the file nono_py-0.10.1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for nono_py-0.10.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1c677ed6bec7d04a139ae0e5cdd216bb7deb1d0f6ae25bd5b9f1b95619a6a481
MD5 13adf2b75afa17ca12d3056e640e5ecd
BLAKE2b-256 eb8c0e71e547c9f5d556496b9afc9a28acc539b3007c27aaee88948500210763

See more details on using hashes here.

Provenance

The following attestation bundles were made for nono_py-0.10.1-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: publish.yml on always-further/nono-py

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

File details

Details for the file nono_py-0.10.1-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for nono_py-0.10.1-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 b4b508ebb76780fd8978574378167fdb49683a115084a5a6135daf8db5671e4a
MD5 797dfe0271314701d090635d33a1654e
BLAKE2b-256 d870b781adf8a4c12288d9bd9e723dd0f0be0fb098125f9aa091078d332fd53e

See more details on using hashes here.

Provenance

The following attestation bundles were made for nono_py-0.10.1-cp310-cp310-macosx_10_12_x86_64.whl:

Publisher: publish.yml on always-further/nono-py

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