Package to fast and easy cache
Project description
my Sweet Cache
This project let make fast and simply cache
autors
Bartłomiej Chwiłkowski (github: chwilko)
Structure
mySweetCache: mySweetCache.py: main functions utils.py: other function usefull to
Functions
cache
def cache(
MSC_name: Optional[str] = None,
*,
header: Optional[str] = None,
sep_in_data: str = "",
) -> Callable:
Wrapper add possibility caching function result to wrapped function
If file MSC_name exist in _CACHE_FILES wraped function return cache from right cache. else make new cache Wrapper add optional argument 'use_cache'. If use_cache == False cache will overwrite.
Args: MSC_name (Optional[str], optional): cache key. Defaults to None. header (Optional[str], optional): data description. Defaults to None. sep_in_data (str, optional): Separator between array items for text output. If "" (empty), a binary file is written, equivalent to file.write(a.tobytes()). Defaults to "".
Returns: callable: Function with cache functionality.
read_cache
def read_cache(MSC_name: str) -> Any:
Function to fast read MSC.
Args: MSC_name (str): cache key to read.
Raises: NameError: If this cache don't exist.
Returns: np.array: Previously saved data.
save_cache
save_cache(
MSC_name: str,
data: ndarray,
*,
header: Optional[str] = None,
sep_in_data: str = "",
)
Function to fast save MSC.
Args: MSC_name (str): cache key to save. data (ndarray): data to save sep_in_data (Optional[str], optional): Separator between array items for text output. If "" (empty), a binary file is written, equivalent to file.write(a.tobytes()).
use_par
Decorator set self argument as first function argument.
def use_par(par):
use_pars
Decorator set self arguments as first function arguments.
def use_pars(*pars):
How to use
example use:
@cache("key")
def long_working_function() -> np.ndarray:
# long code to work
return ...
example use 2:
@cache("key")
@use_parms(11, 21)
def long_working_function(arg1, arg2) -> np.ndarray:
# long code to work
return ...
After first call this function result is saved in .MScache_files/key
In next call instead recount value will be read from cache.
To recount call long_counting_function(use_cache=False)
then cache will be overwrited
or delete .MScache_files/try file.
WARNING! If you define two function with the same key, there two functions will share the same cache file.
Licence
MIT
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
Built Distribution
Hashes for mysweetcache-1.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5923cc443de1249d80bf095d7cc50d0cf208ad8c0978fe1d1432450df7be6b4a |
|
MD5 | ca2fcddf5f08c8f8d684af3a9dfd415e |
|
BLAKE2b-256 | 8df5bc5fb04e5230658a6941be0ea40ea1b2fcb6c525475ba5561f95546bf453 |