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.9.2.tar.gz (176.1 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.9.2-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.9.2-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.9.2-cp314-cp314-macosx_11_0_arm64.whl (3.3 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

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

Uploaded CPython 3.14macOS 10.12+ x86-64

nono_py-0.9.2-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.9.2-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.9.2-cp313-cp313-macosx_11_0_arm64.whl (3.3 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.13macOS 10.12+ x86-64

nono_py-0.9.2-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.9.2-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.9.2-cp312-cp312-macosx_11_0_arm64.whl (3.3 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.12macOS 10.12+ x86-64

nono_py-0.9.2-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.9.2-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.9.2-cp311-cp311-macosx_11_0_arm64.whl (3.3 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.11macOS 10.12+ x86-64

nono_py-0.9.2-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.9.2-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.9.2-cp310-cp310-macosx_11_0_arm64.whl (3.3 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

nono_py-0.9.2-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.9.2.tar.gz.

File metadata

  • Download URL: nono_py-0.9.2.tar.gz
  • Upload date:
  • Size: 176.1 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.9.2.tar.gz
Algorithm Hash digest
SHA256 5dab5225f00e109928cee71d584060102be886e8ea6665ca5c9b5e6d5ce5009a
MD5 367fce9c4cd5392509cb166ba06605fc
BLAKE2b-256 358594a97c579830efe270686c00d76f35c55b7f485322053d6bb7b54c7434f4

See more details on using hashes here.

Provenance

The following attestation bundles were made for nono_py-0.9.2.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.9.2-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for nono_py-0.9.2-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6e916743301ac9d9c5497fc49cf915411d2b40025136ee2ebc484134f9cc320e
MD5 dfea8dfda2a25ab7370adac4f59ae4b0
BLAKE2b-256 c6803f5d7d58e2620f4288c04de500b4896b7e203007e64b75fea78ca7b852c5

See more details on using hashes here.

Provenance

The following attestation bundles were made for nono_py-0.9.2-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.9.2-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for nono_py-0.9.2-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 137e1e005371ceda6a8c8fa004632018cb642b45c5fceb164afad1d7a14e2d25
MD5 2683668a9f69cf57e9f6b2b3c9673ba1
BLAKE2b-256 adfd116a8d8e7dd05fa84bc6897bf90e40f3f30c6e1c02eb688424a8f8f5ba05

See more details on using hashes here.

Provenance

The following attestation bundles were made for nono_py-0.9.2-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.9.2-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for nono_py-0.9.2-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e2155beb8f512ded52485d8919b19c983b2bcd5dc5eaa54d56868db095250793
MD5 9a6052f72bc53c0d54e2e0b781ed6bb7
BLAKE2b-256 42676e29582e9bdbb53a041e67ee26f1e6017ac54ecf8a5792f1282361fcdff0

See more details on using hashes here.

Provenance

The following attestation bundles were made for nono_py-0.9.2-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.9.2-cp314-cp314-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for nono_py-0.9.2-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 b37e5cffde3d0cb61981d316586da9567348b3bcc989d7ad008ecbd7a061921d
MD5 bd4dae95d38c7c1042001a007d4c4cd4
BLAKE2b-256 34c00256dbef7adb37968671b495216e6c98ebd7216988a551e60ce0e9776551

See more details on using hashes here.

Provenance

The following attestation bundles were made for nono_py-0.9.2-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.9.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for nono_py-0.9.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7b6dc532991cd7e7d50afef202634575e92eabdc1b036be98e41f0e79544d1cd
MD5 066528f977662d345284c3408b5c69fc
BLAKE2b-256 58972ebf8e710177fd19532aecb9c195b0fcb03e55eddd51f2d50457cd361b7d

See more details on using hashes here.

Provenance

The following attestation bundles were made for nono_py-0.9.2-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.9.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for nono_py-0.9.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8be7922da4f7e75661ba11d098e0881866cf762282d0ef820fb21bb77dfa7162
MD5 4f1631b4f15780b54724ed9cd32b0e49
BLAKE2b-256 47cb6ca909452a9ffd7d7b15c763d8dc92a6371aa0db92068a235fbf91cd2eb4

See more details on using hashes here.

Provenance

The following attestation bundles were made for nono_py-0.9.2-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.9.2-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for nono_py-0.9.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ca23ebf9686b6d5bb1880b78d00ee7cb170cf3c60f333c93f8ab4144ad453f89
MD5 68c42adf9d0996291a79306ee4baf140
BLAKE2b-256 62168281770b3585ebcd7d4ffe9204dce380d1008a166c2b5b4e02a4bda4125e

See more details on using hashes here.

Provenance

The following attestation bundles were made for nono_py-0.9.2-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.9.2-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for nono_py-0.9.2-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 a3d3fe507a743353eb92fb00ac97be576d6aff29f930c262c979e82c7cd21b83
MD5 ab499b50919e3a5ff7e08c9deac85590
BLAKE2b-256 274a1ba4c457b876751fef972e9d7126e9fccadf78a932ea6ac880c0b0142c86

See more details on using hashes here.

Provenance

The following attestation bundles were made for nono_py-0.9.2-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.9.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for nono_py-0.9.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e38fd3c87bcbcbead5f69624786aa559e78b9c5c2def3814c267e6530ab5cb19
MD5 f3480e7753d4c043ee3d6206a4869044
BLAKE2b-256 48f55278aa6ddb8d5f79b84502c35c61d40a04c2fb0c12a966107216369c595d

See more details on using hashes here.

Provenance

The following attestation bundles were made for nono_py-0.9.2-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.9.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for nono_py-0.9.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 64b1d13ac58a43dba6bed7751369fe7af27429b9df78819f7b9b9588c71643af
MD5 2b4ede14993085ec5d9ff6b9e549129e
BLAKE2b-256 5ad4cccc66865d2e6c771fc0f78af5ee602959c8402ce5834599752cbdd7a22d

See more details on using hashes here.

Provenance

The following attestation bundles were made for nono_py-0.9.2-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.9.2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for nono_py-0.9.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 569c4cd0fcc87fe9c480874e272db9c5e80a7247f428e39f0b23048e7cd17184
MD5 d66d5c91c652d31d35b8f0f4504315d6
BLAKE2b-256 c1448dcff164243d52e26dbf936657eecbdbdcadfc934173c4aa158ca65fe211

See more details on using hashes here.

Provenance

The following attestation bundles were made for nono_py-0.9.2-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.9.2-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for nono_py-0.9.2-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 7612dc295f4963682947d517aaf9ed4f0f2c139678f76119c26269fe0050285d
MD5 742fd4376f66df38b4b4bcbc481571cf
BLAKE2b-256 d08b0ce73166ab02bfe13f040f8e8464492e4702fdeb50fcff6d7d8d811a12c6

See more details on using hashes here.

Provenance

The following attestation bundles were made for nono_py-0.9.2-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.9.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for nono_py-0.9.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 554c531b4e6121060f3df37c0b0431cae8bb5e1ad6ec21b3d8463ccb983a44c8
MD5 0609f0373006a55737eac1184693cc0b
BLAKE2b-256 f6bbf436d814b280a7865080c9edbde4cd9770fbe2f1539e74e37c203880aa78

See more details on using hashes here.

Provenance

The following attestation bundles were made for nono_py-0.9.2-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.9.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for nono_py-0.9.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 84c4b023fdbff3bf7b99780713e9f3f3132023034b5f593b0c8f411c928d1ab4
MD5 3f60c6bd282c8d61c251e5d5ed87f1a9
BLAKE2b-256 38e4eb5acac4afdab8f1160c16acb0dc4bff54c315e9a51c09ccccc1e10372aa

See more details on using hashes here.

Provenance

The following attestation bundles were made for nono_py-0.9.2-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.9.2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for nono_py-0.9.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 89b555c42136e3d264412f4258c56689ac1716c126fd7e7816b45126a19e20d8
MD5 34f6c11ce6513693d338a890654b40f0
BLAKE2b-256 b82b40e04e01b3f2a58c54eb86ffa6d883d5a1375f9cc5e59fa9dd4f5d0a6957

See more details on using hashes here.

Provenance

The following attestation bundles were made for nono_py-0.9.2-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.9.2-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for nono_py-0.9.2-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ac412d224a3475acdd040bd8e012e4e6209691dc1ebc686518218c936d1cb56b
MD5 443840e42535e59fbb6293530838bba0
BLAKE2b-256 ed72b17a8b02a6e23d1368707a9690f35bcd077dd75fb4434d52c41fd9a4fb96

See more details on using hashes here.

Provenance

The following attestation bundles were made for nono_py-0.9.2-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.9.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for nono_py-0.9.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2aeac83f7109f3727183dde51f36bec7e6da698537cc5cb5b1fe927b31b910f5
MD5 d56436ccae2351b7c3d5b4d818c17f4e
BLAKE2b-256 28b3c9a8be41a62d972f9b2ec88b9dcb6d013676b2585a5a41d1163433570ea2

See more details on using hashes here.

Provenance

The following attestation bundles were made for nono_py-0.9.2-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.9.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for nono_py-0.9.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 04db27e92cbc7919950b01fff8304a974c001bc34017dd5ffc5a1d022399451b
MD5 59c47e5e537bb1efb417358726716cc2
BLAKE2b-256 4bc53f3873398514a0a64b5463b7509330c5a4ca773ac6a53e10aadc6ec8ba4b

See more details on using hashes here.

Provenance

The following attestation bundles were made for nono_py-0.9.2-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.9.2-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for nono_py-0.9.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 27fa8dc6e005cf5ee033f803d452710bbd5f9722399d3043ddfb98b738b28896
MD5 5916eb597cdcd802f4f274775648791b
BLAKE2b-256 344379d4ceb05e2ccd60c0d604cf2d56f4006d8c7312df180ee72a61d9378c4a

See more details on using hashes here.

Provenance

The following attestation bundles were made for nono_py-0.9.2-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.9.2-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for nono_py-0.9.2-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 93bedb31d02d7237454e763d2cf6fb4cb959ca50e6d36ad6861b3920b4d075db
MD5 160df7e88ea3f3ff3a0ad2ea25fee578
BLAKE2b-256 abedc9656e78fd03146d2fbf771f39d69825795b3b79272155c037ca3c5c4056

See more details on using hashes here.

Provenance

The following attestation bundles were made for nono_py-0.9.2-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