Skip to content

wrapper

orchard.core.metadata.wrapper

Pydantic Wrapper for Multi-Domain Dataset Registries.

type-safe, validated access to multiple dataset domains (medical, space) and resolutions (28x28, 32x32, 64x64, 128x128, 224x224). Merges domain registries based on selected resolution while avoiding global metadata overwrites.

DatasetRegistryWrapper

Bases: BaseModel

Pydantic wrapper for multi-domain dataset registries.

Merges domain-specific registries (medical, space) based on the selected resolution and provides validated, deep-copied access to dataset metadata entries.

Attributes:

Name Type Description
resolution int

Target dataset resolution (28, 32, 64, 128, or 224).

registry dict[str, DatasetMetadata]

Deep-copied metadata registry for the selected resolution.

get_dataset(name)

Retrieves specific DatasetMetadata by name.

Parameters:

Name Type Description Default
name str

Dataset identifier

required

Returns:

Type Description
DatasetMetadata

Deep copy of DatasetMetadata

Raises:

Type Description
KeyError

If dataset not found in registry

Source code in orchard/core/metadata/wrapper.py
def get_dataset(self, name: str) -> DatasetMetadata:
    """
    Retrieves specific DatasetMetadata by name.

    Args:
        name: Dataset identifier

    Returns:
        Deep copy of DatasetMetadata

    Raises:
        KeyError: If dataset not found in registry
    """
    if name not in self.registry:
        available = list(self.registry.keys())
        raise KeyError(f"Dataset '{name}' not found. Available: {available}")

    return copy.deepcopy(self.registry[name])