from .policy import DataPolicyError, DataSourcePolicy
from .quality import DataQualityError, DataQualityGate, QualityEvidence, QualityReport

__all__ = [
    "DataGateway",
    "DataPolicyError",
    "DataQualityError",
    "DataQualityGate",
    "DataSourcePolicy",
    "QualityEvidence",
    "QualityReport",
    "build_data_gateway",
]


def __getattr__(name: str):
    if name in {"DataGateway", "build_data_gateway"}:
        from .gateway import DataGateway, build_data_gateway

        return {"DataGateway": DataGateway, "build_data_gateway": build_data_gateway}[name]
    raise AttributeError(name)
