import os import json import utils.device from .pano_dataset import PanoDataset from .view_dataset import ViewDataset class DatasetFactory(object): @staticmethod def load(path, device=None, **kwargs): device = device or utils.device.default() data_dir = os.path.dirname(path) with open(path, 'r', encoding='utf-8') as file: data_desc = json.loads(file.read()) cwd = os.getcwd() os.chdir(data_dir) if 'type' in data_desc and data_desc['type'] == 'pano': dataset = PanoDataset(data_desc, device=device, **kwargs) else: dataset = ViewDataset(data_desc, device=device, **kwargs) os.chdir(cwd) return dataset