skidl.config_ module

Configuration management for SKiDL.

This module provides classes for loading, storing, and accessing SKiDL configuration parameters. Configuration data is stored in JSON files and includes settings for default tools, library search paths, footprint search paths, and backup library options. The module supports configuration hierarchies with system, user, and project-specific settings that are merged according to priority.

class skidl.config_.Config(cfg_file_name, *dirs)[source]

Bases: dict

Base class for managing configuration parameters.

This class extends the dictionary to store configuration parameters and provides methods to load configuration from JSON files and save it back to disk. Configuration from multiple sources can be merged with intelligent handling of nested dictionaries.

Parameters:
  • cfg_file_name (str) – Name of the configuration file.

  • *dirs – Directories to search for configuration files.

load(*dirs)[source]

Load configuration from JSON files in the specified directories.

This method looks for the configuration file in each directory and merges the settings found in each file, with later directories taking precedence.

Parameters:

*dirs – Directories to search for configuration files.

merge(merge_dct)[source]

Merge another dictionary into this configuration.

This method recursively merges dictionaries, preserving nested structures where possible.

Parameters:

merge_dct (dict) – Dictionary to merge into this configuration.

store(dir='.')[source]

Store the current configuration as a JSON file.

Parameters:

dir (str, optional) – Directory to store the configuration file in. Defaults to the current directory.

class skidl.config_.SkidlConfig(tool)[source]

Bases: Config

Configuration class specialized for SKiDL.

This class extends the base Config class with SKiDL-specific defaults and behaviors, such as managing tool selection, library paths, and footprint paths.

Parameters:

tool (str) – Default tool/backend to use if not specified in config files.