I am using Python's DiskCache and the memoize decorator to cache function calls to a database of static data.
from diskcache import Cache
cache = Cache("database_cache)
@cache.memoize()
def fetch_document(row_id: int, user: str, password: str):
...
I don't want the user and password be part of the cache key.
How can I exclude parameters from the key generation?
Documentation for memoize doesn't show option to exclude parameters.
You may try to write own decorator - using source code.
Or use cache
on your own inside fetch_document
- something like this
def fetch_document(row_id: int, user: str, password: str):
if row_id in cache:
return cache[row_id]
# ... code ...
# result = ...
cache[row_id] = result
return result
EDIT:
OR create cached version of your function - like this
def cached_fetch_document(row_id: int, user: str, password: str):
if row_id in cache:
return cache[row_id]
result = fetch_document(row_id: int, user: str, password: str)
cache[row_id] = result
return result
and later you can decide if you want to use cached_fetch_document
in place of fetch_document