{"id":26848,"library":"confit","title":"Confit","description":"Confit is a smart configuration framework for Python that supports hierarchical configs, CLI overrides, and validation via pydantic. It merges YAML/TOML/JSON config files with command-line arguments and environment variables. Current version is 0.10.2, with frequent minor releases.","status":"active","version":"0.10.2","language":"python","source_language":"en","source_url":"https://github.com/nicolay-r/confit","tags":["configuration","yaml","cli","pydantic"],"install":[{"cmd":"pip install confit","lang":"bash","label":"Install from PyPI"}],"dependencies":[],"imports":[{"note":"The main config class is named 'Config', not 'ConfitConfig'.","wrong":"from confit import ConfitConfig","symbol":"ConfitConfig","correct":"from confit import Config"},{"note":"No common wrong import.","wrong":"","symbol":"validate_arguments","correct":"from confit import validate_arguments"}],"quickstart":{"code":"import os\nfrom confit import Config\n\n# Load config from YAML with CLI overrides\ncfg = Config('config.yaml', overrides=['key=value'])\nprint(cfg.to_dict())","lang":"python","description":"Load a YAML config file and override keys via CLI-style strings."},"warnings":[{"fix":"Use `from confit import Config` instead.","message":"In version 0.10.0, the `Config` class was renamed from `ConfitConfig` to `Config`. Old code using `ConfitConfig` will break.","severity":"breaking","affected_versions":">=0.10.0,<0.10.0"},{"fix":"Specify config file path as a positional argument: `python script.py path/to/config.yaml`.","message":"The `--config` CLI flag is deprecated in favor of position-based config file loading.","severity":"deprecated","affected_versions":">=0.9.0"},{"fix":"Use `Config(['base.yaml', 'override.yaml'])` instead of `Config('base.yaml')`.","message":"Merging multiple config files only works if they are specified as a list. Single string paths won't merge.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Use `from confit import Config`.","cause":"The class was renamed to `Config` in v0.10.0.","error":"AttributeError: module 'confit' has no attribute 'ConfitConfig'"},{"fix":"Wrap the path in a list: `Config(['config.yaml'])` or `Config(['base.yaml', 'override.yaml'])`.","cause":"`Config()` expects a list of file paths for merging, not a single string.","error":"confit.errors.ConfigError: Cannot merge configs: expected list, got str"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}