Skip to main content

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

apply_defaults-0.1.3.tar.gz (3.2 kB view details)

Uploaded Source

File details

Details for the file apply_defaults-0.1.3.tar.gz.

File metadata

  • Download URL: apply_defaults-0.1.3.tar.gz
  • Upload date:
  • Size: 3.2 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

Hashes for apply_defaults-0.1.3.tar.gz
Algorithm Hash digest
SHA256 ce7eed01ab3830a701f5c5b7a0322061fbdb1639458350ec76ea27526b2373c8
MD5 75d31bbeb2bdf1a414327d77dd16833b
BLAKE2b-256 d7fc87dcc12b6ec6a28fa794ba9e593c6af110c5ca013a63cb92ee303c98baec

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page