HPI/my/core/cachew.py

43 lines
945 B
Python

from contextlib import contextmanager
from pathlib import Path
def disable_cachew():
try:
import cachew
except ImportError:
# nothing to disable
return
from cachew import settings
settings.ENABLE = False
@contextmanager
def disabled_cachew():
try:
import cachew
except ImportError:
# nothing to disable
yield
return
from cachew.extra import disabled_cachew
with disabled_cachew():
yield
def cache_dir() -> Path:
'''
Base directory for cachew.
To override, add to your config file:
class config:
cache_dir = '/your/custom/cache/path'
'''
from .core_config import config
cdir = config.cache_dir
if cdir is None:
# TODO handle this in core_config.py
# TODO fallback to default cachew dir instead? or appdirs cache
return Path('/var/tmp/cachew')
else:
return Path(cdir)