ResourceMap
Shared path templates and components used by Schema and
Case discovery. Bind into Schema with
Schema.from_resources(...) or Schema.permissive(resources=...), and into
path-shaped grouping with CaseGrouping.role_based(...) /
CaseStructure.compose(...).
Import: from miura.sdk import ResourceMap (or from miura.sdk.resources import ResourceMap)
ResourceMap
module-attribute
ResourceMap = CollectionResourceCatalog
ReplayResourceCatalog
dataclass
Catalog stub for from_spec replay when full path templates are unavailable.
Source code in src/miura/nexus/collection/resource_catalog.py
| @dataclass(frozen=True, slots=True)
class ReplayResourceCatalog:
"""Catalog stub for from_spec replay when full path templates are unavailable."""
resources: Mapping[str, NodeSpec]
pinned_digest: str
components: Mapping[str, Pattern] = field(default_factory=dict)
def __post_init__(self) -> None:
if not self.resources:
raise ValueError("ReplayResourceCatalog requires at least one resource.")
if not self.pinned_digest.strip():
raise ValueError("ReplayResourceCatalog requires pinned_digest.")
def digest(self) -> str:
return self.pinned_digest
def get_resource(self, resource_ref: str) -> NodeSpec:
try:
return self.resources[resource_ref]
except KeyError as exc:
raise KeyError(f"Unknown resource_ref {resource_ref!r}.") from exc
|
resources
instance-attribute
resources: Mapping[str, NodeSpec]
pinned_digest
instance-attribute
components
class-attribute
instance-attribute
components: Mapping[str, Pattern] = field(default_factory=dict)
digest
Source code in src/miura/nexus/collection/resource_catalog.py
| def digest(self) -> str:
return self.pinned_digest
|
get_resource
get_resource(resource_ref: str) -> NodeSpec
Source code in src/miura/nexus/collection/resource_catalog.py
| def get_resource(self, resource_ref: str) -> NodeSpec:
try:
return self.resources[resource_ref]
except KeyError as exc:
raise KeyError(f"Unknown resource_ref {resource_ref!r}.") from exc
|