Documentation for the casman.config
package.
Configuration system for CAsMan.
This package provides comprehensive configuration management with support for:
Core configuration management functionality for CAsMan.
Provides the main ConfigManager class and primary configuration functions.
Functions:
get_config_manager()
- Get the global configuration manager instanceget_config()
- Get a configuration value from the global config managerset_config()
- Set a configuration value in the global config managerload_config()
- Load and return all configuration datareload_config()
- Reload configuration from filesvalidate_config()
- Validate current configurationreload()
- Reload configuration from all configured filesget()
- Get a configuration valueset()
- Set a configuration valueget_all()
- Get all configuration dataadd_watcher()
- Add a callback to be notified when configuration changesremove_watcher()
- Remove a configuration watchervalidate()
- Validate current configuration against a schemamerge_dicts()
- No docstring availableClasses:
ConfigManager
- Central configuration manager for CAsManConfiguration utilities for CAsMan.
Provides utility functions for configuration management, path resolution, and configuration merging.
Functions:
resolve_config_path()
- Resolve a configuration file path, handling relative paths and environment variablesmerge_configs()
- Merge multiple configuration dictionariesflatten_config()
- Flatten a nested configuration dictionaryunflatten_config()
- Unflatten a configuration dictionaryget_config_diff()
- Get the difference between two configuration dictionariesvalidate_config_paths()
- Validate that file paths in configuration existcreate_config_directories()
- Create directories for paths specified in configurationEnvironment-specific configuration management for CAsMan.
Provides utilities for managing configuration across different environments (development, testing, production).
Functions:
get_config_files()
- Get list of configuration files for current environmentget_environment_variables()
- Get environment variables relevant to CAsMan configurationcreate_environment_config()
- Create an environment-specific configuration fileget_current_environment()
- Get the current environment nameset_environment()
- Set the current environmentget_environment_config_template()
- Get a configuration template for a specific environmentClasses:
EnvironmentConfig
- Environment-specific configuration managerConfiguration schema definitions for CAsMan.
Provides JSON schema validation for configuration files.
Functions:
get_default_schema()
- Get the default CAsMan configuration schemavalidate_config()
- Validate configuration against schemaget_config_template()
- Get a configuration template with default valuesClasses:
ConfigSchema
- Configuration schema management classThis package provides comprehensive configuration management with support for:
Signature: load_config() -> Dict[str, Any]
Load configuration from config.yaml (legacy function).
Returns:
dict: The configuration dictionary loaded from YAML.
Signature: get_config(key: str, default: Optional[str]) -> Optional[str]
Get a configuration value by key, checking environment variables first, then enhanced config, then config file (unified function).
Returns:
str | None: Value from environment variables, or runtime config, or config.yaml, or default. |
Provides the main ConfigManager class and primary configuration functions.
Signature: get_config_manager() -> ConfigManager
Get the global configuration manager instance.
Signature: get_config(key: str, default: Any) -> Any
Get a configuration value from the global config manager.
Parameters:
key : str Configuration key. default : Any, optional Default value if key is not found.
Returns:
Any Configuration value or default.
Signature: set_config(key: str, value: Any) -> None
Set a configuration value in the global config manager.
Parameters:
key : str Configuration key. value : Any Value to set.
Signature: load_config() -> Dict[str, Any]
Load and return all configuration data.
Returns:
Dict[str, Any] Complete configuration dictionary.
Signature: reload_config() -> None
Reload configuration from files.
Signature: validate_config(schema: Optional[Dict[str, Any]]) -> bool
Validate current configuration.
Parameters:
schema : Dict[str, Any], optional JSON schema to validate against.
Returns:
bool True if configuration is valid.
Signature: reload() -> None
Reload configuration from all configured files.
Signature: get(key: str, default: Any) -> Any
Get a configuration value.
Parameters:
key : str Configuration key (supports dot notation for nested values). default : Any, optional Default value if key is not found.
Returns:
Any Configuration value or default.
Signature: set(key: str, value: Any) -> None
Set a configuration value.
Parameters:
key : str Configuration key (supports dot notation for nested values). value : Any Value to set.
Signature: get_all() -> Dict[str, Any]
Get all configuration data.
Signature: add_watcher(callback: Callable[[Dict[str, Any]], None]) -> None
Add a callback to be notified when configuration changes.
Parameters:
callback : Callable[[Dict[str, Any]], None] Function to call with updated config dict.
Signature: remove_watcher(callback: Callable[[Dict[str, Any]], None]) -> None
Remove a configuration watcher.
Signature: validate(schema: Optional[Dict[str, Any]]) -> bool
Validate current configuration against a schema.
Parameters:
schema : Dict[str, Any], optional JSON schema to validate against.
Returns:
bool True if configuration is valid.
Signature: merge_dicts(target: Dict[str, Any], source: Dict[str, Any]) -> None
No docstring available.
Class: ConfigManager
Central configuration manager for CAsMan.
Supports YAML and JSON configuration files with environment variable overrides, schema validation, and runtime updates.
Signature: __init__(config_paths: Optional[List[Union[str, Path]]]) -> None
Initialize the configuration manager.
Parameters:
config_paths : List[Union[str, Path]], optional List of configuration file paths to load. If None, uses default paths.
Signature: reload() -> None
Reload configuration from all configured files.
Signature: get(key: str, default: Any) -> Any
Get a configuration value.
Parameters:
key : str Configuration key (supports dot notation for nested values). default : Any, optional Default value if key is not found.
Returns:
Any Configuration value or default.
Signature: set(key: str, value: Any) -> None
Set a configuration value.
Parameters:
key : str Configuration key (supports dot notation for nested values). value : Any Value to set.
Signature: get_all() -> Dict[str, Any]
Get all configuration data.
Signature: add_watcher(callback: Callable[[Dict[str, Any]], None]) -> None
Add a callback to be notified when configuration changes.
Parameters:
callback : Callable[[Dict[str, Any]], None] Function to call with updated config dict.
Signature: remove_watcher(callback: Callable[[Dict[str, Any]], None]) -> None
Remove a configuration watcher.
Signature: validate(schema: Optional[Dict[str, Any]]) -> bool
Validate current configuration against a schema.
Parameters:
schema : Dict[str, Any], optional JSON schema to validate against.
Returns:
bool True if configuration is valid.
Provides utility functions for configuration management, path resolution, and configuration merging.
Signature: resolve_config_path(path: Union[str, Path]) -> Path
Resolve a configuration file path, handling relative paths and environment variables.
Parameters:
path : Union[str, Path] Path to resolve (can contain environment variables).
Returns:
Path Resolved absolute path.
Signature: merge_configs(*configs: Dict[str, Any]) -> Dict[str, Any]
Merge multiple configuration dictionaries. Later configurations override earlier ones. Nested dictionaries are merged recursively.
Parameters:
*configs : Dict[str, Any] Configuration dictionaries to merge.
Returns:
Dict[str, Any] Merged configuration dictionary.
Signature: flatten_config(config: Dict[str, Any], prefix: str, separator: str) -> Dict[str, Any]
Flatten a nested configuration dictionary.
Parameters:
config : Dict[str, Any] Configuration dictionary to flatten. prefix : str, optional Prefix to add to keys. separator : str, optional Separator between nested keys.
Returns:
Dict[str, Any] Flattened configuration dictionary.
Signature: unflatten_config(flattened: Dict[str, Any], separator: str) -> Dict[str, Any]
Unflatten a configuration dictionary.
Parameters:
flattened : Dict[str, Any] Flattened configuration dictionary. separator : str, optional Separator between nested keys.
Returns:
Dict[str, Any] Unflattened configuration dictionary.
Signature: get_config_diff(config1: Dict[str, Any], config2: Dict[str, Any]) -> Dict[str, Any]
Get the difference between two configuration dictionaries.
Parameters:
config1 : Dict[str, Any] First configuration. config2 : Dict[str, Any] Second configuration.
Returns:
Dict[str, Any] Dictionary showing differences (added, removed, changed).
Signature: validate_config_paths(config: Dict[str, Any]) -> Dict[str, bool]
Validate that file paths in configuration exist.
Parameters:
config : Dict[str, Any] Configuration dictionary.
Returns:
Dict[str, bool] Dictionary mapping path keys to existence status.
Signature: create_config_directories(config: Dict[str, Any]) -> None
Create directories for paths specified in configuration.
Parameters:
config : Dict[str, Any] Configuration dictionary.
Provides utilities for managing configuration across different environments (development, testing, production).
Signature: get_config_files() -> list[Path]
Get list of configuration files for current environment.
Returns:
list[Path] Ordered list of config files to load (base first, then environment-specific).
Signature: get_environment_variables() -> Dict[str, str]
Get environment variables relevant to CAsMan configuration.
Returns:
Dict[str, str] Dictionary of CAsMan-related environment variables.
Signature: create_environment_config(environment: str, config_data: Dict[str, Any]) -> Path
Create an environment-specific configuration file.
Parameters:
environment : str Environment name (development, testing, production). config_data : Dict[str, Any] Configuration data to write.
Returns:
Path Path to the created configuration file.
Signature: get_current_environment() -> str
Get the current environment name.
Signature: set_environment(environment: str) -> None
Set the current environment.
Parameters:
environment : str Environment name to set.
Signature: get_environment_config_template(environment: str) -> Dict[str, Any]
Get a configuration template for a specific environment.
Parameters:
environment : str Environment name.
Returns:
Dict[str, Any] Environment-specific configuration template.
Class: EnvironmentConfig
Environment-specific configuration manager.
Supports loading different configuration files based on the current environment.
Signature: __init__(base_config_dir: Optional[Path]) -> None
Initialize environment configuration.
Parameters:
base_config_dir : Path, optional Base directory containing configuration files.
Signature: get_config_files() -> list[Path]
Get list of configuration files for current environment.
Returns:
list[Path] Ordered list of config files to load (base first, then environment-specific).
Signature: get_environment_variables() -> Dict[str, str]
Get environment variables relevant to CAsMan configuration.
Returns:
Dict[str, str] Dictionary of CAsMan-related environment variables.
Signature: create_environment_config(environment: str, config_data: Dict[str, Any]) -> Path
Create an environment-specific configuration file.
Parameters:
environment : str Environment name (development, testing, production). config_data : Dict[str, Any] Configuration data to write.
Returns:
Path Path to the created configuration file.
Signature: get_current_environment() -> str
Get the current environment name.
Signature: set_environment(environment: str) -> None
Set the current environment.
Parameters:
environment : str Environment name to set.
Signature: get_environment_config_template(environment: str) -> Dict[str, Any]
Get a configuration template for a specific environment.
Parameters:
environment : str Environment name.
Returns:
Dict[str, Any] Environment-specific configuration template.
Provides JSON schema validation for configuration files.
@staticmethod
Signature: get_default_schema() -> Dict[str, Any]
Get the default CAsMan configuration schema.
@staticmethod
Signature: validate_config(config: Dict[str, Any], schema: Optional[Dict[str, Any]]) -> tuple[bool, str]
Validate configuration against schema.
Parameters:
config : Dict[str, Any] Configuration to validate. schema : Dict[str, Any], optional Schema to validate against. Uses default if None.
Returns:
tuple[bool, str] (is_valid, error_message)
@staticmethod
Signature: get_config_template() -> Dict[str, Any]
Get a configuration template with default values.
Class: ConfigSchema
Configuration schema management class.
@staticmethod
Signature: get_default_schema() -> Dict[str, Any]
Get the default CAsMan configuration schema.
@staticmethod
Signature: validate_config(config: Dict[str, Any], schema: Optional[Dict[str, Any]]) -> tuple[bool, str]
Validate configuration against schema.
Parameters:
config : Dict[str, Any] Configuration to validate. schema : Dict[str, Any], optional Schema to validate against. Uses default if None.
Returns:
tuple[bool, str] (is_valid, error_message)
@staticmethod
Signature: get_config_template() -> Dict[str, Any]
Get a configuration template with default values.