tiramisu/tiramisu/storage/cache/dictionary.py

43 lines
1.4 KiB
Python
Raw Normal View History

2018-06-25 21:40:16 +02:00
# -*- coding: utf-8 -*-
2021-02-24 20:30:04 +01:00
# Copyright (C) 2018-2021 Team tiramisu (see AUTHORS for all contributors)
2018-06-25 21:40:16 +02:00
#
# This program is free software: you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by the
# Free Software Foundation, either version 3 of the License, or (at your
# option) any later version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
# details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# ____________________________________________________________
class Cache:
2018-06-25 21:40:16 +02:00
__slots__ = ('_cache',)
def __init__(self):
self._cache = {}
def setcache(self, path, index, val, time, validated):
2019-06-12 08:45:56 +02:00
self._cache.setdefault(path, {})[index] = (val, int(time), validated)
2018-06-25 21:40:16 +02:00
def getcache(self, path, index):
2018-06-25 21:40:16 +02:00
values = self._cache.get(path)
if values is None:
return
return values.get(index)
def delcache(self, path):
if path in self._cache:
del self._cache[path]
2018-06-25 21:40:16 +02:00
def get_cached(self):
2018-06-25 21:40:16 +02:00
return self._cache
def reset_all_cache(self):
2018-06-25 21:40:16 +02:00
self._cache.clear()