Module idict.persistence.cache
Expand source code
# Copyright (c) 2021. Davi Pereira dos Santos
# This file is part of the idict project.
# Please respect the license - more about this in the section (*) below.
#
# idict is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# idict 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with idict. If not, see <http://www.gnu.org/licenses/>.
#
# (*) Removing authorship by any means, e.g. by distribution of derived
# works or verbatim, obfuscated, compiled or rewritten versions of any
# part of this work is illegal and unethical regarding the effort and
# time spent here.
from abc import ABC, abstractmethod
from typing import TypeVar
VT = TypeVar("VT")
class Cache(ABC): # pragma: no cover
def __contains__(self, item):
raise NotImplementedError
def __setitem__(self, key, value):
raise NotImplementedError
def __getitem__(self, key):
raise NotImplementedError
def __delitem__(self, key):
raise NotImplementedError
def __repr__(self):
raise NotImplementedError
def copy(self):
raise NotImplementedError
@abstractmethod
def __iter__(self):
raise NotImplementedError
def keys(self):
return iter(self)
def items(self):
for k in self.keys():
yield k, self[k]
Classes
class Cache
-
Helper class that provides a standard way to create an ABC using inheritance.
Expand source code
class Cache(ABC): # pragma: no cover def __contains__(self, item): raise NotImplementedError def __setitem__(self, key, value): raise NotImplementedError def __getitem__(self, key): raise NotImplementedError def __delitem__(self, key): raise NotImplementedError def __repr__(self): raise NotImplementedError def copy(self): raise NotImplementedError @abstractmethod def __iter__(self): raise NotImplementedError def keys(self): return iter(self) def items(self): for k in self.keys(): yield k, self[k]
Ancestors
- abc.ABC
Subclasses
Methods
def copy(self)
-
Expand source code
def copy(self): raise NotImplementedError
def items(self)
-
Expand source code
def items(self): for k in self.keys(): yield k, self[k]
def keys(self)
-
Expand source code
def keys(self): return iter(self)