Skip to main content

A Configuration management system for Python projects.

Project description

VR.Hercules

VR.Hercules is a configuration management system for Python projects. Assuming your configuration to use YAML configuration files, you can define their structure and type by Python schema files. That way, this project enables easy configuration with minimal syntax while providing software assistance for using configurations.

Features

  • Python-based typed schema definition
  • Autocompletion within IDEs
  • Semi-automatic parsing of yaml files
  • Extensibility for custom types
  • Reconfiguration at runtime

Problem Statement

Oftentimes, we build systems from configurable parts. Ideally, the configuration would be structured like our system. Therefore, we need a structuring configuration system.

Approach

The de-facto standard configuration language is currently YAML. The structure with the least syntax in Python are classes. So, we choose YAML as configuration syntax and Python classes as parsing target.

Mental Model

Mental Model

As shown on the left, a composed systems without a configuration management system might end up with different means of configuration. As shown on the right, a composed system using this package can use a single means of configuration for all its components. This helps with increasing development velocity because all components benefit from the features of the configuration management system.

Status

pipeline status   coverage report   PyPI Status   PyPI Version   PyPI License Badge   Wheel Badge   Python Versions

License

This package is not licensed. Therefore, it can only be used in the DFKI.

Usage

This package originates from and is being used in production at the VR.Backend project. However, the VR.Backend project is currently internal to the DFKI.

Demo

This package enables parsing configuration files according to a schema:

class Config:
    greeting: str
    greetee: str


Config: type = parse_config(
    config_file_path='config.yaml',
)

Tutorial

For more detailed instructions on using this project, see the tutorial.

Development

For development and maintenance of this project, see the development documentation.

Documentation

For more complete documentation, see our dedicated documentation pages.

Support

Please refer to the issue tracker for any inquiry.

Name

VR.Hercules is simpler than Facebook's Hydra and it slays.

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

VR.Hercules-1.1.32.tar.gz (8.0 kB view details)

Uploaded Source

Built Distribution

VR.Hercules-1.1.32-py3-none-any.whl (15.1 kB view details)

Uploaded Python 3

File details

Details for the file VR.Hercules-1.1.32.tar.gz.

File metadata

  • Download URL: VR.Hercules-1.1.32.tar.gz
  • Upload date:
  • Size: 8.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.13

File hashes

Hashes for VR.Hercules-1.1.32.tar.gz
Algorithm Hash digest
SHA256 6a9449113b2eac65b990ba1e7396991fefe0f887c5e73da817bda95f4c45b3bd
MD5 2b8877bd5093b14fc788e3d4fa543edf
BLAKE2b-256 fe1c6086a3f62a718f3ca57693c29c3dc87add1abd362e60e50f2448525b25de

See more details on using hashes here.

File details

Details for the file VR.Hercules-1.1.32-py3-none-any.whl.

File metadata

  • Download URL: VR.Hercules-1.1.32-py3-none-any.whl
  • Upload date:
  • Size: 15.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.13

File hashes

Hashes for VR.Hercules-1.1.32-py3-none-any.whl
Algorithm Hash digest
SHA256 dcefed1117acf2915cf2c4f89f45172dc9912df43d4da18a52c93428538063f2
MD5 34c104de3cded62fe0701d7eadd30ffd
BLAKE2b-256 d5921ba085b6a19ffffe7edb419085f87fe310a39e2ac23c030739ebc7e10bf9

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