Skip to main content

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


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

Uploaded Source

Built Distribution

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

ConfigDmanager-0.0.3-py3-none-any.whl (6.8 kB view details)

Uploaded Python 3

File details

Details for the file ConfigDmanager-0.0.3.tar.gz.

File metadata

  • Download URL: ConfigDmanager-0.0.3.tar.gz
  • Upload date:
  • Size: 4.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.3

File hashes

Hashes for ConfigDmanager-0.0.3.tar.gz
Algorithm Hash digest
SHA256 149098c4d714a16018b6aec1422ba4a28ca118da5a61f004a7f0475b6977458b
MD5 4f11eddad291de87a8c300033ed01d65
BLAKE2b-256 2d33c2d45bcdac714f7ae92245bbf403f5ee6228d635ec0b85016cb2449280b6

See more details on using hashes here.

File details

Details for the file ConfigDmanager-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: ConfigDmanager-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 6.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.3

File hashes

Hashes for ConfigDmanager-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 ce370f7e63345750bf6dafe0237d0cce76399022c7703478c75cffdc0f843835
MD5 eb55e98ccde46613db3f3a6bcb8e94cd
BLAKE2b-256 00326a68e895d1a0350f272cdafd2128402a33e795239a300293b9b8fd6594e4

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