Skip to main content

tethered

tethered — Runtime network egress control for Python

One function call. Zero dependencies. No infrastructure changes.

PyPI Python PyPI Downloads 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.

Performance

The audit hook runs on every relevant socket event, but per-event cost is small — TCP handshake, TLS, and application logic dominate real-world connect time. The hook fires whenever tethered is engaged, whether you entered via activate() or scope(), so the per-call overheads below apply to both. Measured on CPython 3.13 / localhost / default benchmark settings (3,000 TCP-connect iterations × median-of-3, 5,000 per-event iterations):

Operation Overhead added
socket.connect ~25 µs
socket.getaddrinfo ~120 µs (~2×) — tethered re-resolves to populate the IP→hostname cache
Any non-network audit event ~150 ns (ambient tax)
with tethered.scope(...) enter + exit ~0.5 µs (context-manager cost, independent of activate())

Numbers vary by hardware, OS, and Python version. Reproduce with python benchmarks/overhead.py.

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

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.2.tar.gz (104.9 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.2-cp314-cp314-win_amd64.whl (56.1 kB view details)

Uploaded CPython 3.14Windows x86-64

tethered-0.5.2-cp314-cp314-win32.whl (55.1 kB view details)

Uploaded CPython 3.14Windows x86

tethered-0.5.2-cp314-cp314-musllinux_1_2_x86_64.whl (72.8 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

tethered-0.5.2-cp314-cp314-musllinux_1_2_aarch64.whl (73.6 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

tethered-0.5.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (74.2 kB view details)

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

tethered-0.5.2-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (73.2 kB view details)

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

tethered-0.5.2-cp314-cp314-macosx_11_0_arm64.whl (53.5 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

tethered-0.5.2-cp313-cp313-win_amd64.whl (55.8 kB view details)

Uploaded CPython 3.13Windows x86-64

tethered-0.5.2-cp313-cp313-win32.whl (54.9 kB view details)

Uploaded CPython 3.13Windows x86

tethered-0.5.2-cp313-cp313-musllinux_1_2_x86_64.whl (73.1 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

tethered-0.5.2-cp313-cp313-musllinux_1_2_aarch64.whl (73.8 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

tethered-0.5.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (74.4 kB view details)

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

tethered-0.5.2-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (73.5 kB view details)

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

tethered-0.5.2-cp313-cp313-macosx_11_0_arm64.whl (53.5 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

tethered-0.5.2-cp312-cp312-win_amd64.whl (55.8 kB view details)

Uploaded CPython 3.12Windows x86-64

tethered-0.5.2-cp312-cp312-win32.whl (54.9 kB view details)

Uploaded CPython 3.12Windows x86

tethered-0.5.2-cp312-cp312-musllinux_1_2_x86_64.whl (73.0 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

tethered-0.5.2-cp312-cp312-musllinux_1_2_aarch64.whl (73.7 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

tethered-0.5.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (74.3 kB view details)

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

tethered-0.5.2-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (73.4 kB view details)

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

tethered-0.5.2-cp312-cp312-macosx_11_0_arm64.whl (53.5 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

tethered-0.5.2-cp311-cp311-win_amd64.whl (55.8 kB view details)

Uploaded CPython 3.11Windows x86-64

tethered-0.5.2-cp311-cp311-win32.whl (54.8 kB view details)

Uploaded CPython 3.11Windows x86

tethered-0.5.2-cp311-cp311-musllinux_1_2_x86_64.whl (71.7 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

tethered-0.5.2-cp311-cp311-musllinux_1_2_aarch64.whl (72.3 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

tethered-0.5.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (72.8 kB view details)

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

tethered-0.5.2-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (72.0 kB view details)

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

tethered-0.5.2-cp311-cp311-macosx_11_0_arm64.whl (53.5 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

tethered-0.5.2-cp310-cp310-win_amd64.whl (55.8 kB view details)

Uploaded CPython 3.10Windows x86-64

tethered-0.5.2-cp310-cp310-win32.whl (54.8 kB view details)

Uploaded CPython 3.10Windows x86

tethered-0.5.2-cp310-cp310-musllinux_1_2_x86_64.whl (71.0 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

tethered-0.5.2-cp310-cp310-musllinux_1_2_aarch64.whl (71.6 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

tethered-0.5.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (72.2 kB view details)

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

tethered-0.5.2-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (71.3 kB view details)

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

tethered-0.5.2-cp310-cp310-macosx_11_0_arm64.whl (53.5 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: tethered-0.5.2.tar.gz
  • Upload date:
  • Size: 104.9 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.2.tar.gz
Algorithm Hash digest
SHA256 5e88b587afffe056969193d502a557304e52c6d8985aa41f781ec0e1053fcc19
MD5 fe3017863d3972481398565955a7a4d0
BLAKE2b-256 11f687da4ea293e287be912be5e713db2855f58c70bf946f2824097a8edf9bcc

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.2.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.2-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: tethered-0.5.2-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 56.1 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.2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 8757db6b4e986755e19f0543b0c54b51885bea8ff3c1428d538b2d4beee382a4
MD5 904ac26e690638aee944f0ff5461d1dd
BLAKE2b-256 0f13143e1fcce0a7707e3760df9516f1919982f59f94c0c4464adcfdeb1b365f

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.2-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.2-cp314-cp314-win32.whl.

File metadata

  • Download URL: tethered-0.5.2-cp314-cp314-win32.whl
  • Upload date:
  • Size: 55.1 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.2-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 65c99ab24002dc8671dffb8180a2591589f1f1714f3049d1eefc1d34c16ffa7a
MD5 0abc18215b4b52809fac72b19a3bd9b2
BLAKE2b-256 ad62671b5ecc012cc42bb8a6b46eaaf0c69373374b4c0bb82e67490a4fb3ffa7

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.2-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.2-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for tethered-0.5.2-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 51deb4b52e25fc2ab816180b5a87814ae5ee378fbde44c56b3ff844fb3a281c5
MD5 bd41f99618609811f3ab6525717ec111
BLAKE2b-256 745c773b2fafe5f6649b16d315ab31755adb6bc3d1da99d8b51ce29593a4e6f9

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.2-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.2-cp314-cp314-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for tethered-0.5.2-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 632dcf01433444fe24780c9fb220e4e087aef811680b77025800358d09ca898b
MD5 1e683f9cb30ddcf068da57f5bd822976
BLAKE2b-256 36d8387d440ad9a1d83305faa3e1b58ba205e51261620f5adde3b95816e2c2d7

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.2-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.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for tethered-0.5.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 9104e1c50e878a00245fac68790e588eaae847a27ac4e9431e18833075360c15
MD5 9aaa0044019c78a590d4f67c9d1b7f7f
BLAKE2b-256 9ae2724d8f6d5f092bf68ab886d44eee2e6349ea1ee8a308a6ee9963bd5baaea

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.2-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.2-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.2-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 b4fe7f768bf052bab325e5a9ee15ab9663064f8647115e88ba6e9d65ca9051d8
MD5 e2e125ea814dc732d4e10c38fbd1a99e
BLAKE2b-256 fcdb6fddda7f3ebcedf322a17b9d77e3f9d83c08c1fc6b193d1521715e8a2124

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.2-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.2-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tethered-0.5.2-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b5279b21270f0deb712ee29c79a50f7e11afaf09f16e574bbe6a4bf457e6701c
MD5 9cf350f10573cc885d027385ffeb0662
BLAKE2b-256 528aa187788a4b2d04e79c4f8b516a29a17b3a611a7de206bfb3c54a48182c25

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.2-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.2-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: tethered-0.5.2-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 55.8 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.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 9b238e67eca3b44e632028d7c6de79ece47a39b20ec04a5a2010827432cd81d7
MD5 a2712a2290a0fdfef295285f4605f3de
BLAKE2b-256 15f2d894da676e89b52329cd59267c37945529443584fbb180109b127f8de0c3

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.2-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.2-cp313-cp313-win32.whl.

File metadata

  • Download URL: tethered-0.5.2-cp313-cp313-win32.whl
  • Upload date:
  • Size: 54.9 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.2-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 699ecf224700923d031f5d8219aacd875ebda584c8ba6fa9527859079c1fab16
MD5 77cc5d82c3a597e9c5d9a3ec93adea96
BLAKE2b-256 ce8edd99aa94dce8613391f1cdb53f575c2c88f87269b635cfaeb2d9b910a95b

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.2-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.2-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for tethered-0.5.2-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5430ea03c7ab98652d70561a9c065eeea155d262eb6b48123fcde3e1c1e96569
MD5 fd5521045631881894347a7108890990
BLAKE2b-256 8a7b68bcdbe1336845adb34779fb4507fa0d6d3d18402c0dc12bc084cad74da4

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.2-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.2-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for tethered-0.5.2-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 4c42eb9da69014dd6b3f9c8d20fe72f59da72fd4238e4c0076827a7449151c9c
MD5 700873561bc3883117482f1e258fc9c6
BLAKE2b-256 1411669cc8a2097ac8ad8d8f57287b9d083b7c371c9b4dd38d89b708cfac0dc1

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.2-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.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for tethered-0.5.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 3db65b9b44e7d702bfb0c586ba03b86a647499c87f4d352a9f63dc8001779f7a
MD5 db8509379fc3ce937cc814b849ac2013
BLAKE2b-256 ddfc39f5e037f7ee2573c1667be630a93c3e6e0852a0fc06b6f32be6f5f4e7d4

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.2-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.2-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.2-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 77ee54455845d93b18abc3c5810e24e81ca09df93e48a03d8a328bd32c69376c
MD5 68aeb040d217f382e50e83860ea513be
BLAKE2b-256 5723c94bca928d76b6c33c19f9c7a6bf4b3632892351880564a560316585fcd4

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.2-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.2-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tethered-0.5.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ac3eb415361ce1465999e795b846bbf0da0024ec2d02b576cadefa10c3c04f1c
MD5 20bf4cde14331d4ef209acb55e76045a
BLAKE2b-256 d4a0de88096452caaed59229b1e76b35ac5e1c8f1694c8c71e8415436f322b19

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.2-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.2-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: tethered-0.5.2-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 55.8 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.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 b97654fe023faf95f364ea7d5975d192b12684e029f62a758d071634e9633e16
MD5 90927b24a633de61d3cfdb43cabdb470
BLAKE2b-256 9814e9c6598eb0c012759d33bf8b78ddb9bb342c6bfedb5b3892b19eac9a7e71

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.2-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.2-cp312-cp312-win32.whl.

File metadata

  • Download URL: tethered-0.5.2-cp312-cp312-win32.whl
  • Upload date:
  • Size: 54.9 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.2-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 19cbb6db8a08737b955a38a1e1da4da9017f72fbaec009f86b53e89fad3ce851
MD5 53d684b7994078858bd8f3f1c19e147d
BLAKE2b-256 2af45fe7ddb9dafc6f5823eb7005bc817a03e78a55c8838f7305fc37a158e617

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.2-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.2-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for tethered-0.5.2-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7826b47941e17deb045221a08c74c8f054143b03b5b9e43f03a8df9244abe516
MD5 c812e0da1c480700398c783f2495833b
BLAKE2b-256 da5a139814597c63ecda2f48f30354e773ddbc1e87bc86d9ffc26a2c7b35db28

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.2-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.2-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for tethered-0.5.2-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 08163d771ddeb9612e6fbd23e7580651cdf51c884a86ea20ced13a46f7a71884
MD5 2ab44c5a70ed2237736c3ad9200cd645
BLAKE2b-256 2eae49668297025da03f9e668dfa205e4e6c46a67a2698816b291fdf93ebf7dd

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.2-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.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for tethered-0.5.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 104f42b14b906213754878c2284f2bf2d7008e0af4102e2b038537f2b68a7aca
MD5 c17906e2b7233a4322aa07439d423a3e
BLAKE2b-256 6c1b494421249260e4d9ad94358d8ff0f558539f16b946bad0a5e338c7449826

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.2-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.2-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.2-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 592fecb396a53ab1cd9dfcf32dc3c11f7921ee985ccd29d79384f21f2a575761
MD5 bc8468b17a7039971a333f1ef9d24f17
BLAKE2b-256 e23461ec03fca36fb92d43dff95022dff9918ddcbaaf00deb720e3c9e9157bef

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.2-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.2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tethered-0.5.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e7a7d6bf95194d58c5f12786ada4852dde8005b8eff2ce5036c06fc08ba67cff
MD5 52f4058ad54edab4569ea99d24c69514
BLAKE2b-256 7adf770cacfa53dec74e6afd5665757c4555bbd9b2a7e5f03384cae9cd086ab4

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.2-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.2-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: tethered-0.5.2-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 55.8 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.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 e83fce66af50fd293544a8f00b78173511a4681886bed8ed98cc7fa51d02515b
MD5 0e5107ef6c08a7a9886dc9edc0069cb0
BLAKE2b-256 a936a168b9fa5a02e03e4fd394c1544c90cf633ca8ad1b6addbaf70772705733

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.2-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.2-cp311-cp311-win32.whl.

File metadata

  • Download URL: tethered-0.5.2-cp311-cp311-win32.whl
  • Upload date:
  • Size: 54.8 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.2-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 3fe64a2c813ff0cd2fd3f60d49a894e8fa7107c79ab4a544dd2104fa4d52368a
MD5 26cb144a38093003818e220316c53a75
BLAKE2b-256 3c7608caef6005b6c40a80e803dad0adf21e800d84d930a8c44850d1d5d5dec3

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.2-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.2-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for tethered-0.5.2-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 75e29411138252809fab1b3fe623851b2e4f44504d2524d0e9f386aadf1ada74
MD5 a0f682f871df105b40e7cc37af794c8c
BLAKE2b-256 f232f6cdb5e838c3ea9545fbd854e3168231ec3e2c3262c5680c8a02c2331175

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.2-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.2-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for tethered-0.5.2-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 e59c759617ea10b421ea9026956d47487f83454684288b733a1402c3425e949c
MD5 7ec5503f1101d2ed1112aaa670959a47
BLAKE2b-256 9ee9899044a50fdfd9120abecfe3be1c5b800038c6689d42e08a57ae664aacbc

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.2-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.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for tethered-0.5.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 83893cb7a83f9dc4eab71079df15ecd568bbf3e805f08a699d392662ed51a164
MD5 28f8f569d55b907b0cc8ea1d5e7b08a7
BLAKE2b-256 f773ab157b03df6a93d8b449144892675d5c1baecef9b5e2beb762715f2b9617

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.2-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.2-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.2-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 86ae8007e88d4e3fdea61e277ec392f6ddf11c8ab3fb05f6bd9c2a010f261d10
MD5 9370b229ba7f75611397514a4dd5e560
BLAKE2b-256 2517113e77d4ce05ca9d879d6b5ac653655b5e3ed3a219e0e3a439d96ce5684a

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.2-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.2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tethered-0.5.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 72a407ddd334d7e4a48a3a6e9cb5106407cdf95e3774e0b16d182a22b50e306d
MD5 33d5e2ac4b8b7393c5a0b5ad6e3bda78
BLAKE2b-256 56174d3a0abe7afed21470c2b0286cdbaaf4c7233b3381d85f8ad94caf7128f9

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.2-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.2-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: tethered-0.5.2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 55.8 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.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 fc563e4bd7ab68de93865cb48094680e56bafaff225563dca70537dbefa94828
MD5 0b5df3a230cb85ac6741bf8c43377ca0
BLAKE2b-256 24aea6ee07266b77c0ddae2f6b68094911fe18817ddce67cb3d9d917bf6cd895

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.2-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.2-cp310-cp310-win32.whl.

File metadata

  • Download URL: tethered-0.5.2-cp310-cp310-win32.whl
  • Upload date:
  • Size: 54.8 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.2-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 a15ef0396b46bf2e6b7495fe3504b8163b3ae3ecd12a628e18be0c55db2d8b65
MD5 7a302bea38883bec189ad904bd789aee
BLAKE2b-256 e8ca8510f74b0b3c33caae14391345e2a443514e5853efcf0542f2c41bde4d28

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.2-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.2-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for tethered-0.5.2-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6c561576a55a632e09060dc500c651a8d7fa08fcdb3fc599eeda1eb9fe659887
MD5 33186a684a438b7cc28c8934d1a5a684
BLAKE2b-256 6bb2e64abb4c87498229a7f19c43e0d7dde7b4403922537411c3f015d684158b

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.2-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.2-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for tethered-0.5.2-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 bf21e861e9d385d50f571eab6bc7095eef1806440aec64ad1db944d0c367ee17
MD5 af3270eb079502a321a54a42ff441730
BLAKE2b-256 c2b16cb520930d43a402a0324dfa63d87ad0e659153078ef0fa9bf755dcd35a1

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.2-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.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for tethered-0.5.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d4ed4ee7588fb7ce895a95bfba1c12b30bde5628a0c18bba61b398e8be069e6c
MD5 270862333a15216acd6877896afa75b5
BLAKE2b-256 b5d8868442def1c9d3fda2ed9b4ff8cb989df25b890b04e278c36949816fedc3

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.2-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.2-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.2-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 0a0df05b947b94fe6d69dd3229e2fb27e35982d860cc12c3f5c73714a124999a
MD5 3d78e850d21851e09e3370dced41a182
BLAKE2b-256 8725896d039b8139c3e57333b0ca447fa23b95212b410f5f694d597dd695b494

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.2-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.2-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tethered-0.5.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c794cd9380246943f61393b2df136569974d9179c965550d5788ae1384363069
MD5 ec94867bf73e835f231fcf76419e72c0
BLAKE2b-256 d11d23cd1d3e0295d1999dccd00c58af7d31ec131d690c3a6dd04d1dd0c959e9

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.2-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.

Release history Release notifications | RSS feed

0.5.3

36 files

This release

0.5.2 This release

36 files

0.5.1

36 files

0.5.0

33 files

0.4.0

33 files

0.3.3

2 files

0.3.2

2 files

0.2.0

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

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