cadrumo.domain.calculations.registry.casilla_structural_succession module

Evidence-backed split/merge boundaries, never identity or value conversions.

class EndpointSourceContext(*args, **kwargs)[source]

Bases: Protocol

Minimum typed endpoint surface required by source-context validation.

id: TypeAliasType
valid_from: date
valid_to: date | None
period_selector: PeriodSelector
class CasillaStructuralKind(*values)[source]

Bases: StrEnum

The two approved shapes between distinct identities.

SPLIT
MERGE
class CasillaStructuralSuccession(**data)[source]

Bases: RegistryModel

One target-owned relationship with separately cited official endpoints.

Parameters:

data (Any)

id: str
kind: Annotated[CasillaStructuralKind, BeforeValidator(coerce_enum_member(CasillaStructuralKind))]
from_revision: RevisionId
to_revision: RevisionId
source_lineages: tuple[ContinuidadId, ...]
target_lineages: tuple[ContinuidadId, ...]
legal_refs: LegalRefs
from_source_refs: SourceRefs
to_source_refs: SourceRefs
evidence: str
endpoint_source_context_failures(prefix, *, endpoint, enrolled_source_ids, source_ids, sources)[source]

Validate exact source membership and temporal scope for one endpoint.

Return type:

tuple[str, ...]

Parameters:
structural_succession_failures(modelo)[source]

Validate ownership, exact endpoints, lifecycle and the independently declared edge.

Core types: ModeloDefinition.

Return type:

tuple[str, ...]

Parameters:

modelo (ModeloDefinition)

validated_structural_targets(modelo, revision_id)[source]

Only valid relationship membership resolves a successor’s origin totality.

Core types: ModeloDefinition.

Return type:

frozenset[str]

Parameters: