Skip to content

Commit

Permalink
Merge pull request #51167 from DelazJ/unicoders
Browse files Browse the repository at this point in the history
  • Loading branch information
m-kuhn committed Dec 11, 2022
2 parents c1f55b8 + d6b5b07 commit 5bd4fbd
Show file tree
Hide file tree
Showing 50 changed files with 700 additions and 700 deletions.
2 changes: 1 addition & 1 deletion python/plugins/db_manager/db_manager.py
Expand Up @@ -221,7 +221,7 @@ def runSqlLayerWindow(self, layer):
def update_query_tab_name(self, index, dbname, queryname):
if not queryname:
queryname = self.tr("Query")
tabname = u"%s (%s)" % (queryname, dbname)
tabname = "%s (%s)" % (queryname, dbname)
self.tabs.setTabText(index, tabname)

def showSystemTables(self):
Expand Down
4 changes: 2 additions & 2 deletions python/plugins/db_manager/db_plugins/__init__.py
Expand Up @@ -44,9 +44,9 @@ def initDbPluginList():
continue

try:
exec(u"from .%s import plugin as mod" % name, globals())
exec("from .%s import plugin as mod" % name, globals())
except ImportError as e:
DBPLUGIN_ERRORS.append(u"%s: %s" % (name, str(e)))
DBPLUGIN_ERRORS.append("%s: %s" % (name, str(e)))
continue

pluginclass = mod.classFactory() # NOQA
Expand Down
8 changes: 4 additions & 4 deletions python/plugins/db_manager/db_plugins/connector.py
Expand Up @@ -188,28 +188,28 @@ def _get_cursor_columns(self, c):
@classmethod
def quoteId(self, identifier):
if hasattr(identifier, '__iter__') and not isinstance(identifier, str):
return u'.'.join(
return '.'.join(
self.quoteId(i)
for i in identifier
if i is not None and i != ""
)

identifier = str(
identifier) if identifier is not None else str() # make sure it's python unicode string
return u'"%s"' % identifier.replace('"', '""')
return '"%s"' % identifier.replace('"', '""')

@classmethod
def quoteString(self, txt):
""" make the string safe - replace ' with '' """
if hasattr(txt, '__iter__') and not isinstance(txt, str):
return u'.'.join(
return '.'.join(
self.quoteString(i)
for i in txt
if i is not None
)

txt = str(txt) if txt is not None else str() # make sure it's python unicode string
return u"'%s'" % txt.replace("'", "''")
return "'%s'" % txt.replace("'", "''")

@classmethod
def getSchemaTableName(self, table):
Expand Down
8 changes: 4 additions & 4 deletions python/plugins/db_manager/db_plugins/data_model.py
Expand Up @@ -45,11 +45,11 @@ def __init__(self, header=None, data=None, parent=None):
self._header = header if header else []
self.resdata = data if data else []

def headerToString(self, sep=u"\t"):
def headerToString(self, sep="\t"):
header = self._header
return sep.join(header)

def rowToString(self, row, sep=u"\t"):
def rowToString(self, row, sep="\t"):
return sep.join(
str(self.getData(row, col))
for col in range(self.columnCount())
Expand Down Expand Up @@ -320,7 +320,7 @@ def __init__(self, parent, editable=False):

def append(self, constr):
field_names = [str(k_v[1].name) for k_v in iter(list(constr.fields().items()))]
data = [constr.name, constr.type2String(), u", ".join(field_names)]
data = [constr.name, constr.type2String(), ", ".join(field_names)]
self.appendRow(self.rowFromData(data))
row = self.rowCount() - 1
self.setData(self.index(row, 0), constr, Qt.UserRole)
Expand Down Expand Up @@ -356,7 +356,7 @@ def __init__(self, parent, editable=False):

def append(self, idx):
field_names = [str(k_v1[1].name) for k_v1 in iter(list(idx.fields().items()))]
data = [idx.name, u", ".join(field_names)]
data = [idx.name, ", ".join(field_names)]
self.appendRow(self.rowFromData(data))
row = self.rowCount() - 1
self.setData(self.index(row, 0), idx, Qt.UserRole)
Expand Down
46 changes: 23 additions & 23 deletions python/plugins/db_manager/db_plugins/gpkg/connector.py
Expand Up @@ -376,15 +376,15 @@ def getTableRowCount(self, table):

def getTableFields(self, table):
""" return list of columns in table """
sql = u"PRAGMA table_info(%s)" % (self.quoteId(table))
sql = "PRAGMA table_info(%s)" % (self.quoteId(table))
ret = self._fetchAll(sql)
if ret is None:
ret = []
return ret

def getTableIndexes(self, table):
""" get info about table's indexes """
sql = u"PRAGMA index_list(%s)" % (self.quoteId(table))
sql = "PRAGMA index_list(%s)" % (self.quoteId(table))
indexes = self._fetchAll(sql)
if indexes is None:
return []
Expand All @@ -398,7 +398,7 @@ def getTableIndexes(self, table):
num, name, unique = idx
if len(idx) == 5:
num, name, unique, createdby, partial = idx
sql = u"PRAGMA index_info(%s)" % (self.quoteId(name))
sql = "PRAGMA index_info(%s)" % (self.quoteId(name))

idx = [num, name, unique]
cols = [
Expand All @@ -417,21 +417,21 @@ def getTableTriggers(self, table):

_, tablename = self.getSchemaTableName(table)
# Do not list rtree related triggers as we don't want them to be dropped
sql = u"SELECT name, sql FROM sqlite_master WHERE tbl_name = %s AND type = 'trigger'" % (self.quoteString(tablename))
sql = "SELECT name, sql FROM sqlite_master WHERE tbl_name = %s AND type = 'trigger'" % (self.quoteString(tablename))
if self.isVectorTable(table):
sql += u" AND name NOT LIKE 'rtree_%%'"
sql += " AND name NOT LIKE 'rtree_%%'"
elif self.isRasterTable(table):
sql += u" AND name NOT LIKE '%%_zoom_insert'"
sql += u" AND name NOT LIKE '%%_zoom_update'"
sql += u" AND name NOT LIKE '%%_tile_column_insert'"
sql += u" AND name NOT LIKE '%%_tile_column_update'"
sql += u" AND name NOT LIKE '%%_tile_row_insert'"
sql += u" AND name NOT LIKE '%%_tile_row_update'"
sql += " AND name NOT LIKE '%%_zoom_insert'"
sql += " AND name NOT LIKE '%%_zoom_update'"
sql += " AND name NOT LIKE '%%_tile_column_insert'"
sql += " AND name NOT LIKE '%%_tile_column_update'"
sql += " AND name NOT LIKE '%%_tile_row_insert'"
sql += " AND name NOT LIKE '%%_tile_row_update'"
return self._fetchAll(sql)

def deleteTableTrigger(self, trigger, table=None):
"""Deletes trigger """
sql = u"DROP TRIGGER %s" % self.quoteId(trigger)
sql = "DROP TRIGGER %s" % self.quoteId(trigger)
self._execute_and_commit(sql)

def getTableExtent(self, table, geom, force=False):
Expand Down Expand Up @@ -473,7 +473,7 @@ def getSpatialRefInfo(self, srid):
if srid in self.mapSridToName:
return self.mapSridToName[srid]

sql = u"SELECT srs_name FROM gpkg_spatial_ref_sys WHERE srs_id = %s" % self.quoteString(srid)
sql = "SELECT srs_name FROM gpkg_spatial_ref_sys WHERE srs_id = %s" % self.quoteString(srid)
res = self._fetchOne(sql)
if res is not None and len(res) > 0:
res = res[0]
Expand All @@ -490,7 +490,7 @@ def isRasterTable(self, table):
_, tablename = self.getSchemaTableName(table)
md = self.gdal_ds.GetMetadata('SUBDATASETS')
if md is None or len(md) == 0:
sql = u"SELECT COUNT(*) FROM gpkg_contents WHERE data_type = 'tiles' AND table_name = %s" % self.quoteString(tablename)
sql = "SELECT COUNT(*) FROM gpkg_contents WHERE data_type = 'tiles' AND table_name = %s" % self.quoteString(tablename)
ret = self._fetchOne(sql)
return ret != [] and ret[0][0] == 1
else:
Expand Down Expand Up @@ -600,7 +600,7 @@ def emptyTable(self, table):
if self.isRasterTable(table):
return False

sql = u"DELETE FROM %s" % self.quoteId(table)
sql = "DELETE FROM %s" % self.quoteId(table)
self._execute_and_commit(sql)

def renameTable(self, table, new_table):
Expand Down Expand Up @@ -769,26 +769,26 @@ def deleteTableConstraint(self, table, constraint):

def addTablePrimaryKey(self, table, column):
"""Adds a primery key (with one column) to a table """
sql = u"ALTER TABLE %s ADD PRIMARY KEY (%s)" % (self.quoteId(table), self.quoteId(column))
sql = "ALTER TABLE %s ADD PRIMARY KEY (%s)" % (self.quoteId(table), self.quoteId(column))
self._execute_and_commit(sql)

def createTableIndex(self, table, name, column, unique=False):
"""Creates index on one column using default options """
unique_str = u"UNIQUE" if unique else ""
sql = u"CREATE %s INDEX %s ON %s (%s)" % (
unique_str = "UNIQUE" if unique else ""
sql = "CREATE %s INDEX %s ON %s (%s)" % (
unique_str, self.quoteId(name), self.quoteId(table), self.quoteId(column))
self._execute_and_commit(sql)

def deleteTableIndex(self, table, name):
schema, tablename = self.getSchemaTableName(table)
sql = u"DROP INDEX %s" % self.quoteId((schema, name))
sql = "DROP INDEX %s" % self.quoteId((schema, name))
self._execute_and_commit(sql)

def createSpatialIndex(self, table, geom_column):
if self.isRasterTable(table):
return False
_, tablename = self.getSchemaTableName(table)
sql = u"SELECT CreateSpatialIndex(%s, %s)" % (
sql = "SELECT CreateSpatialIndex(%s, %s)" % (
self.quoteId(tablename), self.quoteId(geom_column))
try:
res = self._fetchOne(sql)
Expand All @@ -800,7 +800,7 @@ def deleteSpatialIndex(self, table, geom_column):
if self.isRasterTable(table):
return False
_, tablename = self.getSchemaTableName(table)
sql = u"SELECT DisableSpatialIndex(%s, %s)" % (
sql = "SELECT DisableSpatialIndex(%s, %s)" % (
self.quoteId(tablename), self.quoteId(geom_column))
res = self._fetchOne(sql)
return len(res) > 0 and len(res[0]) > 0 and res[0][0] == 1
Expand All @@ -811,14 +811,14 @@ def hasSpatialIndex(self, table, geom_column):
_, tablename = self.getSchemaTableName(table)

# (only available in >= 2.1.2)
sql = u"SELECT HasSpatialIndex(%s, %s)" % (self.quoteString(tablename), self.quoteString(geom_column))
sql = "SELECT HasSpatialIndex(%s, %s)" % (self.quoteString(tablename), self.quoteString(geom_column))
gdal.PushErrorHandler()
ret = self._fetchOne(sql)
gdal.PopErrorHandler()

if len(ret) == 0:
# might be the case for GDAL < 2.1.2
sql = u"SELECT COUNT(*) FROM sqlite_master WHERE type = 'table' AND name LIKE %s" % self.quoteString("%%rtree_" + tablename + "_%%")
sql = "SELECT COUNT(*) FROM sqlite_master WHERE type = 'table' AND name LIKE %s" % self.quoteString("%%rtree_" + tablename + "_%%")
ret = self._fetchOne(sql)
if len(ret) == 0:
return False
Expand Down
4 changes: 2 additions & 2 deletions python/plugins/db_manager/db_plugins/gpkg/data_model.py
Expand Up @@ -34,11 +34,11 @@ class GPKGTableDataModel(TableDataModel):
def __init__(self, table, parent=None):
TableDataModel.__init__(self, table, parent)

# fields_txt = u", ".join(self.fields)
# fields_txt = ", ".join(self.fields)
# table_txt = self.db.quoteId((self.table.schemaName(), self.table.name))

# run query and get results
# sql = u"SELECT %s FROM %s" % (fields_txt, table_txt)
# sql = "SELECT %s FROM %s" % (fields_txt, table_txt)
# self.resdata = self.db._fetchAll(sql, include_fid_and_geometry = True)

self.resdata = self.db._fetchAllFromLayer(table)
Expand Down
10 changes: 5 additions & 5 deletions python/plugins/db_manager/db_plugins/gpkg/plugin.py
Expand Up @@ -76,7 +76,7 @@ def connect(self, parent=None):
conn = md.findConnection(conn_name)

if conn is None: # non-existent entry?
raise InvalidDataException(self.tr(u'There is no defined database connection "{0}".').format(conn_name))
raise InvalidDataException(self.tr('There is no defined database connection "{0}".').format(conn_name))

uri = QgsDataSourceUri()
uri.setDatabase(conn.uri())
Expand Down Expand Up @@ -202,12 +202,12 @@ def __init__(self, row, db, schema=None):
self.name, self.isView, self.isSysTable = row

def ogrUri(self):
ogrUri = u"%s|layername=%s" % (self.uri().database(), self.name)
ogrUri = "%s|layername=%s" % (self.uri().database(), self.name)
return ogrUri

def mimeUri(self):
# QGIS has no provider to load Geopackage vectors, let's use OGR
return u"vector:ogr:%s:%s" % (self.name, self.ogrUri())
return "vector:ogr:%s:%s" % (self.name, self.ogrUri())

def toMapLayer(self, geometryType=None, crs=None):
from qgis.core import QgsVectorLayer
Expand Down Expand Up @@ -300,12 +300,12 @@ def __init__(self, row, db, schema=None):
self.extent = self.database().connector.getTableExtent((self.schemaName(), self.name), self.geomColumn)

def gpkgGdalUri(self):
gdalUri = u'GPKG:%s:%s' % (self.uri().database(), self.prefixName)
gdalUri = 'GPKG:%s:%s' % (self.uri().database(), self.prefixName)
return gdalUri

def mimeUri(self):
# QGIS has no provider to load rasters, let's use GDAL
uri = u"raster:gdal:%s:%s" % (self.name, self.uri().database())
uri = "raster:gdal:%s:%s" % (self.name, self.uri().database())
return uri

def toMapLayer(self, geometryType=None, crs=None):
Expand Down
14 changes: 7 additions & 7 deletions python/plugins/db_manager/db_plugins/html_elems.py
Expand Up @@ -30,7 +30,7 @@ def __init__(self, data):

def toHtml(self):
if isinstance(self.data, list) or isinstance(self.data, tuple):
html = u''
html = ''
for item in self.data:
html += HtmlContent(item).toHtml()
return html
Expand Down Expand Up @@ -76,19 +76,19 @@ def setAttr(self, name, value):
self.attrs[name] = value

def getAttrsHtml(self):
html = u''
html = ''
for k, v in self.attrs.items():
html += u' %s="%s"' % (k, v)
html += ' %s="%s"' % (k, v)
return html

def openTagHtml(self):
return u"<%s%s>" % (self.tag, self.getAttrsHtml())
return "<%s%s>" % (self.tag, self.getAttrsHtml())

def closeTagHtml(self):
return u"</%s>" % self.tag
return "</%s>" % self.tag

def toHtml(self):
return u"%s%s%s" % (self.openTagHtml(), self.data.toHtml(), self.closeTagHtml())
return "%s%s%s" % (self.openTagHtml(), self.data.toHtml(), self.closeTagHtml())

def hasContents(self):
return self.data.toHtml() != ""
Expand Down Expand Up @@ -124,7 +124,7 @@ def __init__(self, data, attrs=None):

def closeTagHtml(self):
# FIX INVALID BEHAVIOR: an empty cell as last table's cell break margins
return u"&nbsp;%s" % HtmlElem.closeTagHtml(self)
return "&nbsp;%s" % HtmlElem.closeTagHtml(self)


class HtmlTableRow(HtmlElem):
Expand Down
16 changes: 8 additions & 8 deletions python/plugins/db_manager/db_plugins/info_model.py
Expand Up @@ -242,8 +242,8 @@ def constraintsDetails(self):
# add table contents
for con in self.table.constraints():
# get the fields the constraint is defined on
cols = [p[1].name if p[1] is not None else u"??? (#%d)" % p[0] for p in iter(list(con.fields().items()))]
tbl.append((con.name, con.type2String(), u'\n'.join(cols)))
cols = [p[1].name if p[1] is not None else "??? (#%d)" % p[0] for p in iter(list(con.fields().items()))]
tbl.append((con.name, con.type2String(), '\n'.join(cols)))

return HtmlTable(tbl, {"class": "header"})

Expand All @@ -261,8 +261,8 @@ def indexesDetails(self):
# add table contents
for idx in self.table.indexes():
# get the fields the index is defined on
cols = [p[1].name if p[1] is not None else u"??? (#%d)" % p[0] for p in iter(list(idx.fields().items()))]
tbl.append((idx.name, u'\n'.join(cols)))
cols = [p[1].name if p[1] is not None else "??? (#%d)" % p[0] for p in iter(list(idx.fields().items()))]
tbl.append((idx.name, '\n'.join(cols)))

return HtmlTable(tbl, {"class": "header"})

Expand All @@ -279,8 +279,8 @@ def triggersDetails(self):

# add table contents
for trig in self.table.triggers():
name = u'%(name)s (<a href="action:trigger/%(name)s/%(action)s">%(action)s</a>)' % {"name": trig.name,
"action": "delete"}
name = '%(name)s (<a href="action:trigger/%(name)s/%(action)s">%(action)s</a>)' % {"name": trig.name,
"action": "delete"}
tbl.append((name, trig.function.replace('<', '&lt;')))

return HtmlTable(tbl, {"class": "header"})
Expand Down Expand Up @@ -385,7 +385,7 @@ def spatialInfo(self):
sr_info = self.table.database().connector.getSpatialRefInfo(srid) if srid != -1 else QApplication.translate(
"DBManagerPlugin", "Undefined")
if sr_info:
tbl.append((QApplication.translate("DBManagerPlugin", "Spatial ref:"), u"%s (%d)" % (sr_info, srid)))
tbl.append((QApplication.translate("DBManagerPlugin", "Spatial ref:"), "%s (%d)" % (sr_info, srid)))

# estimated extent
if not self.table.isView:
Expand Down Expand Up @@ -450,7 +450,7 @@ def spatialInfo(self):
sr_info = self.table.database().connector.getSpatialRefInfo(srid) if srid != -1 else QApplication.translate(
"DBManagerPlugin", "Undefined")
if sr_info:
tbl.append((QApplication.translate("DBManagerPlugin", "Spatial ref:"), u"%s (%d)" % (sr_info, srid)))
tbl.append((QApplication.translate("DBManagerPlugin", "Spatial ref:"), "%s (%d)" % (sr_info, srid)))

# extent
if self.table.extent is not None and self.table.extent[0] is not None:
Expand Down
2 changes: 1 addition & 1 deletion python/plugins/db_manager/db_plugins/oracle/QtSqlDB.py
Expand Up @@ -155,7 +155,7 @@ def fetchone(self):
isinstance(value, QDateTime)):
value = value.toString()
elif isinstance(value, QByteArray):
value = u"GEOMETRY"
value = "GEOMETRY"
# value = value.toHex()

row.append(value)
Expand Down

0 comments on commit 5bd4fbd

Please sign in to comment.