Practical and versatile configuration parsing in Python.
Project description
ConfigMate streamlines heavyweight config parsing into a sleek, zero-boilerplate experience that lets you configure with confidence.
Key Features
Extensible file format support: - Automatic detection & parsing of all standard config file formats.
Environment variable interpolation: - Parse environment variables while keeping defaults in your configuration file.
Override files: Segregate base configuration management and DEV/STAG/PROD overrides in separate files.
CLI support: Override configuration values with files or values dirctly from an automatically generated command line interface.
Type validation: - Custom validation support, and seamless extension for Pydantic’s fantastic validation capabilities.
Get Started with ConfigMate
ConfigMate simplifies your configuration management. Get started with these easy steps:
Installation
Install ConfigMate with all standard features:
pip install "configmate[standard]"
Alternatively, install with specific features (e.g., Pydantic):
pip install "configmate[pydantic]"
Set Up Configuration
Create a Configuration File:
Define your database configuration in config.yaml:
# config.yaml Database configuration: host: localhost port: ${DB_PORT:8000}
Integrate with Your Script:
Use ConfigMate to load and validate configuration in your script:
# example.py import configmate import dataclasses @dataclasses.dataclass class DatabaseConfig: host: str port: int config = configmate.get_config( "config.yaml", section='Database configuration', validation=DatabaseConfig ) print(config)
Run Your Script with Different Configurations
Execute your script, and override configurations using environment variables or command-line arguments:
# Default configuration
python example.py
>> DatabaseConfig(host='localhost', port=8000)
# Override port using an environment variable
DB_PORT=9000 python example.py
>> DatabaseConfig(host='localhost', port=9000)
# Override host using a command-line argument
python example.py ++host foreignhost
>> DatabaseConfig(host='foreignhost', port=8000)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for configmate-0.1.7a0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8ddf0661b3cd3d7af4c3b5820865da0b0a7e94d7100bb8abfa898a52a0ff04da |
|
MD5 | 2bb73a0a7c299c717861b9e44868e51e |
|
BLAKE2b-256 | 850c22bff5d6c0929d78414cdff23f43bf268e848be30b2d5983456384887909 |