smpy.Config¶
- class smpy.Config(config_dict=None)[source]¶
Manage configuration dictionaries for SMPy mass mapping analysis.
Handle loading, merging, and validating configuration dictionaries from YAML files and user parameters. All configurations use consistent nested structure for clean architecture and reliable error handling.
- Parameters:
config_dict (dict, optional) – Configuration dictionary. If None, creates empty config.
Notes
The Config class uses a consistent nested configuration structure:
General settings:
config['general']- Input/output, coordinate system, analysis settingsMethod-specific:
config['methods'][method_name]- Parameters for each mapping methodPlotting settings:
config['plotting']- Visualization parametersSNR settings:
config['snr']- Signal-to-noise map generation parameters
Configuration access follows the fail-fast principle:
Required parameters use direct access:
config['section']['parameter']Optional parameters use
.get():config['section'].get('parameter', default)Missing required config raises immediate
KeyErrorfor clear debugging
Examples
Load default configuration for Kaiser-Squires:
>>> config = Config.from_defaults('kaiser_squires') >>> config.show_config()
Load existing user configuration:
>>> config = Config.from_file('my_config.yaml') >>> config.show_config(section='general')
Access method-specific parameters:
>>> cfg_dict = config.to_dict() >>> smoothing = cfg_dict['methods']['kaiser_squires']['smoothing']
Save current configuration:
>>> config.save_config('output_config.yaml')
Update configuration programmatically:
>>> config.update_from_kwargs( ... data='catalog.fits', ... coord_system='radec', ... pixel_scale=0.168 ... )
- __init__(config_dict=None)[source]¶
Initialize Config with optional configuration dictionary.
- Parameters:
config_dict (dict, optional) – Configuration dictionary. If None, creates empty config.
Methods
__init__([config_dict])Initialize Config with optional configuration dictionary.
from_defaults([method])Load default configuration for specified method.
from_file(path)Load configuration from YAML file.
save_config(path)Save current configuration to YAML file.
show_config([section])Print current configuration in YAML format.
to_dict()Return configuration as dictionary.
update_from_kwargs(**kwargs)Update configuration from keyword arguments.
validate()Validate configuration for required parameters.
Validate that input files exist on disk.
- __init__(config_dict=None)[source]¶
Initialize Config with optional configuration dictionary.
- Parameters:
config_dict (dict, optional) – Configuration dictionary. If None, creates empty config.
- classmethod from_file(path)[source]¶
Load configuration from YAML file.
- Parameters:
path (str or pathlib.Path) – Path to YAML configuration file.
- Returns:
config – Configuration instance loaded from file.
- Return type:
Config
- classmethod from_defaults(method='kaiser_squires')[source]¶
Load default configuration for specified method.
Load configuration from the default.yaml file and return the nested structure as-is. This provides consistent configuration structure regardless of loading method.
- Parameters:
method (str, optional) – Method name (‘kaiser_squires’, ‘aperture_mass’, or ‘ks_plus’). Default is ‘kaiser_squires’.
- Returns:
config – Configuration instance with default settings in nested structure.
- Return type:
Config
- Raises:
FileNotFoundError – If the default configuration file cannot be found.
ValueError – If the specified method is not supported.
Notes
Returns the full nested configuration structure:
General settings:
config['general']Method-specific:
config['methods'][method_name]Plotting settings:
config['plotting']SNR settings:
config['snr']
Examples
Load Kaiser-Squires defaults:
>>> config = Config.from_defaults('kaiser_squires') >>> smoothing = config.to_dict()['methods']['kaiser_squires']['smoothing'] >>> print(smoothing['type']) gaussian
Load KS+ defaults:
>>> config = Config.from_defaults('ks_plus') >>> ks_config = config.to_dict()['methods']['ks_plus'] >>> print(ks_config['inpainting_iterations']) 100
- update_from_kwargs(**kwargs)[source]¶
Update configuration from keyword arguments.
This method maps simple keyword arguments to the nested configuration structure expected by SMPy.
- Parameters:
**kwargs – Keyword arguments to convert to config structure
- validate()[source]¶
Validate configuration for required parameters.
Expects nested configuration structure only.
- Raises:
ValueError – If required parameters are missing or invalid
- validate_file_existence()[source]¶
Validate that input files exist on disk.
Expects nested configuration structure only.
- Raises:
FileNotFoundError – If input file does not exist
- to_dict()[source]¶
Return configuration as dictionary.
- Returns:
config – Configuration dictionary
- Return type:
dict