def testDropNewNxdata(self): data = numpy.array([[[5]]]) nxdata = commonh5.Group("foo") nxdata.attrs["NX_class"] = "NXdata" nxdata.attrs["signal"] = "signal" nxdata.create_dataset("signal", data=data) mimedata = Hdf5DatasetMimeData(dataset=nxdata) self.model.dropMimeData(mimedata, qt.Qt.CopyAction, -1, -1, qt.QModelIndex()) self.assertEqual(self.model.rowCount(qt.QModelIndex()), 2)
def testCreateNxdataFromNxdata(self): widget = CustomNxdataWidget() model = widget.model() data = numpy.array([[[5]]]) nxdata = commonh5.Group("foo") nxdata.attrs["NX_class"] = "NXdata" nxdata.attrs["signal"] = "signal" nxdata.create_dataset("signal", data=data) model.createFromNxdata(nxdata) widget.setVisible(True) self.qWaitForWindowExposed(widget)
def createVirtualGroup(self): """Returns a new virtual Group using a NeXus NXdata structure to store data :rtype: silx.io.commonh5.Group """ name = "" if self.__title is not None: name = self.__title virtual = commonh5.Group(name) virtual.attrs["NX_class"] = "NXdata" if self.__title is not None: virtual.attrs["title"] = self.__title if self.__signal is not None: signal = self.__signal.getDataset() if signal is not None: # Could be done using a link instead of a copy node = commonh5.DatasetProxy("signal", target=signal) virtual.attrs["signal"] = "signal" virtual.add_node(node) axesAttr = [] for i, axis in enumerate(self.__axes): if axis is None: name = "." else: axis = axis.getDataset() if axis is None: name = "." else: name = "axis%d" % i node = commonh5.DatasetProxy(name, target=axis) virtual.add_node(node) axesAttr.append(name) if axesAttr != []: virtual.attrs["axes"] = numpy.array(axesAttr) validator = silx.io.nxdata.NXdata(virtual) if not validator.is_valid: message = "<html>" message += "This NXdata is not consistant" message += "<ul>" for issue in validator.issues: message += "<li>%s</li>" % issue message += "</ul>" message += "</html>" self.__setError(message) else: self.__setError(None) return virtual
def create_NXentry(group, name): attrs = {"NX_class": "NXentry"} node = commonh5.Group(name, parent=group, attrs=attrs) group.add_node(node) return node