Skip to content

Registry

registry

Entity registry for typed SHM resources.

Classes

ShmEntityDefinition dataclass

ShmEntityDefinition(
    name, endpoint, record_model, serializer
)

Typed description of one SHM resource.

ShmEntityRegistry

ShmEntityRegistry()

Simple in-process registry for SHM entities.

Source code in src/owi/metadatabase/shm/registry.py
def __init__(self) -> None:
    self._registry: dict[ShmEntityName, ShmEntityDefinition] = {}
Functions
register
register(definition)

Register one SHM entity definition.

Source code in src/owi/metadatabase/shm/registry.py
def register(self, definition: ShmEntityDefinition) -> ShmEntityDefinition:
    """Register one SHM entity definition."""
    self._registry[definition.name] = definition
    return definition
get
get(entity_name)

Return the configured entity definition.

Source code in src/owi/metadatabase/shm/registry.py
def get(self, entity_name: ShmEntityName | str) -> ShmEntityDefinition:
    """Return the configured entity definition."""
    resolved_name = entity_name if isinstance(entity_name, ShmEntityName) else ShmEntityName(entity_name)
    try:
        return self._registry[resolved_name]
    except KeyError as exc:
        raise KeyError(f"Unknown SHM entity: {resolved_name}") from exc
names
names()

Return registered entity names.

Source code in src/owi/metadatabase/shm/registry.py
def names(self) -> list[str]:
    """Return registered entity names."""
    return sorted(name.value for name in self._registry)