now modulename and relative filename are stored separately

This commit is contained in:
2026-08-09 02:04:04 +02:00
parent d4337ad1a5
commit 388ee649c3
141 changed files with 1104 additions and 552 deletions
+8 -4
View File
@@ -29,7 +29,8 @@ DEFAULT_OUTPUT = "data"
class RegisterExtractor(ast.NodeVisitor):
def __init__(self, filename, source):
def __init__(self, source, module, filename):
self.module = module
self.filename = filename
self.source = source
self.results = []
@@ -69,6 +70,7 @@ class RegisterExtractor(ast.NodeVisitor):
self.walk_statements(func.body, operations, "before_super", None)
self.results.append({
"module": self.module,
"file": self.filename,
"class": cls,
"method": "__register__",
@@ -407,8 +409,9 @@ class RegisterExtractor(ast.NodeVisitor):
"code": code,
}
def analyse_file(path):
def analyse_file(module, modulepath, filename):
path = modulepath / filename
try:
source = path.read_text(encoding="utf-8")
tree = ast.parse(source)
@@ -416,7 +419,7 @@ def analyse_file(path):
print(f"Cannot parse {path}: {e}")
return []
visitor = RegisterExtractor(str(path), source)
visitor = RegisterExtractor(source, module, filename)
visitor.visit(tree)
results = [r for r in visitor.results if r["operations"]]
@@ -495,7 +498,8 @@ def main():
results = []
for py in sorted(module_path.rglob("*.py")):
results.extend(analyse_file(py))
filename = str(py.relative_to(module_path))
results.extend(analyse_file(module, module_path, filename))
outdir = output / version
outdir.mkdir(parents=True, exist_ok=True)