Apply values to optional params
Project description
apply_defaults
Apply default values to functions.
Makes configuration easy! Application settings come from a config file into your code cleanly.
pip install apply_defaults
@apply_config
This decorator applies options from a ConfigParser object.
from apply_defaults import apply_config
from configparser import ConfigParser
config = ConfigParser()
config.read_dict({"general": {"option": True}})
@apply_config(config)
def func(option: bool = False) -> bool:
return option
The option
parameter takes the value from the configuration.
>>> func()
True
Override the configuration by passing a value.
>>> func(option=False)
'False'
If the option is not in the configuration, the default value from the parameter list is used.
>>> config.remove_option("general", "option")
>>> func()
False
ConfigParser's options are strings. Type hints in the function signature allow the apply_config decorator to cast options to the desired type. Alternatively cast the value yourself.
@apply_self
This decorator applies attributes from the bound object.
from apply_defaults import apply_self
class MyObject:
def __init__(self):
self.option = True
@apply_self
def func(self, option=False):
return value
The parameter takes the value from the bound object, i.e. self.foo
.
>>> obj = MyObject()
>>> obj.func()
True
Override by passing a value.
>>> obj.func(option=False)
False
If the attribute is not in the bound object, the default value from the parameter list is used.
>>> del obj.option
>>> obj.func()
False
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
File details
Details for the file apply_defaults-0.1.2.tar.gz
.
File metadata
- Download URL: apply_defaults-0.1.2.tar.gz
- Upload date:
- Size: 2.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.14.0 pkginfo/1.4.2 requests/2.19.1 setuptools/41.2.0 requests-toolbelt/0.8.0 tqdm/4.24.0 CPython/3.5.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9880967bf08788b949d90a883d153e510b669785639c9080f8dd096fcad5a932 |
|
MD5 | cbb8331607071d35fc10152736465838 |
|
BLAKE2b-256 | 51a6bb358c9fb16fb7bdf2fa00c5c0b489a41256b9c7305cbae49efe11549f4d |