Preset Loader

Preset loading and merging functionality.

pypreset.preset_loader.get_builtin_presets_dir()[source]

Get the directory containing built-in presets.

Return type:

Path

pypreset.preset_loader.get_user_presets_dir()[source]

Get the user’s custom presets directory.

Return type:

Path

pypreset.preset_loader.load_yaml_file(path)[source]

Load a YAML file and return its contents.

Parameters:

path (Path)

Return type:

dict[str, Any]

pypreset.preset_loader.deep_merge(base, override)[source]

Deep merge two dictionaries, with override taking precedence.

None values in override are skipped (treated as “not set”).

Parameters:
Return type:

dict[str, Any]

pypreset.preset_loader.find_preset_file(preset_name, custom_path=None)[source]

Find a preset file by name.

Parameters:
Return type:

Path | None

pypreset.preset_loader.list_available_presets()[source]

List all available presets with their descriptions.

Return type:

list[tuple[str, str]]

pypreset.preset_loader.load_preset(preset_name, custom_path=None)[source]

Load a preset configuration.

Parameters:
Return type:

PresetConfig

pypreset.preset_loader.resolve_preset_chain(preset)[source]

Resolve a preset’s inheritance chain and return merged config.

Parameters:

preset (PresetConfig)

Return type:

dict[str, Any]

pypreset.preset_loader.apply_overrides(config, overrides)[source]

Apply runtime overrides to a configuration.

Parameters:
Return type:

dict[str, Any]

pypreset.preset_loader.build_project_config(project_name, preset_name, overrides=None, custom_preset_path=None)[source]

Build a complete project configuration from a preset and overrides.

Parameters:
Return type:

ProjectConfig