import os def fix_file(path): filename = os.path.basename(path) classname = filename.replace('.yaml', '') with open(path, 'r') as f: lines = f.readlines() new_lines = [] in_imports = False modified = False for line in lines: stripped = line.strip() if stripped == "imports:": in_imports = True new_lines.append(line) continue if in_imports: if not stripped.startswith("-"): if stripped and not stripped.startswith("#"): in_imports = False new_lines.append(line) else: import_path = stripped.lstrip("- ").strip() # Check for self-import: - ./ClassName if import_path == f"./{classname}": print(f"Removing self-import in {path}: {stripped}") modified = True continue else: new_lines.append(line) else: new_lines.append(line) if modified: with open(path, 'w') as f: f.writelines(new_lines) def process_directory(directory): for root, dirs, files in os.walk(directory): for file in files: if file.endswith(".yaml"): fix_file(os.path.join(root, file)) process_directory("schemas/20251121/linkml/modules/classes")