forked from awendt/pyrelacs
34 lines
1.0 KiB
Python
34 lines
1.0 KiB
Python
import ast
|
|
import pathlib
|
|
|
|
from IPython import embed
|
|
|
|
|
|
class Repro:
|
|
def __init__(self) -> None:
|
|
pass
|
|
|
|
def run_repro(self, name: str, *args, **kwargs) -> None:
|
|
pass
|
|
|
|
def names_of_repros(self):
|
|
file_path_cur = pathlib.Path(__file__).parent
|
|
python_files = list(file_path_cur.glob("**/*.py"))
|
|
exclude_files = ["repros.py", "__init__.py"]
|
|
python_files = [f for f in python_files if f.name not in exclude_files]
|
|
repro_names = []
|
|
file_names = []
|
|
for python_file in python_files:
|
|
with open(python_file, "r") as file:
|
|
file_content = file.read()
|
|
tree = ast.parse(file_content)
|
|
class_name = [
|
|
node.name
|
|
for node in ast.walk(tree)
|
|
if isinstance(node, ast.ClassDef)
|
|
]
|
|
repro_names.extend(class_name)
|
|
file_names.append(python_file)
|
|
file.close()
|
|
return repro_names, file_names
|