def buildChildren(self, child_, nodeName_): if child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'nexusFileName': obj_ = XSDataString() obj_.build(child_) self.setNexusFileName(obj_) elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'instrument': obj_ = XSDataString() obj_.build(child_) self.setInstrument(obj_) elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'energy': obj_ = XSDataArray() obj_.build(child_) self.setEnergy(obj_) elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'dataArray': obj_ = XSDataArray() obj_.build(child_) self.setDataArray(obj_) elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'pathToEnergyArray': obj_ = XSDataFile() obj_.build(child_) self.setPathToEnergyArray(obj_) elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'pathToDataArray': obj_ = XSDataFile() obj_.build(child_) self.setPathToDataArray(obj_) XSDataInput.buildChildren(self, child_, nodeName_)
def buildChildren(self, child_, nodeName_): if child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'energy': obj_ = XSDataArray() obj_.build(child_) self.setEnergy(obj_) elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'dataArray': obj_ = XSDataArray() obj_.build(child_) self.setDataArray(obj_) XSDataResult.buildChildren(self, child_, nodeName_)
def testCheckParameters(self): xsDataInput = XSDataInputWriteMatrix() xsDataInput.setInputMatrix(XSDataArray()) xsDataInput.setOutputMatrixFile(XSDataFile()) edPluginExecMatrixWrite = self.createPlugin() edPluginExecMatrixWrite.setDataInput(xsDataInput) edPluginExecMatrixWrite.checkParameters()
def buildChildren(self, child_, nodeName_): if child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'outputMatrix': obj_ = XSDataArray() obj_.build(child_) self.setOutputMatrix(obj_) XSDataResult.buildChildren(self, child_, nodeName_)
def buildChildren(self, child_, nodeName_): if child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'data': obj_ = XSDataArray() obj_.build(child_) self.setData(obj_) XSDataInput.buildChildren(self, child_, nodeName_)
def buildChildren(self, child_, nodeName_): if child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'title': obj_ = XSDataString() obj_.build(child_) self.setTitle(obj_) elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'long_name': obj_ = XSDataString() obj_.build(child_) self.setLong_name(obj_) elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'axis': obj_ = XSDataNexusAxis() obj_.build(child_) self.axis.append(obj_) elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'data': obj_ = XSDataArray() obj_.build(child_) self.setData(obj_) elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'signal': obj_ = XSDataInteger() obj_.build(child_) self.setSignal(obj_) XSData.buildChildren(self, child_, nodeName_)
def buildChildren(self, child_, nodeName_): if child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'title': obj_ = XSDataString() obj_.build(child_) self.setTitle(obj_) elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'axis': obj_ = XSDataInteger() obj_.build(child_) self.setAxis(obj_) elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'primary': obj_ = XSDataInteger() obj_.build(child_) self.setPrimary(obj_) elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'units': obj_ = XSDataString() obj_.build(child_) self.setUnits(obj_) elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'long_name': obj_ = XSDataString() obj_.build(child_) self.setLong_name(obj_) elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'axisData': obj_ = XSDataArray() obj_.build(child_) self.setAxisData(obj_) XSData.buildChildren(self, child_, nodeName_)
def buildChildren(self, child_, nodeName_): if child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'lineStyle': value_ = '' for text__content_ in child_.childNodes: if text__content_.nodeValue is not None: value_ += text__content_.nodeValue self.__lineStyle = value_ elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'lineWidth': if child_.firstChild: sval_ = child_.firstChild.nodeValue try: fval_ = float(sval_) except ValueError: raise ValueError('requires float (or double) -- %s' % child_.toxml()) self.__lineWidth = fval_ elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'lineColor': value_ = '' for text__content_ in child_.childNodes: if text__content_.nodeValue is not None: value_ += text__content_.nodeValue self.__lineColor = value_ elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'label': value_ = '' for text__content_ in child_.childNodes: if text__content_.nodeValue is not None: value_ += text__content_.nodeValue self.__label = value_ elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'markerType': value_ = '' for text__content_ in child_.childNodes: if text__content_.nodeValue is not None: value_ += text__content_.nodeValue self.__markerType = value_ elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'markerColor': value_ = '' for text__content_ in child_.childNodes: if text__content_.nodeValue is not None: value_ += text__content_.nodeValue self.__markerColor = value_ elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'data': obj_ = XSDataArray() obj_.build(child_) self.setData(obj_) XSData.buildChildren(self, child_, nodeName_)
def buildChildren(self, child_, nodeName_): if child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'edge': obj_ = XSDataDouble() obj_.build(child_) self.setEdge(obj_) elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'slope': obj_ = XSDataDouble() obj_.build(child_) self.setSlope(obj_) elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'jump': obj_ = XSDataDouble() obj_.build(child_) self.setJump(obj_) elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'hwl': obj_ = XSDataDouble() obj_.build(child_) self.setHwl(obj_) elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'ewl': obj_ = XSDataDouble() obj_.build(child_) self.setEwl(obj_) elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'fort92': obj_ = XSDataArray() obj_.build(child_) self.setFort92(obj_) elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'fort95': obj_ = XSDataArray() obj_.build(child_) self.setFort95(obj_) elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'fort96': obj_ = XSDataArray() obj_.build(child_) self.setFort96(obj_) elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'fort97': obj_ = XSDataArray() obj_.build(child_) self.setFort97(obj_) elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'fort98': obj_ = XSDataArray() obj_.build(child_) self.setFort98(obj_) elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'fort99': obj_ = XSDataArray() obj_.build(child_) self.setFort99(obj_) XSDataResult.buildChildren(self, child_, nodeName_)
def arrayToXSData(cls, _array, _bIncludeMd5sum=True, _bForceNoNumpy=False, _bUseAsserts=False): """ convert a numpy array or a list of list into an XSDataArray object @param _array: numpy array or array-like list @param _bIncludeMd5sum: should the md5sum be added to the XSDataArray instance. It is useful when sending object through the network It is a problem for testing @param _bForceNoNumpy: enables tests without numpy @type includeMd5sum: boolean @return: XSDataArray instance """ stringArray = "" shape = None dtype = None sizeDtype = None if bHaveNumpy is True and _bForceNoNumpy is False: EDVerbose.DEBUG("EDUtilsArray.arrayToXSData with numpy") # Enforce little Endianness if sys.byteorder == "big": _array.byteswap(True) stringArray = _array.tostring() shape = _array.shape dtype = str(_array.dtype) sizeDtype = len(numpy.zeros(1, dtype=_array.dtype).tostring()) else: EDVerbose.DEBUG("EDUtilsArray.arrayToXSData without numpy") sizeDtype = 8 # We enforce either double (float64) or int64 shape = [] subarray = _array while True: try: l = len(subarray) except TypeError: break shape.append(l) if l > 0: subarray = subarray[0] else: break if len(shape) == 1: if isinstance(_array[0], floatType): dtype = "float64" stringArray = struct.pack("<" + "d" * shape[0], *_array) else: dtype = "int64" stringArray = struct.pack("<" + "l" * shape[0], *_array) elif len(shape) == 2: if isinstance(_array[0][0], floatType): dtype = "float64" lineshape = "<" + "d" * shape[-1] else: dtype = "int64" lineshape = "<" + "q" * shape[-1] for subarray in _array: stringArray += struct.pack(lineshape, *subarray) elif len(shape) == 3: if isinstance(_array[0][0][0], floatType): dtype = "float64" lineshape = "<" + "d" * shape[-1] else: dtype = "int64" lineshape = "<" + "q" * shape[-1] for subarray in _array: for subsubarray in subarray: stringArray += struct.pack(lineshape, *subsubarray) else: EDVerbose.WARNING( "EDUtilsArray.arrayToXSDataArray: Array too large %s " % (shape)) size = 1 for i in shape: size *= i xsdArray = XSDataArray(data=base64.b64encode(stringArray), coding=XSDataString("base64"), shape=list(shape), dtype=dtype, size=size) if _bUseAsserts: EDAssert.equal(size * sizeDtype, len(stringArray), "string representing the array has the right size") if _bIncludeMd5sum is True: xsdArray.setMd5sum( XSDataString(hashlib.md5(stringArray).hexdigest())) return xsdArray
def testCheckParameters(self): xsDataInput = XSDataInputMatrixInvert() xsDataInput.setInputMatrix(XSDataArray()) edPluginExecMatrixInvert = self.createPlugin() edPluginExecMatrixInvert.setDataInput(xsDataInput) edPluginExecMatrixInvert.checkParameters()
def buildChildren(self, child_, nodeName_): if child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'corelationFitValues': obj_ = XSDataDouble() obj_.build(child_) self.corelationFitValues.append(obj_) elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'fitFile': obj_ = XSDataFile() obj_.build(child_) self.setFitFile(obj_) elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'lineProfileFitQuality': obj_ = XSDataDouble() obj_.build(child_) self.setLineProfileFitQuality(obj_) elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'logFile': obj_ = XSDataFile() obj_.build(child_) self.setLogFile(obj_) elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'pdbMoleculeFile': obj_ = XSDataFile() obj_.build(child_) self.setPdbMoleculeFile(obj_) elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'pdbSolventFile': obj_ = XSDataFile() obj_.build(child_) self.setPdbSolventFile(obj_) elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'scatteringFitQ': obj_ = XSDataDouble() obj_.build(child_) self.scatteringFitQ.append(obj_) elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'scatteringFitValues': obj_ = XSDataDouble() obj_.build(child_) self.scatteringFitValues.append(obj_) elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'scatteringFitQArray': obj_ = XSDataArray() obj_.build(child_) self.setScatteringFitQArray(obj_) elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'scatteringFitIarray': obj_ = XSDataArray() obj_.build(child_) self.setScatteringFitIarray(obj_) elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'meanNSD': obj_ = XSDataDouble() obj_.build(child_) self.setMeanNSD(obj_) elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'variationNSD': obj_ = XSDataDouble() obj_.build(child_) self.setVariationNSD(obj_) XSDataResult.buildChildren(self, child_, nodeName_)
def buildChildren(self, child_, nodeName_): if child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'title': obj_ = XSDataString() obj_.build(child_) self.setTitle(obj_) elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'experimentalDataQ': obj_ = XSDataDouble() obj_.build(child_) self.experimentalDataQ.append(obj_) elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'experimentalDataQArray': obj_ = XSDataArray() obj_.build(child_) self.setExperimentalDataQArray(obj_) elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'experimentalDataValues': obj_ = XSDataDouble() obj_.build(child_) self.experimentalDataValues.append(obj_) elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'experimentalDataIArray': obj_ = XSDataArray() obj_.build(child_) self.setExperimentalDataIArray(obj_) elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'experimentalDataStdDev': obj_ = XSDataDouble() obj_.build(child_) self.experimentalDataStdDev.append(obj_) elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'experimentalDataStdArray': obj_ = XSDataArray() obj_.build(child_) self.setExperimentalDataStdArray(obj_) elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'experimentalDataFile': obj_ = XSDataFile() obj_.build(child_) self.setExperimentalDataFile(obj_) elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'rMaxSearchSettings': obj_ = XSDataSolutionScatteringSettings() obj_.build(child_) self.setRMaxSearchSettings(obj_) elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'angularUnits': obj_ = XSDataInteger() obj_.build(child_) self.setAngularUnits(obj_) elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'symmetry': obj_ = XSDataString() obj_.build(child_) self.setSymmetry(obj_) elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'mode': obj_ = XSDataString() obj_.build(child_) self.setMode(obj_) elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'iNbThreads': obj_ = XSDataInteger() obj_.build(child_) self.setINbThreads(obj_) elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'onlyGnom': obj_ = XSDataBoolean() obj_.build(child_) self.setOnlyGnom(obj_) elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'plotFit': obj_ = XSDataBoolean() obj_.build(child_) self.setPlotFit(obj_) elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'qMin': obj_ = XSDataDouble() obj_.build(child_) self.setQMin(obj_) elif child_.nodeType == Node.ELEMENT_NODE and \ nodeName_ == 'qMax': obj_ = XSDataDouble() obj_.build(child_) self.setQMax(obj_) XSDataInput.buildChildren(self, child_, nodeName_)