1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
from abc import abstractmethod
from collections.abc import Mapping
from copy import copy, deepcopy
from typing import Any, Dict
from typing import Mapping as MappingType
class BaseOperator(Mapping):
"""
Base operator.
"""
@property
@abstractmethod
def query(self) -> MappingType[str, Any]: ...
def __getitem__(self, item: str):
return self.query[item]
def __iter__(self):
return iter(self.query)
def __len__(self):
return len(self.query)
def __repr__(self):
return repr(self.query)
def __str__(self):
return str(self.query)
def __copy__(self):
return copy(self.query)
def __deepcopy__(self, memodict: Dict[str, Any] = {}):
return deepcopy(self.query)
def copy(self):
return copy(self)
|