Skip to main content

A drop-in registry. Easily maintain a central configuration registry for your complex python project.

Project description

direg lets you maintain arbitrary registry data (in the form of python dictionaries that can be “merged” in a logical way (think: global config -vs- user config). With a small amount of work, it is possible to replace hardcoded values with easily-maintainable and flexible registry entries.

Suppose we have a file at /my/path/ with the following contents.

data = {
    'one.Foo.meth.somevar': 26804,
    'one.Foo.somevar': 24742,
    'one.myfunc.somevar': 16834,
    'one.outer.inner.somevar': 7678,

Then, in some module one, we can do the following:

from direg import get_value, registries
# Load the registry with the above data. Note that this could take place in another module and could include an
# arbitrary number of registry files.

class Foo:
    somevar = get_value('somevar')  # will be 24742
    def meth(self):
        return get_value('somevar')

f = Foo()
f.meth()  # will return 26804
f.somevar  # 24742
Foo.somevar  # also 24742

def myfunc():
    somevar = get_value('somevar')
    return somevar

myfunc()  # will be 16834

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 (7.6 kB view hashes)

Uploaded source

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page