diff options
Diffstat (limited to 'lib/utils/cache.py')
| -rw-r--r-- | lib/utils/cache.py | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/lib/utils/cache.py b/lib/utils/cache.py index c0313ebe..46d8ec59 100644 --- a/lib/utils/cache.py +++ b/lib/utils/cache.py @@ -2,14 +2,32 @@ # # Copyright (c) 2010 Authors # Licensed under the GNU GPL version 3.0 or later. See the file LICENSE for details. +import os +import atexit + +import appdirs +import diskcache try: from functools import lru_cache except ImportError: from backports.functools_lru_cache import lru_cache -# simplify use of lru_cache decorator - +# simplify use of lru_cache decorator def cache(*args, **kwargs): return lru_cache(maxsize=None)(*args, **kwargs) + + +__stitch_plan_cache = None + + +def get_stitch_plan_cache(): + global __stitch_plan_cache + + if __stitch_plan_cache is None: + cache_dir = os.path.join(appdirs.user_config_dir('inkstitch'), 'cache', 'stitch_plan') + __stitch_plan_cache = diskcache.Cache(cache_dir, size=1024 * 1024 * 100) + atexit.register(__stitch_plan_cache.close) + + return __stitch_plan_cache |
