Skip to main content

registry-discovery-client-py

Synchronous PyO3 binding for the bounded Rust registry-discovery-client SDK. It performs exact service search, Evidence Type resolution, and ambiguity-safe selection. A returned selection is inert public metadata. Apply local trust policy before calling its Evidence or Relay endpoint.

Starting with Registry Stack v0.23.0, install the exact client version that matches the Discovery deployment:

python -m pip install "registry-discovery-client==<version>"

Published v0.23.0 and later distributions carry manylinux wheels requiring glibc 2.17 or newer for Linux amd64 and Linux arm64, plus a macOS arm64 wheel.

The public methods accept only ordinary built-in JSON values: None, bool, signed 64-bit int, finite float, str, list, and dict with string keys. They reject custom objects, subclasses, tuples, cycles, and oversized values before sending a request. Invalid configuration always raises DiscoveryClientError(kind="configuration"); invalid request or selection values raise DiscoveryClientError(kind="query"). Error messages never echo caller values.

from registry_discovery_client import (
    DiscoveryClient,
    select_evidence_alternative,
    select_evidence_service,
    validate_selection,
)
from registry_evidence_client import EvidenceClient

client = DiscoveryClient("https://discovery.example.invalid/")
resolved = client.resolve_evidence_types({
    "requirementId": "urn:example:requirement",
    "jurisdiction": "urn:example:jurisdiction",
})
context = select_evidence_alternative(resolved)  # refuses zero or many alternatives
for evidence_type_id in context["evidenceTypeIds"]:
    services = client.search_evidence_services({
        "evidenceTypeId": evidence_type_id,
        "jurisdiction": context.get("jurisdiction"),
    })
    chosen = adopter_choose_record(services["items"])  # no catalog ranking
    selection = select_evidence_service(services, {
        "recordId": chosen["recordId"],
        "evidenceTypeId": evidence_type_id,
        "resolution": context,
    })

    checked = validate_selection(selection)  # use after loading persisted data
    app_trust.require_evidence(checked)  # local pins, never Discovery data
    evidence = EvidenceClient(
        checked["endpointUrl"],
        trusted_jwks,
        revoked_key_ids,
        token,
    )
    resolution = checked.get("evidenceResolution")
    if resolution is None:
        raise ValueError("missing Evidence resolution")
    prepared = evidence.prepare({
        **local_evidence_policy,
        "requirement": resolution["requirementId"],
        "evidence_type": checked["matchedCapability"]["id"],
    })
    verified = evidence.request_and_verify(prepared)

An Evidence alternative is an AND-list. The loop performs the search, explicit choice, trust check, and native request for every context["evidenceTypeIds"] member. The context supplies the resolved requirement and selected Evidence Type. The native definition and local policy still supply the purpose, audience, issuer/provider identity, configuration revision, selectors, and expected outputs.

Relay follows the same boundary with search_relay_services and select_relay_service. The selection retains both the semantic class and operation family. After local trust accepts it, pass selection["endpointUrl"] to registry_relay_client.RelayClient, then use native Relay metadata to choose the concrete resource and operation. Discovery never invents route arguments.

Release files for registry-discovery-client 0.25.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for registry-discovery-client 0.25.0
File Interpreter ABI Platform
registry_discovery_client-0.25.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 abi3 Linux glibc 2.17+ x86-64 Details
registry_discovery_client-0.25.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.10 abi3 Linux glibc 2.17+ ARM64 Details
registry_discovery_client-0.25.0-cp310-abi3-macosx_11_0_arm64.whl CPython 3.10 abi3 macOS 11.0+ ARM64 Details

Total release size: 5.1 MB

Release files / registry_discovery_client-0.25.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL registry_discovery_client-0.25.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.8 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
17f3ba6980ca297f1d2fc2f185da0a921e9dadb72a91acac34e727708a0e4cb5
BLAKE2b-256 checksum
How to use checksums
1afe7ea0ab25fa3e25a2cb3cf2689362b00e1c5bd4fb14efe1315bacd433e1e8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 22, 2026.

Transparency log

Release files / registry_discovery_client-0.25.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL registry_discovery_client-0.25.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.7 MB
Tags CPython 3.10 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
8a8565c5e4a5f1e2ad21bd216cb52bcaf20d07c07b13256dd9e2deed38dd6063
BLAKE2b-256 checksum
How to use checksums
6571e0ffc011f89ee840af117e2868acdee039e3c81cffea2724667fd3f934cc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 22, 2026.

Transparency log

Release files / registry_discovery_client-0.25.0-cp310-abi3-macosx_11_0_arm64.whl

Download URL registry_discovery_client-0.25.0-cp310-abi3-macosx_11_0_arm64.whl
Size 1.6 MB
Tags CPython 3.10 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
b5521fb86d4b9a2e9558299173355c789f8365338de04ef54cdf5b07e09c7541
BLAKE2b-256 checksum
How to use checksums
d1139891c1cf51ddb90de9604bbdb80905053f074fb09ac8512214d94689b442
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 22, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.25.0 This release

3 release files

0.24.0

3 release files

0.23.0

3 release 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