Skip to main content

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

Metadata

Release files for hierarchical-conf 1.0.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for hierarchical-conf 1.0.4
File Size Uploaded
hierarchical_conf-1.0.4.tar.gz 4.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for hierarchical-conf 1.0.4
File Interpreter ABI Platform
hierarchical_conf-1.0.4-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 9.6 kB

Release files / hierarchical_conf-1.0.4.tar.gz

Download URL hierarchical_conf-1.0.4.tar.gz
Size 4.8 kB
Tags Source
SHA-256 checksum
How to use checksums
abeb70822e1bb955ada057861fa5b7d7b4b2b04523720949431598724d56d527
BLAKE2b-256 checksum
How to use checksums
130511e10beaf1d7d970f8564ec7e5c071505b7025c3c00cd451e02fa4e1f9d5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.7.12

Release files / hierarchical_conf-1.0.4-py2.py3-none-any.whl

Download URL hierarchical_conf-1.0.4-py2.py3-none-any.whl
Size 4.9 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
9915ed286d6cd294daab8d75260d910c33d1a8bceaafdce9c6b32323d18752d9
BLAKE2b-256 checksum
How to use checksums
7e375f8a7d177ad37fba6ea5d335317d80d18dfe64d7430896233d56e3f2993b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.7.12

Release history Release notifications | RSS feed

This release

1.0.4 This release

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page