Skip to main content

Assorted decorator functions.

Project description

Assorted decorator functions.

Function decorator(deco)

Wrapper for decorator functions to support optional arguments. The actual decorator function ends up being called as:

deco(func, *da, **dkw)

allowing da and dkw to affect the bahviour of the decorator deco.

Examples:

@decorator
def deco(func, *da, kw=None):
  ... decorate func subject to the values of da and kw
@deco
def func1(...):
  ...
@deco('foo', arg2='bah')
def func2(...):
  ...

Function fmtdoc(func)

Decorator to replace a function's docstring with that string formatted against the function's module's dict.

This supports simple formatted docstrings:

ENVVAR_NAME = 'FUNC_DEFAULT'

@fmtdoc
def func():
    """Do something with os.environ[{ENVVAR_NAME}]."""
    print(os.environ[ENVVAR_NAME])

This gives func this docstring:

Do something with os.environ[FUNC_DEFAULT].

Warning: this decorator is intended for wiring "constants" into docstrings, not for dynamic values. Use for other types of values should be considered with trepidation.

Function observable_class(property_names, only_unequal=False)

Class decorator to make various instance attributes observable.

Parameters:

  • property_names: an interable of instance property names to set up as observable properties. As a special case a single str can be supplied of only one attribute is to be observed.
  • only_unequal: only call the observers if the new property value is not equal to the previous proerty value. This requires property values to be comparable for inequality. Default: False, meaning that all updates will be reported.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for cs.deco, version 20190526
Filename, size File type Python version Upload date Hashes
Filename, size cs.deco-20190526.tar.gz (5.6 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page