def __init__(
self,
data: str | list[str] | dict[int, dict[str, np.ndarray]] | dict[int, DataGroup] | None = None,
keys: list[str] | None = None,
shard: tuple[int, int] | None = None,
):
# main containers
self._data: dict[int, DataGroup] = {}
self._meta: dict[str, str] = {}
# load data
if isinstance(data, str):
if os.path.isdir(data):
self.load_datadir(data, keys=keys, shard=shard)
else:
self.load_h5(data, keys=keys, shard=shard)
elif isinstance(data, (list, tuple)):
self.load_files(data, shard=shard)
elif isinstance(data, dict):
self.load_dict(data)
self.loader_mode = False
self.x: list[str] = []
self.y: list[str] = []