""" Analyze the edited configuration to see what GeViSet changed """ import sys import os import json os.chdir(r'C:\DEV\COPILOT_codex') sys.path.insert(0, r'C:\DEV\COPILOT_codex') from geviset_parser import load_set from pathlib import Path # Load the edited configuration set_file = Path(r"C:\DEV\COPILOT\edited_config.set") tree = load_set(set_file) # Find MappingRules mapping_rules = None for child in tree.get("children", []): if child.get("name") == "MappingRules" and child.get("type") == "folder": mapping_rules = child break if not mapping_rules: print("ERROR: MappingRules not found!") sys.exit(1) # Find FIXED_STRUCTURE_TEST mapping test_mapping = None for mapping in mapping_rules.get("children", []): if mapping.get("type") != "folder": continue name_node = None for child in mapping.get("children", []): if child.get("name") == "@": name_node = child break if name_node and name_node.get("value") == "FIXED_STRUCTURE_TEST": test_mapping = mapping break if not test_mapping: print("ERROR: FIXED_STRUCTURE_TEST mapping not found!") print("\nAvailable mappings:") for mapping in mapping_rules.get("children", []): if mapping.get("type") == "folder": for child in mapping.get("children", []): if child.get("name") == "@": print(f" - {child.get('value')}") sys.exit(1) print("=" * 80) print("MAPPING STRUCTURE AFTER GEVISET EDIT") print("=" * 80) print() print(f"Mapping ID: {test_mapping.get('name')}") print() print("TOP-LEVEL FIELDS (in order):") for i, child in enumerate(test_mapping.get("children", []), 1): child_type = child.get("type") child_name = child.get("name") child_value = child.get("value") if child_type == "folder": child_count = len(child.get("children", [])) print(f" {i:2d}. {child_name:20s} ({child_type:6s}): {child_count} children") else: print(f" {i:2d}. {child_name:20s} ({child_type:6s}): {child_value}") print() # Find and display Rules folder rules_folder = None for child in test_mapping.get("children", []): if child.get("name") == "Rules" and child.get("type") == "folder": rules_folder = child break if rules_folder: print("=" * 80) print("OUTPUT ACTIONS") print("=" * 80) print() for output in rules_folder.get("children", []): if output.get("type") != "folder": continue print(f"Output Action {output.get('name')}:") print("-" * 40) for field in output.get("children", []): field_name = field.get("name") field_type = field.get("type") field_value = field.get("value") print(f" {field_name:20s} ({field_type:6s}): {field_value}") print() # Save full structure to JSON for detailed comparison output_file = Path(r"C:\DEV\COPILOT\edited_mapping_full_structure.json") with output_file.open("w") as f: json.dump(test_mapping, f, indent=2) print("=" * 80) print(f"Full structure saved to: {output_file}") print("=" * 80)