import json from pathlib import Path import utils.device from .utils import get_dataset_desc_path from .pano_dataset import PanoDataset from .view_dataset import ViewDataset class DatasetFactory(object): @staticmethod def load(path: Path, device=None, **kwargs): device = device or utils.device.default() path = get_dataset_desc_path(path) with open(path, 'r', encoding='utf-8') as file: data_desc: dict = json.loads(file.read()) if data_desc.get('type') == 'pano': dataset_class = PanoDataset else: dataset_class = ViewDataset dataset = dataset_class(data_desc, path.absolute(), device=device, **kwargs) return dataset