trailpack.config.config_loader
Configuration loader for reading and applying JSON configs in CLI.
Exceptions
Raised when config loading fails. |
Functions
|
Extract column mappings dictionary from mapping config. |
|
Extract file information from mapping config. |
|
Extract general details from metadata config for UI compatibility. |
|
Load both mapping and metadata configs with validation. |
|
Load mapping configuration from JSON file. |
|
Load metadata configuration from JSON file. |
|
Check if mapping and metadata configs are compatible. |
Module Contents
- exception trailpack.config.config_loader.ConfigLoadError[source]
Bases:
ExceptionRaised when config loading fails.
Initialize self. See help(type(self)) for accurate signature.
- trailpack.config.config_loader.extract_column_mappings(mapping_config: Dict[str, Any]) Dict[str, str][source]
Extract column mappings dictionary from mapping config.
- Parameters:
mapping_config – Mapping configuration dictionary
- Returns:
Dictionary mapping column names to ontology/unit IDs
Example
>>> config = load_mapping_config(Path("mapping_config.json")) >>> mappings = extract_column_mappings(config) >>> # {"Product": "https://vocab.sentier.dev/...", ...}
- trailpack.config.config_loader.extract_file_info(mapping_config: Dict[str, Any]) Dict[str, str][source]
Extract file information from mapping config.
- Parameters:
mapping_config – Mapping configuration dictionary
- Returns:
Dictionary with original_file and sheet_name
Example
>>> config = load_mapping_config(Path("mapping_config.json")) >>> file_info = extract_file_info(config) >>> # {"original_file": "data.xlsx", "sheet_name": "Sheet1"}
- trailpack.config.config_loader.extract_general_details(metadata_config: Dict[str, Any]) Dict[str, Any][source]
Extract general details from metadata config for UI compatibility.
- Parameters:
metadata_config – Metadata configuration dictionary
- Returns:
Dictionary with package metadata in UI format
Example
>>> config = load_metadata_config(Path("metadata_config.json")) >>> details = extract_general_details(config) >>> # {"name": "my-dataset", "title": "...", ...}
- trailpack.config.config_loader.load_configs(mapping_path: pathlib.Path | None = None, metadata_path: pathlib.Path | None = None) tuple[Dict[str, Any] | None, Dict[str, Any] | None][source]
Load both mapping and metadata configs with validation.
- Parameters:
mapping_path – Path to mapping config JSON (optional)
metadata_path – Path to metadata config JSON (optional)
- Returns:
Tuple of (mapping_config, metadata_config)
- Raises:
ConfigLoadError – If loading fails or configs are incompatible
Example
>>> mapping, metadata = load_configs( ... mapping_path=Path("mapping.json"), ... metadata_path=Path("metadata.json") ... )
- trailpack.config.config_loader.load_mapping_config(config_path: pathlib.Path) Dict[str, Any][source]
Load mapping configuration from JSON file.
- Parameters:
config_path – Path to mapping config JSON file
- Returns:
Dictionary with mapping configuration
- Raises:
ConfigLoadError – If file doesn’t exist, is invalid JSON, or wrong type
Example
>>> config = load_mapping_config(Path("mapping_config.json")) >>> column_mappings = config["column_mappings"]
- trailpack.config.config_loader.load_metadata_config(config_path: pathlib.Path) Dict[str, Any][source]
Load metadata configuration from JSON file.
- Parameters:
config_path – Path to metadata config JSON file
- Returns:
Dictionary with metadata configuration
- Raises:
ConfigLoadError – If file doesn’t exist, is invalid JSON, or wrong type
Example
>>> config = load_metadata_config(Path("metadata_config.json")) >>> package_info = config["package"]
- trailpack.config.config_loader.validate_config_compatibility(mapping_config: Dict[str, Any], metadata_config: Dict[str, Any]) bool[source]
Check if mapping and metadata configs are compatible.
- Parameters:
mapping_config – Mapping configuration dictionary
metadata_config – Metadata configuration dictionary
- Returns:
True if configs are compatible
- Raises:
ConfigLoadError – If configs are incompatible
Example
>>> mapping = load_mapping_config(Path("mapping.json")) >>> metadata = load_metadata_config(Path("metadata.json")) >>> validate_config_compatibility(mapping, metadata) True