aeat.domain.calculations.registry._validate_cross_revision_advisory module

Advisory cross-revision drift summaries for non-overlapping revisions.

class CrossRevisionCasillaDriftSummary(modelo_id, left_revision_id, right_revision_id, field, drift_count, example_casilla_ids, continuidad_ids=(), evolution_kinds=(), covered_by_evolution_count=0, uncovered_count=0)[source]

Bases: object

Grouped advisory drift inventory for non-overlapping revisions.

Parameters:
  • modelo_id (str)

  • left_revision_id (str)

  • right_revision_id (str)

  • field (str)

  • drift_count (int)

  • example_casilla_ids (tuple[CasillaId, ...])

  • continuidad_ids (tuple[str, ...])

  • evolution_kinds (tuple[str, ...])

  • covered_by_evolution_count (int)

  • uncovered_count (int)

modelo_id: str
left_revision_id: str
right_revision_id: str
field: str
drift_count: int
example_casilla_ids: tuple[TypeAliasType, ...]
continuidad_ids: tuple[str, ...]
evolution_kinds: tuple[str, ...]
covered_by_evolution_count: int
uncovered_count: int
summarize_non_overlapping_cross_revision_casilla_drift(modelos, *, example_limit=5)[source]

Return advisory drift summaries for repeated ids in non-overlapping revisions.

The snapshot-build validator raises on overlapping revision windows because those revisions can apply to the same filing period. Annual non-overlapping forms, such as M100, can legally evolve or repurpose repeated numeric ids; this inventory keeps that drift visible without turning it into a load-time error before the schema has an explicit continuity/evolution contract.

Parameters:
  • modelos (Iterable[ModeloDefinition]) – Iterable of ModeloDefinition instances to inspect for cross-revision casilla drift.

  • example_limit (int) – Maximum number of example casilla ids to include in each summary record.

Return type:

tuple[CrossRevisionCasillaDriftSummary, ...]

Returns:

Tuple of CrossRevisionCasillaDriftSummary records, one per drifted casilla id.