Skip to content

ReconciliationModule orchestration (numpy-native; drop wandb + multiprocessing) #36

Description

@Polichinel

Epic: #31 · Depends on: #34, #35

Background

Assemble the adapters (#33), the grouping core (#34), and the validation (#35) into the public reconciliation entry point — the ReconciliationModule equivalent. The original drags ProcessPoolExecutor (for torch/GPU dispatch) and wandb alerting; neither is justified for fast numpy arithmetic.

Work

  • A single orchestration class/function: validate → group+reconcile → return a new pgm PredictionFrame.
  • SRP: orchestration only — the math is the leaf, the mapping is injected, the I/O is the adapters, the validation is helpers. One main class per file; composition over inheritance.
  • Drop wandb and ProcessPoolExecutor; document why (numpy is fast, no GPU). If scale ever demands parallelism, add it behind the same interface (OCP) — do not bake it in now.
  • De-mutated return (C-184).

Acceptance criteria

  • reconcile(...) runs end-to-end on the S0 fixture and returns a reconciled pgm frame.
  • No torch / pandas / viewser / wandb imports anywhere in views_postprocessing/reconciliation/.
  • Input frames are untouched.

Validation

  • Integration test running the full module on the S0 fixture (precursor to the end-to-end parity gate, the next story).

Metadata

Metadata

Assignees

No one assigned

    Labels

    implementationCode implementation workreconciliationForecast reconciliation migration (views-reporting -> here)storyA single reviewable unit of an epic

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions