Skip to content

versioning

Schema version migration utilities for generation parameter payloads.

ParameterSchemaMigrationFunc module-attribute

ParameterSchemaMigrationFunc = Callable[
    [dict[str, object]], dict[str, object]
]

ParameterSchemaMigrationError

Bases: RuntimeError

Raised when a parameter payload cannot be migrated to the current schema.

Source code in horde_sdk/generation_parameters/versioning.py
class ParameterSchemaMigrationError(RuntimeError):
    """Raised when a parameter payload cannot be migrated to the current schema."""

register_parameter_schema_migration

register_parameter_schema_migration(
    parameter_type: type[CompositeParametersBase],
    *,
    from_version: str,
    to_version: str,
    migration: ParameterSchemaMigrationFunc
) -> None

Register a migration step that upgrades parameter_type payloads.

Source code in horde_sdk/generation_parameters/versioning.py
def register_parameter_schema_migration(
    parameter_type: type[CompositeParametersBase],
    *,
    from_version: str,
    to_version: str,
    migration: ParameterSchemaMigrationFunc,
) -> None:
    """Register a migration step that upgrades ``parameter_type`` payloads."""
    _PARAMETER_SCHEMA_MIGRATIONS.register(
        parameter_type,
        from_version=from_version,
        to_version=to_version,
        migration=migration,
    )

apply_parameter_schema_migrations

apply_parameter_schema_migrations(
    parameter_type: type[CompositeParametersBase],
    payload: Mapping[str, object],
) -> dict[str, object]

Upgrade payload to match parameter_type's current schema version.

Source code in horde_sdk/generation_parameters/versioning.py
def apply_parameter_schema_migrations(
    parameter_type: type[CompositeParametersBase],
    payload: Mapping[str, object],
) -> dict[str, object]:
    """Upgrade ``payload`` to match ``parameter_type``'s current schema version."""
    return _PARAMETER_SCHEMA_MIGRATIONS.apply(parameter_type, payload)