aeat.application.aggregation._foreign_assets module¶
Modelo 720 foreign-assets aggregation and source-mesh resolver.
Modelo 720 is an informativa declaration for assets and rights abroad. This
module groups per-asset observations by (source_kind, asset_class) and
returns ForeignAssetsAggregation for
application.aggregation._service; the repository-free
ForeignAssetsAggregationSourceResolver adapts the same observations to
the calculation source-mesh envelope when a caller supplies them.
Declarability is per regulatory obligation block. The aggregate keeps raw class
rollups, and declarable_asset_classes_720() applies each block’s threshold
to the sum of every present class in that block. Observation construction accepts
only the four canonical source-kind values ledger_transaction,
purchase_invoice_evidence, payable_invoice, and
collectible_invoice; bare invoice is rejected.
- class ForeignAssetIngestObservation(**data)[source]¶
Bases:
BaseModelOne asset observation for a Modelo 720 aggregator pass.
- Parameters:
source_kind (BindingSourceKind)
source_object_id (str)
asset_class (ForeignAssetClass)
asset_external_id (str)
country (str)
issuer_or_institution (str)
valuation_eur (Decimal)
acquisition_date (str)
held_at_year_end (bool)
- source_kind: BindingSourceKind¶
- source_object_id: str¶
- asset_class: ForeignAssetClass¶
- asset_external_id: str¶
- country: str¶
- issuer_or_institution: str¶
- valuation_eur: Decimal¶
- acquisition_date: str¶
- held_at_year_end: bool¶
- class ForeignAssetClassRollup(**data)[source]¶
Bases:
BaseModelPer-source-kind and per-asset-class rollup row.
- Parameters:
source_kind (BindingSourceKind)
asset_class (ForeignAssetClass)
assets_count (int)
held_at_year_end_count (int)
total_valuation_eur (Decimal)
- source_kind: BindingSourceKind¶
- asset_class: ForeignAssetClass¶
- assets_count: int¶
- held_at_year_end_count: int¶
- total_valuation_eur: Decimal¶
- countries: tuple[str, ...]¶
- class ForeignAssetsAggregation(**data)[source]¶
Bases:
BaseModel720 aggregation output: per-class rollups + cross-class totals.
- Parameters:
- modelo: str¶
- period: InstanceOf[Period]¶
- rollups: tuple[ForeignAssetClassRollup, ...]¶
- total_assets: int¶
- total_valuation_eur: Decimal¶
- declarable_asset_classes_720(aggregation)[source]¶
Return present asset classes whose obligation block exceeds its 720 declaration floor.
Returns a frozenset of
ForeignAssetClassmembers.- Return type:
- Parameters:
aggregation (ForeignAssetsAggregation)
- declarable_class(aggregation, *, asset_class)[source]¶
Return True iff an asset class’s obligation block crosses the 720 declaration floor.
- Return type:
- Parameters:
aggregation (ForeignAssetsAggregation)
asset_class (ForeignAssetClass)
- aggregate_foreign_assets_720(observations, *, period)[source]¶
Aggregate Modelo 720 observations into per-class rollups.
Returns a
ForeignAssetsAggregationgrouping observations by asset class. Pure function: identical observation input + period yields identical output. Rollups are sorted by asset_class.value so two equal aggregations serialise to identical bytes.No threshold gate is applied here; callers use
declarable_class()to filter rollups by obligation block before binding to Modelo 720 casillas.- Return type:
- Parameters:
observations (tuple[ForeignAssetIngestObservation, ...])
period (Period)
- class ForeignAssetsAggregationSourceResolver(*, observations=())[source]¶
Bases:
objectResolve Modelo 720 foreign-asset rows from operator-supplied observations.
The resolver is deliberately repository-free, mirroring the existing
aggregate_foreign_assets_720shape-C surface: callers supply typed observations, the resolver delegates to the aggregate function for threshold semantics, then validates the declarable rows against the live M720 registry row-producer bindings.- Parameters:
observations (Iterable[ForeignAssetIngestObservation])
- resolver_id¶
- owned_sources¶
- resolve(context)[source]¶
- Return type:
- Parameters:
context (CalculationSourceContext)