{"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,"search_vec":"'0.10.2':36 'argument':29 'cli':14,43 'command':27 'command-lin':26 'config':13,23 'configur':6,41 'confit':1,2 'current':33 'environ':31 'file':24 'framework':7 'frequent':38 'hierarch':12 'line':28 'merg':21 'minor':39 'overrid':15 'pydant':19,44 'python':9 'releas':40 'smart':5 'support':11 'valid':17 'variabl':32 'version':34 'via':18 'yaml':42 'yaml/toml/json':22","created_at":"2026-05-01T17:43:12.565955+00:00","updated_at":"2026-05-01T17:43:12.565955+00:00","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,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":"confit","cli_version":"sh: 1: confit: not found","type":"library","homepage":null,"github":null,"docs":null,"changelog":null,"pypi":"https://pypi.org/project/confit/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["serialization","devops","web-framework"],"base_url":null,"auth_type":null,"provenance":{"verified_status":"passing","verified_at":"2026-06-29","last_verified":"2026-06-29","next_check":"2026-07-29","install_tag":null}}