Various dev tools.
Project description
devpytools
Tools for development.
Installation
$ pip install devpytools
Usage
Cacher
Get and use default inmemory cacher
from devpytools import getCacher
c = getCacher()
@c.cache()
def a(b):
...
Create the cacher that saves a pickled data on disk and can be used between runs
from devpytools import Cacher
c = Cacher(name='dev', tmpDirPath='./tmp')
Get previously configured cacher in other file and use
from devpytools import getCacher
c = getCacher("dev")
@c.cache
def a(b):
...
Example
from devpytools import Cacher
from devpytools.cacher import extensions
IS_DEV = os.getenv("IS_DEV", "") == "true"
devCacher = Cacher(
name="dev",
tmpDirPath="./tmp",
isEnable=IS_DEV, # work only if run in dev environment
isExpired=extensions.expireAfterHours(1), # recache if cached data older than 1 hour
isSavable=lambda result: bool(result), # only cache positive function call results
)
@devCacher.cache
def a(b):
...
# works with the same params as devCacher but saves caches to ./tmp1 folder
@devCacher.cache(tmpDirPath="./tmp1")
def a1(b):
...
# currently disable cache for that func
@devCacher.cache(isEnable=False)
def a2(b):
...
# cache only those calls that return more than 0 elements
@devCacher.cache(isSavable=lambda result: result['count'] > 0)
def a3(b):
...
# use only a and b arguments to determine unique key of the function call
@devCacher.cache(uniqueKey=lambda args: args['a'] + args['b'])
def a4(a: str, b: str, c: str):
...
c = getCacher()
# to determine the uniqueness of a function call use only a and b arguments
@c.cache(uniqueKey=("a", "b"))
def a(a, b, c):
...
Other
- replaceFunc
from devpytools import replaceFunc
IS_DEV = os.getenv("IS_DEV", "") == "true"
def devFunc():
# predefined results for development
...
# replace only if IS_DEV is True
@replaceFunc(devFunc, isEnabled=IS_DEV)
def prodFunc():
# time consuming function
...
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
devpytools-0.1.0.dev8.tar.gz
(10.8 kB
view details)
Built Distribution
File details
Details for the file devpytools-0.1.0.dev8.tar.gz
.
File metadata
- Download URL: devpytools-0.1.0.dev8.tar.gz
- Upload date:
- Size: 10.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4f5f61d80b8c7b94d0cce8a0f1cdb2ba85a1c45a529ff1bfe64521ec37e9e56f |
|
MD5 | 4be1d67543cfb1aeee05f2032fad6372 |
|
BLAKE2b-256 | 20eb87992a7c7c559d4e4315341cce5311509868a709ed91aa868ff4c8ab9a24 |
File details
Details for the file devpytools-0.1.0.dev8-py3-none-any.whl
.
File metadata
- Download URL: devpytools-0.1.0.dev8-py3-none-any.whl
- Upload date:
- Size: 8.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c31afd67722def7434c22d403f9731c2a16e22a7661a5d4581dbf4016d431592 |
|
MD5 | 985b7e81781b6a853b09ab99545433e5 |
|
BLAKE2b-256 | 8324b3a598719adbc21e04696c59805bb1572ba8d2785549cc09f4ad0902beaa |