コード例 #1
0
ファイル: Query_Youka_User.py プロジェクト: sunsray/syn_tool
    def __init__(self, parent=None):
        """
        Constructor
        
        @param parent reference to the parent widget
        @type QWidget
        """
        QMainWindow.__init__(self, parent)
        self.setupUi(self)

        # init event
        # self.btn_Query.clicked.connect(self.on_btn_Query_clicked)

        # 获得系统默认编码格式
        self.sysCharType = sys.getfilesystemencoding()

        self.data_list_youka = None

        now_time = str(datetime.date.today()) + ' 00:00:00'
        from_time_default = get_default_time(-1)
        self.date_from.setDateTime(QDateTime.fromString(from_time_default, 'yyyy-MM-dd hh:mm:ss'))
        self.date_end.setDateTime(QDateTime.fromString(now_time, 'yyyy-MM-dd hh:mm:ss'))
        # init table_results
        self.table_results.setEditTriggers(QAbstractItemView.NoEditTriggers)
        self.table_results.setColumnCount(3)
        self.table_results.setRowCount(0)
        self.table_results.setHorizontalHeaderLabels([u'学校代码', u'学校名称', u'增长数量'])
コード例 #2
0
    def setvalue(self, value):
        strvalue = value
        if value in [None, "", NULL]:
            value = DateWidget.DEFAULTDATE
            self._is_valid = value.isValid()
        elif isinstance(value, basestring):
            value = QDateTime.fromString(strvalue, Qt.ISODate)
            if not value or (value and value.date().year() < 0):
                value = QDateTime.fromString(strvalue, Qt.SystemLocaleShortDate)

            self._is_valid = value.isValid()
            if not self._is_valid:
                raise ValueError("Unable to parse date string {}".format(strvalue))

        if isinstance(value, QDate):
            value = QDateTime(value)
            self._is_valid = value.isValid()

        if hasattr(self.datewidget, 'setDate'):
            self.datewidget.setDate(value.date())

        if hasattr(self.datewidget, 'setTime'):
            self.datewidget.setTime(value.time())

        self.set_date(value)
コード例 #3
0
    def load_sensor(self):
        """
            Load selected sensor from DB
        """
        self.clear_ui()
        sensor_name = self.sensorList.currentText()

        self.oat = self.get_sensor_from_db(sensor_name)

        self.result = {'type': None}

        if self.oat.data_availability != [None, None]:

            begin_text = QDateTime.fromString(
                self.oat.data_availability[0].replace('T', ' ')[:-5],
                "yyyy-MM-dd hh:mm:ss")
            end_text = QDateTime.fromString(
                self.oat.data_availability[1].replace('T', ' ')[:-5],
                "yyyy-MM-dd hh:mm:ss")

            self.set_date(self.statisticsBegin, self.statisticsEnd, begin_text,
                          end_text)
            self.set_date(self.intBegin, self.intEnd, begin_text, end_text)
            self.set_date(self.dvalueBegin, self.dvalueEnd, begin_text,
                          end_text)
            self.set_date(self.qualityBegin, self.qualityEnd, begin_text,
                          end_text)
            self.set_date(self.hIndexBegin, self.hIndexEnd, begin_text,
                          end_text)
            self.set_date(self.hEvtBegin, self.hEvtEnd, begin_text, end_text)

        self.filterFrame.setEnabled(True)
        self.stackedWidget.setEnabled(True)
        self.draw_preview_chart()
コード例 #4
0
 def init_date(self):
     date_from_last = str(tool.get_lastweek_someday(calendar.MONDAY) + datetime.timedelta(days=-9)) + ' 00:00:00'
     self.date_from_last.setDateTime(QDateTime.fromString(date_from_last, 'yyyy-MM-dd hh:mm:ss'))
     date_end_last = str(tool.get_lastweek_someday(calendar.MONDAY) + datetime.timedelta(days=-2)) + ' 00:00:00'
     self.date_end_last.setDateTime(QDateTime.fromString(date_end_last, 'yyyy-MM-dd hh:mm:ss'))
     date_from = str(tool.get_lastweek_someday(calendar.MONDAY) + datetime.timedelta(days=-2)) + ' 00:00:00'
     self.date_from.setDateTime(QDateTime.fromString(date_from, 'yyyy-MM-dd hh:mm:ss'))
     date_end = str(tool.get_current_week_someday(5)) + ' 00:00:00'
     self.date_end.setDateTime(QDateTime.fromString(date_end, 'yyyy-MM-dd hh:mm:ss'))
コード例 #5
0
 def _load_settings(self):
     s = QSettings()
     self.ui.nldasEdit.setText(s.value("pihm_helper/nldas/cache", "./cache").toString())
     o = s.value("pihm_helper/nldas/output", ".").toString()
     self.ui.coverageBox.setEditText(s.value("pihm_helper/nldas/input", ".").toString())
     self.ui.beginEdit.setDateTime(QDateTime.fromString(s.value("pihm_helper/nldas/begin", "1999-12-31T19:00:00").toString(), Qt.ISODate))
     self.ui.endEdit.setDateTime(QDateTime.fromString(s.value("pihm_helper/nldas/end", "2000-01-01T02:00:00").toString(), Qt.ISODate))
     if _iface:
         p = QgsProject.instance()
         o = p.readPath(p.readEntry("pihm_helper", "nldas/output", o)[0])
     self.ui.outputEdit.setText(o)
コード例 #6
0
 def LoadData(self, reader, version):
     # reader = open("")
     for case in switch(version):
         if case(QAFileVersion.V8) or case(QAFileVersion.V8_1):
             self.stamp = QDateTime.fromString(reader.readline())
             self.title = reader.readline()
             break
         elif case(QAFileVersion.V10):
             self.stamp = QDateTime.fromString(reader.readline())
             self.title = reader.readline()
             break
         else:
             raise SystemError
コード例 #7
0
ファイル: dataservice.py プロジェクト: nsashi/Roam
 def last_save_date(self):
     """
     Return the last save date for the _data folder.
     :return:
     """
     return QDateTime.fromString(self.read()["data_save_date"],
                                 Qt.ISODate).toString()
コード例 #8
0
 def update_display(self, test_case):
     self.test_caseidentify_edit.setText(unicode(test_case.case_mark))
     self.test_item_edit.setText(unicode(test_case.case_name))
     self.test_cat_combox.setCurrentIndex(test_case.case_cat)
     self.require_trace_edit.setText(unicode(test_case.case_req_track))
     self.test_content_edit.setText(unicode(test_case.case_content))
     self.sys_prepare_edit.setText(unicode(test_case.case_sys_prepare))
     self.precondation_edit.setText(unicode(test_case.case_constraint))
     self.test_input_edit.setText(unicode(test_case.case_input))
     for index, item in enumerate(test_case.case_exec_procedure):
         self.test_procedure_tabel.insertRow(index)
         self.test_procedure_tabel.setItem(index, 0, QTableWidgetItem(item[0]))
         self.test_procedure_tabel.setItem(index, 1, QTableWidgetItem(unicode(item[1])))
         self.test_procedure_tabel.setItem(index, 2, QTableWidgetItem(unicode(item[2])))
         self.test_procedure_tabel.setItem(index, 3, QTableWidgetItem(unicode(item[3])))
         self.test_procedure_tabel.setItem(index, 4, QTableWidgetItem(unicode(item[4])))
         self.test_procedure_tabel.setItem(index, 5, QTableWidgetItem(unicode(item[5])))
         self.test_procedure_tabel.setItem(index, 6, QTableWidgetItem(unicode(item[6])))
     self.estimate_rule_eidt.setText(unicode(test_case.case_qualified_rule))
     self.test_env_combox.setCurrentIndex(test_case.case_env)
     self.qualified_method_combox.setCurrentIndex(test_case.case_qualified_method)
     self.safe_secret_edit.setText(unicode(test_case.case_safe_secret))
     self.test_person_combox.setCurrentIndex(test_case.test_person)
     self.test_person_join_edit.setText(unicode(test_case.test_join_person))
     self.test_date_timepickedit.setDateTime(QDateTime.fromString(test_case.test_date, 'yyyy-MM-dd'))
     self.test_data_edit.setText(unicode(test_case.case_data))
     self.problem_sheet_edit.setText(unicode(test_case.case_problem_sheet))
     self.correct_sheet_edit.setText(unicode(test_case.case_correct_sheet))
     self.test_diff_edit.setText(unicode(test_case.case_diff))
コード例 #9
0
ファイル: sosparser.py プロジェクト: kinow/SOSClient
 def parse (self, xml):
     def _float (value):
         try: return float(value)
         except: return None
     
     components = {}
     for member, _ in self.search(xml, "member"):
         for node, tag in self.search (member, "Measurement/*"):
             if tag == "samplingTime":
                 samplingTime = self.timeParser.parse(node)
             elif tag == "observedProperty":
                 _, prop = self.searchFirst(node, "@href")
                 if not prop in components: components[prop] = None
             elif tag == "featureOfInterest":
                 hasSamplingPoint = False
                 for point, foi_id in chain(self.search (node, "FeatureCollection/featureMember/SamplingPoint@id"),self.search (node, "SamplingPoint@id"),self.search (node, "SamplingPointAtDepth@id")):
                     hasSamplingPoint = True
                     _, name = self.searchFirst (point, "name")
                     pointGeo, _ = self.searchFirst(point, "position")
                     pointGeo = GMLParser.geometryFromGML(pointGeo)
                     if self.yx:
                         pointGeo = pointGeo.asPoint()
                         pointGeo = QgsGeometry.fromPoint(QgsPoint (pointGeo.y(),pointGeo.x()))
                     self.provider.features [foi_id] = (name, pointGeo)
                     if point.localName () == "SamplingPointAtDepth":
                         _, depth = self.searchFirst (point, "depth")
                         foi_id = (foi_id, depth)
                 if not hasSamplingPoint:
                     for _, foi_id in self.search (node, "FeatureCollection/featureMember@href"):
                         self.provider.features [foi_id] = (foi_id, None)
             elif node.localName () == "result":
                 self.provider.setObservation (unicode(foi_id), QDateTime.fromString(str(samplingTime), Qt.ISODate), unicode(prop), str(tag))
                 if prop in components and components[prop] == None:
                     components[prop] = QgsField (prop, QVariant.Double if _float(tag) else QVariant.String, node.attribute("uom"))
     return components                        
コード例 #10
0
    def getTimelineOptions(self, appdef):
        layers = appdef["Layers"]
        times = set()
        for layer in layers:
            if layer.timeInfo is not None:
                if isinstance(layer.timeInfo[0], basestring):
                    features = layer.layer.getFeatures()
                    for feature in features:
                        for field in layer.timeInfo:
                            try:
                                value = feature[field]
                                if isinstance(value, QDate):
                                    t = QDateTime()
                                    t.setDate(value)
                                else:
                                    t = QDateTime.fromString(unicode(value), Qt.ISODate)
                                if t.isValid():
                                    times.add(t.toMSecsSinceEpoch())
                            except:
                                pass
                else:
                    times.add(layer.timeInfo[0])
                    times.add(layer.timeInfo[1])

        if times:
            return [min(times), max(times)]
        else:
            return [0,1]
コード例 #11
0
ファイル: rawManager.py プロジェクト: mohit8127/Data-analysis
    def add_new_row(self):
        """
            Add a new row to the table
        """

        row_count = self.gui.rawTable.rowCount()

        frequency = self.gui.comboFreqRaw.itemData(
            self.gui.comboFreqRaw.currentIndex())

        if frequency == '':
            self.gui.rawTable.insertRow(row_count)
            self.gui.rawTable.setItem(row_count, 0, QTableWidgetItem(''))
            return

        if row_count != 0:
            # read last date from table
            last_pos = self.gui.rawTable.item(row_count - 1, 0)
            last_date = QDateTime.fromString(last_pos.text(),
                                             "yyyy-MM-dd hh:mm:ss")
            seconds = isodate.parse_duration(frequency).total_seconds()
            begin_pos = last_date.addSecs(seconds)
        else:
            last_date = self.gui.rawBeginPos.dateTime()
            begin_pos = last_date

        if begin_pos > self.gui.rawEndPos.dateTime():
            return

        self.gui.rawTable.insertRow(row_count)
        begin_str = begin_pos.toString("yyyy-MM-dd hh:mm:ss")
        self.gui.rawTable.setItem(row_count, 0, QTableWidgetItem(begin_str))
        self.gui.rawTable.setItem(row_count, 1, QTableWidgetItem('0'))
        self.gui.rawTable.setItem(row_count, 2, QTableWidgetItem('100'))
コード例 #12
0
    def getTimelineOptions(self, appdef):
        layers = appdef["Layers"]
        times = set()
        for layer in layers:
            if layer.timeInfo is not None:
                if isinstance(layer.timeInfo[0], basestring):
                    features = layer.layer.getFeatures()
                    for feature in features:
                        for field in layer.timeInfo:
                            try:
                                value = feature[field]
                                if isinstance(value, QDate):
                                    t = QDateTime()
                                    t.setDate(value)
                                else:
                                    t = QDateTime.fromString(
                                        unicode(value), Qt.ISODate)
                                if t.isValid():
                                    times.add(t.toMSecsSinceEpoch())
                            except:
                                pass
                else:
                    times.add(layer.timeInfo[0])
                    times.add(layer.timeInfo[1])

        if times:
            return [min(times), max(times)]
        else:
            return [0, 1]
コード例 #13
0
def parseDateTime(s):
  #QDateTime.fromString('2000-01-03 02:5','yyyy-M-d h:m')
  #allowed order: yyy-M-d or M-d-y
  #allowed date separator: / - .
  #allowed main separator: T or space
  if not s:
    return None
  if type(s) is QDateTime:
    return s
  s = s.strip()
  if '-' in s: dsep = '-'
  elif '/' in s: dsep = '/'
  elif '.' in s: dsep = '.'
  else: return None
  tsep = ':'
  if 'T' in s: sep = 'T'
  elif ' ' in s: sep = ' '
  else: return None
  try:
    if int(s[0:4]) in range(1800,2100):
      #year first
      dformat = 'yyyy%sM%sd%sh%sm' % (dsep, dsep, sep, tsep)
    else:
      #strange data...
      return None
  except:
    # the year isn't first - let's assume it's the month then
    dformat = 'M%sd%syyyy%sh%sm' % (dsep, dsep, sep, tsep)
  d = QDateTime.fromString(s, dformat)
  if d<1000:
    return None
  return d
コード例 #14
0
def parseDateTime(s):
    #QDateTime.fromString('2000-01-03 02:5','yyyy-M-d h:m')
    #allowed order: yyy-M-d or M-d-y
    #allowed date separator: / - .
    #allowed main separator: T or space
    if not s:
        return None
    if type(s) is QDateTime:
        return s
    s = s.strip()
    if '-' in s: dsep = '-'
    elif '/' in s: dsep = '/'
    elif '.' in s: dsep = '.'
    else: return None
    tsep = ':'
    if 'T' in s: sep = 'T'
    elif ' ' in s: sep = ' '
    else: return None
    try:
        if int(s[0:4]) in range(1800, 2100):
            #year first
            dformat = 'yyyy%sM%sd%sh%sm' % (dsep, dsep, sep, tsep)
        else:
            #strange data...
            return None
    except:
        # the year isn't first - let's assume it's the month then
        dformat = 'M%sd%syyyy%sh%sm' % (dsep, dsep, sep, tsep)
    d = QDateTime.fromString(s, dformat)
    if d < 1000:
        return None
    return d
コード例 #15
0
def isDateTimeFormatZZZ(instr):
    form = QString("yyyy/MM/dd hh:mm:ss.zzz")
    inqstr = QString(instr)
    dts = QDateTime.fromString(inqstr, form)

    if dts.isValid():
        return True
    else:
        return False
コード例 #16
0
 def fmtToQDateTime(datetime,fmt_id=DATETIME_STANDARD):
     """
        fmt_id as one of the enum date standards within this class
        datetime should be a string using that format.
        
        convert "01/01/2000 12:00" to a Qt-date-time object representing that time
     """
     
     return QDateTime.fromString(datetime,DateTime.qt_datetime_format[fmt_id])
コード例 #17
0
    def _photoDate(self, path):
        with open(path, 'rb') as imgFile:
            tags = exifread.process_file(imgFile, details=False)

        if 'EXIF GPS GPSDate' in tags:
            return QDateTime.fromString(tags['EXIF GPS GPSDate'].values,
                                        'yyyy:MM:dd')
        else:
            return QDateTime.currentDateTime()
コード例 #18
0
ファイル: datewidget.py プロジェクト: vpicavet/Roam
    def setvalue(self, value):
        if not isinstance(value, QDateTime):
            value = QDateTime.fromString(value, Qt.ISODate)

        if hasattr(self.datewidget, 'setDate'):
            self.datewidget.setDate(value.date())

        if hasattr(self.datewidget, 'setTime'):
            self.datewidget.setTime(value.time())
コード例 #19
0
    def value(self, value):
        if value is None:
            self.setAsNow()
            return

        if isinstance(value, basestring):
            value = QDateTime.fromString(value, Qt.ISODate)

        self.setDate(value.date())
        self.setTime(value.time())
コード例 #20
0
    def value(self, value):
        if value is None:
            self.setAsNow()
            return

        if isinstance(value, basestring):
            value = QDateTime.fromString(value, Qt.ISODate)

        self.setDate(value.date())
        self.setTime(value.time())
コード例 #21
0
ファイル: datewidget.py プロジェクト: skeenp/Roam
    def setvalue(self, value):
        strvalue = value
        if value is None:
            value = DateWidget.DEFAULTDATE
        elif isinstance(value, basestring):
            value = QDateTime.fromString(strvalue, Qt.ISODate)
            if not value or (value and value.date().year() < 0):
                value = QDateTime.fromString(strvalue, Qt.SystemLocaleShortDate)

        if isinstance(value, QDate):
            value = QDateTime(value)

        if hasattr(self.datewidget, 'setDate'):
            self.datewidget.setDate(value.date())

        if hasattr(self.datewidget, 'setTime'):
            self.datewidget.setTime(value.time())

        self.set_date(value)
コード例 #22
0
ファイル: datewidget.py プロジェクト: zoujun8666/Roam
    def setvalue(self, value):
        strvalue = value
        if value is None:
            value = DateWidget.DEFAULTDATE
        elif isinstance(value, basestring):
            value = QDateTime.fromString(strvalue, Qt.ISODate)
            if not value or (value and value.date().year() < 0):
                value = QDateTime.fromString(strvalue,
                                             Qt.SystemLocaleShortDate)

        if isinstance(value, QDate):
            value = QDateTime(value)

        if hasattr(self.datewidget, 'setDate'):
            self.datewidget.setDate(value.date())

        if hasattr(self.datewidget, 'setTime'):
            self.datewidget.setTime(value.time())

        self.set_date(value)
コード例 #23
0
ファイル: utils.py プロジェクト: maurodoglio/Camelot
def datetime_from_string(s):
    s = s.strip()
    if not s:
        return None
    from PyQt4.QtCore import QDateTime
    f = local_datetime_format()
    dt = QDateTime.fromString(s, f)
    if not dt.isValid():
        raise ParsingError()
    return datetime(dt.date().year(), dt.date().month(), dt.date().day(), 
                    dt.time().hour(), dt.time().minute(), dt.time().second())
コード例 #24
0
    def require_op(self):
        """
            Require observed properties for selected procedure
        """
        myproc = None

        name = self.gui.sosProcedure.currentText()

        for proc in self.procedure_list:
            if proc['name'] == name:
                myproc = proc
                break

        if not myproc:
            print "Procedure not found...."
            return

        self.gui.sosSensorOp.clear()
        self.gui.sosSensorOp.addItem('')

        for obs in myproc['observedproperties']:
            self.gui.sosSensorOp.addItem(obs['name'].split('-')[-1])

        # set begin and end position
        samplig_time = myproc['samplingTime']

        begin_text = QDateTime.fromString(
            samplig_time['beginposition'].replace("T", " ")[:-5],
            "yyyy-MM-dd hh:mm:ss")

        end_text = QDateTime.fromString(
            samplig_time['endposition'].replace("T", " ")[:-5],
            "yyyy-MM-dd hh:mm:ss")

        # set time limit
        self.gui.sosTimeEnd.setMaximumDateTime(end_text)
        self.gui.sosTimeBegin.setMinimumDateTime(begin_text)

        self.gui.sosTimeBegin.setDateTime(begin_text)
        self.gui.sosTimeEnd.setDateTime(end_text)
コード例 #25
0
    def manageGui(self):
        """
            Gui init
        """
        self.buttonBox.button(QDialogButtonBox.Ok).clicked.connect(self.clone)
        self.sensorShort.stateChanged.connect(self.enable_frame)

        beg = self.oat.data_availability[0].replace("T", " ")
        end = self.oat.data_availability[1].replace("T", " ")

        if beg[-3] == ':':
            beg = beg[:-6]
            end = end[:-6]
        else:
            beg = beg[:-5]
            end = end[:-5]

        begin_pos = QDateTime.fromString(beg, "yyyy-MM-dd hh:mm:ss")
        end_pos = QDateTime.fromString(end, "yyyy-MM-dd hh:mm:ss")

        self.sensorBegin.setDateTime(begin_pos)
        self.sensorEnd.setDateTime(end_pos)
コード例 #26
0
ファイル: datewidget.py プロジェクト: shelleyobrown/Roam
    def setvalue(self, value):
        if value is None:
            value = DateWidget.DEFAULTDATE
        elif isinstance(value, basestring):
            value = QDateTime.fromString(value, Qt.ISODate)

        if isinstance(value, QDate):
            value = QDateTime(value)

        if hasattr(self.datewidget, "setDate"):
            self.datewidget.setDate(value.date())

        if hasattr(self.datewidget, "setTime"):
            self.datewidget.setTime(value.time())
コード例 #27
0
ファイル: sosparser.py プロジェクト: kinow/SOSClient
    def parse(self, xml):
        def _float(value):
            try:
                return float(value)
            except:
                return None

        components = {}
        for member, _ in self.search(xml, "member"):
            for node, tag in self.search(member, "Measurement/*"):
                if tag == "samplingTime":
                    samplingTime = self.timeParser.parse(node)
                elif tag == "observedProperty":
                    _, prop = self.searchFirst(node, "@href")
                    if not prop in components: components[prop] = None
                elif tag == "featureOfInterest":
                    hasSamplingPoint = False
                    for point, foi_id in chain(
                            self.search(
                                node,
                                "FeatureCollection/featureMember/SamplingPoint@id"
                            ), self.search(node, "SamplingPoint@id"),
                            self.search(node, "SamplingPointAtDepth@id")):
                        hasSamplingPoint = True
                        _, name = self.searchFirst(point, "name")
                        pointGeo, _ = self.searchFirst(point, "position")
                        pointGeo = GMLParser.geometryFromGML(pointGeo)
                        if self.yx:
                            pointGeo = pointGeo.asPoint()
                            pointGeo = QgsGeometry.fromPoint(
                                QgsPoint(pointGeo.y(), pointGeo.x()))
                        self.provider.features[foi_id] = (name, pointGeo)
                        if point.localName() == "SamplingPointAtDepth":
                            _, depth = self.searchFirst(point, "depth")
                            foi_id = (foi_id, depth)
                    if not hasSamplingPoint:
                        for _, foi_id in self.search(
                                node, "FeatureCollection/featureMember@href"):
                            self.provider.features[foi_id] = (foi_id, None)
                elif node.localName() == "result":
                    self.provider.setObservation(
                        unicode(foi_id),
                        QDateTime.fromString(str(samplingTime), Qt.ISODate),
                        unicode(prop), str(tag))
                    if prop in components and components[prop] == None:
                        components[prop] = QgsField(
                            prop, QVariant.Double
                            if _float(tag) else QVariant.String,
                            node.attribute("uom"))
        return components
コード例 #28
0
    def setvalue(self, value):
        if value is None:
            value = DateWidget.DEFAULTDATE
        elif isinstance(value, basestring):
            value = QDateTime.fromString(value, Qt.ISODate)

        if isinstance(value, QDate):
            value = QDateTime(value)

        if hasattr(self.datewidget, 'setDate'):
            self.datewidget.setDate(value.date())

        if hasattr(self.datewidget, 'setTime'):
            self.datewidget.setTime(value.time())
コード例 #29
0
ファイル: utils.py プロジェクト: jeroendierckx/Camelot
def datetime_from_string(s):
    s = s.strip()
    if not s:
        return None
    from PyQt4.QtCore import QDateTime
    f = local_datetime_format()
    dt = QDateTime.fromString(s, f)
    if not dt.isValid():
        raise ParsingError()
    return datetime(dt.date().year(),
                    dt.date().month(),
                    dt.date().day(),
                    dt.time().hour(),
                    dt.time().minute(),
                    dt.time().second())
コード例 #30
0
    def set_widgets(self):
        """Set widgets on the Source tab."""
        # Just set values based on existing keywords
        source = self.parent.get_existing_keyword('source')
        if source or source == 0:
            self.leSource.setText(get_unicode(source))
        else:
            self.leSource.clear()

        source_scale = self.parent.get_existing_keyword('scale')
        if source_scale or source_scale == 0:
            self.leSource_scale.setText(get_unicode(source_scale))
        else:
            self.leSource_scale.clear()

        source_date = self.parent.get_existing_keyword('date')
        if source_date:
            self.ckbSource_date.setChecked(True)
            self.dtSource_date.setDateTime(
                QDateTime.fromString(get_unicode(source_date),
                                     'yyyy-MM-dd HH:mm:ss'))
        else:
            self.ckbSource_date.setChecked(False)
            self.dtSource_date.clear()

        source_url = self.parent.get_existing_keyword('url')
        try:
            source_url = source_url.toString()
        except AttributeError:
            pass

        if source_url or source_url == 0:
            self.leSource_url.setText(get_unicode(source_url))
        else:
            self.leSource_url.clear()

        source_license = self.parent.get_existing_keyword('license')
        if source_license or source_license == 0:
            self.leSource_license.setText(get_unicode(source_license))
        else:
            self.leSource_license.clear()
コード例 #31
0
    def set_widgets(self):
        """Set widgets on the Source tab."""
        # Just set values based on existing keywords
        source = self.parent.get_existing_keyword('source')
        if source or source == 0:
            self.leSource.setText(get_unicode(source))
        else:
            self.leSource.clear()

        source_scale = self.parent.get_existing_keyword('scale')
        if source_scale or source_scale == 0:
            self.leSource_scale.setText(get_unicode(source_scale))
        else:
            self.leSource_scale.clear()

        source_date = self.parent.get_existing_keyword('date')
        if source_date:
            self.ckbSource_date.setChecked(True)
            self.dtSource_date.setDateTime(
                QDateTime.fromString(get_unicode(source_date),
                                     'yyyy-MM-dd HH:mm:ss'))
        else:
            self.ckbSource_date.setChecked(False)
            self.dtSource_date.clear()

        source_url = self.parent.get_existing_keyword('url')
        try:
            source_url = source_url.toString()
        except AttributeError:
            pass

        if source_url or source_url == 0:
            self.leSource_url.setText(get_unicode(source_url))
        else:
            self.leSource_url.clear()

        source_license = self.parent.get_existing_keyword('license')
        if source_license or source_license == 0:
            self.leSource_license.setText(get_unicode(source_license))
        else:
            self.leSource_license.clear()
コード例 #32
0
ファイル: cookies.py プロジェクト: 0xmilk/splash
    def har_cookie2qt(cls, cookie):
        qcookie = QNetworkCookie()
        qcookie.setName(cookie["name"])
        qcookie.setValue(cookie["value"])

        if 'domain' in cookie:
            qcookie.setDomain(cookie["domain"])

        if 'httpOnly' in cookie:
            qcookie.setHttpOnly(cookie["httpOnly"])

        if 'secure' in cookie:
            qcookie.setSecure(cookie["secure"])

        if 'path' in cookie:
            qcookie.setPath(cookie["path"])

        if cookie.get('expires'):
            expires = QDateTime.fromString(cookie["expires"], Qt.ISODate)
            qcookie.setExpirationDate(expires)

        return qcookie
コード例 #33
0
    def har_cookie2qt(cls, cookie):
        qcookie = QNetworkCookie()
        qcookie.setName(cookie["name"])
        qcookie.setValue(cookie["value"])

        if 'domain' in cookie:
            qcookie.setDomain(cookie["domain"])

        if 'httpOnly' in cookie:
            qcookie.setHttpOnly(cookie["httpOnly"])

        if 'secure' in cookie:
            qcookie.setSecure(cookie["secure"])

        if 'path' in cookie:
            qcookie.setPath(cookie["path"])

        if cookie.get('expires'):
            expires = QDateTime.fromString(cookie["expires"], Qt.ISODate)
            qcookie.setExpirationDate(expires)

        return qcookie
コード例 #34
0
ファイル: EditDlg.py プロジェクト: skyscribe/financial
    def _prepForModify(self):
        model = self.listData.model()
        selected = self.listData.selectedIndexes()[0]
        row = selected.row()
        fetchByColId = lambda col: model.data(model.createIndex(row, col)).toString()
        fetchColId = lambda name: model.getColIndexByName(name)
        fetchValue = lambda name: fetchByColId(fetchColId(name))
        self.ui.editID.setText(fetchValue('ID'))
        self.ui.editName.setText(fetchValue('Name'))
        self.ui.editType.setText(fetchValue('Type'))
        self.ui.editPrice.setText(fetchValue('Price'))
        dt = QDateTime.fromString(fetchValue('Time'), "yyyy-MM-dd HH:mm:ss")
        if not dt.isValid():
            dt = QDateTime.currentDateTime()
        self.ui.editTime.setDateTime(dt)
        self.ui.editComments.setText(fetchValue('Comments'))
        self.ui.editPic.setText(fetchValue('Pic'))

        catMatches = [k for k in categories if fetchValue('Category') == k]
        if len(catMatches) == 0:
            self.ui.comboCategory.setCurrentIndex(0)
        else:
            self.ui.comboCategory.setCurrentIndex(categories.index(catMatches[0]))
コード例 #35
0
    def test_existing_complex_keywords(self):
        """Test for existing complex keywords in wizard in locale mode."""
        from safe.gui.tools.wizard_dialog import WizardDialog
        from safe.test.utilities import (
            clone_shp_layer, remove_vector_temp_file)
        layer = clone_shp_layer(
            name='tsunami_polygon', include_keywords=True, source_directory='')

        from safe.test.utilities import get_qgis_app
        # Get QGis app handle
        # noinspection PyPep8Naming
        _, _, IFACE, PARENT = get_qgis_app()
        # noinspection PyTypeChecker
        dialog = WizardDialog(PARENT, IFACE)
        dialog.set_keywords_creation_mode(layer)

        # select hazard
        self.select_from_list_widget('ancaman', dialog.lstCategories)
        dialog.pbnNext.click()

        # select volcano
        self.select_from_list_widget('gunung berapi', dialog.lstSubcategories)
        dialog.pbnNext.click()

        # select volcano categorical unit
        self.select_from_list_widget('Kategori gunung berapi', dialog.lstUnits)
        dialog.pbnNext.click()

        # select GRIDCODE
        self.select_from_list_widget('GRIDCODE', dialog.lstFields)
        dialog.pbnNext.click()

        unit = dialog.selected_unit()
        default_classes = unit['classes']
        unassigned_values = []  # no need to check actually, not save in file
        assigned_values = {
            'low': ['5.0'],
            'medium': ['3.0', '4.0'],
            'high': ['2.0']
        }
        dialog.populate_classified_values(
            unassigned_values, assigned_values, default_classes)
        dialog.pbnNext.click()

        source = 'Source'
        source_scale = 'Source Scale'
        source_url = 'Source Url'
        source_date = QDateTime.fromString(
            '06-12-2015 12:30',
            'dd-MM-yyyy HH:mm')

        dialog.leSource.setText(source)
        dialog.leSource_scale.setText(source_scale)
        dialog.leSource_url.setText(source_url)
        dialog.leSource_date.seDateTime(source_date)
        dialog.pbnNext.click()  # next
        dialog.pbnNext.click()  # finish

        # noinspection PyTypeChecker
        dialog = WizardDialog(PARENT, IFACE)
        dialog.set_keywords_creation_mode(layer)

        # step 1 of 7 - select category
        self.check_current_text('ancaman', dialog.lstCategories)

        # Click Next
        dialog.pbnNext.click()

        # step 2 of 7 - select subcategory
        # noinspection PyTypeChecker
        self.check_current_text('gunung berapi', dialog.lstSubcategories)

        # Click Next
        dialog.pbnNext.click()

        # step 3 of 7 - select volcano units
        self.check_current_text('Kategori gunung berapi', dialog.lstUnits)

        # Click Next
        dialog.pbnNext.click()

        # step 4 of 7 - select field
        self.check_current_text('GRIDCODE', dialog.lstFields)

        # Click Next
        dialog.pbnNext.click()

        for index in range(dialog.lstUniqueValues.count()):
            message = ('%s Should be in unassigned values' %
                       dialog.lstUniqueValues.item(index).text())
            self.assertIn(
                dialog.lstUniqueValues.item(index).text(),
                unassigned_values,
                message)
        real_assigned_values = dialog.selected_mapping()
        self.assertDictEqual(real_assigned_values, assigned_values)

        # Click Next
        dialog.pbnNext.click()

        # step 6 of 7 - enter source
        message = ('Invalid Next button state in step 6! Disabled while '
                   'source is optional')
        self.assertTrue(dialog.pbnNext.isEnabled(), message)

        message = 'Source should be %s' % source
        self.assertEqual(dialog.leSource.text(), source, message)
        message = 'Source Url should be %s' % source_url
        self.assertEqual(dialog.leSource_url.text(), source_url, message)
        message = 'Source Date should be %s' % source_date.toString(
            'dd-MM-yyyy HH:mm')
        self.assertEqual(dialog.leSource_date.dateTime(), source_date, message)
        message = 'Source Scale should be %s' % source_scale
        self.assertEqual(dialog.leSource_scale.text(), source_scale, message)
        dialog.pbnNext.click()

        dialog.pbnCancel.click()

        remove_vector_temp_file(layer.source())
コード例 #36
0
    def fill_field(self):
        """
            Fill field with sensor info
        """

        self.clear_layout(self.editFrame.layout())

        self.nameBox.setText(self.oat.name)
        self.descBox.clear()
        self.descBox.appendPlainText(self.oat.desc)
        self.latBox.setValue(self.oat.lat)
        self.lonBox.setValue(self.oat.lon)
        self.freqBox.setText(self.oat.freq)

        if not self.oat.alt:
            self.altBox.setValue(0)
        else:
            self.altBox.setValue(self.oat.alt)

        if not self.oat.tz:
            self.tzBox.setValue(0)
        else:
            if ":" in self.oat.tz:
                self.tzBox.setValue(int(self.oat.tz.split(':')[0]))
            else:
                self.tzBox.setValue(int(self.oat.tz))

        self.opBox.setText(self.oat.prop)
        self.uomBox.setText(self.oat.unit)

        if self.oat.bottomscreen:
            self.bottomScreenBox.setValue(self.oat.bottomscreen)
        else:
            self.bottomScreenBox.setValue(0.0)

        if self.oat.topscreen:
            self.topScreenBox.setValue(self.oat.topscreen)
        else:
            self.topScreenBox.setValue(0.0)

        if self.oat.use > 0:
            self.useBox.setCheckState(Qt.Checked)

        self.statBox.setText(self.oat.statflag)

        if not self.oat.ts.empty:
            chart = MatplotWidget(toolbar=True)
            chart.set_data(self.oat, qi=True)

            self.clear_layout(self.dataPreview)
            self.dataPreview.addWidget(chart)

        if self.oat.data_availability[0]:
            beg = self.oat.data_availability[0].replace("T", " ")
            end = self.oat.data_availability[1].replace("T", " ")

            if beg[-3] == ':':
                beg = beg[:-6]
                end = end[:-6]
            else:
                beg = beg[:-5]
                end = end[:-5]

            begin_pos = QDateTime.fromString(beg, "yyyy-MM-dd hh:mm:ss")
            end_pos = QDateTime.fromString(end, "yyyy-MM-dd hh:mm:ss")

            self.beginPositionBox.setDateTime(begin_pos)
            self.endPositionBox.setDateTime(end_pos)
コード例 #37
0
 def setEditorValue(self, editor, value):
     editor.setDateTime(QDateTime.fromString(value, "yyyy-MM-dd HH:mm:ss"))
コード例 #38
0
ファイル: sosparser.py プロジェクト: kinow/SOSClient
    def parse(self, xml):
        def _float(value):
            try:
                return float(value)
            except:
                return None

        components = {}
        for member, _ in self.search(xml, "member"):
            for node, tag in self.search(member, "Observation/*"):
                if tag == "samplingTime":
                    samplingTime = self.timeParser.parse(node)
                elif tag == "observedProperty":
                    _, prop = self.searchFirst(node, "@href")
                    if prop:
                        if not prop in components: components[prop] = None
                    else:
                        for _, prop in self.search(
                                node, "CompositePhenomenon/component@href"):
                            if not prop in components: components[prop] = None
                elif tag == "featureOfInterest":
                    hasSamplingPoint = False
                    for point, foi_id in chain(
                            self.search(
                                node,
                                "FeatureCollection/featureMember/SamplingPoint@id"
                            ), self.search(node, "SamplingPoint@id"),
                            self.search(node, "SamplingPointAtDepth@id")):
                        hasSamplingPoint = True
                        _, name = self.searchFirst(point, "name")
                        pointGeo, _ = self.searchFirst(point, "position")
                        pointGeo = GMLParser.geometryFromGML(pointGeo)
                        if self.yx:
                            pointGeo = pointGeo.asPoint()
                            pointGeo = QgsGeometry.fromPoint(
                                QgsPoint(pointGeo.y(), pointGeo.x()))
                        self.provider.features[foi_id] = (name, pointGeo)
                        if point.localName() == "SamplingPointAtDepth":
                            _, depth = self.searchFirst(point, "depth")
                            foi_id = (foi_id, depth)
                    if not hasSamplingPoint:
                        for _, foi_id in self.search(
                                node, "FeatureCollection/featureMember@href"):
                            self.provider.features[foi_id] = (foi_id, None)
                elif tag == "result":
                    node, tag = self.searchFirst(node, "*")
                    if tag == "DataArray":
                        simpleDataRecord = []
                        for fieldNode, field in chain(
                                self.search(
                                    node,
                                    "elementType/SimpleDataRecord/field@name"),
                                self.search(
                                    node,
                                    "elementType/DataRecord/field@name")):
                            simpleDataRecord.append(field)
                            fieldNode, definition = self.searchFirst(
                                fieldNode, "*/@definition")
                            if definition in components and components[
                                    definition] == None:
                                if fieldNode.localName() == "Quantity":
                                    fieldType = QVariant.Double
                                    _, definition = self.searchFirst(
                                        fieldNode, "uom@code")
                                elif fieldNode.localName() == "Time":
                                    fieldType = QVariant.String
                                else:
                                    fieldType = QVariant.String
                                components[definition] = QgsField(
                                    field, fieldType, definition)

                        encoding, _ = self.searchFirst(node, "encoding")
                        _, blockSeparator = self.searchFirst(
                            encoding, "TextBlock@blockSeparator")
                        _, tokenSeparator = self.searchFirst(
                            encoding, "TextBlock@tokenSeparator")
                        _, values = self.searchFirst(node, "values")
                        try:
                            indexes = map(simpleDataRecord.index,
                                          ["feature", "Time"])
                        except:
                            indexes = None

                        if not indexes:
                            try:
                                indexes = map(
                                    simpleDataRecord.index,
                                    ["FeatureOfInterest", "SamplingTime"])
                            except:
                                indexes = None

                        if not indexes:
                            raise ValueError('SimpleDataRecord = ' +
                                             str(simpleDataRecord))

                        map(simpleDataRecord.pop, indexes)
                        for block in filter(lambda x: len(x),
                                            values.split(blockSeparator)):
                            observation = block.split(tokenSeparator)
                            observationKeys = map(observation.pop, indexes)
                            map(
                                lambda prop, value: self.provider.
                                setObservation(
                                    unicode(observationKeys[0]),
                                    QDateTime.fromString(
                                        observationKeys[1], Qt.ISODate),
                                    unicode(prop), str(value)),
                                simpleDataRecord, observation)
        return components
コード例 #39
0
ファイル: main.py プロジェクト: Ender27182818/isprinkle
 def prettyTimeString(self, dateTimeString):
     dateTimeString = QString(dateTimeString).remove(QRegExp('\.\d+$'))
     return QDateTime.fromString(dateTimeString, 'yyyy-MM-dd HH:mm:ss').toString('h:mm ap')
コード例 #40
0
ファイル: import_data.py プロジェクト: 3nids/wincan2qgep
    def __init__(self, filepath):
        tree = ET.parse(filepath)
        root = tree.getroot()
        self.data = {}

        for child in root:

            # project
            if child.tag == 'P_T':
                self.data[child.find('P_ID').text] = dict(
                    RootPath=os.path.dirname(filepath),
                    Name=self.getValue(child, 'P_Name'),
                    Date=QDateTime.fromString(self.getValue(child, 'P_Date'), 'dd.MM.yyyy hh:mm:ss'),
                    Channel='',
                    Sections={})

                #print child.find('P_Name').text

            # section
            if child.tag == 'S_T':
                self.data[child.find('S_Project_ID').text]['Sections'][child.find('S_ID').text] = dict(
                    QgepChannelId1=None,
                    QgepChannelId2=None,
                    QgepChannelId3=None,
                    UsePreviousSection=False,
                    Counter=self.getValue(child, 'S_Counter'),
                    StartNode=self.getValue(child, 'S_StartNode'),
                    EndNode=self.getValue(child, 'S_EndNode'),
                    Sectionlength=float(self.getValue(child, 'S_Sectionlength')),
                    SectionUse=self.getValue(child, 'S_SectionUse'),
                    PipeMaterial=self.getValue(child, 'S_PipeMaterial'),
                    Profile=self.getValue(child, 'S_Profile'),
                    PipeDia=float(self.getValue(child, 'S_PipeDia')),
                    PipeWidth=float(self.getValue(child, 'S_PipeWidth')),
                    #Medianumber=self.getValue(child, 'S_Medianumber'),  # do not exist in XML
                    Inspections={},
                    Import=True)


            # inspection
            if child.tag == 'SI_T':
                found = False
                for p_id, project in self.data.items():
                    for s_id in project['Sections']:
                        if s_id == child.find('SI_Section_ID').text:
                            self.data[p_id]['Sections'][s_id]['Inspections'][child.find('SI_ID').text] = dict(
                                InspMethod=self.getValue(child, 'SI_InspMethod'),
                                InspectionDir=self.getValue(child, 'SI_InspectionDir'),
                                CodeInspectionDir=self.getValue(child, 'CodeSI_InspectionDir'),
                                InspectedLength=float(self.getValue(child, 'SI_InspectedLength') or 0),
                                Operator=self.getValue(child, 'SI_Operator'),
                                Weather=self.getValue(child, 'SI_Weather'),
                                InclinationFileName=self.getValue(child, 'SI_InclinationFileName'),
                                Cleaned=self.getValue(child, 'SI_Cleaned'),
                                InspDate=QDate.fromString(self.getValue(child, 'SI_InspDate'), 'dd.MM.yyyy'),
                                VideoName=self.getValue(child, 'SI_Virtual_x007E_ClipFilename'),
                                Observations={},
                                Import=True)
                            found = True
                            break
                    if found: break
                if not found:
                    raise ValueError('insepction has no section')

            # observation
            if child.tag == 'SO_T':
                found = False
                for p_id, project in self.data.items():
                    for s_id, section in project['Sections'].items():
                        for i_id in section['Inspections']:
                            if i_id == child.find('SO_Inspecs_ID').text:
                                code = self.getValue(child, 'SO_OpCode')
                                PhotoFilenames = []
                                i = 1
                                while True:
                                    pf = self.getValue(child, 'SO_PhotoFilename{}'.format(i))
                                    i += 1
                                    if pf is None:
                                        break
                                    PhotoFilenames.append(pf)
                                self.data[p_id]['Sections'][s_id]['Inspections'][i_id]['Observations'][child.find('SO_ID').text] = dict(
                                    Counter=self.getValue(child, 'SO_Counter'),
                                    Position=float(self.getValue(child, 'SO_Position')),
                                    ToGoMeter=self.getValue(child, 'SO_ToGoMeter'),
                                    Text=self.getValue(child, 'SO_Text'),
                                    MPEGPosition=self.getValue(child, 'SO_MPEGPosition'),
                                    PhotoFilename=PhotoFilenames,
                                    Rate=int(round(float(self.getValue(child, 'SO_Rate') or 4))),
                                    OpCode=code,
                                    ClipFileName1=self.getValue(child, 'SO_ClipFileName1'),
                                    Quant1=self.getValue(child, 'SO_Quant1'),
                                    Quant2=self.getValue(child, 'SO_Quant2'),
                                    Quant1Unit=self.getValue(child, 'SO_Quant1Unit'),
                                    Quant2Unit=self.getValue(child, 'SO_Quant2Unit'),
                                    ObservCode=self.getValue(child, 'SO_ObservCode'),
                                    BendAngleDeg=self.getValue(child, 'SO_BendAngleDeg'),
                                    BendClockH=self.getValue(child, 'SO_BendClockH'),
                                    Import=True if code is not None and code not in SkipCode else False,
                                    ForceImport=False)  # force import if observation is out of channel (channel too short)
                                found = True
                                break
                    if found: break
                if not found:
                        raise ValueError('observation has no insepction')


        # order elements by counter
        for p_id in self.data.keys():
            self.data[p_id]['Sections'] = OrderedDict(sorted(self.data[p_id]['Sections'].items(), key=lambda t: int(t[1]['Counter'])))

            for s_id in self.data[p_id]['Sections'].keys():
                for i_id in self.data[p_id]['Sections'][s_id]['Inspections'].keys():
                    self.data[p_id]['Sections'][s_id]['Inspections'][i_id]['Observations'] = OrderedDict( sorted(self.data[p_id]['Sections'][s_id]['Inspections'][i_id]['Observations'].items(), key=lambda t: t[1]['Position']) )
コード例 #41
0
def main():
    import argparse
    import sys

    parser = argparse.ArgumentParser(
        description='Export referrals for hospitalization in Krasnodar area.')
    parser.add_argument('-u', dest='user', default='dbuser')
    parser.add_argument('-P', dest='password')
    parser.add_argument('-t', dest='datetime', default=None)
    parser.add_argument('-a', dest='host', default='127.0.0.1')
    parser.add_argument('-p', dest='port', type=int, default='3306')
    parser.add_argument('-d', dest='database', default='s11')
    parser.add_argument('-D', dest='dir', default=os.getcwd())
    parser.add_argument('-T', dest='exportType')
    parser.add_argument('-c', dest='orgCode', default='07526')
    args = vars(parser.parse_args(sys.argv[1:]))
    exportType = forceInt(args['exportType'])

    if not args['user']:
        print 'Error: you should specify user name'
        sys.exit(-1)
    if not args['password']:
        print 'Error: you should specify password'
        sys.exit(-2)
    if not args['exportType'] or exportType not in (1, 2, 3, 5, 6):
        print 'Error: you should specify correct export type'
        sys.exit(-3)
    if not args['orgCode']:
        print 'Error: you should specify organisation ID'
        sys.exit(-5)

    app = QtCore.QCoreApplication(sys.argv)
    dateTime = QDateTime.currentDateTime()
    begDateTime = args['datetime']
    begDateTime = QDateTime.fromString(
        begDateTime,
        'yyyy-MM-ddTHH:mm:ss') if begDateTime else QDateTime.currentDateTime(
        )  # QDateTime.currentDateTime().addSecs(-60)
    if not (begDateTime is None or begDateTime.isValid()):
        print 'Error: incorrect base datetime.'
        sys.exit(-4)

    connectionInfo = {
        'driverName': 'MYSQL',
        'host': args['host'],
        'port': args['port'],
        'database': args['database'],
        'user': args['user'],
        'password': args['password'],
        'connectionName': 'HospRefs',
        'compressData': True,
        'afterConnectFunc': None
    }

    db = connectDataBaseByInfo(connectionInfo)
    QtGui.qApp.db = db

    if exportType == 1:
        refName = u'SendPlanOrdersClinic_%s'
    elif exportType == 2:
        refName = u'SendFactOrdersHospital_%s'
    elif exportType == 3:
        refName = u'SendOrdersHospitalUrgently_%s'
    elif exportType == 5:
        refName = u'SendOrdersLeave_%s'
    elif exportType == 6:
        refName = u'SendKDInformation_%s'
    name = u'ReferralForHospitalization_%s.xml' % refName

    fileName = name % (dateTime.toString('yyMMddThhmmss.zzz'))
    fullFileName = os.path.join(forceStringEx(args['dir']), fileName)
    outFile = QtCore.QFile(fullFileName)
    outFile.open(QtCore.QFile.WriteOnly | QtCore.QFile.Text)
    exporter = CReferralForHospitalization(None, args['orgCode'], begDateTime)
    exporter.setCodec(QtCore.QTextCodec.codecForName('cp1251'))
    exporter.writeFileHeader(outFile)
    exporter.writeSend(exportType, dateTime)
    exporter.writeFileFooter()
    outFile.close()

    if exporter.emptyExport:
        os.remove(fullFileName)
コード例 #42
0
ファイル: sosparser.py プロジェクト: kinow/SOSClient
    def parse (self, xml):
        def _float (value):
            try: return float(value)
            except: return None
        
        components = {}
        for member, _ in self.search(xml, "member"):
            for node, tag in self.search (member, "Observation/*"):
                if tag == "samplingTime":
                    samplingTime = self.timeParser.parse(node)
                elif tag == "observedProperty":
                    _, prop = self.searchFirst(node, "@href")
                    if prop:
                        if not prop in components: components[prop] = None
                    else:
                        for _, prop in self.search (node, "CompositePhenomenon/component@href"):
                            if not prop in components: components[prop] = None
                elif tag == "featureOfInterest":
                    hasSamplingPoint = False
                    for point, foi_id in chain(self.search (node, "FeatureCollection/featureMember/SamplingPoint@id"),self.search (node, "SamplingPoint@id"),self.search (node, "SamplingPointAtDepth@id")):
                        hasSamplingPoint = True
                        _, name = self.searchFirst (point, "name")
                        pointGeo, _ = self.searchFirst(point, "position")
                        pointGeo = GMLParser.geometryFromGML(pointGeo)
                        if self.yx:
                            pointGeo = pointGeo.asPoint()
                            pointGeo = QgsGeometry.fromPoint(QgsPoint (pointGeo.y(),pointGeo.x()))
                        self.provider.features [foi_id] = (name, pointGeo)
                        if point.localName () == "SamplingPointAtDepth":
                            _, depth = self.searchFirst (point, "depth")
                            foi_id = (foi_id, depth)
                    if not hasSamplingPoint:
                        for _, foi_id in self.search (node, "FeatureCollection/featureMember@href"):
                            self.provider.features [foi_id] = (foi_id, None)
                elif tag == "result":
                    node, tag = self.searchFirst(node, "*")
                    if tag == "DataArray":
                        simpleDataRecord = []
                        for fieldNode, field in chain(self.search(node, "elementType/SimpleDataRecord/field@name"),self.search(node, "elementType/DataRecord/field@name")):
                            simpleDataRecord.append(field)
                            fieldNode, definition = self.searchFirst(fieldNode, "*/@definition")
                            if definition in components and components[definition] == None:
                                if fieldNode.localName () == "Quantity":
                                    fieldType = QVariant.Double
                                    _, definition = self.searchFirst (fieldNode, "uom@code")
                                elif fieldNode.localName () == "Time":
                                    fieldType = QVariant.String
                                else:
                                    fieldType = QVariant.String
                                components[definition] = QgsField (field, fieldType, definition)
                        
                        encoding, _ = self.searchFirst (node, "encoding")
                        _, blockSeparator = self.searchFirst (encoding, "TextBlock@blockSeparator")
                        _, tokenSeparator = self.searchFirst (encoding, "TextBlock@tokenSeparator")
                        _, values = self.searchFirst (node, "values")
                        try:
                            indexes = map(simpleDataRecord.index, ["feature", "Time"])
                        except:
                            indexes = None
                        
                        if not indexes:
                            try:
                                indexes = map(simpleDataRecord.index, ["FeatureOfInterest","SamplingTime"])
                            except:
                                indexes = None
                                
                        if not indexes:
                            raise ValueError('SimpleDataRecord = ' + str(simpleDataRecord)) 

                        map(simpleDataRecord.pop, indexes)
                        for block in filter (lambda x: len(x), values.split (blockSeparator)):
                            observation = block.split(tokenSeparator)
                            observationKeys = map(observation.pop, indexes)
                            map (lambda prop, value: self.provider.setObservation (unicode(observationKeys[0]), QDateTime.fromString(observationKeys[1], Qt.ISODate), unicode(prop), str(value)), simpleDataRecord, observation)
        return components                        
コード例 #43
0
    def test_existing_complex_keywords(self):
        """Test for existing complex keywords in wizard in locale mode."""
        from safe.gui.tools.wizard_dialog import WizardDialog
        from safe.test.utilities import clone_shp_layer, remove_vector_temp_file

        layer = clone_shp_layer(name="tsunami_polygon", include_keywords=True, source_directory="")

        from safe.test.utilities import get_qgis_app

        # Get QGis app handle
        # noinspection PyPep8Naming
        _, _, IFACE, PARENT = get_qgis_app()
        # noinspection PyTypeChecker
        dialog = WizardDialog(PARENT, IFACE)
        dialog.set_keywords_creation_mode(layer)

        # select hazard
        self.select_from_list_widget("ancaman", dialog.lstCategories)
        dialog.pbnNext.click()

        # select volcano
        self.select_from_list_widget("gunung berapi", dialog.lstSubcategories)
        dialog.pbnNext.click()

        # select volcano categorical unit
        self.select_from_list_widget("Kategori gunung berapi", dialog.lstUnits)
        dialog.pbnNext.click()

        # select GRIDCODE
        self.select_from_list_widget("GRIDCODE", dialog.lstFields)
        dialog.pbnNext.click()

        unit = dialog.selected_unit()
        default_classes = unit["classes"]
        unassigned_values = []  # no need to check actually, not save in file
        assigned_values = {"low": ["5.0"], "medium": ["3.0", "4.0"], "high": ["2.0"]}
        dialog.populate_classified_values(unassigned_values, assigned_values, default_classes)
        dialog.pbnNext.click()

        source = "Source"
        source_scale = "Source Scale"
        source_url = "Source Url"
        source_date = QDateTime.fromString("06-12-2015 12:30", "dd-MM-yyyy HH:mm")

        dialog.leSource.setText(source)
        dialog.leSource_scale.setText(source_scale)
        dialog.leSource_url.setText(source_url)
        dialog.leSource_date.seDateTime(source_date)
        dialog.pbnNext.click()  # next
        dialog.pbnNext.click()  # finish

        # noinspection PyTypeChecker
        dialog = WizardDialog(PARENT, IFACE)
        dialog.set_keywords_creation_mode(layer)

        # step 1 of 7 - select category
        self.check_current_text("ancaman", dialog.lstCategories)

        # Click Next
        dialog.pbnNext.click()

        # step 2 of 7 - select subcategory
        # noinspection PyTypeChecker
        self.check_current_text("gunung berapi", dialog.lstSubcategories)

        # Click Next
        dialog.pbnNext.click()

        # step 3 of 7 - select volcano units
        self.check_current_text("Kategori gunung berapi", dialog.lstUnits)

        # Click Next
        dialog.pbnNext.click()

        # step 4 of 7 - select field
        self.check_current_text("GRIDCODE", dialog.lstFields)

        # Click Next
        dialog.pbnNext.click()

        for index in range(dialog.lstUniqueValues.count()):
            message = "%s Should be in unassigned values" % dialog.lstUniqueValues.item(index).text()
            self.assertIn(dialog.lstUniqueValues.item(index).text(), unassigned_values, message)
        real_assigned_values = dialog.selected_mapping()
        self.assertDictEqual(real_assigned_values, assigned_values)

        # Click Next
        dialog.pbnNext.click()

        # step 6 of 7 - enter source
        message = "Invalid Next button state in step 6! Disabled while " "source is optional"
        self.assertTrue(dialog.pbnNext.isEnabled(), message)

        message = "Source should be %s" % source
        self.assertEqual(dialog.leSource.text(), source, message)
        message = "Source Url should be %s" % source_url
        self.assertEqual(dialog.leSource_url.text(), source_url, message)
        message = "Source Date should be %s" % source_date.toString("dd-MM-yyyy HH:mm")
        self.assertEqual(dialog.leSource_date.dateTime(), source_date, message)
        message = "Source Scale should be %s" % source_scale
        self.assertEqual(dialog.leSource_scale.text(), source_scale, message)
        dialog.pbnNext.click()

        dialog.pbnCancel.click()

        remove_vector_temp_file(layer.source())
コード例 #44
0
    def test_existing_complex_keywords(self):
        """Test for existing complex keywords in wizard in locale mode."""
        from safe.test.utilities import (
            clone_shp_layer, remove_vector_temp_file)
        layer = clone_shp_layer(
            name='tsunami_polygon', include_keywords=True, source_directory='')

        from safe.test.utilities import get_qgis_app
        # Get QGis app handle
        # noinspection PyPep8Naming
        _, _, IFACE, PARENT = get_qgis_app()

        from safe.gui.tools.wizard.wizard_dialog import WizardDialog

        # noinspection PyTypeChecker
        dialog = WizardDialog(PARENT, IFACE)
        dialog.set_keywords_creation_mode(layer)

        # select hazard
        self.select_from_list_widget('ancaman',
                                     dialog.step_kw_purpose.lstCategories)
        dialog.pbnNext.click()

        # select volcano
        self.select_from_list_widget('gunung berapi', dialog.
                                     step_kw_subcategory.lstSubcategories)
        dialog.pbnNext.click()

        # select volcano categorical unit
        self.select_from_list_widget('Kategori gunung berapi',
                                     dialog.step_kw_unit.lstUnits)
        dialog.pbnNext.click()

        # select GRIDCODE
        self.select_from_list_widget(
            'GRIDCODE', dialog.step_kw_field.lstFields)
        dialog.pbnNext.click()

        unit = dialog.step_kw_unit.selected_unit()
        default_classes = unit['classes']
        unassigned_values = []  # no need to check actually, not save in file
        assigned_values = {
            'low': ['5.0'],
            'medium': ['3.0', '4.0'],
            'high': ['2.0']
        }
        dialog.step_kw_classify.populate_classified_values(
            unassigned_values, assigned_values, default_classes)
        dialog.pbnNext.click()

        source = 'Source'
        source_scale = 'Source Scale'
        source_url = 'Source Url'
        source_date = QDateTime.fromString(
            '06-12-2015 12:30',
            'dd-MM-yyyy HH:mm')

        dialog.step_kw_source.leSource.setText(source)
        dialog.step_kw_source.leSource_scale.setText(source_scale)
        dialog.step_kw_source.leSource_url.setText(source_url)
        dialog.step_kw_source.leSource_date.seDateTime(source_date)
        dialog.pbnNext.click()  # next
        dialog.pbnNext.click()  # finish

        # noinspection PyTypeChecker
        dialog = WizardDialog(PARENT, IFACE)
        dialog.set_keywords_creation_mode(layer)

        # step 1 of 7 - select category
        self.check_current_text(
            'ancaman', dialog.step_kw_purpose.lstCategories)

        # Click Next
        dialog.pbnNext.click()

        # step 2 of 7 - select subcategory
        # noinspection PyTypeChecker
        self.check_current_text('gunung berapi',
                                dialog.step_kw_subcategory.lstSubcategories)

        # Click Next
        dialog.pbnNext.click()

        # step 3 of 7 - select volcano units
        self.check_current_text('Kategori gunung berapi',
                                dialog.step_kw_unit.lstUnits)

        # Click Next
        dialog.pbnNext.click()

        # step 4 of 7 - select field
        self.check_current_text('GRIDCODE', dialog.step_kw_field.lstFields)

        # Click Next
        dialog.pbnNext.click()

        for index in range(dialog.step_classify.lstUniqueValues.count()):
            message = ('%s Should be in unassigned values' %
                       dialog.step_classify.lstUniqueValues.item(index).text())
            self.assertIn(
                dialog.step_classify.lstUniqueValues.item(index).text(),
                unassigned_values,
                message)
        real_assigned_values = dialog.step_classify.selected_mapping()
        self.assertDictEqual(real_assigned_values, assigned_values)

        # Click Next
        dialog.pbnNext.click()

        # step 6 of 7 - enter source
        message = ('Invalid Next button state in step 6! Disabled while '
                   'source is optional')
        self.assertTrue(dialog.pbnNext.isEnabled(), message)

        message = 'Source should be %s' % source
        self.assertEqual(
            dialog.step_kw_source.leSource.text(), source, message)
        message = 'Source Url should be %s' % source_url
        self.assertEqual(dialog.step_kw_source.leSource_url.text(),
                         source_url, message)
        message = 'Source Date should be %s' % source_date.toString(
            'dd-MM-yyyy HH:mm')
        self.assertEqual(dialog.step_kw_source.leSource_date.dateTime(),
                         source_date, message)
        message = 'Source Scale should be %s' % source_scale
        self.assertEqual(dialog.step_kw_source.leSource_scale.text(),
                         source_scale, message)
        dialog.pbnNext.click()

        dialog.pbnCancel.click()

        remove_vector_temp_file(layer.source())
コード例 #45
0
def main():
    import argparse
    import sys

    parser = argparse.ArgumentParser(description='')
    parser.add_argument('-u', dest='user', default='dbuser')
    parser.add_argument('-P', dest='password')
    parser.add_argument('-t', dest='datetime', default=None)
    parser.add_argument('-a', dest='host', default='37.44.41.26')
    parser.add_argument('-p', dest='port', type=int, default='63306')
    parser.add_argument('-d', dest='database', default='iemk')
    parser.add_argument('-D', dest='dir', default=os.getcwd())
    parser.add_argument('-T', dest='type', default='c')
    args = vars(parser.parse_args(sys.argv[1:]))

    if not args['user']:
        print 'Error: you should specify user name'
        sys.exit(-1)
    if not args['password']:
        print 'Error: you should specify password'
        sys.exit(-2)

    app = QtCore.QCoreApplication(sys.argv)
    connectionInfo = {
        'driverName': 'MYSQL',
        'host': args['host'],
        'port': args['port'],
        'database': args['database'],
        'user': args['user'],
        'password': args['password'],
        'connectionName': 'IEMK',
        'compressData': True,
        'afterConnectFunc': None
    }

    db = connectDataBaseByInfo(connectionInfo)
    QtGui.qApp.db = db
    curDateTime = QtCore.QDateTime.currentDateTime()
    dt = args['datetime']
    dt = QDateTime.fromString(
        dt, 'yyyy-MM-ddTHH:mm:ss') if dt else curDateTime.addSecs(-86400)
    typeDatetime = args['type']
    if typeDatetime == 'c':
        strTypeDatetime = u'Client.createDatetime'
        typeFlag = 0
    elif typeDatetime == 'm':
        strTypeDatetime = u'Client.modifyDatetime'
        typeFlag = 1
    else:
        print 'Error: wrong type'
        sys.exit(-4)
    stmt = '''
        SELECT Client.id as clientId,
               Client.lastName,
               Client.firstName,
               Client.patrName,
               rbContactType.code as contactTypeCode,
               ClientContact.contact as contactClient,
               Client.sex,
               Client.birthDate,
               Client.birthTime,
               AddressHouse.KLADRCode,
               AddressHouse.KLADRStreetCode,
               AddressHouse.number as houseNumber,
               AddressHouse.corpus as houseCorpus,
               ClientAddress.freeInput as freeInput,
               Address.flat as flat,
               Client.SNILS,
               ClientPolicy.serial as policySerial,
               ClientPolicy.number as policyNumber,
               ClientPolicy.begDate as policyBegDate,
               Organisation.fullName as insurerName,
               Organisation.obsoleteInfisCode as insurerCode,
               ClientDocument.serial as documentSerial,
               ClientDocument.number as documentNumber,
               ClientDocument.date as documentDate,
               ClientDocument.origin as documentOrg,
               Client.birthPlace,
               Organisation.phone as orgPhone,
               rbDocumentType.federalCode as docTypeCode
        FROM Client
        LEFT JOIN ClientContact ON ClientContact.client_id = Client.id AND ClientContact.deleted = 0
        LEFT JOIN rbContactType ON rbContactType.id = ClientContact.contactType_id
        LEFT JOIN ClientAddress ON ClientAddress.id = getClientRegAddressId(Client.id)
        LEFT JOIN Address ON Address.id = ClientAddress.address_id AND Address.deleted = 0
        LEFT JOIN AddressHouse ON AddressHouse.id = Address.house_id AND AddressHouse.deleted = 0
        LEFT JOIN ClientPolicy ON ClientPolicy.id = getClientPolicyId(Client.id, 1)
        LEFT JOIN Organisation ON Organisation.id = ClientPolicy.insurer_id AND Organisation.deleted = 0
        LEFT JOIN ClientDocument ON ClientDocument.client_id = Client.id AND ClientDocument.deleted = 0
        LEFT JOIN rbDocumentType ON rbDocumentType.id = ClientDocument.documentType_id AND rbDocumentType.code = 1
        WHERE (%s >= TIMESTAMP('%s') OR IFNULL(TIMESTAMP(Client.notes), TIMESTAMP('0000-00-00')) >= TIMESTAMP('%s'))  AND Client.deleted = 0
    ''' % (strTypeDatetime, dt.toString('yyyy-MM-dd hh:mm:ss'),
           dt.toString('yyyy-MM-dd hh:mm:ss'))
    query = db.query(stmt)
    if query.size() > 0:
        if typeFlag == 0:
            fileName = u'RCIEMK_%s.xml' % (
                curDateTime.toString('yyMMddThhmmss.zzz'))
        elif typeFlag == 1:
            fileName = u'RMIEMK_%s.xml' % (
                curDateTime.toString('yyMMddThhmmss.zzz'))
        if not (dt is None or dt.isValid()):
            print 'Error: incorrect base datetime.'
            sys.exit(-4)
        outFile = QtCore.QFile(
            os.path.join(forceStringEx(args['dir']), fileName))
        outFile.open(QtCore.QFile.WriteOnly | QtCore.QFile.Text)
        clientsOut = CRegistryClientInIEMK(None)
        clientsOut.setCodec(QtCore.QTextCodec.codecForName('cp1251'))
        clientsOut.writeFileHeader(outFile)
        clientsOut.writeRegistryClientInIEMK(query, curDateTime, typeFlag)
        clientsOut.writeFileFooter()
        outFile.close()
コード例 #46
0
 def process_result_value(self, value, dialect):
     if value:
         return QDateTime.fromString(value.isoformat(),
                                     'yyyy-MM-ddTHH:mm:ss')
     else:
         return None
コード例 #47
0
ファイル: MW_StayUserRatio.py プロジェクト: sunsray/syn_tool
 def init_date(self):
     today = datetime.date.today()
     date_end = str(today) + ' 00:00:00'
     self.dt_EndTime_StayUser.setDateTime(QDateTime.fromString(date_end, 'yyyy-MM-dd hh:mm:ss'))
     from_day = str(today + datetime.timedelta(-14)) + ' 00:00:00'
     self.dt_FromTime_StayUser.setDateTime(QDateTime.fromString(from_day, 'yyyy-MM-dd hh:mm:ss'))
コード例 #48
0
ファイル: xmlelement.py プロジェクト: tws0002/cross3d
    def restoreValue(self, fail=None):

        valtype = self.attribute('type')
        value = None

        # Restore a list item
        if (valtype == 'list'):
            value = []
            for child in self.children():
                value.append(child.restoreValue())

        # Restore a dictionary item
        elif (valtype == 'dict'):
            value = {}
            for child in self.children():
                value[child.attribute('key')] = child.restoreValue()

        # Record a qdatetime
        elif (valtype == 'QDateTime'):
            value = QDateTime.fromString(self.attribute('value'),
                                         'yyyy-MM-dd hh:mm:ss')

        # Record a qdate
        elif (valtype == 'QDate'):
            value = QDate.fromString(self.attribute('value'), 'yyyy-MM-dd')

        # Restore a QRect
        elif (valtype == 'QRect'):
            value = self.findRect('rect')

        # Restore a QRectF
        elif (valtype == 'QRectF'):
            value = self.findRectF('rect')

        # Restore a QSize
        elif (valtype == 'QSize'):
            value = self.findSize('size')

        # Restore a QSizeF
        elif (valtype == 'QSizeF'):
            value = self.findSizeF('size')

        # Restore a QPoint
        elif (valtype == 'QPoint'):
            value = self.findPoint('point')

        # Restore a QPointF
        elif (valtype == 'QPointF'):
            value = self.findPointF('point')

        # Restore a QColor
        elif (valtype == 'QColor'):
            value = self.findColor('color')

        # restore a QFont
        elif (valtype == 'QFont'):
            value = QFont()
            value.fromString(self.attribute('value'))

        # Restore a string
        elif (valtype in ('str', 'unicode', 'QString')):
            value = unicode(self.attribute('value'))

        elif (valtype == 'ViewMode'):
            # If treated as a basic value would return fail
            value = int(self.attribute('value'))

        # Restore a QByteArray (Experimental)
        elif (valtype == 'QByteArray'):
            value = QByteArray.fromPercentEncoding(self.attribute('value', ''))

        # Restore a Qt.CheckState
        elif valtype == 'CheckState':
            value = Qt.CheckState(self.attribute('value', 0))

        # Restore a basic value
        else:
            try:
                value = eval('%s(%s)' % (valtype, self.attribute('value')))
            except:
                value = fail

        return value