Source code for codegen_database.ext.chart.extension
from dataclasses import dataclass
from typing import TYPE_CHECKING
from sqlalchemy_declarative_extensions import register_function
from codegen_database import CodegenDatabaseExtension
from codegen_database.config import resolve_config
from codegen_database.ext.chart import (
CHART_SCHEMA_KEY,
)
from codegen_database.ext.chart.date_bin import construct_date_bin_function
if TYPE_CHECKING:
from sqlalchemy import MetaData
[docs]
@dataclass(frozen=True, eq=True)
class ChartExtension(CodegenDatabaseExtension):
name: str = "codegen_database-chart"
schema: str | None = None
[docs]
def configure_metadata(self, metadata: MetaData) -> None:
schema = self.schema or resolve_config(metadata).utility_schema
metadata.info[CHART_SCHEMA_KEY] = schema
register_function(
metadata,
construct_date_bin_function().construct_function(schema),
)