Skip to main content

dbml_sharepoint.analysis.ordering

dependency ordering and site filtering

Two-pass dependency resolution.

Phase 2.1: create lists in topological order, with non-lookup columns and as many lookup columns as can be resolved (target already created).

Phase 2.2: add the remaining lookup columns — self-references and any side of a strongly connected component.

DeployPlan

@dataclass
class DeployPlan:
list_creation_order: list[str] = list()
phase2_lookups: list[tuple[str, str]] = list()

DeployPlan(list_creation_order: list[str] = <factory>, phase2_lookups: list[tuple[str, str]] = <factory>)

compute_phases

def compute_phases(schema: dbml_sharepoint.model.parser.Schema) -> dbml_sharepoint.analysis.ordering.DeployPlan

site_tables_in_order

def site_tables_in_order(schema: dbml_sharepoint.model.parser.Schema, entities: 'dict[str, EntityMapping]', site_role: str) -> list[str]

Dependency-ordered table names deployed for this site role.

The shared role filter jsgen, rollbackgen, demogen and assessgen each previously re-implemented inline. Callers pass bundle.mapping.entities; ordering stays parser-pure.