import os import yaml from collections import Counter def check_duplicates(directory): for root, dirs, files in os.walk(directory): for file in files: if file.endswith(".yaml"): filepath = os.path.join(root, file) try: with open(filepath, 'r') as f: data = yaml.safe_load(f) if not data or 'classes' not in data: continue for class_name, class_def in data['classes'].items(): if 'slots' in class_def and class_def['slots']: slots = class_def['slots'] counts = Counter(slots) duplicates = [item for item, count in counts.items() if count > 1] if duplicates: print(f"File: {file}, Class: {class_name}, Duplicates: {duplicates}") except Exception as e: print(f"Error processing {file}: {e}") if __name__ == "__main__": check_duplicates("/Users/kempersc/apps/glam/schemas/20251121/linkml/modules/classes")