Skip to main content

A configuration management library inspired by Microsoft.Extensions.Configuration.

Project description

universal-common-configuration

A Python library inspired by Microsoft.Extensions.Configuration, providing a flexible configuration system for applications. This library allows you to load configuration data from various sources such as JSON files, environment variables, and user secrets.

Features

  • Load configuration from multiple sources
  • Support for JSON configuration files
  • Hierarchical configuration structure
  • Optional file loading
  • Extensible design for adding new configuration sources

Installation

Install the package from PyPi using pip:

pip install universal-common-configuration

Usage

Basic Usage

from universal_common_configuration import ConfigurationBuilder, IConfiguration

# Create a configuration builder
builder = ConfigurationBuilder()

# Add a JSON file to the configuration
builder.add_json_file("config.json")

# Build the configuration
configuration: IConfiguration = builder.build()

# Access configuration values
database_name = configuration["Database:Name"] # or configuration.get_section("Database")["Name"]
port = int(configuration["Server:Port"])
connection_string = configuration.get_connection_string("StorageService") # short for configuration.get_section("ConnectionStrings")["StorageService"]

Working with Optional Files

# Add an optional JSON file
builder.add_json_file("optional_config.json", optional=True)

Combining Multiple Sources

Matched keys in later sources override the same key on earlier sources.

builder.add_json_file("appsettings.json")
      .add_json_file(f"appsettings.{environment}.json", optional=True)
      .add_environment_variables()
      .add_user_secrets()

configuration = builder.build()

The various methods extending IConfiguration are monkey patched with the relevant import (eg. import universal_common_configuration.json for add_json_file or add_json_string).

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

universal_common_configuration-1.1.2.tar.gz (11.0 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file universal_common_configuration-1.1.2.tar.gz.

File metadata

File hashes

Hashes for universal_common_configuration-1.1.2.tar.gz
Algorithm Hash digest
SHA256 9ac88d176c7bdc14444b0dcef5aaea2e8fd477e79302217979f1a745c0ecdcae
MD5 f3f3d6ec07264c20f181171fe963b96d
BLAKE2b-256 3a2a9c7803150311fdb4cbfca00274cfe2919b07a92b65e8b88aee75ecd9cb5a

See more details on using hashes here.

File details

Details for the file universal_common_configuration-1.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for universal_common_configuration-1.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 f2e3af0b01398ee17fece672dedf39b992e343fe2229250471386d134504fb92
MD5 06af648983767dd5b81fe1acd280611f
BLAKE2b-256 26f677e0f8bfd0fff236b58412bd559388428d8a46d55fb627f3a5ba5e20a21d

See more details on using hashes here.

Supported by

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