Skip to main content

Module for reading configuration files

Project description

Overview

This is a module for reading configuration files.

Currently, the module only supports YAML-formatted files.

Features:

  • Retrieve deeply nested values using dot notation, e.g. section1.key1
  • Retrieve values using wildcards, e.g. section1.*.key2
  • Configuration files can be templated (Jinja)

Prerequisites:

  • Python 3.4+

Installation

  • From pypi: pip3 install btconfig
  • From this git repo: pip3 install git+https://github.com/berttejeda/bert.config.git
    Note: To install a specific version of the library from this git repo,
    suffix the git URL in the above command with @{ tag name }, e.g.:
    git+https://github.com/berttejeda/bert.config.git@3.0.0

Usage Examples

Load a configuration file and retrieve specified key value

Given:

  • Config file at /home/myuser/myconfig.yaml
  • with contents:
section1:
  key1: value1
  key2: value2
  key3: value3
from btconfig import Config
# Initialize App Config
config = Config(config_file_uri='~/myconfig.yaml').read()
value = config.get('section1.key')
print(value)

The above should return value1

Load a configuration file and retrieve a deeply nested value

Given:

  • Config file at /home/myuser/myconfig.yaml
  • with contents:
section1:
  subsection1:
    item1:
      subitem1: value1
    item2: value2
    item3: value3
  subsection2:
    item1: value1
    item2: value2
    item3: value3
  key1: value1
  key2: value2
  key3: value3
section2:
  item1: value1
from btconfig import Config
# Initialize App Config
config = Config(config_file_uri='~/myconfig.yaml').read()
value = config.get('section1.subsection1.item2')
print(value)

The above should return value2

Load a configuration file and retrieve specified key value using wildcard notation

Given:

  • Config file at /home/myuser/myconfig.yaml
  • with contents:
section1:
  subsection1:
    item1:
      subitem1: value1
    item2: value2
    item3: value3
  subsection2:
    item1: value1
    item2: value2
    item3: value3
  key1: value1
  key2: value2
  key3: value3
section2:
  item1: value1
from btconfig import Config
# Initialize App Config
config = Config(config_file_uri='~/myconfig.yaml').read()
value = config.get('section1.*.item1')
print(value)

The above should return [{'subitem1': 'value1'}, 'value1']

Note: When retrieving values via wildcard, the return value is a list object.

Load a configuration file as a python object

Same as the above examples, just invoke the Config object with as_object=True, as with config = Config('~/myconfig.yaml', as_object=True).read()

In this case, retrieving values from the object can be done via dot-notation, as with: print(config.section1.subsection1.item2), or via get method, as with print(settings.section1.subsection1.item2)

Note: This approach does not support retrieving values via wildcard reference.

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

btconfig-4.6.3.tar.gz (10.1 kB view details)

Uploaded Source

Built Distribution

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

btconfig-4.6.3-py3-none-any.whl (7.3 kB view details)

Uploaded Python 3

File details

Details for the file btconfig-4.6.3.tar.gz.

File metadata

  • Download URL: btconfig-4.6.3.tar.gz
  • Upload date:
  • Size: 10.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.12

File hashes

Hashes for btconfig-4.6.3.tar.gz
Algorithm Hash digest
SHA256 14e87f10b036e68a1c61034fa4a3d3ada354a8a5470cfedb38a9835d78d75794
MD5 9eee90a9e14d6559dabe102f9c84fdee
BLAKE2b-256 34c7fd5337ab84eb2cd0fb6be665bdcdfd8d5515a0620545d026dde8058d611c

See more details on using hashes here.

File details

Details for the file btconfig-4.6.3-py3-none-any.whl.

File metadata

  • Download URL: btconfig-4.6.3-py3-none-any.whl
  • Upload date:
  • Size: 7.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.12

File hashes

Hashes for btconfig-4.6.3-py3-none-any.whl
Algorithm Hash digest
SHA256 d10758defddaff9c8bc99d67d95f609d0744c7b450d76e88327eb4e94850d787
MD5 287b3c07ec748d39a64e6986cc0a595d
BLAKE2b-256 5312c452ba5801eacb4e9466e35383b53d73d05a27fc351f5b7edec28e1e0e6c

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