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.3.tar.gz (106.3 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.3-cp314-cp314-win_amd64.whl (56.8 kB view details)

Uploaded CPython 3.14Windows x86-64

tethered-0.5.3-cp314-cp314-win32.whl (55.8 kB view details)

Uploaded CPython 3.14Windows x86

tethered-0.5.3-cp314-cp314-musllinux_1_2_x86_64.whl (73.5 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

tethered-0.5.3-cp314-cp314-musllinux_1_2_aarch64.whl (74.3 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

tethered-0.5.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (74.9 kB view details)

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

tethered-0.5.3-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (73.9 kB view details)

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

tethered-0.5.3-cp314-cp314-macosx_11_0_arm64.whl (54.2 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

tethered-0.5.3-cp313-cp313-win_amd64.whl (56.5 kB view details)

Uploaded CPython 3.13Windows x86-64

tethered-0.5.3-cp313-cp313-win32.whl (55.5 kB view details)

Uploaded CPython 3.13Windows x86

tethered-0.5.3-cp313-cp313-musllinux_1_2_x86_64.whl (73.8 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

tethered-0.5.3-cp313-cp313-musllinux_1_2_aarch64.whl (74.5 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

tethered-0.5.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (75.0 kB view details)

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

tethered-0.5.3-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (74.1 kB view details)

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

tethered-0.5.3-cp313-cp313-macosx_11_0_arm64.whl (54.2 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

tethered-0.5.3-cp312-cp312-win_amd64.whl (56.5 kB view details)

Uploaded CPython 3.12Windows x86-64

tethered-0.5.3-cp312-cp312-win32.whl (55.6 kB view details)

Uploaded CPython 3.12Windows x86

tethered-0.5.3-cp312-cp312-musllinux_1_2_x86_64.whl (73.7 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

tethered-0.5.3-cp312-cp312-musllinux_1_2_aarch64.whl (74.4 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

tethered-0.5.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (75.0 kB view details)

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

tethered-0.5.3-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (74.1 kB view details)

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

tethered-0.5.3-cp312-cp312-macosx_11_0_arm64.whl (54.2 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

tethered-0.5.3-cp311-cp311-win_amd64.whl (56.4 kB view details)

Uploaded CPython 3.11Windows x86-64

tethered-0.5.3-cp311-cp311-win32.whl (55.5 kB view details)

Uploaded CPython 3.11Windows x86

tethered-0.5.3-cp311-cp311-musllinux_1_2_x86_64.whl (72.3 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

tethered-0.5.3-cp311-cp311-musllinux_1_2_aarch64.whl (73.0 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

tethered-0.5.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (73.5 kB view details)

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

tethered-0.5.3-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (72.7 kB view details)

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

tethered-0.5.3-cp311-cp311-macosx_11_0_arm64.whl (54.2 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

tethered-0.5.3-cp310-cp310-win_amd64.whl (56.4 kB view details)

Uploaded CPython 3.10Windows x86-64

tethered-0.5.3-cp310-cp310-win32.whl (55.5 kB view details)

Uploaded CPython 3.10Windows x86

tethered-0.5.3-cp310-cp310-musllinux_1_2_x86_64.whl (71.7 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

tethered-0.5.3-cp310-cp310-musllinux_1_2_aarch64.whl (72.2 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

tethered-0.5.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (72.9 kB view details)

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

tethered-0.5.3-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (72.0 kB view details)

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

tethered-0.5.3-cp310-cp310-macosx_11_0_arm64.whl (54.2 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: tethered-0.5.3.tar.gz
  • Upload date:
  • Size: 106.3 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.3.tar.gz
Algorithm Hash digest
SHA256 336d94074a5c1ec3dd2ddd7b42baee50c24a58fd803116e8d33efadf062364b4
MD5 acab5f8b85235894277e2fff1ec19b7c
BLAKE2b-256 bf6b167ee2b1f0774b0ce62bf4f2e5446266b8fdf145b385de3287013f17fc37

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: tethered-0.5.3-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 56.8 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.3-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 9beb55030ec95456c3961f36184e1197e39cb34127cbe1183c245c2017c112da
MD5 1978f480d329451b05683ee1dc707ac3
BLAKE2b-256 e2da6a588e2feb065d55f6b6212c6aa11ddae5d1202ac37749f0218983fd8561

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: tethered-0.5.3-cp314-cp314-win32.whl
  • Upload date:
  • Size: 55.8 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.3-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 901c742d7d7937f3019db018c663cb09087eb2bd0e27a77bfb94ce77d9610ec3
MD5 c538f998d9c0e6b84752c794188b76ac
BLAKE2b-256 302fd6ca78756ab490ba7c73f5205bfa432d9f4653e0414e6343541273342396

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tethered-0.5.3-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a4fc4aa064ab0c82411a82f975cb36e19d185cc0625975d2a5f2f16ee662bfbc
MD5 d185c88399c14135b9c2950784489bbc
BLAKE2b-256 77d9174eb3e909dc089409b008cd8aa84ae34f96f078c38ecd5deaed8178bf53

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tethered-0.5.3-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c44c164c16f50d34436a68d35e37e0bb9253e9cbea0bb002803740ae277ac3e7
MD5 fc7d509edd995bfffe2a5031f865ad83
BLAKE2b-256 126f93db036d2c9f65b832922ee1893bfb1e1accdfb7419c05c6b4c53ad7cc79

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tethered-0.5.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 fd415f2acff2a90694644e468f15f511a5dbbb8581350a957636c81db907bd64
MD5 87e0995a36e34398061d952a4d8c880e
BLAKE2b-256 e0fb4a3c9b50e9bd4c2c1b1de2454c4c3253d7da62ebdf7c3e63e7a4903ff21d

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.3-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.3-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.3-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 41416a93dda428f7954f6c2316eb2c007cf6abe2a35e05d73f5bc879fc37b9d4
MD5 29c4cbc3b5bbcf9230c10268276d40e8
BLAKE2b-256 6effef7852852bf396ffffcf688fd3696b52ec7e2abece513915e2a7c3929cf7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tethered-0.5.3-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b01f8765855ee904edb585adcebb994d7862d8bea5afaf7b97fd1860c0037a80
MD5 3eaf290e4ac8cb4ea830cc48eea8c5f1
BLAKE2b-256 32486cb162c5c4be3df37ea4b87724de2d6c72e54121870cac6476a526d48cbe

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: tethered-0.5.3-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 56.5 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.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 3be6515d3be71b4a4d55e06e79c20d7393e2aa9c086fb07637b114b79e125187
MD5 1cf2be0e2673c50d077e8d3ac6f3d72c
BLAKE2b-256 d0ce75442457bec5c175a718d4a1362e5f0dd5b281cdc7eb64fd15658d46e228

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: tethered-0.5.3-cp313-cp313-win32.whl
  • Upload date:
  • Size: 55.5 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.3-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 fa1ef656e2c1343a456811d25ebf180f7f0a71aa70e74f5814cafd900f736c83
MD5 ad6d538e837c9efe1912e60260d9699b
BLAKE2b-256 ae9a8cf43293f6c9821a99012a08894a0b0e2cc449166a828446873f34eac6fa

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tethered-0.5.3-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1e3507b87dcb33739bb23b820287a0746037be5790ff9fe9979bcfe629e25851
MD5 c21e24caa5cd6e5aba5f8ce6d774e5f4
BLAKE2b-256 992b97224f0aaf73ad82b5862e99598a92641faa5b2d1f0790310c76a181a07d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tethered-0.5.3-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 60dab600d0e1ebf966bf4401d91594bdefb6253357732b5095036aba5fc333b3
MD5 1c4ddd2c6333755f7fc8e29fa1dd4fec
BLAKE2b-256 a693ef0c4b3a435082250242d3c5de8976bb2065724dcc1af3421565e5437cd7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tethered-0.5.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 65e932ad350295b2e2cf92bd70e305251377ba8537cd542d22ec87e916d21722
MD5 0f9ce53fdf007be58f214cec94d991c5
BLAKE2b-256 c73d213d56e644bab0ae90c386bb317c51ae99520e4a7884c6f1b8589b1828b5

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.3-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.3-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.3-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 f01e753dc64401603b8e0cb708713bd2a48bdb301c091c018e8bb4f7b0fa7c99
MD5 90a885700c0036e65369c82ec95b9600
BLAKE2b-256 14c2741adf1f7ecdeeeb53b706c264a46180b4b5565181c08e23129ed4c7f78e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tethered-0.5.3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 25753aa77662fad11329d7b2955b21f7a7fc145898df947dcaf1c76cd19706e1
MD5 52211d4956f41e54b82ee5f6a063c502
BLAKE2b-256 52869afb6f6eb04b9cdfd6921bf7ae9cd0a9cefa765faf9a5c3b8618285e7df5

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: tethered-0.5.3-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 56.5 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.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 c9c9ea2f4d2baf95759085789aa561f6e2c3892a57e5fb8827d18a953dbfa885
MD5 48572ba91a033379633cfb199cab4308
BLAKE2b-256 4490a4c272ca5b7faedd6756dd7683bf00da5eeaf6d9d1c19c45d299265ff5b9

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: tethered-0.5.3-cp312-cp312-win32.whl
  • Upload date:
  • Size: 55.6 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.3-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 c0836c5700f9f2b7ea8f8057bea91b613daa9821622bf70ea81ae6006fdc25f6
MD5 90e2a83174b817a569a4a671375f39dd
BLAKE2b-256 62d8db4ce20e834d8a323e2e24fdd824fedb8820cf90b1859a80bf97a1aefdde

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tethered-0.5.3-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ba3d5d2eafacf82cdcdb12d4abff04bb4850de3c16de382ad55fd04e4b39b36d
MD5 8ced3aa9936cb2094bafc1cf1153df36
BLAKE2b-256 4c1b369c5aabcb3b08c8f20b2ae01034938354f39775a8cd782c591818638191

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tethered-0.5.3-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 cd7d62446a7655f3a45674a2be418cfcdefdb7067d94d3d2efdadb95c96aaeec
MD5 45d85bdf36cca4631b07312cb8751e1b
BLAKE2b-256 88c18bfc18604ce0017d8d7869da1c86f45e4a54392fc58430d8bfdc2c9d51d8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tethered-0.5.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4f44b4f9d5010bf982349cc776c4815aac7c94b8f51884154d507939df339a01
MD5 04806c92a540f7bce9524b9d76436402
BLAKE2b-256 b981dfbcc9b58dfdb024e73057466c5bd8a6103ef67ce2e76c4db9caf5e0406e

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.3-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.3-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.3-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 13e048be819aee87354d4af2f9d7e7a46a914f20be3a5cabe9d0b3103d4e56de
MD5 8b5ab478bee45e6cd03e0e70197dc20a
BLAKE2b-256 1e1f9cfb64e8f8f7dabda95eeb874eb7e16200d7cb777fc86cd7f2abe68a74fb

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tethered-0.5.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 07a1ed41f9e7d7b195b5bcb181e8e2ba944e340102e2211a4e3543cd5a437226
MD5 c1e62eb4f91cd6216fe5fab308431297
BLAKE2b-256 35aceb5fd8454d437dbbf9ff40f76d9e551823aae1d76c58c2984d2fdbb6f96d

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: tethered-0.5.3-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 56.4 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.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 fcbb138a01c6ea254811d6479bbe06e0d3bbf304954994689c4d0de0e31c356d
MD5 47112815bdd916038faef112677db64a
BLAKE2b-256 72ac9798b954684051c1dfb0e623af0b32e0628b86ecef70c9a0f0a2aced5e04

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: tethered-0.5.3-cp311-cp311-win32.whl
  • Upload date:
  • Size: 55.5 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.3-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 0826ebe78f97b1683fb77ec3e64f9d5b4442e1053cd063c52664fbd9179305e8
MD5 3f316d5dd3977c0fc3eb49fab6abe1fa
BLAKE2b-256 6315f1ec3d334fd2e4b4fd1932a6ce8e38fdb577d97721515f4823b3e82771ab

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tethered-0.5.3-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 759cc363a7ccceab4ca5b4b0020edce8155da5332070f72ab20a2fbb4910b8f5
MD5 e06ac39dfce8a7e23b574bb23a67dbbb
BLAKE2b-256 f7083e2e784b7a27bdee2794a2f998423634fdbaee6a09b52702d60b431f4a91

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tethered-0.5.3-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 84e0e553e8ac53ab75ed424d6b256f4e9bf4786edbe0ab30fc0a2ddc0e1b77ba
MD5 711ec5cfe58da55337d3cebae1084f5e
BLAKE2b-256 07982c1ce0e48baa030f59811bb0d20355c27edd5c47de38f145b979d2cb9c35

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tethered-0.5.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0ebf6debd20299e6843d50678e10e7b688ded2bf329811fb38040ea84bd61526
MD5 370706461610826d23dfd1e0c256d9fc
BLAKE2b-256 9b89f3d3c540331b51a538f4d1b84f09a616505b7d3377ebcd74f2f6d33f5d20

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.3-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.3-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.3-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 e1f5963f6fc76741f19d23f8777b9c1bded1b172fe208aa8c4f0b95c23a6845e
MD5 7a379d18931e05129eb77a6ccf26693d
BLAKE2b-256 0a0ca55840f7eb3663f53d5dccc8f8b1bd350b365e18d483c0b751a898542195

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tethered-0.5.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a3fef5f9ccbc521c58daf2d62be34295147a6afa004efd03277630e663357c4d
MD5 24ed1f3c7f727694a5d079bf4a7d1f60
BLAKE2b-256 963befece9dd5aa73c17a80cddf5e01036f6ce236f704b626062f43d78907179

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: tethered-0.5.3-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 56.4 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.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 29c5744e61a7d03f469e798ae90a1367c0cd318b0fadc52ea883802bf977b567
MD5 08bf7581712fd5a58dc9ec5225720c0b
BLAKE2b-256 a1b845e8bf9fc342dee7f1929b887baf1a1bd81fa7f909af7bea43a260b7da04

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: tethered-0.5.3-cp310-cp310-win32.whl
  • Upload date:
  • Size: 55.5 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.3-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 1bd81eb3fd586673a036c959cd39bc9cdd48ae08e85165d79ed64642c17a0c3f
MD5 d86da5e68cec290e2a75f16a95eef558
BLAKE2b-256 4abfad013f0a4965e3f150c50131e69c5c15bef77c767c941aa9ffeb823e74a0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tethered-0.5.3-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3d72ad9a6c0fdaef02ab00e7b71632afb5638c102cdb521cbf5974872e56ed01
MD5 261ecdda81a877c5e6df1df67fd09e21
BLAKE2b-256 6ccd2cd42da0bbcc15c094bcd7d9cec278f460ab405c6d63b4ecdc8d6593d2cd

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tethered-0.5.3-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 80eba500aa8be484ba0236776f4a5887a7688e01b96630c39743d1cd66107101
MD5 996d579675b08535ffebba8c6a926516
BLAKE2b-256 ee420cd62db2708ed7637299de449bb9a57f703011944bb51583d93d7335aade

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tethered-0.5.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 569d4090a85b0ad40ac80c43ceb64a0e799d1b723f2632b0935c6bf2a5e3fe3c
MD5 46b4ee6dc3ddf9564e6283d6a6fafe60
BLAKE2b-256 a7cf6ad1f169c415fdcb74ce324e57c4f7c2fd295139f2ef569d05aa4d9979c3

See more details on using hashes here.

Provenance

The following attestation bundles were made for tethered-0.5.3-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.3-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.3-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 bc1041fd1a58dc765de58ccc7f8d1f6f13bb9e209f53a8d328516e46ecd28d64
MD5 9734ed51abb213c4cce9995280ccd590
BLAKE2b-256 bebccf249300b84d7f4691f5954a676e051f1f5b04f3d3c9adec97f9a2a40173

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tethered-0.5.3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b98b3b3f55257ca922122e767faa9c37913748bfd7eeb12f0c7fc97337c1e717
MD5 f360e2fd21b46624a9b79eb0235894a6
BLAKE2b-256 6a2fc06002ada7ed31a5b8f3af77c0e2d4bddc91524919bb00eb5bdf865c4edf

See more details on using hashes here.

Provenance

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

This release

0.5.3 This release

36 files

0.5.2

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