Spaces:
No application file
No application file
File size: 1,667 Bytes
6755a2d |
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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
from collections import UserList
from collections.abc import Iterable
from typing import Iterator, Any, List
from ...utils.util import convert_class_attr_to_dict
__all__ = ["Item", "Items"]
class Item(object):
def __init__(self) -> None:
pass
def to_dct(self, target_keys: List[str] = None, ignored_keys: List[str] = None):
base_ignored_keys = [
"kwargs",
]
if isinstance(ignored_keys, list):
base_ignored_keys.extend(ignored_keys)
elif isinstance(ignored_keys, str):
base_ignored_keys.append(ignored_keys)
else:
pass
return convert_class_attr_to_dict(
self, target_keys=target_keys, ignored_keys=base_ignored_keys
)
def preprocess(self):
pass
class Items(UserList):
def __init__(
self,
data: Any = None,
):
if data is None:
data = list()
if not isinstance(data, list):
data = [data]
super().__init__(data)
def __len__(self):
return len(self.data)
def __getitem__(self, i):
return self.data[i]
def __delitem__(self, i):
del self.data[i]
def __setitem__(self, i, v):
self.data[i] = v
def insert(self, i, v):
self.data.insert(i, v)
def __str__(self):
return str(self.data)
def to_dct(self, target_keys: List[str] = None, ignored_keys: List[str] = None):
items = [item.to_dct(target_keys, ignored_keys) for item in self.data]
return items
def __iter__(self) -> Iterator:
return iter(self.data)
def preprocess(self):
pass
|