Spaces:
No application file
No application file
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 | |