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
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
File details
Details for the file universal_common_configuration-1.1.2.tar.gz
.
File metadata
- Download URL: universal_common_configuration-1.1.2.tar.gz
- Upload date:
- Size: 11.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
9ac88d176c7bdc14444b0dcef5aaea2e8fd477e79302217979f1a745c0ecdcae
|
|
MD5 |
f3f3d6ec07264c20f181171fe963b96d
|
|
BLAKE2b-256 |
3a2a9c7803150311fdb4cbfca00274cfe2919b07a92b65e8b88aee75ecd9cb5a
|
File details
Details for the file universal_common_configuration-1.1.2-py3-none-any.whl
.
File metadata
- Download URL: universal_common_configuration-1.1.2-py3-none-any.whl
- Upload date:
- Size: 13.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
f2e3af0b01398ee17fece672dedf39b992e343fe2229250471386d134504fb92
|
|
MD5 |
06af648983767dd5b81fe1acd280611f
|
|
BLAKE2b-256 |
26f677e0f8bfd0fff236b58412bd559388428d8a46d55fb627f3a5ba5e20a21d
|