def get_converters(self): loc = QLocale(QLocale.C) if self._decimal_point == '.' else QLocale(QLocale.Spanish) return ( lambda s: (s, True), lambda s: loc.toInt(s) if s else (None,True), lambda s: loc.toDouble(s)if s else (None,True) )
def test_field_types(self, data): loc = QLocale(QLocale.C) if self._decimal_point == '.' else QLocale(QLocale.Spanish) for col, field in enumerate(self._fields): if all([loc.toInt(row[col])[1] or row[col] is None for row in data]): # test for integer field.data_type = 1 elif all([loc.toDouble(row[col])[1] for row in data if len(row[col]) > 0]): # test for double field.data_type = 2 else: field.data_type = 0
def scaleFromString(self, scaleText): locale = QLocale() parts = [locale.toInt(part) for part in scaleText.split(":")] try: if len(parts) == 2 and parts[0][1] and parts[1][1] and parts[0][0] != 0 and parts[1][0] != 0: return float(parts[0][0]) / float(parts[1][0]) else: return None except ZeroDivisionError: return