""" 全局配置文件 提供应用程序的配置参数和常量定义 """ import os from enum import Enum from pathlib import Path class FieldType(Enum): """字段类型枚举""" INT = "int" FLOAT = "float" DOUBLE = "double" STRING = "string" DATETIME = "datetime" BOOLEAN = "boolean" BYTES = "bytes" ENUM = "enum" STRUCT = "struct" class OperatorType(Enum): """操作符类型枚举""" DIRECT = "DIRECT" ADD = "ADD" SUBTRACT = "SUBTRACT" MULTIPLY = "MULTIPLY" DIVIDE = "DIVIDE" MODULO = "MODULO" BIT_SHIFT_LEFT = "BIT_SHIFT_LEFT" BIT_SHIFT_RIGHT = "BIT_SHIFT_RIGHT" BIT_AND = "BIT_AND" BIT_OR = "BIT_OR" BIT_XOR = "BIT_XOR" CONCAT = "CONCAT" SUBSTRING = "SUBSTRING" CAST = "CAST" class ProtocolType(Enum): """传输协议类型枚举""" TCP = "tcp" UDP = "udp" DDS = "dds" CUSTOM = "custom" class SerializationType(Enum): """序列化格式枚举""" JSON = "json" XML = "xml" PROTOBUF = "protobuf" CUSTOM = "custom" class LanguageType(Enum): """编程语言类型枚举""" C = "C" CPP = "CPP" PYTHON = "Python" class LanguageStandard(Enum): """语言标准枚举""" C99 = "C99" C11 = "C11" CPP11 = "C++11" CPP14 = "C++14" CPP17 = "C++17" CPP20 = "C++20" class Config: """应用程序配置类""" # 应用程序信息 APP_NAME = "体系集成试验工具" APP_VERSION = "1.0.0" APP_AUTHOR = "System Integration Team" # 路径配置 BASE_DIR = Path(__file__).parent DATABASE_DIR = BASE_DIR / "database" TEMPLATES_DIR = BASE_DIR / "templates" RESOURCES_DIR = BASE_DIR / "resources" LOGS_DIR = BASE_DIR / "logs" # 数据库配置 DATABASE_NAME = "system_integration.db" DATABASE_PATH = DATABASE_DIR / DATABASE_NAME # 日志配置 LOG_LEVEL = "INFO" LOG_FORMAT = "%(asctime)s - %(name)s - %(levelname)s - %(message)s" LOG_FILE = LOGS_DIR / "app.log" LOG_MAX_BYTES = 10 * 1024 * 1024 # 10MB LOG_BACKUP_COUNT = 5 # UI配置 WINDOW_WIDTH = 1400 WINDOW_HEIGHT = 900 WINDOW_MIN_WIDTH = 1000 WINDOW_MIN_HEIGHT = 700 # 性能配置 MAX_FIELDS = 10000 MAX_MESSAGES = 1000 GRAPH_QUERY_TIMEOUT = 1.0 # 秒 CODE_GEN_TIMEOUT = 5.0 # 秒 # 分页配置 DEFAULT_PAGE_SIZE = 50 MAX_PAGE_SIZE = 200 # 图形编辑器配置 NODE_WIDTH = 120 NODE_HEIGHT = 60 NODE_SPACING = 150 EDGE_WIDTH = 2 # 代码生成配置 DEFAULT_OUTPUT_DIR = BASE_DIR / "generated_code" INDENT_SIZE = 4 @classmethod def ensure_directories(cls): """确保必要的目录存在""" directories = [ cls.DATABASE_DIR, cls.TEMPLATES_DIR, cls.RESOURCES_DIR, cls.LOGS_DIR, cls.DEFAULT_OUTPUT_DIR, ] for directory in directories: directory.mkdir(parents=True, exist_ok=True) @classmethod def get_template_path(cls, template_name: str) -> Path: """获取模板文件路径""" return cls.TEMPLATES_DIR / template_name @classmethod def get_resource_path(cls, resource_name: str) -> Path: """获取资源文件路径""" return cls.RESOURCES_DIR / resource_name # 初始化配置 Config.ensure_directories()