def _read_node(self, node_path, translate, force): saved_class_name = self.read_other(node_path, CLASS_NAME) try: version = self.read_other(node_path, VERSION) except ValueError: version = None full_class_name = translate.get( saved_class_name, classes.full_name(saved_class_name, version)) class_ = get_class(full_class_name) measurement_names = self.node_names(node_path) if issubclass(class_, MeasurementList): # Use the name of each measurement, which is an int, to restore the order in the sequence. contents = [ self._read_node(join(node_path, measurement_name), translate, force) for measurement_name in sorted(measurement_names, key=int) ] node = class_(contents) else: variables = {} for measurement_name in measurement_names: variables[measurement_name] = self._read_node( join(node_path, measurement_name), translate, force) array_names = self.array_names(node_path) for array_name in array_names: variables[array_name] = self.read_array(node_path, array_name) for other_name in self.other_names(node_path): variables[other_name] = self.read_other(node_path, other_name) node = _instantiate(class_, variables, force) # Update the node with information about how it was loaded. node._io = self node._io_node_path = node_path return node
def _read_node(self, node_path, translate, force): saved_class_name = self.read_other(node_path, CLASS_NAME) try: version = self.read_other(node_path, VERSION) except ValueError: version = None full_class_name = translate.get(saved_class_name, classes.full_name(saved_class_name, version)) class_ = get_class(full_class_name) measurement_names = self.node_names(node_path) if issubclass(class_, MeasurementList): # Use the name of each measurement, which is an int, to restore the order in the sequence. contents = [self._read_node(join(node_path, measurement_name), translate, force) for measurement_name in sorted(measurement_names, key=int)] node = class_(contents) else: variables = {} for measurement_name in measurement_names: variables[measurement_name] = self._read_node(join(node_path, measurement_name), translate, force) array_names = self.array_names(node_path) for array_name in array_names: variables[array_name] = self.read_array(node_path, array_name) for other_name in self.other_names(node_path): variables[other_name] = self.read_other(node_path, other_name) node = _instantiate(class_, variables, force) # Update the node with information about how it was loaded. node._io = self node._io_node_path = node_path return node
def from_series(series): io_class = get_class(classes.full_name(class_name=series[IO_CLASS_NAME], version=None)) io = io_class(series[ROOT_PATH]) node = io.read(series[NODE_PATH]) if NUMBER in series and pd.notnull(series[NUMBER]): return node[series[NUMBER]] else: return node
def from_series(series): io_class = get_class( classes.full_name(class_name=series[IO_CLASS_NAME], version=None)) io = io_class(series[ROOT_PATH]) node = io.read(series[NODE_PATH]) if NUMBER in series and pd.notnull(series[NUMBER]): return node[series[NUMBER]] else: return node