File size: 1,109 Bytes
5143557
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
"""Verifier exports for DataForge."""

from __future__ import annotations

from typing import Any

__all__ = [
    "AggregateDependency",
    "DomainBound",
    "FunctionalDependency",
    "SMTVerifier",
    "Schema",
    "SchemaToSMT",
    "VerificationResult",
    "VerificationVerdict",
    "explain_unsat_core",
]


def __getattr__(name: str) -> Any:
    """Lazily expose verifier symbols without import-time cycles."""
    if name in {"AggregateDependency", "DomainBound", "FunctionalDependency", "Schema"}:
        from dataforge.verifier import schema as schema_module

        return getattr(schema_module, name)
    if name in {"SchemaToSMT", "VerificationResult", "VerificationVerdict"}:
        from dataforge.verifier import smt as smt_module

        return getattr(smt_module, name)
    if name == "SMTVerifier":
        from dataforge.verifier import gate as gate_module

        return gate_module.SMTVerifier
    if name == "explain_unsat_core":
        from dataforge.verifier import explain as explain_module

        return explain_module.explain_unsat_core
    raise AttributeError(name)