The aconfig
library provides simple yaml
configuration in python
with environment-based overrides.
- Easily reads environment variables with error handling, e.g. for absence of variables or boolean capitalization
- Allows users to easily access and traverse nested configuration without checking for key presence on every access
- Automatically handles overriding logic - environment variables take precedence over local configuration files
To install, simply use pip
pip install alchemy-config
config.yaml
foo: 1
bar:
baz: "bat"
main.py
import aconfig
if __name__ == "__main__":
config = aconfig.Config.from_yaml("config.yaml")
print(config.foo)
print(config.bar.baz)
export BAR_BAZ="buz"
python3 main.py
You CAN set builtin method names as attributes on the config
. However, you should only access/delete them via dictionary access methods.
For example:
import aconfig
cfg = {"update": True}
config = aconfig.Config(cfg)
# DO NOT DO THIS:
config.update
# DO THIS INSTEAD:
config["update"]
This is because there is no way in Python to tell whether you want the method or the attribute "update"
when "getting" it from the object.