This commit is contained in:
1 parent
4db3f45164
commit
d25c04cdd2
175 files changed
+56243
-15
No files matched your search
@@ -0,0 +1,30 @@
|
||||
"""Enforce inward dependencies in the domain package."""
|
||||
|
||||
import ast
|
||||
from pathlib import Path
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[1]
|
||||
FORBIDDEN = ("fastapi", "mcp", "gewu.adapters", "gewu.bootstrap", "gewu.transports")
|
||||
|
||||
|
||||
def main() -> None:
|
||||
domain = ROOT / "src" / "gewu" / "domain"
|
||||
violations: list[str] = []
|
||||
for path in domain.rglob("*.py"):
|
||||
tree = ast.parse(path.read_text(encoding="utf-8"), filename=str(path))
|
||||
for node in ast.walk(tree):
|
||||
if isinstance(node, ast.Import):
|
||||
names = [alias.name for alias in node.names]
|
||||
elif isinstance(node, ast.ImportFrom):
|
||||
names = [node.module or ""]
|
||||
else:
|
||||
continue
|
||||
for name in names:
|
||||
if any(name == prefix or name.startswith(prefix + ".") for prefix in FORBIDDEN):
|
||||
violations.append(f"{path.relative_to(ROOT)}:{node.lineno}: {name}")
|
||||
if violations:
|
||||
raise SystemExit("Forbidden domain dependencies:\n" + "\n".join(violations))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in new issue
Block a user