{"id":3993,"library":"everett","title":"Everett - Configuration Library","description":"Everett is a Python configuration library for applications, offering flexible configuration management from various sources including process environment variables, .env files, dictionaries, INI files, and YAML files. It aims to provide clear error messages and support for automated documentation of configuration. As of October 15, 2025, the project is deprecated. The current version is 3.5.0, with prior releases indicating an active development cycle before deprecation.","status":"deprecated","version":"3.5.0","language":"en","source_language":"en","source_url":"https://github.com/willkg/everett/","tags":["configuration","settings","environment variables","ini","yaml","config manager"],"install":[{"cmd":"pip install everett","lang":"bash","label":"Base installation"},{"cmd":"pip install 'everett[ini]'","lang":"bash","label":"With INI file support"},{"cmd":"pip install 'everett[yaml]'","lang":"bash","label":"With YAML file support"}],"dependencies":[{"reason":"Required for INI file configuration environment.","package":"iniparse","optional":true},{"reason":"Required for YAML file configuration environment.","package":"PyYAML","optional":true}],"imports":[{"note":"The primary class for managing configuration.","symbol":"ConfigManager","correct":"from everett.manager import ConfigManager"},{"note":"Used when defining configuration options within a class-based structure.","symbol":"Option","correct":"from everett.manager import Option"}],"quickstart":{"code":"import os\nfrom everett.manager import ConfigManager\n\n# Simulate environment variable for demonstration\nos.environ['APP_HOST'] = '127.0.0.1'\nos.environ['APP_PORT'] = '8080'\n\nconfig = ConfigManager.basic_config(\n    doc=\"Check https://example.com/configuration for documentation.\"\n)\n\nhost = config('host', default='localhost')\nport = config('port', parser=int, default='5000')\n\nprint(f\"Application Host: {host}\")\nprint(f\"Application Port: {port}\")\n\n# Clean up simulated environment variable\ndel os.environ['APP_HOST']\ndel os.environ['APP_PORT']","lang":"python","description":"This quickstart demonstrates how to initialize a basic `ConfigManager` which automatically looks for configuration in environment variables. It retrieves 'host' and 'port' with specified defaults and a type parser for 'port'. The `doc` parameter provides helpful context for users encountering configuration errors."},"warnings":[{"fix":"For new projects, choose an alternative configuration library. For existing projects, plan for migration away from Everett to a maintained library.","message":"The Everett project is officially deprecated as of October 15, 2025. It is no longer actively maintained or recommended for new projects. Existing users should consider migrating to alternative configuration libraries.","severity":"breaking","affected_versions":"All versions, specifically from 3.5.0 onwards."},{"fix":"Install Everett with the appropriate extra: `pip install 'everett[ini]'` or `pip install 'everett[yaml]'` depending on your needs.","message":"Support for INI and YAML configuration files requires installing extra dependencies. Using 'everett[ini]' for INI files or 'everett[yaml]' for YAML files is necessary; without them, attempts to use these configuration environments will fail.","severity":"gotcha","affected_versions":"All versions"},{"fix":"Always explicitly define a `parser` for `Option`s that are expected to be non-string types, e.g., `Option(parser=int, ...)` or `Option(parser=bool, ...)`.","message":"When defining configuration in a class using `Option`, remember to specify a `parser` if the value is not a string (e.g., `bool`, `int`, `list`). If omitted, values will be treated as strings, which can lead to runtime type errors.","severity":"gotcha","affected_versions":"All versions"}],"env_vars":null,"last_verified":"2026-04-11T00:00:00.000Z","next_check":"2026-07-10T00:00:00.000Z"}