cachier
                                
                                
                                
                                    cachier copied to clipboard
                            
                            
                            
                        Persistent, stale-free, local and cross-machine caching for Python functions.
I have a use case where my cache is large, rarely written to, but read by many different threads at the same time thus causing timeout errors because only one...
Looking at how arg and kwarg hashing is done now, it is a little different from how the stdlib does it with functools.cache (see https://github.com/python/cpython/blob/3.10/Lib/functools.py#L448) I think this builtin method...
In addition to configuring the cache file path for each wrapped function, a way to globally change the location of the general cache directory for all `cachier` caches is required....
For me, the most probable use case in the near future is an an S3-backed persistent cache.
I'm seeing an issue with `cachier` where I'm getting `Bad File Descriptor` errors. Just want to make sure I'm not completely abusing it here, I have multiple writers (and readers)...
Hi, I was wondering if it's possible to include the function code in the cache? That is, if I make a change to the function code, the function will not...
Hello, I was trying to use cachier for caching the result of functions, in particular, HTTP requests. I am using asyncio throughout my code. I noticed that cachier is fully...
Hi, I have an idea for a feature that would really be helpful, especially in a data science experimentation workflow. Add an boolean argument to the wrapper function, for instance...
It seems that when running cachier, I randomly get these errors: ```python 2021-09-17 09:05:32,357 - fsevents - ERROR - Unhandled exception in FSEventsEmitter Traceback (most recent call last): File "/Users/lorenz/.../signals/.venv/lib/python3.9/site-packages/watchdog/observers/fsevents.py",...
To create the key for a cache entry, the current implementation uses the following expression: ``` key = args + tuple(sorted(kwds.items())) ``` For a function with signature `spam(*args, **kwargs)`, this...