#!/usr/bin/env python3 """Explore GeViGscServer folder in detail""" import asyncio import sys import os sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'src')) from api.protos import configuration_pb2, configuration_pb2_grpc import grpc async def explore_gsc(): """Explore GeViGscServer folder in detail""" channel = grpc.aio.insecure_channel('localhost:50051') stub = configuration_pb2_grpc.ConfigurationServiceStub(channel) try: request = configuration_pb2.ReadConfigurationTreeRequest() response = await stub.ReadConfigurationTree(request, timeout=10.0) print("=" * 70) print("GeViGscServer Folder - Complete Contents") print("=" * 70) for child in response.root.children: if child.name == "GeViGscServer": print(f"\nFolder: {child.name}") print(f"Type: {child.type}") print(f"Number of children: {len(child.children)}") print() # Show ALL items in GeViGscServer for item in child.children: type_name = item.type value_str = "" # Try to get the value if item.type == "int32": value_str = f" = {item.int_value if hasattr(item, 'int_value') else 'N/A'}" elif item.type == "string": value_str = f" = '{item.string_value if hasattr(item, 'string_value') else 'N/A'}'" elif item.type == "bool": value_str = f" = {item.bool_value if hasattr(item, 'bool_value') else 'N/A'}" elif item.type == "folder": value_str = f" (contains {len(item.children)} items)" if len(item.children) > 0: field_names = [c.name for c in item.children[:15]] value_str += f"\n Fields: {', '.join(field_names)}" if len(item.children) > 15: value_str += f", ... ({len(item.children) - 15} more)" print(f" {item.name} ({type_name}){value_str}") break # Also check if there are other scope-related folders print("\n" + "=" * 70) print("Other potentially relevant folders:") print("=" * 70) for child in response.root.children: name_lower = child.name.lower() if 'scope' in name_lower and child.name != "GeViGscServer": print(f"\n {child.name} ({child.type})") if child.type == "folder": print(f" Contains {len(child.children)} items") if len(child.children) > 0 and len(child.children) <= 10: for item in child.children: print(f" - {item.name} ({item.type})") await channel.close() except Exception as e: print(f"ERROR: {e}") import traceback traceback.print_exc() await channel.close() if __name__ == "__main__": asyncio.run(explore_gsc())