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.3.tar.gz (12.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

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

File metadata

File hashes

Hashes for universal_common_configuration-1.1.3.tar.gz
Algorithm Hash digest
SHA256 4adb9dfaca56a7dee1e7f0a8eb1605024c35603fbf5b06e128e9f151c27b7456
MD5 fdf432f51151035970563055e385d7ff
BLAKE2b-256 772aedf3ad4edde9cd3cca60ebf4eaf1f8ebfc6181df9dfe6a3b7790ee30fe8c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for universal_common_configuration-1.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 a4f2d857ff5938c2997c78920869ec35695f20b4eb495e16c6ef203268020d92
MD5 e9b2140f3dbf7fd011de313998c6aeb5
BLAKE2b-256 b2eff2bde48055e0deb93a0fe5d59f38dc72a9a39f0606a32e5e856022c0cb1f

See more details on using hashes here.

Supported by

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