Skip to main content

A simple extension to configparser that allows nested fallback configurations

Project description

By default, configparser only loads values from ‘vars’, ‘section’, and then ‘default_section’. This extension allows for nested sections by use of a section splitter (default ‘.’) and attempts to find values from ‘vars’, then ‘section’, then its logical parents, and finally ‘default_section’.

For example, given the configuration below:

[DEFAULT]
alpha=first level

[section]
beta=second level

[section.subsection]
gamma=third level

the default configparser would behave like:

>>> settings = configparser.ConfigParser()
>>> settings.read('config.ini')
['config.ini']
>>> settings.get('section.subsection', 'alpha')
first level
>>> settings.get('section.subsection', 'beta')
None
>>> settings.get('section.subsection', 'gamma')
third level

Instead, in this extension, the behaviour would be:

>>> settings = nestedconfigparser.NestedConfigParser()
>>> settings.read('config.ini')
['config.ini']
>>> settings.get('section.subsection', 'alpha')
first level
>>> settings.get('section.subsection', 'beta')
second level
>>> settings.get('section.subsection', 'gamma')
third level

This extensions supports theoretically unlimited levels of nesting. It also does not require each level of the subsection to exist for the case where a section has no additional configurations.

Note: this extension intentionally does not raise a NoSectionError if a section does not exist when using ‘nestedconfigparser.NestedConfigParser().get(section, option)’. This is because it will attempt to fallback to higher sections and avoids potentially empty sections that don’t have any added configurations at the highest subsection.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

allya.nestedconfigparser-0.1.0-py3-none-any.whl (4.7 kB view details)

Uploaded Python 3

File details

Details for the file allya.nestedconfigparser-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for allya.nestedconfigparser-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2ff13cae92f453ebdb98471398394ad8418fbc2b97d3a24defc3ed76a84b06d1
MD5 0491f4034f601cb16bb03d6d14fda9a8
BLAKE2b-256 8349029660b57f095dd8e1800e993605c776f62d46604f34f287ceed59820414

See more details on using hashes here.

Supported by

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