Public Access
now modulename and relative filename are stored separately
This commit is contained in:
+8
-4
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user