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.

On timeout, sandboxed_exec kills the sandboxed command's process group so ordinary forked descendants are terminated with the direct child.

sandboxed_exec(..., max_processes=N) sets RLIMIT_NPROC in the child before exec. This is only meaningful when sandboxed executions run as a dedicated Unix UID, because the kernel counts all processes already owned by that real UID, not only processes in the sandbox tree. On a normal shared user account, setting a small value such as 8 can make the sandboxed program's first fork() fail with EAGAIN because the user already owns more than eight processes; it does not provide a reliable per-sandbox fork limit. Use cgroup pids.max or a dedicated container/microVM boundary for strong per-execution fork containment.

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"]

Resource Limiting

Run a command under a memory ceiling by driving the tested nono CLI. The kernel OOM-kills the whole process tree if it exceeds the cap (Linux + cgroup v2):

from nono_py import AccessMode, CapabilitySet
from nono_py import limited

caps = CapabilitySet()
caps.allow_path("/work", AccessMode.READ_WRITE)

result = limited.run(caps, ["python", "hog.py"], memory="512M")
if result.oom_killed:
    print("process exceeded its memory cap and was killed")
elif not result.ok:
    print(f"failed ({result.returncode}): {result.stderr}")

Enforcement lives in the nono binary (found on PATH, via NONO_BIN, or nono_bin=), not in-process — memory limits need an un-sandboxed supervisor parent, unlike apply(). Filesystem grants and block_network() are translated to CLI flags; proxy_only() is not carried across the subprocess boundary.

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.12.0.tar.gz (241.5 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.12.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.9 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

nono_py-0.12.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (9.9 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

nono_py-0.12.0-cp314-cp314-macosx_11_0_arm64.whl (7.7 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

nono_py-0.12.0-cp314-cp314-macosx_10_12_x86_64.whl (8.0 MB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

nono_py-0.12.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.9 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

nono_py-0.12.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (9.9 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

nono_py-0.12.0-cp313-cp313-macosx_11_0_arm64.whl (7.7 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

nono_py-0.12.0-cp313-cp313-macosx_10_12_x86_64.whl (8.0 MB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

nono_py-0.12.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

nono_py-0.12.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (9.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

nono_py-0.12.0-cp312-cp312-macosx_11_0_arm64.whl (7.7 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

nono_py-0.12.0-cp312-cp312-macosx_10_12_x86_64.whl (8.0 MB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

nono_py-0.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

nono_py-0.12.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (9.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

nono_py-0.12.0-cp311-cp311-macosx_11_0_arm64.whl (7.7 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

nono_py-0.12.0-cp311-cp311-macosx_10_12_x86_64.whl (8.0 MB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

nono_py-0.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

nono_py-0.12.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (9.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

nono_py-0.12.0-cp310-cp310-macosx_11_0_arm64.whl (7.7 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

nono_py-0.12.0-cp310-cp310-macosx_10_12_x86_64.whl (8.0 MB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: nono_py-0.12.0.tar.gz
  • Upload date:
  • Size: 241.5 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.12.0.tar.gz
Algorithm Hash digest
SHA256 ec4e82e51e9928bddde4de13f865ee074d2dd35392c1edd65a21a11f4164d77d
MD5 34c38473a4e13ef543179f690c1b08a4
BLAKE2b-256 c84db5826c1d0d95a0a57eef30f059779c8330e0cad92e46da5994b9398ea0ff

See more details on using hashes here.

Provenance

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

Publisher: auto-release.yml on nolabs-ai/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.12.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for nono_py-0.12.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5e47ed71312b74c7d61a89cdb59d06f476bd2d979bf9d8a4712df821fe8b0765
MD5 0b590d6db190d5e44203b691d975d1cf
BLAKE2b-256 f848125dd66c971f4bc57f380728a49a077db7c8e72d9e1fc323d032fa64e3e0

See more details on using hashes here.

Provenance

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

Publisher: auto-release.yml on nolabs-ai/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.12.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for nono_py-0.12.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a95dcce0904c7b5dfb9a01fee2324da8deda4a7c5f214e3b8cb0aa1a7a7f06f6
MD5 8f67b014a5da98065fa36a1431798d05
BLAKE2b-256 68c4704d8795f2047222c53c85b72014d04630630b272fab8b518868f6fafb50

See more details on using hashes here.

Provenance

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

Publisher: auto-release.yml on nolabs-ai/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.12.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for nono_py-0.12.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b01b18734c7b77da6109f974961ce66fe78943c772e11df3a77d6acfdd3039e5
MD5 1a05fc7f457b8f17980d5e2d6d3fcf04
BLAKE2b-256 665c385d90734abdda58b2fcfcdb40246d374929b6739524af82dbafb878de76

See more details on using hashes here.

Provenance

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

Publisher: auto-release.yml on nolabs-ai/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.12.0-cp314-cp314-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for nono_py-0.12.0-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 fbc6e7abbd0dbbff1522ae891739c7939ec27374bbff04463028fb217d1f3ead
MD5 c9ea07c5825ce336061b4355b11849ee
BLAKE2b-256 e0cc8e18302c621f1e6bc8dc4e8d3f8a3dae7ce8be8f0cfbf8755bb88c646456

See more details on using hashes here.

Provenance

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

Publisher: auto-release.yml on nolabs-ai/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.12.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for nono_py-0.12.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 936c15490fdb8242a216c183be4fba0e22056bd628a2ccaeed0a8b33cc947c12
MD5 9b2a8e62b7762b1c49591603ed0d8bab
BLAKE2b-256 79b1c9563be614fd68a18c5aa6d78950c2dec63605eb7c08bc9f00c008057bba

See more details on using hashes here.

Provenance

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

Publisher: auto-release.yml on nolabs-ai/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.12.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for nono_py-0.12.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 40cfcf4c098f63869e69a1367d09b0f699fdd5842fdcd0a365f108e9db8c75a1
MD5 fae97c3754550cdf9718da827a42d184
BLAKE2b-256 0f50a1927ba6f1bbfd3fb976e8b7d7ff64477d8ceb84f44c7390beb98939db6e

See more details on using hashes here.

Provenance

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

Publisher: auto-release.yml on nolabs-ai/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.12.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for nono_py-0.12.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1743f548f92044b525c147dbf14eb809481ab02c7455758a7efbfc7255643429
MD5 8809a0be451f25f39c08a63e4084aa25
BLAKE2b-256 5368c2f59b202db9607deda75d1e570e4624c2071c750720a6eb332494ba21fc

See more details on using hashes here.

Provenance

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

Publisher: auto-release.yml on nolabs-ai/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.12.0-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for nono_py-0.12.0-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 7d424168f6eab3d825ced8896a91345838f66b177048e8d3804154053a48202c
MD5 482fb345a593cbe8a36a0c0f3731a5f5
BLAKE2b-256 7f482c48206fddddb9bce840a1384c420700f6c7989a0ea6e8caaf896d5ebf86

See more details on using hashes here.

Provenance

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

Publisher: auto-release.yml on nolabs-ai/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.12.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for nono_py-0.12.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 07dc7cdae25028ac90b5a0d319ab80296562c8016fad56b81fd9695f3c7c350a
MD5 ebacfbdb6c023e277009229f405f0c5e
BLAKE2b-256 1f7db51db38dc69291f4dbd475f47012ce30ff3aa320638f4eaa89c2eb58b7db

See more details on using hashes here.

Provenance

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

Publisher: auto-release.yml on nolabs-ai/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.12.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for nono_py-0.12.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d7fcb8889e8d6192f134a58549802f1ddf4164a2195c88fed4cc6f3008c03fed
MD5 b6abc740cb34766fb2d8e088bae8002e
BLAKE2b-256 6ecfdc579c6bbc57b7658b8829d318d8a1be3590a85ed91083533123647e0ba3

See more details on using hashes here.

Provenance

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

Publisher: auto-release.yml on nolabs-ai/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.12.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for nono_py-0.12.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 19138fe4284ec223a67a6a2d777e63a83b51836e4a33f0e97556faf0c1130d1e
MD5 e0b480e4d474c17879920ce1c3ceeaea
BLAKE2b-256 74437649070a782b23986abbf2974b9f8f7d4445830cd326788f8a17f6b89d39

See more details on using hashes here.

Provenance

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

Publisher: auto-release.yml on nolabs-ai/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.12.0-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for nono_py-0.12.0-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 030dd2628d996d0588e35faa57f49ae4e4a3c5abb4ccb5a7113e9a002f521437
MD5 a77bca5a63b055349b32b26042ac09e7
BLAKE2b-256 16c2c80a548c9f75a7ea25bb0d84a0c60cb1a310c6f733c14b3ccef50eafc303

See more details on using hashes here.

Provenance

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

Publisher: auto-release.yml on nolabs-ai/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.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for nono_py-0.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 97db6b6d9a39cbc87ffca6cab2b5904c23f0fb1085c6ee14b6bb57770172b3ea
MD5 b1c913df7208ef22e70d380df488989c
BLAKE2b-256 6aa316c5cc64063b808ff226676ca71e60f02cde3ffb6595ae3d0e3721339113

See more details on using hashes here.

Provenance

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

Publisher: auto-release.yml on nolabs-ai/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.12.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for nono_py-0.12.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 11f98c32d831bcc2fee7807e71d7b8198f0e36c47744bb3e7883ec4e4b27aaf4
MD5 cd1f526f11085181665973ae753a1cf2
BLAKE2b-256 7d3b6cbfa9e1cd5462631547421784b5d077848ec53ef0fbd7945a223ab529e6

See more details on using hashes here.

Provenance

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

Publisher: auto-release.yml on nolabs-ai/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.12.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for nono_py-0.12.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 98f5660970c46024d235d46a392b829d4f40c5561b959665b37dab05f3f2d21b
MD5 bed58a7b7768073dbb5e818b526cbaec
BLAKE2b-256 3b191fa4dfd9ebcaacc30fdf3c033a8a102c66c5d93066e7a16057b4c22515d6

See more details on using hashes here.

Provenance

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

Publisher: auto-release.yml on nolabs-ai/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.12.0-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for nono_py-0.12.0-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d1fbc8175250538c94e0c510a166b8f34f561958735141f3b1279769d01a7aa9
MD5 6acfff31f6003e610ace556cf4c2b398
BLAKE2b-256 9747926cbafb99fd2874892ea8b7b2ba687e44423cb9442b98c936d75121d3b0

See more details on using hashes here.

Provenance

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

Publisher: auto-release.yml on nolabs-ai/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.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for nono_py-0.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ef41da7ea79757b0259b86b1864ea84a4bfd8ef30bbee576c28701dda4d48362
MD5 93fa1e86a5e5c5a18cc2876d41d5809b
BLAKE2b-256 37d10ee993a56e8373636f607490bf0e5e1b535eb71cf8a6fbc2b4f0e55d9208

See more details on using hashes here.

Provenance

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

Publisher: auto-release.yml on nolabs-ai/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.12.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for nono_py-0.12.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 701afe721739c19d78351854a18267aa33c9aab9e4f7580e3c27ca115ae7d94e
MD5 e6d777692c901350bfab01966bb46d0e
BLAKE2b-256 55c1592ac5716e1c52fb56b238cbb183460bcbade24d2a7708f323f8b850ea7c

See more details on using hashes here.

Provenance

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

Publisher: auto-release.yml on nolabs-ai/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.12.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for nono_py-0.12.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 04b0d2af7970d3ae55104a1fd6870c4b6601d3011eac3e75b562ede5b022468a
MD5 ab135788f14cc664fd61690f2a9253f6
BLAKE2b-256 086ba02827fbc1ce5b9094e37d967114e2f858a7ff3aced43d5d1357ca02baee

See more details on using hashes here.

Provenance

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

Publisher: auto-release.yml on nolabs-ai/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.12.0-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for nono_py-0.12.0-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 f3fb4e40c1f8293a94daa6fd7134532b424a1728eb4ddbc78eb843ccaadbaabb
MD5 4577672d31ccb1b2238a07cc910d5c2c
BLAKE2b-256 6a6c6526eab498d5efcd9a453a580305fe0b50caf45409aa1ce526e4b7ec83fc

See more details on using hashes here.

Provenance

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

Publisher: auto-release.yml on nolabs-ai/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