Json config files with a statically defined structure.
Project description
staticconfig
Json config files with a staticly defined structure.
This is common code which I used accross many projects.
Usage
A config file's structure is defined by subclassing Config
and filling the constructor with attribute assignments.
Then a file is loaded with the from_json
classmethod:
- If the file exists, it returns an instance of the config class.
- If the file does not exist, it creates one and raises a ConfigError.
The class Namespace
provides syntactic sugar around dicts.
Example
from staticconfig import Namespace, Config
class MyConfig(Config):
def __init__(self):
super().__init__()
self.option1 = "default1"
self.option2 = 0
self.option3 = Namespace()
self.option3.suboption1 = True
self.option3.suboption2 = ["en", "de"]
# If the file doesn't exists this will create it with the default values and raise a ConfigError
config = MyConfig.from_json("config.json")
The produced config file:
{
"option1": "default1",
"option2": 0,
"option3": {
"suboption1": true,
"suboption2": [
"en",
"de"
]
}
}
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
staticconfig-0.0.3.tar.gz
(2.9 kB
view hashes)
Built Distribution
Close
Hashes for staticconfig-0.0.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dc2b671ce21d651346ac1ec6edbbd1d57aeba0ee28a42b41a15f85e50cf619e7 |
|
MD5 | 3783d912d3f0dd328d1c53b69187b9d4 |
|
BLAKE2b-256 | 3f4587be4166df5fbb8c97dc6a3dee0022cb930b014364848adac4e6758e5d33 |