cadrumo.application.modelo.selectors module¶
Calculation-revision selector policy for Modelo work units.
Revision selectors load persisted CalculationRevision rows and return a
ModeloCalculationRevisionSelection for current, latest draft, latest
verified, filed, or explicit-id picks.
Command-specific revision defaults stay here rather than in CLI modules: verification selects the current draft, filing selects the current verified-complete revision, and export prefers the current filed revision before falling back to an unambiguous verified-complete revision.
- class ModeloCalculationRevisionSelector(*values)[source]¶
Bases:
StrEnumClosed selector set for calculation revisions under a work unit.
- CURRENT¶
- LATEST_DRAFT¶
- LATEST_VERIFIED¶
- FILED¶
- EXPLICIT¶
- exception ModeloCalculationRevisionSelectorError(message=None, *, context=None, translated_message=None)[source]¶
Bases:
ModeloErrorBase error for calculation-revision selector refusals.
- Parameters:
- Return type:
None
- code¶
- exception ModeloCalculationRevisionSelectorNotFoundError(message=None, *, context=None, translated_message=None)[source]¶
Bases:
ModeloCalculationRevisionSelectorErrorRaised when a requested calculation revision cannot be selected.
- Parameters:
- Return type:
None
- code¶
- exception ModeloCalculationRevisionSelectorStateError(message=None, *, context=None, translated_message=None)[source]¶
Bases:
ModeloCalculationRevisionSelectorErrorRaised when a command-specific selector finds a revision in the wrong state.
- Parameters:
- Return type:
None
- code¶
- exception ModeloCalculationRevisionSelectorAmbiguousError(candidates)[source]¶
Bases:
ModeloCalculationRevisionSelectorErrorRaised when a default revision selector would have to guess.
- Parameters:
candidates (tuple[ModeloCalculationRevisionCandidate, ...])
- Return type:
None
- code¶
- class ModeloCalculationRevisionCandidate(**data)[source]¶
Bases:
BaseModelHuman-readable calculation revision metadata for selector guidance.
- Parameters:
data (Any)
- calculation_revision_id: CalculationRevisionId¶
- short_calculation_revision_id: str¶
- work_unit_id: WorkUnitId¶
- state: CalculationRevisionState¶
- created_at: str¶
- updated_at: str¶
- verified_at: str | None¶
- filed_at: str | None¶
- classmethod from_revision(revision)[source]¶
Project a
CalculationRevisioninto aModeloCalculationRevisionCandidate.- Return type:
- Parameters:
revision (CalculationRevision)
- class ModeloCalculationRevisionSelection(**data)[source]¶
Bases:
BaseModelResolved calculation revision selection under a work unit.
- Parameters:
data (Any)
- selector: ModeloCalculationRevisionSelector¶
- work_unit_id: WorkUnitId¶
- revision: CalculationRevision¶
- candidates: tuple[ModeloCalculationRevisionCandidate, ...]¶
- select_modelo_calculation_revision(work_unit, *, selector, calculation_revision_id=None, calculation_repository, operation)[source]¶
Select one persisted calculation revision as
ModeloCalculationRevisionSelection.EXPLICITrequirescalculation_revision_idand verifies the revision belongs to the suppliedWorkUnit. Non-explicit selectors resolve through the work unit’s current/filed pointers or by latest state, and refuse missing or mismatched state instead of falling back to another revision.- Return type:
- Parameters:
work_unit (WorkUnit)
selector (ModeloCalculationRevisionSelector)
calculation_revision_id (CalculationRevisionId | None)
calculation_repository (CalculationRevisionCatalogueRepositoryProtocol)
operation (PinnedAuthorityOperation)
- resolve_modelo_calculation_revision_pick(work_unit, *, selector=ModeloCalculationRevisionSelector.CURRENT, calculation_revision_id=None, default_for=None, calculation_repository, operation)[source]¶
Resolve a command-specific
ModeloCalculationRevisionSelectionpick under one work unit.This is the application selector policy surface for commands that accept a natural work target plus a revision selector. It preserves the exact calculation-revision id escape hatch, while keeping command defaults explicit: verification consumes the current draft, filing consumes the current verified-complete revision, and export prefers filed/current verified revisions according to
select_exportable_revision.- Return type:
- Parameters:
work_unit (WorkUnit)
selector (ModeloCalculationRevisionSelector)
calculation_revision_id (CalculationRevisionId | None)
default_for (ModeloCalculationRevisionDefault | None)
calculation_repository (CalculationRevisionCatalogueRepositoryProtocol)
operation (PinnedAuthorityOperation)
- select_current_verified_revision(work_unit, *, calculation_repository, operation)[source]¶
Select the current verified-complete revision for filing.
Returns a
ModeloCalculationRevisionSelection.- Return type:
- Parameters:
work_unit (WorkUnit)
calculation_repository (CalculationRevisionCatalogueRepositoryProtocol)
operation (PinnedAuthorityOperation)
- select_exportable_revision(work_unit, *, calculation_repository, operation)[source]¶
Select the default exportable
ModeloCalculationRevisionSelectionfor a work unit.Preference order: 1. current filed pointer, when it points to a current filed revision; 2. current calculation pointer, when it is verified-complete; 3. one unambiguous verified-complete revision, only when no current draft conflicts.
- Return type:
- Parameters:
work_unit (WorkUnit)
calculation_repository (CalculationRevisionCatalogueRepositoryProtocol)
operation (PinnedAuthorityOperation)