Skip to content

application.columnar

Papel na engine

application.columnar define fronteiras de dados entre domínio e representação tabular. Em um módulo crítico, esse contrato evita deriva de schema e reduz risco de regressão silenciosa.

Módulo: application.columnar.schema

Constantes:

  • SCHEMA_VERSION = "1"
  • SCHEMA_VERSION_COLUMN = "__schema_version"
  • DEMAND_FRAME_COLUMNS
  • FORECAST_FRAME_COLUMNS

assert_required_columns(context, columns, required) -> None

Valida presença de colunas obrigatórias e levanta InvariantViolation em caso de ausência.

Módulo: application.columnar.ports

DomainToColumnarPort

  • demand_series_to_frame(series) -> Any
  • forecast_run_to_frame(run) -> Any

ColumnarToDomainPort

  • frame_to_demand_series(frame) -> DemandSeries
  • frame_to_forecast_points(frame, grain, expected_uom) -> list[ForecastPoint]

ColumnarStoragePort

  • write_frame(frame, destination, schema_version) -> str
  • read_frame(source, expected_schema_version) -> Any

Notas de implementação

  • O pacote define contratos abstratos e não fixa o tipo de frame (Any).
  • A implementação de referência está em adapters.columnar com Polars.