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.24.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.24.0
File Interpreter ABI Platform
registry_discovery_client-0.24.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.24.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.10 abi3 Linux glibc 2.17+ ARM64 Details
registry_discovery_client-0.24.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.24.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL registry_discovery_client-0.24.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
02413783bf5bbcda9bbbdc54a6fc0972807fcf37d9aad4dc16a59a1bad05c587
BLAKE2b-256 checksum
How to use checksums
6e10d9f6378fff35f79e26ffc08cdf9da67aa0f9e805802cea109be512aaa1a7
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.24.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL registry_discovery_client-0.24.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
a1440fce8b0793b8daae7efd2f038e7f345104051dad70b4c708e0d6367b65ef
BLAKE2b-256 checksum
How to use checksums
738318d8a0b92ade1efa85a07ca430fff18145055d54ca5c758a17edb60ec214
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.24.0-cp310-abi3-macosx_11_0_arm64.whl

Download URL registry_discovery_client-0.24.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
487ee8c0196d4d0034d7a3e4014a7ac1a7447a64f5a6dee06a69eb1a1f2b1ce8
BLAKE2b-256 checksum
How to use checksums
403f73de1e33c12971fb6387eae6f4585226e95aab6dd40d167b0857233359bf
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

0.25.0

3 release files

This release

0.24.0 This release

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