Skip to main content

A collection of python decorators I wish existed before

Project description

utde

A collection of utility decorators to simplify my life.

Persist

Instead of recomputing an expensive function annotate it with a generic_persist decorator. This decorator allows you to specify:

- key_or_fn: Either a string or a function
that generates a string from the wrapped_fn args
- load_fn: A function that is used to retrieve
stored data from key
- store_fn: A function that is used to store
the results of the "expensive" function call so that
it can be loaded next time instead
from utde.persist import generic_persist

cache = dict()

def key_fn(day_str):
    year, month, day = day_str.split("-")
    return f"{year}/{month}/{day}"

def load_fn(key):
    if key in cache:
        return cache[key]

def store_fn(x, key):
    cache[key] = x

@generic_persist(key_fn, load_fn, store_fn)
def wrapped_fn(x, day_str):
    print("Imagine an expensive operation")
    return x * 2

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

utde-0.1.1.tar.gz (4.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

utde-0.1.1-py3-none-any.whl (3.3 kB view details)

Uploaded Python 3

File details

Details for the file utde-0.1.1.tar.gz.

File metadata

  • Download URL: utde-0.1.1.tar.gz
  • Upload date:
  • Size: 4.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.4

File hashes

Hashes for utde-0.1.1.tar.gz
Algorithm Hash digest
SHA256 17301f571c233eab2cf503c94adcfed985871b6a631c05d49d922d8de827eca6
MD5 784afe0c3965928642a6026b15446b4d
BLAKE2b-256 8ecadd6863f8e0b0ed251fb7bdf3aaae22a618a6ef8418c7a6627bc9310176fb

See more details on using hashes here.

File details

Details for the file utde-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: utde-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 3.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.4

File hashes

Hashes for utde-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 93d1ff43aa6243a62c06a9ab4b8db8ffe50036b02f7641541b5b9cb86d6a1bee
MD5 bd01ade9fa5abb1ea0c69b46f5a46ad3
BLAKE2b-256 d4a96e2214c74fe0982710f79087e88d50ceb3bf4e8ee77a9d691696ffe9c1eb

See more details on using hashes here.

Supported by

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