Staging
First MR!
Allows developers to provide configuration of different levels to a callable.
import os
from configurables import configurable, define_param, define_option
@configurable("Credentials")
@define_option("username", type=str, default=os.getlogin())
@define_param("password", type=str)
def login(username, password):
print(f"{username}'s password is {password}!")
"""config.ini # <- contents of
[Credentials]
username=me
password=password
"""
login("config.ini")
"me's password is password!"
TODO: Allow configuration of os variables and cli/function level overrides at user specified order. More docs! Better type casting for TOML and other "typed" files, rather than strings.