"""Helpers for offline generation against the current initial baseline.""" from . import models # noqa: F401 from .database import Base def baseline_table_names() -> set[str]: return set(Base.metadata.tables) def baseline_column_names(table_name: str) -> set[str]: table = Base.metadata.tables.get(table_name) return set(table.columns.keys()) if table is not None else set() def baseline_index_names(table_name: str) -> set[str]: table = Base.metadata.tables.get(table_name) return {index.name for index in table.indexes if index.name} if table is not None else set() def baseline_foreign_keys(table_name: str) -> list[dict]: table = Base.metadata.tables.get(table_name) if table is None: return [] return [ { "name": foreign_key.name, "constrained_columns": [foreign_key.parent.name], "referred_table": foreign_key.column.table.name, "referred_columns": [foreign_key.column.name], "options": { "ondelete": foreign_key.ondelete, "onupdate": foreign_key.onupdate, }, } for foreign_key in table.foreign_keys ]