示例#1
0
    def readEncoding(self, encoding_dict):

        # Create a encoding from parameters
        encoding = Encoding()
        encoding.data_source_field_name = encoding_dict['data_source_field_name']
        encoding.data_source_field_data_type = encoding_dict['data_source_field_data_type']
        encoding.enable_inference = encoding_dict['enable_inference']
        encoding.encoder_module = encoding_dict['encoder_module']
        encoding.encoder_class = encoding_dict['encoder_class']
        encoding.encoder_params = encoding_dict['encoder_params']
        encoding.encoder_field_name = encoding_dict['encoder_field_name']
        encoding.encoder_field_data_type = encoding_dict['encoder_field_data_type']

        return encoding
示例#2
0
  def __readEncoding(self, xmlReader):

    # Create a encoding from parameters
    encoding = Encoding()
    encoding.dataSourceFieldName = self.__getStringAttribute(xmlReader.attributes(), 'dataSourceFieldName')
    encoding.dataSourceFieldDataType = self.__getStringAttribute(xmlReader.attributes(), 'dataSourceFieldDataType')
    encoding.enableInference = self.__getBooleanAttribute(xmlReader.attributes(), 'enableInference')
    encoding.encoderModule = self.__getStringAttribute(xmlReader.attributes(), 'encoderModule')
    encoding.encoderClass = self.__getStringAttribute(xmlReader.attributes(), 'encoderClass')
    encoding.encoderParams = self.__getStringAttribute(xmlReader.attributes(), 'encoderParams')
    encoding.encoderFieldName = self.__getStringAttribute(xmlReader.attributes(), 'encoderFieldName')
    encoding.encoderFieldDataType = self.__getStringAttribute(xmlReader.attributes(), 'encoderFieldDataType')
    token = xmlReader.readNext()

    return encoding
示例#3
0
    def __readEncoding(self, xmlReader):

        # Create a encoding from parameters
        encoding = Encoding()
        encoding.dataSourceFieldName = self.__getStringAttribute(
            xmlReader.attributes(), 'dataSourceFieldName')
        encoding.dataSourceFieldDataType = self.__getStringAttribute(
            xmlReader.attributes(), 'dataSourceFieldDataType')
        encoding.enableInference = self.__getBooleanAttribute(
            xmlReader.attributes(), 'enableInference')
        encoding.encoderModule = self.__getStringAttribute(
            xmlReader.attributes(), 'encoderModule')
        encoding.encoderClass = self.__getStringAttribute(
            xmlReader.attributes(), 'encoderClass')
        encoding.encoderParams = self.__getStringAttribute(
            xmlReader.attributes(), 'encoderParams')
        encoding.encoderFieldName = self.__getStringAttribute(
            xmlReader.attributes(), 'encoderFieldName')
        encoding.encoderFieldDataType = self.__getStringAttribute(
            xmlReader.attributes(), 'encoderFieldDataType')
        token = xmlReader.readNext()

        return encoding
    def buttonOk_click(self, event):
        """
        Check if values changed and save the,.
        """

        encoder_params = collections.OrderedDict()
        if self.text_box_data_source_field_name.text() == '':
            QtWidgets.QMessageBox.warning(
                self, "Warning", "Record field name was not specified.")
            return
        elif self.text_box_encoder_module.text() == '':
            QtWidgets.QMessageBox.warning(self, "Warning",
                                          "Encoder module was not specified.")
            return
        elif self.text_box_encoder_class.text() == '':
            QtWidgets.QMessageBox.warning(self, "Warning",
                                          "Encoder class was not specified.")
            return
        elif self.text_box_encoder_field_name.text() == '':
            QtWidgets.QMessageBox.warning(
                self, "Warning", "Encoder field name was not specified.")
            return
        elif self.duplicatedFieldName(self.text_box_encoder_field_name.text()):
            QtWidgets.QMessageBox.warning(
                self, "Warning",
                "Encoder field name already is used by other encoding.")
            return
        else:
            grid_data = self.data_grid_encoder_params.model().data
            for row in range(len(grid_data)):
                if grid_data[row][0] != '':
                    # Valid parameter name
                    try:
                        grid_data[row][0] = grid_data[row][0].toString()
                    except:
                        pass
                    param = str(grid_data[row][0])
                    valid_expr = QtCore.QRegExp('[a-zA-Z0-9_]+')
                    if not valid_expr.exactMatch(param):
                        QtWidgets.QMessageBox.warning(
                            self, "Warning",
                            "'" + param + "' is not a valid name.")
                        return

                    # Valid parameter value
                    try:
                        grid_data[row][1] = grid_data[row][1].toString()
                    except:
                        pass
                    value = str(grid_data[row][1])
                    if len(value) == 0:
                        QtWidgets.QMessageBox.warning(
                            self, "Warning", "'" + param + "' value is empty.")
                        return

                    # Add param name and its value to dictionary
                    encoder_params[param] = value

        data_source_field_name = str(
            self.text_box_data_source_field_name.text())
        data_source_field_data_type = str(
            self.combo_box_data_source_field_data_type.currentText())
        enable_inference = self.check_box_enable_inference.isChecked()
        encoder_module = str(self.text_box_encoder_module.text())
        encoder_class = str(self.text_box_encoder_class.text())
        encoder_field_name = str(self.text_box_encoder_field_name.text())
        encoder_field_data_type = str(
            self.combo_box_encoder_field_data_type.currentText())

        # If this is a new encoding get it from list else create a new one
        if self.encoding_idx >= 0:
            encoding = self.encodings[self.encoding_idx]
        else:
            encoding = Encoding()
            self.encodings.append(encoding)

        # If anything has changed
        if encoding.data_source_field_name != data_source_field_name or encoding.data_source_field_data_type != data_source_field_data_type or encoding.enable_inference != enable_inference or encoding.encoder_module != encoder_module or encoding.encoder_class != encoder_class or encoding.encoder_params != encoder_params or encoding.encoder_field_name != encoder_field_name or encoding.encoder_field_data_type != encoder_field_data_type:

            # Set encoding params with controls values
            encoding.data_source_field_name = data_source_field_name
            encoding.data_source_field_data_type = data_source_field_data_type
            encoding.enable_inference = enable_inference
            encoding.encoder_module = encoder_module
            encoding.encoder_class = encoder_class
            encoding.encoder_params = encoder_params
            encoding.encoder_field_name = encoder_field_name
            encoding.encoder_field_data_type = encoder_field_data_type

            self.accept()

        self.close()
  def __buttonOk_Click(self, event):
    """
    Check if values changed and save the,.
    """

    encoderParamsDict = collections.OrderedDict()
    if self.textBoxDataSourceFieldName.text() == '':
      QtGui.QMessageBox.warning(self, "Warning", "Record field name was not specified.")
      return
    elif self.textBoxEncoderModule.text() == '':
      QtGui.QMessageBox.warning(self, "Warning", "Encoder module was not specified.")
      return
    elif self.textBoxEncoderClass.text() == '':
      QtGui.QMessageBox.warning(self, "Warning", "Encoder class was not specified.")
      return
    elif self.textBoxEncoderFieldName.text() == '':
      QtGui.QMessageBox.warning(self, "Warning", "Encoder field name was not specified.")
      return
    elif self.duplicatedFieldName(self.textBoxEncoderFieldName.text()):
      QtGui.QMessageBox.warning(self, "Warning", "Encoder field name already is used by other encoding.")
      return
    else:
      gridData = self.dataGridEncoderParams.model().data
      for row in range(len(gridData)):
        if gridData[row][0] != '':
          # Valid parameter name
          try:
            gridData[row][0] = gridData[row][0].toString()
          except:
            pass
          param = str(gridData[row][0])
          validExpr = QtCore.QRegExp('[a-zA-Z0-9_]+')
          if not validExpr.exactMatch(param):
            QtGui.QMessageBox.warning(self, "Warning", "'" + param + "' is not a valid name.")
            return

          # Valid parameter value
          try:
            gridData[row][1] = gridData[row][1].toString()
          except:
            pass
          value = str(gridData[row][1])
          if len(value) == 0:
            QtGui.QMessageBox.warning(self, "Warning", "'" + param + "' value is empty.")
            return

          # Add param name and its value to dictionary
          encoderParamsDict[param] = value

    dataSourceFieldName = str(self.textBoxDataSourceFieldName.text())
    dataSourceFieldDataType = str(self.comboBoxDataSourceFieldDataType.currentText())
    enableInference = self.checkBoxEnableInference.isChecked()
    encoderModule = str(self.textBoxEncoderModule.text())
    encoderClass = str(self.textBoxEncoderClass.text())
    encoderParams = json.dumps(encoderParamsDict)
    encoderFieldName = str(self.textBoxEncoderFieldName.text())
    encoderFieldDataType = str(self.comboBoxEncoderFieldDataType.currentText())

    # Remove double quotes from param values
    encoderParams = encoderParams.replace("\"", "'")
    encoderParams = encoderParams.replace("True", "true")
    encoderParams = encoderParams.replace("False", "false")

    # If this is a new encoding get it from list else create a new one
    if self.encodingIdx >= 0:
      encoding = self.encodings[self.encodingIdx]
    else:
      encoding = Encoding()
      self.encodings.append(encoding)

    # If anything has changed
    if encoding.dataSourceFieldName != dataSourceFieldName or encoding.dataSourceFieldDataType != dataSourceFieldDataType or encoding.enableInference != enableInference or encoding.encoderModule != encoderModule or encoding.encoderClass != encoderClass or encoding.encoderParams != encoderParams or encoding.encoderFieldName != encoderFieldName or encoding.encoderFieldDataType != encoderFieldDataType:
      # Set encoding params with controls values
      encoding.dataSourceFieldName = dataSourceFieldName
      encoding.dataSourceFieldDataType = dataSourceFieldDataType
      encoding.enableInference = enableInference
      encoding.encoderModule = encoderModule
      encoding.encoderClass = encoderClass
      encoding.encoderParams = encoderParams
      encoding.encoderFieldName = encoderFieldName
      encoding.encoderFieldDataType = encoderFieldDataType

      self.accept()

    self.close()
示例#6
0
    def __buttonOk_Click(self, event):
        """
    Check if values changed and save the,.
    """

        encoderParamsDict = collections.OrderedDict()
        if self.textBoxDataSourceFieldName.text() == '':
            QtGui.QMessageBox.warning(self, "Warning",
                                      "Record field name was not specified.")
            return
        elif self.textBoxEncoderModule.text() == '':
            QtGui.QMessageBox.warning(self, "Warning",
                                      "Encoder module was not specified.")
            return
        elif self.textBoxEncoderClass.text() == '':
            QtGui.QMessageBox.warning(self, "Warning",
                                      "Encoder class was not specified.")
            return
        elif self.textBoxEncoderFieldName.text() == '':
            QtGui.QMessageBox.warning(self, "Warning",
                                      "Encoder field name was not specified.")
            return
        elif self.duplicatedFieldName(self.textBoxEncoderFieldName.text()):
            QtGui.QMessageBox.warning(
                self, "Warning",
                "Encoder field name already is used by other encoding.")
            return
        else:
            gridData = self.dataGridEncoderParams.model().data
            for row in range(len(gridData)):
                if gridData[row][0] != '':
                    # Valid parameter name
                    try:
                        gridData[row][0] = gridData[row][0].toString()
                    except:
                        pass
                    param = str(gridData[row][0])
                    validExpr = QtCore.QRegExp('[a-zA-Z0-9_]+')
                    if not validExpr.exactMatch(param):
                        QtGui.QMessageBox.warning(
                            self, "Warning",
                            "'" + param + "' is not a valid name.")
                        return

                    # Valid parameter value
                    try:
                        gridData[row][1] = gridData[row][1].toString()
                    except:
                        pass
                    value = str(gridData[row][1])
                    if len(value) == 0:
                        QtGui.QMessageBox.warning(
                            self, "Warning", "'" + param + "' value is empty.")
                        return

                    # Add param name and its value to dictionary
                    encoderParamsDict[param] = value

        dataSourceFieldName = str(self.textBoxDataSourceFieldName.text())
        dataSourceFieldDataType = str(
            self.comboBoxDataSourceFieldDataType.currentText())
        enableInference = self.checkBoxEnableInference.isChecked()
        encoderModule = str(self.textBoxEncoderModule.text())
        encoderClass = str(self.textBoxEncoderClass.text())
        encoderParams = json.dumps(encoderParamsDict)
        encoderFieldName = str(self.textBoxEncoderFieldName.text())
        encoderFieldDataType = str(
            self.comboBoxEncoderFieldDataType.currentText())

        # Remove double quotes from param values
        encoderParams = encoderParams.replace("\"", "'")
        encoderParams = encoderParams.replace("True", "true")
        encoderParams = encoderParams.replace("False", "false")

        # If this is a new encoding get it from list else create a new one
        if self.encodingIdx >= 0:
            encoding = self.encodings[self.encodingIdx]
        else:
            encoding = Encoding()
            self.encodings.append(encoding)

        # If anything has changed
        if encoding.dataSourceFieldName != dataSourceFieldName or encoding.dataSourceFieldDataType != dataSourceFieldDataType or encoding.enableInference != enableInference or encoding.encoderModule != encoderModule or encoding.encoderClass != encoderClass or encoding.encoderParams != encoderParams or encoding.encoderFieldName != encoderFieldName or encoding.encoderFieldDataType != encoderFieldDataType:
            # Set encoding params with controls values
            encoding.dataSourceFieldName = dataSourceFieldName
            encoding.dataSourceFieldDataType = dataSourceFieldDataType
            encoding.enableInference = enableInference
            encoding.encoderModule = encoderModule
            encoding.encoderClass = encoderClass
            encoding.encoderParams = encoderParams
            encoding.encoderFieldName = encoderFieldName
            encoding.encoderFieldDataType = encoderFieldDataType

            self.accept()

        self.close()