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