/pitstop

🏎️🏁🛠️ Supercharged application configuration management.

Primary LanguagePythonMIT LicenseMIT

pitstop

docs/source/_static/goh-rhy-yan-377769-unsplash.jpg

pitstop lets you move tightly coupled configuration file parsing, secrets retrieval, and other configuration related administrivia logic out of your application, improving maintainability, reducing complexity, and encouraging better configuration management practices.

Overview

The purpose of pitstop is to facilitate application configuration management best practices, which are:

pitstop provides a Python 3.7+ library and command line utility, pitstop (obviously). The CLI provides the ability to leverage pitstop's functionality without being restricted to writing Python applications, by reading configuration backends and strategy configuration from a local file, and emitting a JSON encoded snapshot of the aggregated application configuration.

docs/source/_static/pitstop.png

pitstop stands on the shoulders of mature, feature-rich, and well tested Python libraries, and merely provides a convenience layer so you don't have to write the same configuration parsing and normalization scaffolding with every new library or application.

pitstop's main features:

  • Schema-driven configuration validation and normalization, powered by Cerberus.
  • Nested, path-based key access and transformation, powered by glom.
  • Multi-tiered, prioritized configuration loading strategies.
  • Easily extensible backends and encoding providers via entry points.