Skip to main content

A tool for loading settings from files hierarchically

Project description

Hierarchical Conf

A library for loading configurations (or other metadata) hierarchically based on the current environment

Release Python Version License Code style: black

Source Downloads Page Installation Command
PyPi PyPi Downloads Link pip install hierarchical-conf

Build status

Develop Stable Documentation Sonar
Test Publish Documentation Status Quality Gate Status

This library supports Python version 3.7+.

To check library main features you can check Hierarchical Conf's Documentation, which is hosted by Read the Docs.

How to use

Short

An example of how to use the library getting configurations:

from hierarchical_conf.hierarchical_conf import HierarchicalConf

hierarchical_conf = HierarchicalConf(searched_paths=[PROJECT_ROOT])
my_config = hierarchical_conf.get_config("my_config_key")

Long

This tool retrieve the configurations from (YAML) files according to the current environment and files precedence.

It receives a list of paths and searches each one for environment configuration files in an orderly fashion, loading them when found and overwriting duplicated configuration keys by the value of the key available in the file loaded at last. The YAML configuration files are expected to be named with prefixes based on the working environment, retrieved by the value of a pre-existent operational system environment's variable named ENVIRONMENT.

E.g.: Given the respective environments dev and production configuration files below:

dev_conf.yml:

 foo: bar_dev
 foo2: bar_dev2

production_conf.yml:

 foo: bar_prod
 foo2: bar_prod2

and given we are at development environment (ENVIRONMENT=dev), the following code will load the configuration file from the development environment file (/my_path/dev_conf.yml).

hconf = HierarchicalConf(conf_files_paths=['/my_path/'])
foo_conf = hconf.get_config("foo")
print(foo_conf)
# prints: bar_dev

Given ENVIRONMENT=production, the code above will load the configuration file from the production environment file (/my_path/production_conf.yml) and print: bar_prod.

To learn more use cases in practice (and about the keys overwriting), see Hierarchical Conf examples


Requirements and Installation

The Hierarchical Conf depends on Python 3.7+

Python Package Index hosts reference to a pip-installable module of this library, using it is as straightforward as including it on your project's requirements.

pip install hierarchical-conf

License

Apache License 2.0

Contributing

All contributions are welcome! Feel free to open Pull Requests. Check the development and contributing guidelines described in CONTRIBUTING.md

Made with :heart: by the Data Engineering team from QuintoAndar

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

hierarchical_conf-1.0.3.tar.gz (4.8 kB view details)

Uploaded Source

Built Distribution

hierarchical_conf-1.0.3-py2.py3-none-any.whl (4.9 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file hierarchical_conf-1.0.3.tar.gz.

File metadata

  • Download URL: hierarchical_conf-1.0.3.tar.gz
  • Upload date:
  • Size: 4.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.7.12

File hashes

Hashes for hierarchical_conf-1.0.3.tar.gz
Algorithm Hash digest
SHA256 3231b0a95be8db847c7a8750bd07ddde10649eef34357b5b64490b631ee64637
MD5 8a5ee52b811a3895da1e4f4f546500c6
BLAKE2b-256 3dfbb004d7e36330a66e8333beb534f3c6a0cea85e1d09284d0fb3a2ca7d8d59

See more details on using hashes here.

File details

Details for the file hierarchical_conf-1.0.3-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for hierarchical_conf-1.0.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 29f9c0bea36b63193001707b392f4c8cfbe934fcc480b3f839cf3a0f7c08e5ff
MD5 4c8057b892b57b9fb70c32659dd985f8
BLAKE2b-256 aa3ca607cb243eee6686c62d37621016c00ead6bfa30b830f68a094d6d7d8452

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