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 option
The parameter takes the value from the bound object, i.e. self.option.
>>> 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
Metadata
Release files for apply-defaults 0.1.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| apply_defaults-0.1.6.tar.gz | 3.1 kB | Details |
Release files / apply_defaults-0.1.6.tar.gz
| Download URL | apply_defaults-0.1.6.tar.gz |
|---|---|
| Size | 3.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3773de3491b94c0fe44310f1a85888389cdc71e1544b343bce0d2bd6991acea5
|
|
BLAKE2b-256 checksum How to use checksums |
42317daf0d1111b29405d25b7677c8c681f6de7aff19d44b54f57ce5c789af24
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.1 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.6.12
|