Panel and Graph Architecture Refactor Plan

Goal

Separate data from logic:

some_input = Panel.from_domain(dataframe, domain, name="some_input")
some_factor = rank(zscore(some_input), name="some_factor")
some_factor.compute()
factor_panel = some_factor.output

Public Boundary

from bagelquant_core import Graph, Panel
from bagelquant_core.composer import composer
from bagelquant_core.transformer import transformer

Completed Refactor

Panel Data Boundary

Function-Style Operations

Lazy Graph Logic

Runtime Cache

Future Work