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)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
utde-0.1.1-py3-none-any.whl
(3.3 kB
view details)
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
17301f571c233eab2cf503c94adcfed985871b6a631c05d49d922d8de827eca6
|
|
| MD5 |
784afe0c3965928642a6026b15446b4d
|
|
| BLAKE2b-256 |
8ecadd6863f8e0b0ed251fb7bdf3aaae22a618a6ef8418c7a6627bc9310176fb
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
93d1ff43aa6243a62c06a9ab4b8db8ffe50036b02f7641541b5b9cb86d6a1bee
|
|
| MD5 |
bd01ade9fa5abb1ea0c69b46f5a46ad3
|
|
| BLAKE2b-256 |
d4a96e2214c74fe0982710f79087e88d50ceb3bf4e8ee77a9d691696ffe9c1eb
|