Skip to main content

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

  1. Create a Configuration File:

    Define your database configuration in config.yaml:

    # config.yaml
    Database configuration:
        host: localhost
        port: ${DB_PORT:8000}
  2. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

configmate-0.1.7a0.tar.gz (17.7 kB view hashes)

Uploaded Source

Built Distribution

configmate-0.1.7a0-py3-none-any.whl (27.2 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page