Skip to main content

Runtime network egress control for Python

Project description

tethered

Runtime network egress control for Python

One function call. Zero dependencies. No infrastructure changes.

PyPI Python License: MIT
coverage CI CodeQL security: bandit
Ruff uv ty

tethered is a lightweight, in-process policy check that hooks into Python's own socket layer to enforce your allow list before any packet leaves the machine. Use activate() to set a process-wide ceiling, and scope() to tighten individual code paths — request handlers, background jobs, library calls, AI-generated code. Everything runs locally within your process — works with requests, httpx, aiohttp, Django, Flask, FastAPI, and any library built on Python sockets.

import tethered

tethered.activate(allow=["*.stripe.com:443", "db.internal:5432"])

import urllib.request
urllib.request.urlopen("https://api.stripe.com/v1/charges")  # works — matches *.stripe.com:443
urllib.request.urlopen("https://evil.test/exfil")            # raises tethered.EgressBlocked

Why tethered?

Your code, your dependencies, and AI coding agents all share the same Python process — and any of them can make network calls you didn't intend. A compromised dependency phones home. An AI coding agent writes tests that accidentally call live APIs. An AI-generated function calls an unauthorized endpoint. A misconfigured library hits production instead of staging.

Python has no built-in way to prevent this at runtime. Infrastructure-level controls (firewalls, network policies, proxies) require platform teams, separate services, or admin privileges. None of them give you a single line of Python that says "this process may only talk to these hosts."

tethered fills this gap at the application layer. One function call controls what any code in the process — yours, your dependencies', or AI-generated — can reach over the network. No proxies, no sidecars, no admin privileges. It's complementary to infrastructure controls, not a replacement.

Use cases

Use case How tethered helps
🔒 Supply chain defense activate() locks the process to your known services — a compromised dependency can't phone home.
🔬 Scoped isolation scope() restricts a specific code path — a request handler, a background job, a library call — to only the destinations it needs.
🤖 AI agent guardrails Code generated by AI coding agents can't reach unauthorized endpoints — activate() enforces your allow list on any code running in the process.
🧪 Test isolation activate() in your test setup ensures the suite never accidentally hits production services.
📋 Least-privilege networking Combine activate() for the process boundary with scope() for per-function restrictions — declare your network surface like you declare your dependencies.

Install

uv add tethered

Or with pip:

pip install tethered

Requires Python 3.10+. Zero runtime dependencies. Pre-built wheels are available for Linux, macOS, and Windows. Source installs require a C compiler (the package includes a C extension for tamper-resistant locked mode).

Quick start

tethered has two complementary APIs. Both use the same allow list syntax (see below).

Enforce process-wide — activate()

Call activate() as early as possible — before any library makes network connections:

# manage.py, wsgi.py, main.py, or your entrypoint
import tethered
tethered.activate(allow=["*.stripe.com:443", "db.internal:5432"])

# Then import and run your app
from myapp import create_app
app = create_app()

This pattern works the same for Django, Flask, FastAPI, scripts, and AI-assisted workflows — activate tethered before your application and its dependencies start making connections. Existing connections (e.g., connection pools) established before activate() continue to work — tethered intercepts at connect time, not at read/write time.

Use locked=True in production to prevent any code from replacing or disabling your policy. Full parameter list and locked-mode details: docs/API.md.

Restrict a code path — scope()

Use scope() to restrict egress for a specific code path — a request handler, a background job, a library call:

import tethered
import httpx

@tethered.scope(allow=["*.stripe.com:443"])
def charge(amount: int, token: str) -> dict:
    # ... validate input, call helper libraries, log analytics —
    # none of them can reach anything except *.stripe.com:443
    resp = httpx.post("https://api.stripe.com/v1/charges", ...)
    return resp.json()

Also usable as a context manager (with tethered.scope(allow=[...]):). No deactivate() needed — cleanup is automatic. Works with sync and async functions.

scope() works on its own — no activate() required. When the app also called activate(), the effective policy is the intersection — a connection must be allowed by both. Scopes can only narrow, never widen. Full details: docs/API.md.

Package maintainers: Use scope(), never activate(). Your library doesn't own the process — the app does. Pass hint= to attach a one-line egress contract (what hosts your library needs + docs link) to your scope; if a block ever fires — yours or the host's — the hint is readable as exc.scope_hint and appended to the exception message. See docs/COOKBOOK.md.

Subprocess control

Python child processes (multiprocessing.Pool, ProcessPoolExecutor, gunicorn workers, plain subprocess.run([sys.executable, ...])) automatically inherit the parent's tethered policy — including any active scope. Non-Python launches (curl, ffmpeg, different Python interpreters, or sys.executable with -S which disables site.py) are governed by external_subprocess_policy ("warn" default, or "block").

import tethered, subprocess, sys

tethered.activate(allow=["*.stripe.com:443"])
subprocess.run([sys.executable, "-c", "..."])  # child auto-inherits policy

with tethered.scope(allow=["api.stripe.com:443"]):
    subprocess.run([sys.executable, "-c", "..."])  # child also inherits the active scope

Full mechanics, locked-mode hardening, and the auto-vs-external rules: docs/SUBPROCESS.md.

Allow list syntax

Pattern Example Matches
Exact hostname "api.stripe.com" api.stripe.com only
Wildcard subdomain "*.stripe.com" api.stripe.com, dashboard.stripe.com (not stripe.com)
Hostname + port "api.stripe.com:443" api.stripe.com on port 443 only
IPv4 address "198.51.100.1" That IP only
IPv4 CIDR range "10.0.0.0/8" Any IP in 10.x.x.x
CIDR + port "10.0.0.0/8:5432" Any IP in 10.x.x.x on port 5432
IPv6 address "2001:db8::1" or "[2001:db8::1]" That IPv6 address
IPv6 + port "[2001:db8::1]:443" That IPv6 address on port 443 only
IPv6 CIDR "[2001:db8::]/32" Any IP in that IPv6 prefix

Wildcard matching: Uses Python's fnmatch syntax. * matches any characters including dots, so *.stripe.com matches both api.stripe.com and a.b.stripe.com. This differs from TLS certificate wildcards. The characters ? (single character) and [seq] (character set) are also supported.

Localhost (127.0.0.0/8, ::1) is always allowed by default. The addresses 0.0.0.0 and :: (INADDR_ANY) are also treated as localhost. Malformed hostnames containing whitespace, control characters, or invisible Unicode are rejected and never matched by wildcard rules.

Examples

Example Description
01_basic_activate.py Process-wide allow list with activate()
02_scope_context_manager.py scope() as a context manager
03_scope_decorator.py scope() as a function decorator
04_global_with_scope.py Global policy + scope — intersection semantics
05_global_with_nested_scopes.py Global policy + nested scopes — progressive restriction
06_locked_mode.py locked=True — prevent policy tampering
07_log_only.py Monitor-only mode with on_blocked callback
08_scope_in_threads.py Scoping inside thread pool workers
09_async_scope.py Async decorator and context manager
10_package_maintainer.py Library self-restricting with scope()
11_subprocess_control.py Auto-propagation to Python child processes + parent-side external_subprocess_policy
12_scope_subprocess.py Scope propagating to spawn-mode child processes

Hardened configuration

For threat models that include compromised dependencies — a maintainer's PyPI account hijacked, a malicious release pushed, the malware exfils local secrets to an attacker C&C — combine tethered's strictest settings:

import tethered

_LOCK = object()
tethered.activate(
    allow=["api.stripe.com:443", "db.internal:5432"],   # only what you actually need
    locked=True,                                          # tamper-resistant policy (C-guardian-protected)
    lock_token=_LOCK,                                     # required when locked=True
    external_subprocess_policy="block",                   # if your app doesn't shell out
)

# Only NOW import third-party code — including potentially compromised deps
import stripe

This combination:

  • Auto-propagates the policy to every Python child (multiprocessing workers, subprocess.run, asyncio.create_subprocess_exec) — a multi-stage exfil chain (Layer 0 → spawn → Layer 1 → ...) cannot escape by launching a fresh interpreter.
  • Refuses non-Python launches (curl, wget, bash) — closes the "shell out to a binary that does the egress" bypass.
  • Refuses tampering with the propagation channel — in-process code cannot strip _TETHERED_CHILD_POLICY, delete tethered.pth, or replace the policy with a permissive one without raising SubprocessBlocked.

Activate before importing any third-party code — anything that runs in the unprotected window (e.g., during a malicious package's __init__.py) is unprotected. tethered does not protect against ctypes / cffi raw syscalls; pair with OS-level controls (seccomp, containers, network namespaces) for hard isolation.

Defense-in-depth

tethered is a guardrail at the Python audit-event layer, not a sandbox. Code that uses ctypes, cffi, subprocesses, or C extensions with direct syscalls can bypass it. For hardened environments combine with OS-level controls (containers, seccomp, network namespaces). See SECURITY.md for the full threat model.

Documentation

  • docs/API.md — full API reference (activate, scope, deactivate, exceptions, locked mode, log-only)
  • docs/SUBPROCESS.md — subprocess auto-propagation, scope propagation, external_subprocess_policy
  • docs/ARCHITECTURE.md — how the audit hook works, scope mechanics, C guardian
  • docs/COOKBOOK.md — handling blocked connections in Django, Celery, retry decorators
  • SECURITY.md — threat model, what tethered does and does not protect against
  • examples/ — runnable scripts for every feature

Badge

Using tethered in your project? Add the badge to your README:

[![egress: tethered](https://img.shields.io/badge/egress-tethered-orange?labelColor=4B8BBE)](https://github.com/shcherbak-ai/tethered)

egress: tethered

Contributing

See CONTRIBUTING.md for development setup and guidelines.

Security

See SECURITY.md for reporting vulnerabilities and the full threat model.

License

MIT

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

tethered-0.5.1.tar.gz (100.5 kB view details)

Uploaded Source

Built Distributions

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

tethered-0.5.1-cp314-cp314-win_amd64.whl (55.7 kB view details)

Uploaded CPython 3.14Windows x86-64

tethered-0.5.1-cp314-cp314-win32.whl (54.6 kB view details)

Uploaded CPython 3.14Windows x86

tethered-0.5.1-cp314-cp314-musllinux_1_2_x86_64.whl (71.8 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

tethered-0.5.1-cp314-cp314-musllinux_1_2_aarch64.whl (72.6 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

tethered-0.5.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (73.2 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

tethered-0.5.1-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (72.2 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

tethered-0.5.1-cp314-cp314-macosx_11_0_arm64.whl (52.5 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

tethered-0.5.1-cp313-cp313-win_amd64.whl (55.4 kB view details)

Uploaded CPython 3.13Windows x86-64

tethered-0.5.1-cp313-cp313-win32.whl (54.3 kB view details)

Uploaded CPython 3.13Windows x86

tethered-0.5.1-cp313-cp313-musllinux_1_2_x86_64.whl (72.1 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

tethered-0.5.1-cp313-cp313-musllinux_1_2_aarch64.whl (72.8 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

tethered-0.5.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (73.4 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

tethered-0.5.1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (72.5 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

tethered-0.5.1-cp313-cp313-macosx_11_0_arm64.whl (52.6 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

tethered-0.5.1-cp312-cp312-win_amd64.whl (55.4 kB view details)

Uploaded CPython 3.12Windows x86-64

tethered-0.5.1-cp312-cp312-win32.whl (54.3 kB view details)

Uploaded CPython 3.12Windows x86

tethered-0.5.1-cp312-cp312-musllinux_1_2_x86_64.whl (72.0 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

tethered-0.5.1-cp312-cp312-musllinux_1_2_aarch64.whl (72.7 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

tethered-0.5.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (73.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

tethered-0.5.1-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (72.4 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

tethered-0.5.1-cp312-cp312-macosx_11_0_arm64.whl (52.6 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

tethered-0.5.1-cp311-cp311-win_amd64.whl (55.3 kB view details)

Uploaded CPython 3.11Windows x86-64

tethered-0.5.1-cp311-cp311-win32.whl (54.3 kB view details)

Uploaded CPython 3.11Windows x86

tethered-0.5.1-cp311-cp311-musllinux_1_2_x86_64.whl (70.7 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

tethered-0.5.1-cp311-cp311-musllinux_1_2_aarch64.whl (71.3 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

tethered-0.5.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (71.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

tethered-0.5.1-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (71.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

tethered-0.5.1-cp311-cp311-macosx_11_0_arm64.whl (52.5 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

tethered-0.5.1-cp310-cp310-win_amd64.whl (55.3 kB view details)

Uploaded CPython 3.10Windows x86-64

tethered-0.5.1-cp310-cp310-win32.whl (54.3 kB view details)

Uploaded CPython 3.10Windows x86

tethered-0.5.1-cp310-cp310-musllinux_1_2_x86_64.whl (70.0 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

tethered-0.5.1-cp310-cp310-musllinux_1_2_aarch64.whl (70.5 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

tethered-0.5.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (71.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

tethered-0.5.1-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (70.3 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

tethered-0.5.1-cp310-cp310-macosx_11_0_arm64.whl (52.5 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file tethered-0.5.1.tar.gz.

File metadata

  • Download URL: tethered-0.5.1.tar.gz
  • Upload date:
  • Size: 100.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tethered-0.5.1.tar.gz
Algorithm Hash digest
SHA256 035c0df7e60e2055e2880d6bda453ab2425b0d57950216a73efe119022d675d5
MD5 9a3eb46c6bba761c324d5eb09e5c05d1
BLAKE2b-256 40530d4e6d95a7f79b4a7b2eb692c24c7ed8e82f6cf88b2ba68894ab6177c279

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.1.tar.gz:

Publisher: publish.yml on shcherbak-ai/tethered

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

File details

Details for the file tethered-0.5.1-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: tethered-0.5.1-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 55.7 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tethered-0.5.1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 1c23c426061c6a372190efe55cb6fd334048e74847a843fb053556871f4285c6
MD5 fe41da73f21936893495ecf7f3906dd1
BLAKE2b-256 d0a83a0c8da32f6277d7e4a5ee5f2c9070085e990ae77f67f7af70e1125336b7

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.1-cp314-cp314-win_amd64.whl:

Publisher: publish.yml on shcherbak-ai/tethered

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

File details

Details for the file tethered-0.5.1-cp314-cp314-win32.whl.

File metadata

  • Download URL: tethered-0.5.1-cp314-cp314-win32.whl
  • Upload date:
  • Size: 54.6 kB
  • Tags: CPython 3.14, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tethered-0.5.1-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 76f000a5fe567641aa5a7129ef46bd064e315166cc27f4ba8450c80d429423c5
MD5 d656c238b06f05fabe60c47bd064b777
BLAKE2b-256 b7ee615487c0a257d41cf6f923ea36f5e874eb865b72087c81753d2d0934920c

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.1-cp314-cp314-win32.whl:

Publisher: publish.yml on shcherbak-ai/tethered

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

File details

Details for the file tethered-0.5.1-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for tethered-0.5.1-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f1aacf4e5f361adabaff80ec850a4ed25667479376f56691b9eb2dccb1ab4c5c
MD5 01459fe0fd99864f851eefb377c9b1e1
BLAKE2b-256 66a93925a22fb4865a4ae3138f667e2320bbfb0176b6051fe3fe747e490b0251

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.1-cp314-cp314-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on shcherbak-ai/tethered

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

File details

Details for the file tethered-0.5.1-cp314-cp314-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for tethered-0.5.1-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 4f9ff1f38431acbf79a402b7524cdef808998c1a491d4ebf59d1e069be8badc6
MD5 53e27498bd731035ef56089f6c190e97
BLAKE2b-256 68aa6bc63a6c9ecd3825483c6b7957a86b3b70767f1f00f3c699a2b365abb33b

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.1-cp314-cp314-musllinux_1_2_aarch64.whl:

Publisher: publish.yml on shcherbak-ai/tethered

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

File details

Details for the file tethered-0.5.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for tethered-0.5.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 67e045f1b8eba04130a73cf2d1195d6dd86adac91661a716834aefce89149d77
MD5 7ebe20971452895abc03c19f94c632ff
BLAKE2b-256 e754e60dfe1582f9739a137ddd50bab9895ed7c835c3329036c1d75781ce8d4d

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: publish.yml on shcherbak-ai/tethered

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

File details

Details for the file tethered-0.5.1-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for tethered-0.5.1-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 bfd5ca7025a8fe75a6f1f865132135e06f3d13cb6a5de2c40ae05e7557f390d2
MD5 343597c4269727649d6e44466009834d
BLAKE2b-256 f7c33600a382e65706268fabf1a1600be3f2e258102ebc4c9b88705adf81984f

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.1-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl:

Publisher: publish.yml on shcherbak-ai/tethered

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

File details

Details for the file tethered-0.5.1-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tethered-0.5.1-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 282b3d0ff89afbc602afe314b216e8e1da29c3023310ae05fe6bfff0841c4f65
MD5 5458e8e654087c769ee3f413f714f8a8
BLAKE2b-256 e00dc848f2d70ee400c63f076e5430b8938c71d6ed6639a412fd2c1ce7a77b84

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.1-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: publish.yml on shcherbak-ai/tethered

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

File details

Details for the file tethered-0.5.1-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: tethered-0.5.1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 55.4 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tethered-0.5.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 e4d0f15803f454731b5293e9bde2c17a9dba238bf9d08feeaa0d04cd9717090d
MD5 8c186257b3eeaf99e69d49bb0fcb7b27
BLAKE2b-256 e3820b651934848b4c73a8f5432741f1cf6aca9611d88c5d372f9e289abc3b8b

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.1-cp313-cp313-win_amd64.whl:

Publisher: publish.yml on shcherbak-ai/tethered

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

File details

Details for the file tethered-0.5.1-cp313-cp313-win32.whl.

File metadata

  • Download URL: tethered-0.5.1-cp313-cp313-win32.whl
  • Upload date:
  • Size: 54.3 kB
  • Tags: CPython 3.13, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tethered-0.5.1-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 cc842f59791793c8b21a5121ec6f51dbee40be6a1a09a9928859b0aac4f183ac
MD5 0631471056835175ef0fe73fe3a188ca
BLAKE2b-256 b7b58540f247c0ee29774137f47e5db0434d9eaaeb52cb088d323b4c9a360301

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.1-cp313-cp313-win32.whl:

Publisher: publish.yml on shcherbak-ai/tethered

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

File details

Details for the file tethered-0.5.1-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for tethered-0.5.1-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d07208cd05a1028557ca60d2e29d3b1d70db0ce9056ff61d10dc5ac895049716
MD5 49cbda777d4fbfb5c45371b05d42a451
BLAKE2b-256 829a10aa5380b32a05fbbea79113280a4ca96fc87c486ff2219db74d933f0f41

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.1-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on shcherbak-ai/tethered

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

File details

Details for the file tethered-0.5.1-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for tethered-0.5.1-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 5e17105543c10c60ceaccda071e35b67f1d0f7c14461a17fe731841339de6381
MD5 0f5d0d02e5cadfcb20ab0c31a66a7a4e
BLAKE2b-256 25116a6b9ce44474036d34b836fecb991c7baf8918101bfc076ab71f7d39ca47

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.1-cp313-cp313-musllinux_1_2_aarch64.whl:

Publisher: publish.yml on shcherbak-ai/tethered

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

File details

Details for the file tethered-0.5.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for tethered-0.5.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5b9b0394ae022e7738ef7fab4f836b23b94b867f0e3dd30f6faebc0806b1b8d0
MD5 407209d99499aacadfa4b1ba5043f0ab
BLAKE2b-256 8efa8ed2f34d9714a996902f60a62436b7bd23a8841ec136ae6284e6e77f8a6f

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: publish.yml on shcherbak-ai/tethered

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

File details

Details for the file tethered-0.5.1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for tethered-0.5.1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 c532608cb0f3fcb3baef1cab8f2bbbedcbc7206bacecf2c20b3975974afd4973
MD5 498c0ea9c645d7a3306f8d759aecfff8
BLAKE2b-256 e556290df8abf8c4b2f21fe062f3cf7d8f8706cdfc08243e6334fab43f3ea4cd

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl:

Publisher: publish.yml on shcherbak-ai/tethered

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

File details

Details for the file tethered-0.5.1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tethered-0.5.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f32930c65385caeb6ab22e579edaab10c33873aa03e8318e5c0d8992371e0b3d
MD5 ef7ffc542a1b9dc356124fc836acb10e
BLAKE2b-256 3d05af43de8d928fe103a70c126ec90220ffccca9c4c43d70520a3fff5fe24af

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.1-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: publish.yml on shcherbak-ai/tethered

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

File details

Details for the file tethered-0.5.1-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: tethered-0.5.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 55.4 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tethered-0.5.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 b5744d86af4c45b87bd0d9794760da0c205a00f7e4c3e462924795d365937121
MD5 ece3eed32ab3934334f120ce45e89762
BLAKE2b-256 b7d237bad088af7d6f8175e8163e5c0096c2c9cdf8494e171fbcc3e38dfac51c

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.1-cp312-cp312-win_amd64.whl:

Publisher: publish.yml on shcherbak-ai/tethered

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

File details

Details for the file tethered-0.5.1-cp312-cp312-win32.whl.

File metadata

  • Download URL: tethered-0.5.1-cp312-cp312-win32.whl
  • Upload date:
  • Size: 54.3 kB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tethered-0.5.1-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 f7452888f5e148c0c3df01570703efadbfc8ab60651478cab03e6e9b7e17359d
MD5 7507b3949f83e543561dcd6b76b2428c
BLAKE2b-256 0e419e7867ef6a6e9fe2a1199dfe6e07fc46076e67930670222f519ee6c11c4c

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.1-cp312-cp312-win32.whl:

Publisher: publish.yml on shcherbak-ai/tethered

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

File details

Details for the file tethered-0.5.1-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for tethered-0.5.1-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b093b0365c6d074056a7d7a21080d51b03f7223849836d132a904a6a2fcf38bc
MD5 1230dab79b928f91bc355aa3aff7dfb9
BLAKE2b-256 20e226dd59d585c6f47aea6db7e896e530d54eea42f69c8389fb6d1a220a5237

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.1-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on shcherbak-ai/tethered

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

File details

Details for the file tethered-0.5.1-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for tethered-0.5.1-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 f3610e734978347a776535deea95b2bd808af8bee37c2b0f44944040d43c767f
MD5 1878157d68dfe0d42ffb2c7b7c6df179
BLAKE2b-256 c7235a866e3c6af53950353317c0adddc3e353ef0c620f9745c5a21dddc48f22

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.1-cp312-cp312-musllinux_1_2_aarch64.whl:

Publisher: publish.yml on shcherbak-ai/tethered

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

File details

Details for the file tethered-0.5.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for tethered-0.5.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 180d275287c9708d9e6dcf9b8cfd5aa563bfaae1cb25d82f9e3ae8c829c0a1ee
MD5 20bce0839b2e679364bb5318368b30c4
BLAKE2b-256 ebfb64dd9126b276ca5b43bd7f9cba5aec46a876d789fed363a2d68937544472

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: publish.yml on shcherbak-ai/tethered

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

File details

Details for the file tethered-0.5.1-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for tethered-0.5.1-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 3803f0ceca287bcf1fe60c58256df7099082ea09986335d60f4f67ea7ea2f428
MD5 d246a2f8a5026b35412d165c6a12a14d
BLAKE2b-256 c422f57fbaed1ddb2b7f8e19e525ce60e7c8eaf0a12401c356929eaabf16fa5a

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.1-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl:

Publisher: publish.yml on shcherbak-ai/tethered

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

File details

Details for the file tethered-0.5.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tethered-0.5.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 194763a2a0553ddec46b8f1190fc89a477d521538f586a89c7b1ce8bf819f12e
MD5 3beea022586ab02fe41eb94f7c2e7426
BLAKE2b-256 3d14e9f1affb98666d4f71cadf03333e63288386c07f5ed7443b93d3114aec03

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.1-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: publish.yml on shcherbak-ai/tethered

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

File details

Details for the file tethered-0.5.1-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: tethered-0.5.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 55.3 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tethered-0.5.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 653d7c8abf27131e350afde09919fa5df1db9e8e50a35c7a16a693de3e6b7285
MD5 25cd036dc86c96f5f1d25a7007380f4a
BLAKE2b-256 18b3d477729906a2d5b1840babc0e8eff1b82028b3f62d0293c151a906ea85ce

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.1-cp311-cp311-win_amd64.whl:

Publisher: publish.yml on shcherbak-ai/tethered

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

File details

Details for the file tethered-0.5.1-cp311-cp311-win32.whl.

File metadata

  • Download URL: tethered-0.5.1-cp311-cp311-win32.whl
  • Upload date:
  • Size: 54.3 kB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tethered-0.5.1-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 f3d10f5ef3a49a0675d09186040e9f082c6dec63255ac8e6b3b78114c111ea04
MD5 1b71380b40e165189519bf2ee43f630c
BLAKE2b-256 001c1edeadd4bb66aec5ff8a5a6647801702ec623a03e95957fc1af83c7e0eee

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.1-cp311-cp311-win32.whl:

Publisher: publish.yml on shcherbak-ai/tethered

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

File details

Details for the file tethered-0.5.1-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for tethered-0.5.1-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ed8c6893e39d0e6d0d2b93f6f18d0753066bf350808bcf971f0ae06249019993
MD5 33fadc6f36e28d7af2921826782eb10d
BLAKE2b-256 fc96cb3478972fca3eabc1d4461e97cffc47cb3619c0b346238674ae8395c2d2

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.1-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on shcherbak-ai/tethered

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

File details

Details for the file tethered-0.5.1-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for tethered-0.5.1-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 49f6eaa1cf05545517b572290d851313ba6e69335f45eac2ee2338d3f70a63dc
MD5 46b8e355665747cd9106a4d3ef7681d7
BLAKE2b-256 d75a028743df9c4974940124864c57ad01885ad037b861406e1193333a36630b

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.1-cp311-cp311-musllinux_1_2_aarch64.whl:

Publisher: publish.yml on shcherbak-ai/tethered

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

File details

Details for the file tethered-0.5.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for tethered-0.5.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b86a029150779a364ab81f840a57d7f6c3ac025fe275c43950661964ec9ff8f1
MD5 f9c60e305fece630dcbbb088a75782d6
BLAKE2b-256 9c56b49657fdcf7ff957044c467430e4dfbf751a41013f77e00deab7e7343dca

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: publish.yml on shcherbak-ai/tethered

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

File details

Details for the file tethered-0.5.1-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for tethered-0.5.1-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 46b99b5f7b178d9586394aaf500af9958a9b9c01c01043737dac8d979002b886
MD5 846074b9baf0ae68a3744c04bea41aa8
BLAKE2b-256 dcdcfa00baa02e9faa11f92cf13565a16bbda372daff0326b5d92a610acd6564

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.1-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl:

Publisher: publish.yml on shcherbak-ai/tethered

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

File details

Details for the file tethered-0.5.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tethered-0.5.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8bf96126139386654b97f7fd21b76f3cb3ccc022c68217b3744c0cf3b41ac75c
MD5 d633d49126534d42325d52ddf918712a
BLAKE2b-256 0799a57257180dbadbb33d085dbe3e92a64b639de508d5e22fc52797969e6a11

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.1-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: publish.yml on shcherbak-ai/tethered

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

File details

Details for the file tethered-0.5.1-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: tethered-0.5.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 55.3 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tethered-0.5.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 176481916c0243a1d10c39a95ad11a11f4302f4c25007fd4ccce732544c50c83
MD5 226605058645bbdef2bbe5fd8c1f80d5
BLAKE2b-256 b5c028107a9cef249e7fd9be03d7d44485877768e55203e0a39485b821779da8

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.1-cp310-cp310-win_amd64.whl:

Publisher: publish.yml on shcherbak-ai/tethered

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

File details

Details for the file tethered-0.5.1-cp310-cp310-win32.whl.

File metadata

  • Download URL: tethered-0.5.1-cp310-cp310-win32.whl
  • Upload date:
  • Size: 54.3 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tethered-0.5.1-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 dac46207132aaebf91248fe1effa802d010a6b42d9fe0908924a23865e6e06d6
MD5 0c6f82a2ddf8439012a54b458b3d711f
BLAKE2b-256 a649abea1d29470cdd608eedf4860bde2135fa0364b240fac2ffe33bb1fe9b8a

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.1-cp310-cp310-win32.whl:

Publisher: publish.yml on shcherbak-ai/tethered

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

File details

Details for the file tethered-0.5.1-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for tethered-0.5.1-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a7915d89406f823b64cf9b50e6d762c44533e4938092a36df33dbef3be20e1e5
MD5 22b9095e7cf80484ae07134ab095129d
BLAKE2b-256 0aef0158a59b9cab153eeb14a6ede2ddf4a2312de9a2b3489821605edee4b228

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.1-cp310-cp310-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on shcherbak-ai/tethered

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

File details

Details for the file tethered-0.5.1-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for tethered-0.5.1-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 6214dc73791503812e58ada63e4ea59e03334971e80c81cc5e47d95ba13eb679
MD5 9aa92eafaddb014ea38114df1ac8eae9
BLAKE2b-256 543e49e2acb7023b2398a6d37f0e24506727a14ae62e8cf1c2070b46648ae864

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.1-cp310-cp310-musllinux_1_2_aarch64.whl:

Publisher: publish.yml on shcherbak-ai/tethered

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

File details

Details for the file tethered-0.5.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for tethered-0.5.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 37940c17de01411148a92ff5e246a8f26c464ab8aabee59d93fd592c1b001e61
MD5 ccc09c13c9624172c9ba6676d9af0094
BLAKE2b-256 7c85d83ef81a4613cd4402144cb5d33cb9b7877eb367fc3e421e322edc9a45bb

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: publish.yml on shcherbak-ai/tethered

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

File details

Details for the file tethered-0.5.1-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for tethered-0.5.1-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 c7ea34cac9109933d5ac39e745697aaefb84f8cd46a9b0684121917404d9f8ce
MD5 56f8f271b4142882b9c35a2b8e0489cf
BLAKE2b-256 31189cf768671eef775820c2eb46fc57901968940b3b501e0b84d5df27325802

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.1-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl:

Publisher: publish.yml on shcherbak-ai/tethered

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

File details

Details for the file tethered-0.5.1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tethered-0.5.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 55d35f54159f07f1732813368dd42af60e6a6d55c9cb6dd8cc807d3551eacc3d
MD5 45035da43a2ab362e3e882664cdfa51f
BLAKE2b-256 d39050399bad369ac08e313395b39d72950f0ea272180b2c87021584299476a2

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.1-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: publish.yml on shcherbak-ai/tethered

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