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
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
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.
Metadata
Release files for VR.Hercules 1.1.32
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| VR.Hercules-1.1.32.tar.gz | 8.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| VR.Hercules-1.1.32-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 23.0 kB
Release files / VR.Hercules-1.1.32.tar.gz
| Download URL | VR.Hercules-1.1.32.tar.gz |
|---|---|
| Size | 8.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6a9449113b2eac65b990ba1e7396991fefe0f887c5e73da817bda95f4c45b3bd
|
|
BLAKE2b-256 checksum How to use checksums |
fe1c6086a3f62a718f3ca57693c29c3dc87add1abd362e60e50f2448525b25de
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.10.13
|
Release files / VR.Hercules-1.1.32-py3-none-any.whl
| Download URL | VR.Hercules-1.1.32-py3-none-any.whl |
|---|---|
| Size | 15.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
dcefed1117acf2915cf2c4f89f45172dc9912df43d4da18a52c93428538063f2
|
|
BLAKE2b-256 checksum How to use checksums |
d5921ba085b6a19ffffe7edb419085f87fe310a39e2ac23c030739ebc7e10bf9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.10.13
|