A simple configuration files manager package
Project description
ConfigDmanager
Installation
A simple pip install will do :
python -m pip install ConfigDmanager
Use
-
Suppose we have two Configuration files ( of json type ) :
-
ParentConfig.json :
{ "__name": "ParentConfig", "param1": "Value 1" }
-
MainConfig.json :
- The __parent parameter specifies the path to another configuration file that will give us default values ( Think of it as inheritance ).
- The text contained between brackets will be reinterpreted in runtime :
in the example below ${param1} will be reinterpreted as "Value 1"
- The use of environment variables for sensitive data like passwords is also possible : through this text ${os_environ[password]}
- You can also read the content of a text file with a simple : ${read_file[file_path]} as shown in the example below.
{ "__name": "MainConfig", "__parent": "demo.ParentConfig", "param2": "Value 2 and ${param1}", "user_info": {"user": "username", "password": "${os_environ[password]}"}, "long_text": "${read_file[./demo.py]}" }
-
-
To import those configuration using configDmanager, use this demo code :
from configDmanager import import_config
class RandomClass:
def __init__(self, param1, param2, user_info, long_text):
print(f"param1: {param1}")
print(f"param2: {param2}")
print(f'my user: {user_info.user}')
print(f'my user: {user_info.password}')
print(f'my long text: "{long_text[:40]}"')
config = import_config('MainConfig')
print("## Object 1")
obj = RandomClass(**config)
# You can also select specific keys
print("## Object 2")
another_obj = RandomClass(param2='Another Value', long_text="Not so long", **config[['param1', 'user_info']])
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
ConfigDmanager-0.1.8.tar.gz
(5.8 kB
view hashes)
Built Distribution
Close
Hashes for ConfigDmanager-0.1.8-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5c705b48e4ad8cf12e7ff020da9f3b793286541d4f9ca2a4c2708c6926ca93a4 |
|
MD5 | 4cdd0234541b364c1df71919a382924d |
|
BLAKE2b-256 | bdaccc76d8928da3c2863945ba63eead37aaf45211cc44c4578aea73b54b6904 |