pyconfigurator: Easy Configuration Management

0.4.19 · active · verified Fri Apr 17

pyconfigurator is a Python library designed for easy and flexible configuration management, supporting INI files, environment variables, command-line arguments, and directories. It provides a simple attribute-based access API to configuration values. The current version is 0.4.19, with a release cadence that is infrequent, focusing on compatibility and minor fixes.

Common errors

Warnings

Install

Imports

Quickstart

This quickstart demonstrates how to initialize `Configurator` with an INI file and environment variables, then access configuration settings using attribute-style access. It highlights environment variable substitution and default values.

import os
from configurator import Configurator

# 1. Create a dummy configuration file
config_file_path = 'my_app_config.ini'
with open(config_file_path, 'w') as f:
    f.write('[default]
app_name=MyApplication
data_path=/var/data
log_level=${LOG_LEVEL_ENV:INFO}

[database]
host=localhost
port=5432
user=admin
password=${DB_PASSWORD_ENV:secret}')

# 2. Set environment variables (optional, for demonstration)
os.environ['LOG_LEVEL_ENV'] = 'DEBUG'
# os.environ['DB_PASSWORD_ENV'] = 'super_secret'

# 3. Initialize the Configurator
# It loads files, then environment variables, then CLI args (if any)
config = Configurator(
    files=[config_file_path],
    environ=os.environ, # Pass os.environ to enable env var substitution
    # cli_args=['--database-user', 'cli_user'] # Example for CLI overrides
)

# 4. Access configuration values
print(f"Application Name: {config.default.app_name}")
print(f"Data Path: {config.default.data_path}")
print(f"Log Level: {config.default.log_level}")
print(f"Database Host: {config.database.host}")
print(f"Database User: {config.database.user}")
print(f"Database Password: {config.database.password}")

# Clean up the dummy file
os.remove(config_file_path)

view raw JSON →