Everett - Configuration Library
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.
Warnings
- breaking 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.
- gotcha 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.
- gotcha 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.
Install
-
pip install everett -
pip install 'everett[ini]' -
pip install 'everett[yaml]'
Imports
- ConfigManager
from everett.manager import ConfigManager
- Option
from everett.manager import Option
Quickstart
import os
from everett.manager import ConfigManager
# Simulate environment variable for demonstration
os.environ['APP_HOST'] = '127.0.0.1'
os.environ['APP_PORT'] = '8080'
config = ConfigManager.basic_config(
doc="Check https://example.com/configuration for documentation."
)
host = config('host', default='localhost')
port = config('port', parser=int, default='5000')
print(f"Application Host: {host}")
print(f"Application Port: {port}")
# Clean up simulated environment variable
del os.environ['APP_HOST']
del os.environ['APP_PORT']