Source code for cadrumo.domain.calculations.row_casilla
"""Typed direct materialisation of one source row into one casilla row."""from__future__importannotationsfrompydanticimportBaseModel,Field,model_validatorfrom...core.casilla_idimportCasillaIdfrom...core.errors.hierarchyimportpydantic_validation_boundaryfrom...core.modelsimportSTRICT_FROZEN_HIDDEN_INPUT_CONFIGfrom.registry.idsimportBindingId,RevisionIdfrom.row_source_identityimportRowSourceIdentitytypeRowCasillaKey=tuple[CasillaId,int]
[docs]classDirectRowMaterializationProvenance(BaseModel):"""Registry-owned proof that one binding row directly supplied a casilla row."""model_config=STRICT_FROZEN_HIDDEN_INPUT_CONFIGsource_binding_id:BindingIdsource_row_index:int=Field(ge=1)source_identity:RowSourceIdentity=Field(repr=False)materialization_rule_id:BindingIdmaterialization_rule_version:RevisionId@model_validator(mode="after")@pydantic_validation_boundarydef_rule_is_the_source_binding(self)->DirectRowMaterializationProvenance:ifself.materialization_rule_id!=self.source_binding_id:raiseValueError("direct row materialization rule must equal its source binding")returnself