Пример #1
0
 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
Пример #2
0
 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
Пример #3
0
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
Пример #4
0
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