Source code for aeat.domain.calculations.registry._schema_input_kind
"""Input-kind schema axis for registry casillas."""from__future__importannotationsfromenumimportStrEnumfromtypingimportAnnotatedfrompydanticimportBeforeValidatorfrom._errorsimportRegistryValidationError__all__=["InputKind","InputKindValue"]
[docs]classInputKind(StrEnum):"""Registry-authoritative classification of how a casilla value is supplied."""MANUAL="manual"BOUND="bound"COMPUTED="computed"INFORMATIONAL="informational"
def_coerce_input_kind(value:object)->object:"""Coerce a TOML string literal to the canonical InputKind member."""ifisinstance(value,InputKind):returnvalueifisinstance(value,str):try:returnInputKind(value)exceptValueError:raiseRegistryValidationError(f"input_kind {value!r} is not a recognised InputKind member; "f"expected one of {[member.valueformemberinInputKind]}",)fromNoneraiseRegistryValidationError(f"input_kind must be a string, got {type(value).__name__!r}")InputKindValue=Annotated[InputKind,BeforeValidator(_coerce_input_kind)]"""Annotated InputKind that coerces TOML string literals to enum members."""