A one-size-fits-all configuration scheme manager
Project description
Configurave
Configurave is a one-stop configuration engine that permits writing your configuration as a simple decorated class, and then loading the values from a series of configuration files or providers.
Values loaded from later sources override values provided by earlier sources. Types of the loaded configuration values are checked.
While not currently functional, there are plans and code to write out a default configuration generated directly from the configurave decorated class with .defaults_toml().
This project has undergone MINIMAL testing and work. It is likely very buggy at this time. Stay tuned for more!
Example usage:
from typing import List
from configurave import make_config, ConfigEntry as ce
@make_config()
class MyConfig:
site_root: str = ce(comment="The root url the site should be mounted on")
template_root: str = ce(comment="Directory under which templates should be found")
allowed_hosts: List[str] = ce(
comment="A comma separated list of hosts that we are permitted to server content to",
validator=lambda config, value: len(value) > 0,
)
token: str = ce(comment="The discord auth token", secret=True)
config = MyConfig(sources=["tests/test-config/readme.toml"])
print(config.site_root, config.template_root, config.allowed_hosts[0], sep="\n")
This will load from a file that looks like:
template_root = "./templates"
allowed_hosts = "mydomain.com,example.example,localhost:8080"
[site]
root = "/"
or
TEMPLATE_ROOT="./templates"
ALLOWED_HOSTS="mydomain.com,example.example,localhost:8080"
SITE_ROOT="/"
and print:
/
./templates
["mydomain.com", "example.example", "localhost:8080"]
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file configurave-0.1.2.tar.gz
.
File metadata
- Download URL: configurave-0.1.2.tar.gz
- Upload date:
- Size: 6.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.5 CPython/3.9.5 Darwin/20.6.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fc1e1b4d1d6eb95e1cba62188845c36c9206d42d0a81e4066ffb78ffb851d741 |
|
MD5 | 20fe2f867a98d4c29077feda3dcb2b3d |
|
BLAKE2b-256 | b62fa64620c972789c96b16dbaa5289fec749fbb54e3c1ee69983941961bbc23 |
File details
Details for the file configurave-0.1.2-py3-none-any.whl
.
File metadata
- Download URL: configurave-0.1.2-py3-none-any.whl
- Upload date:
- Size: 5.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.5 CPython/3.9.5 Darwin/20.6.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0718278b6388833af817351dedff38499a2534727707057f0e6726399141de60 |
|
MD5 | b577714a94ffdb9988422262a9b7bff9 |
|
BLAKE2b-256 | 024c93f7e1afa43e6f1b1217980ae811fa62f70754ea923176a3883e9188b9d4 |