From c3bd515cee333f21036174f5ec837ada0be3567d Mon Sep 17 00:00:00 2001 From: gongwenxin Date: Thu, 29 May 2025 16:42:14 +0800 Subject: [PATCH] clear config --- ddms_compliance_suite/config/__init__.py | 1 - ddms_compliance_suite/config/manager.py | 113 ----------------------- 2 files changed, 114 deletions(-) delete mode 100644 ddms_compliance_suite/config/__init__.py delete mode 100644 ddms_compliance_suite/config/manager.py diff --git a/ddms_compliance_suite/config/__init__.py b/ddms_compliance_suite/config/__init__.py deleted file mode 100644 index 0519ecb..0000000 --- a/ddms_compliance_suite/config/__init__.py +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/ddms_compliance_suite/config/manager.py b/ddms_compliance_suite/config/manager.py deleted file mode 100644 index f86a6e6..0000000 --- a/ddms_compliance_suite/config/manager.py +++ /dev/null @@ -1,113 +0,0 @@ -"""Configuration Management Module""" -import yaml -from pydantic import ValidationError # BaseModel is not directly used here anymore for defining AppConfig -from typing import Optional, Any - -from ..models.config_models import AppConfig # Import AppConfig from the new location - -class ConfigurationManager: - """ - Loads and manages application configuration from a YAML file. - Uses Pydantic for validation. - """ - def __init__(self, config_path: str = "configs/config.yaml"): - self.config_path = config_path - self.config: Optional[AppConfig] = None - self._load_config() - - def _load_config(self): - try: - with open(self.config_path, 'r') as f: - raw_config = yaml.safe_load(f) - if raw_config is None: - raw_config = {} # Allow empty config file, defaults from Pydantic will be used - self.config = AppConfig(**raw_config) - print(f"Configuration loaded successfully from {self.config_path}") - except FileNotFoundError: - print(f"Warning: Configuration file {self.config_path} not found. Using default settings.") - self.config = AppConfig() # Load with default values - except yaml.YAMLError as e: - print(f"Error parsing YAML configuration file {self.config_path}: {e}") - print("Falling back to default configuration.") - self.config = AppConfig() - except ValidationError as e: - print(f"Configuration validation error from {self.config_path}:\n{e}") - print("Falling back to default configuration due to validation errors.") - self.config = AppConfig() - except Exception as e: - print(f"An unexpected error occurred while loading configuration from {self.config_path}: {e}") - print("Falling back to default configuration.") - self.config = AppConfig() - - def get_config(self) -> AppConfig: - """Returns the loaded (and validated) application configuration.""" - if self.config is None: - print("Error: Config not loaded. Attempting to load defaults.") - self.config = AppConfig() - return self.config - - def get_module_config(self, module_name: str) -> Optional[Any]: - """Returns configuration for a specific module.""" - if self.config: - # Ensure the module_name is a valid attribute of AppConfig - if hasattr(self.config, module_name): - return getattr(self.config, module_name) - else: - print(f"Warning: Configuration for module '{module_name}' not found in AppConfig.") - return None - return None - -# Example Usage (can be moved to tests or main application logic) -if __name__ == '__main__': - # Create a dummy configs directory if it doesn't exist for the example - import os - if not os.path.exists("configs"): - os.makedirs("configs") - - dummy_config_file = "configs/dummy_config.yaml" - - dummy_config_content = { - 'app_name': 'My DDMS Checker', - 'logging': {'level': 'DEBUG'}, - 'api_caller': { - 'default_timeout': 60, - 'default_headers': {'X-Custom-Header': 'TestValue'} - }, - 'rule_repository': { - 'storage': { - 'type': 'filesystem', - 'path': './custom_rules' - }, - 'preload_rules': True - }, - 'json_schema_validator': { # Added for completeness of the example - 'default_draft_version': 'draft7' - } - } - with open(dummy_config_file, 'w') as f_yaml: - yaml.dump(dummy_config_content, f_yaml) - - manager = ConfigurationManager(config_path=dummy_config_file) - app_cfg = manager.get_config() - print(f"App Name: {app_cfg.app_name}") - print(f"Log Level: {app_cfg.logging.level}") - if app_cfg.api_caller: - print(f"API Caller Timeout: {app_cfg.api_caller.default_timeout}") - if app_cfg.rule_repository and app_cfg.rule_repository.storage: - print(f"Rule Storage Type: {app_cfg.rule_repository.storage.type}") - print(f"Rule Storage Path: {app_cfg.rule_repository.storage.path}") - if app_cfg.json_schema_validator: - print(f"JSON Schema Validator Draft: {app_cfg.json_schema_validator.default_draft_version}") - - print("\nLoading with non-existent file (expect defaults):") - manager_default = ConfigurationManager(config_path="configs/non_existent_config.yaml") - app_cfg_default = manager_default.get_config() - print(f"App Name (Default): {app_cfg_default.app_name}") - if app_cfg_default.api_caller: - print(f"API Caller Timeout (Default): {app_cfg_default.api_caller.default_timeout}") - - # Clean up the dummy file and directory if it was created - if os.path.exists(dummy_config_file): - os.remove(dummy_config_file) - if os.path.exists("configs") and not os.listdir("configs"): - os.rmdir("configs") \ No newline at end of file