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)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 logRelease 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 logRelease 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