From c55f8b73f0a2c9fdc015d7cbc1ac4fabe36bd23e Mon Sep 17 00:00:00 2001 From: "Juergen E. Fischer" Date: Mon, 21 Mar 2016 04:51:10 +0100 Subject: [PATCH] db_manager: cleanups --- python/plugins/db_manager/db_manager.py | 5 +- .../plugins/db_manager/db_manager_plugin.py | 4 +- python/plugins/db_manager/db_model.py | 6 +- .../plugins/db_manager/db_plugins/__init__.py | 4 +- .../db_manager/db_plugins/connector.py | 6 +- .../db_manager/db_plugins/data_model.py | 10 +-- .../db_manager/db_plugins/oracle/QtSqlDB.py | 2 +- .../db_manager/db_plugins/oracle/connector.py | 26 ++----- .../db_plugins/oracle/info_model.py | 2 +- .../db_manager/db_plugins/oracle/plugin.py | 17 ++--- .../db_plugins/oracle/sql_dictionary.py | 4 +- .../plugins/db_manager/db_plugins/plugin.py | 75 ++++++++++--------- .../db_plugins/postgis/connector.py | 4 +- .../db_plugins/postgis/data_model.py | 1 - .../db_plugins/postgis/info_model.py | 2 +- .../db_manager/db_plugins/postgis/plugin.py | 14 ++-- .../db_plugins/postgis/plugins/__init__.py | 2 +- .../plugins/versioning/dlg_versioning.py | 12 +-- .../db_plugins/postgis/sql_dictionary.py | 4 +- .../db_plugins/spatialite/connector.py | 26 +++---- .../db_plugins/spatialite/plugin.py | 6 +- .../db_plugins/spatialite/sql_dictionary.py | 4 +- .../db_plugins/vlayers/connector.py | 2 +- .../db_plugins/vlayers/info_model.py | 2 +- .../db_manager/db_plugins/vlayers/plugin.py | 2 +- .../db_plugins/vlayers/sql_dictionary.py | 4 +- python/plugins/db_manager/db_tree.py | 12 ++- .../plugins/db_manager/dlg_export_vector.py | 4 +- .../db_manager/dlg_field_properties.py | 1 - .../plugins/db_manager/dlg_import_vector.py | 8 +- .../plugins/db_manager/dlg_query_builder.py | 10 +-- python/plugins/db_manager/dlg_sql_window.py | 12 +-- python/plugins/db_manager/layer_preview.py | 3 +- python/plugins/db_manager/table_viewer.py | 2 +- 34 files changed, 141 insertions(+), 157 deletions(-) diff --git a/python/plugins/db_manager/db_manager.py b/python/plugins/db_manager/db_manager.py index e1412ef1eb1..8a0cb1182f5 100644 --- a/python/plugins/db_manager/db_manager.py +++ b/python/plugins/db_manager/db_manager.py @@ -24,7 +24,7 @@ The content of this file is based on import functools -from PyQt.QtCore import QObject, Qt, QSettings, QByteArray, QSize +from PyQt.QtCore import Qt, QSettings, QByteArray, QSize from PyQt.QtWidgets import QMainWindow, QApplication, QMenu, QTabWidget, QGridLayout, QSpacerItem, QSizePolicy, QDockWidget, QStatusBar, QMenuBar, QToolBar, QTabBar from PyQt.QtGui import QIcon, QKeySequence @@ -214,7 +214,8 @@ class DBManager(QMainWindow): self._registeredDbActions = {} if callback is not None: - invoke_callback = lambda x: self.invokeCallback(callback) + def invoke_callback(x): + return self.invokeCallback(callback) if menuName is None or menuName == "": self.addAction(action) diff --git a/python/plugins/db_manager/db_manager_plugin.py b/python/plugins/db_manager/db_manager_plugin.py index 4491311463c..1d33c9aeae5 100644 --- a/python/plugins/db_manager/db_manager_plugin.py +++ b/python/plugins/db_manager/db_manager_plugin.py @@ -20,11 +20,11 @@ email : brush.tyler@gmail.com ***************************************************************************/ """ -from PyQt.QtCore import Qt, QObject +from PyQt.QtCore import Qt from PyQt.QtWidgets import QAction, QApplication from PyQt.QtGui import QIcon -from . import resources_rc +from . import resources_rc # NOQA class DBManagerPlugin: diff --git a/python/plugins/db_manager/db_model.py b/python/plugins/db_manager/db_model.py index 9db463ad17a..65a6900f078 100644 --- a/python/plugins/db_manager/db_model.py +++ b/python/plugins/db_manager/db_model.py @@ -30,10 +30,10 @@ from .dlg_db_error import DlgDbError from qgis.core import QgsDataSourceURI, QgsVectorLayer, QgsRasterLayer, QgsMimeDataUtils -from . import resources_rc +from . import resources_rc # NOQA try: - from qgis.core import QgsVectorLayerImport + from qgis.core import QgsVectorLayerImport # NOQA isImportVectorAvail = True except: isImportVectorAvail = False @@ -491,7 +491,7 @@ class DBModel(QAbstractItemModel): else: self.notPopulated.emit(index) - except BaseError as e: + except BaseError: item.populated = False return diff --git a/python/plugins/db_manager/db_plugins/__init__.py b/python/plugins/db_manager/db_plugins/__init__.py index 332c1c0a73b..16a8a047cd5 100644 --- a/python/plugins/db_manager/db_plugins/__init__.py +++ b/python/plugins/db_manager/db_plugins/__init__.py @@ -42,12 +42,12 @@ def initDbPluginList(): continue try: - exec (u"from .%s import plugin as mod" % name, globals()) + exec(u"from .%s import plugin as mod" % name, globals()) except ImportError as e: DBPLUGIN_ERRORS.append(u"%s: %s" % (name, unicode(e))) continue - pluginclass = mod.classFactory() + pluginclass = mod.classFactory() # NOQA SUPPORTED_DBTYPES[pluginclass.typeName()] = pluginclass return len(SUPPORTED_DBTYPES) > 0 diff --git a/python/plugins/db_manager/db_plugins/connector.py b/python/plugins/db_manager/db_plugins/connector.py index c346dd8d873..6ed3686a96b 100644 --- a/python/plugins/db_manager/db_plugins/connector.py +++ b/python/plugins/db_manager/db_plugins/connector.py @@ -112,7 +112,7 @@ class DBConnector: if c and not c.closed: c.close() - except self.error_types() as e: + except self.error_types(): pass return @@ -168,9 +168,9 @@ class DBConnector: def _get_cursor_columns(self, c): try: if c.description: - return map(lambda x: x[0], c.description) + return [x[0] for x in c.description] - except self.connection_error_types() + self.execution_error_types() as e: + except self.connection_error_types() + self.execution_error_types(): return [] @classmethod diff --git a/python/plugins/db_manager/db_plugins/data_model.py b/python/plugins/db_manager/db_plugins/data_model.py index 5f2316ea010..ba1d6fa4a6c 100644 --- a/python/plugins/db_manager/db_plugins/data_model.py +++ b/python/plugins/db_manager/db_plugins/data_model.py @@ -78,9 +78,9 @@ class BaseTableModel(QAbstractTableModel): # too much data to display, elide the string val = val[:300] try: - return unicode(val) # convert to unicode + return unicode(val) # convert to unicode except UnicodeDecodeError: - return unicode(val, 'utf-8', 'replace') # convert from utf8 and replace errors (if any) + return unicode(val, 'utf-8', 'replace') # convert from utf8 and replace errors (if any) def headerData(self, section, orientation, role): if role != Qt.DisplayRole: @@ -100,7 +100,7 @@ class TableDataModel(BaseTableModel): self.db = table.database().connector self.table = table - fieldNames = map(lambda x: x.name, table.fields()) + fieldNames = [x.name for x in table.fields()] BaseTableModel.__init__(self, fieldNames, None, parent) # get table fields @@ -267,7 +267,7 @@ class TableConstraintsModel(SimpleTableModel): QApplication.translate("DBManagerPlugin", 'Column(s)')], editable, parent) def append(self, constr): - field_names = map(lambda k_v: unicode(k_v[1].name), iter(constr.fields().items())) + field_names = [unicode(k_v[1].name) for k_v in iter(list(constr.fields().items()))] data = [constr.name, constr.type2String(), u", ".join(field_names)] self.appendRow(self.rowFromData(data)) row = self.rowCount() - 1 @@ -303,7 +303,7 @@ class TableIndexesModel(SimpleTableModel): QApplication.translate("DBManagerPlugin", 'Column(s)')], editable, parent) def append(self, idx): - field_names = map(lambda k_v1: unicode(k_v1[1].name), iter(idx.fields().items())) + field_names = [unicode(k_v1[1].name) for k_v1 in iter(list(idx.fields().items()))] data = [idx.name, u", ".join(field_names)] self.appendRow(self.rowFromData(data)) row = self.rowCount() - 1 diff --git a/python/plugins/db_manager/db_plugins/oracle/QtSqlDB.py b/python/plugins/db_manager/db_plugins/oracle/QtSqlDB.py index a0b983fae97..91cbabd0f2a 100644 --- a/python/plugins/db_manager/db_plugins/oracle/QtSqlDB.py +++ b/python/plugins/db_manager/db_plugins/oracle/QtSqlDB.py @@ -21,7 +21,7 @@ email : jef at norbit dot de """ from PyQt.QtCore import QVariant, QDate, QTime, QDateTime, QByteArray -from PyQt4.QtSql import QSqlDatabase, QSqlQuery, QSqlField +from PyQt.QtSql import QSqlDatabase, QSqlQuery, QSqlField paramstyle = "qmark" threadsafety = 1 diff --git a/python/plugins/db_manager/db_plugins/oracle/connector.py b/python/plugins/db_manager/db_plugins/oracle/connector.py index c8350601f0a..425ec8026e7 100644 --- a/python/plugins/db_manager/db_plugins/oracle/connector.py +++ b/python/plugins/db_manager/db_plugins/oracle/connector.py @@ -24,7 +24,7 @@ The content of this file is based on """ from PyQt.QtCore import QPyNullVariant -from PyQt4.QtSql import QSqlDatabase +from PyQt.QtSql import QSqlDatabase from ..connector import DBConnector from ..plugin import ConnectionError, DbError, Table @@ -101,8 +101,7 @@ class OracleDBConnector(DBConnector): if (os.path.isfile(sqlite_cache_file)): try: self.cache_connection = sqlite3.connect(sqlite_cache_file) - except sqlite3.Error as e: - + except sqlite3.Error: self.cache_connection = False # Find if there is cache for our connection: @@ -117,7 +116,7 @@ class OracleDBConnector(DBConnector): if not has_cached: self.cache_connection = False - except sqlite3.Error as e: + except sqlite3.Error: self.cache_connection = False self._checkSpatial() @@ -766,7 +765,7 @@ class OracleDBConnector(DBConnector): try: c = self._execute(None, query) - except DbError as e: # handle error views or other problems + except DbError: # handle error views or other problems return [QGis.WKBUnknown], [-1] rows = self._fetchall(c) @@ -1071,7 +1070,7 @@ class OracleDBConnector(DBConnector): try: c = self._execute(None, sql) - except DbError as e: # no spatial index on table, try aggregation + except DbError: # no spatial index on table, try aggregation return None res = self._fetchone(c) @@ -1106,7 +1105,7 @@ class OracleDBConnector(DBConnector): sql = request.format(where, dimension) try: c = self._execute(None, sql) - except DbError as e: # no statistics for the current table + except DbError: # no statistics for the current table return None res_d = self._fetchone(c) @@ -1160,7 +1159,7 @@ class OracleDBConnector(DBConnector): None, (u"SELECT CS_NAME FROM MDSYS.CS_SRS WHERE" u" SRID = {}".format(srid))) - except DbError as e: + except DbError: return sr = self._fetchone(c) c.close() @@ -1212,8 +1211,6 @@ class OracleDBConnector(DBConnector): """Delete table and its reference in sdo_geom_metadata.""" schema, tablename = self.getSchemaTableName(table) - schema_part = u"AND owner = {} ".format( - self.quoteString(schema)) if schema else "" if self.isVectorTable(table): self.deleteMetadata(table) @@ -1283,8 +1280,6 @@ class OracleDBConnector(DBConnector): def deleteView(self, view): """Delete a view.""" schema, tablename = self.getSchemaTableName(view) - schema_part = u"AND owner = {} ".format( - self.quoteString(schema)) if schema else "" if self.isVectorTable(view): self.deleteMetadata(view) @@ -1645,7 +1640,7 @@ class OracleDBConnector(DBConnector): if c: c.close() - except self.error_types() as e: + except self.error_types(): pass return @@ -1682,11 +1677,6 @@ class OracleDBConnector(DBConnector): # def _get_cursor_columns(self, c): # pass - def getQueryBuilderDictionary(self): - from .sql_dictionary import getQueryBuilderDictionary - - return getQueryBuilderDictionary() - def getSqlDictionary(self): """Returns the dictionary for SQL dialog.""" from .sql_dictionary import getSqlDictionary diff --git a/python/plugins/db_manager/db_plugins/oracle/info_model.py b/python/plugins/db_manager/db_plugins/oracle/info_model.py index ca7c286193d..8008cefbd39 100644 --- a/python/plugins/db_manager/db_plugins/oracle/info_model.py +++ b/python/plugins/db_manager/db_plugins/oracle/info_model.py @@ -219,7 +219,7 @@ class ORTableInfo(TableInfo): # primary key defined? if (not self.table.isView and self.table.objectType != u"MATERIALIZED VIEW"): - pk = filter(lambda fld: fld.primaryKey, self.table.fields()) + pk = [fld for fld in self.table.fields() if fld.primaryKey] if len(pk) <= 0: ret.append( HtmlParagraph(QApplication.translate( diff --git a/python/plugins/db_manager/db_plugins/oracle/plugin.py b/python/plugins/db_manager/db_plugins/oracle/plugin.py index 312b7ed031b..b0e3a869d65 100644 --- a/python/plugins/db_manager/db_plugins/oracle/plugin.py +++ b/python/plugins/db_manager/db_plugins/oracle/plugin.py @@ -38,7 +38,7 @@ from ..plugin import ConnectionError, InvalidDataException, DBPlugin, \ from qgis.core import QgsCredentials -from . import resources_rc +from . import resources_rc # NOQA def classFactory(): @@ -91,12 +91,7 @@ class OracleDBPlugin(DBPlugin): uri = QgsDataSourceURI() settingsList = ["host", "port", "database", "username", "password"] - host, port, database, username, password = map( - lambda x: settings.value(x, "", type=str), settingsList) - - # qgis1.5 use 'savePassword' instead of 'save' setting - savedPassword = settings.value("save", False, type=bool) or \ - settings.value("savePassword", False, type=bool) + host, port, database, username, password = [settings.value(x, "", type=str) for x in settingsList] # get all of the connexion options @@ -348,14 +343,14 @@ class ORTable(Table): QApplication.setOverrideCursor(Qt.WaitCursor) if index_action == "rebuild": - self.emitAboutToChange() + self.aboutToChange.emit() self.database().connector.rebuildTableIndex( (self.schemaName(), self.name), index_name) self.refreshIndexes() return True elif action.startswith(u"mview/"): if action == "mview/refresh": - self.emitAboutToChange() + self.aboutToChange.emit() self.database().connector.refreshMView( (self.schemaName(), self.name)) return True @@ -391,7 +386,7 @@ class ORTable(Table): ret = [] # add the pk - pkcols = filter(lambda x: x.primaryKey, self.fields()) + pkcols = [x for x in self.fields() if x.primaryKey] if len(pkcols) == 1: ret.append(pkcols[0]) @@ -452,7 +447,7 @@ class ORVectorTable(ORTable, VectorTable): def runAction(self, action): if action.startswith("extent/"): if action == "extent/update": - self.emitAboutToChange() + self.aboutToChange.emit() self.updateExtent() return True diff --git a/python/plugins/db_manager/db_plugins/oracle/sql_dictionary.py b/python/plugins/db_manager/db_plugins/oracle/sql_dictionary.py index b0504cc04b9..488f2768bf2 100644 --- a/python/plugins/db_manager/db_plugins/oracle/sql_dictionary.py +++ b/python/plugins/db_manager/db_plugins/oracle/sql_dictionary.py @@ -289,10 +289,10 @@ def getSqlDictionary(spatial=True): def getQueryBuilderDictionary(): # concat functions def ff(l): - return filter(lambda s: s[0] != '*', l) + return [s for s in l if s[0] != '*'] def add_paren(l): - return map(lambda s: s + "(", l) + return [s + "(" for s in l] foo = sorted( add_paren( diff --git a/python/plugins/db_manager/db_plugins/plugin.py b/python/plugins/db_manager/db_plugins/plugin.py index 8362247155c..19ded9a0193 100644 --- a/python/plugins/db_manager/db_plugins/plugin.py +++ b/python/plugins/db_manager/db_plugins/plugin.py @@ -39,7 +39,7 @@ class BaseError(Exception): msg = e if not isinstance(msg, unicode): - msg = unicode(msg, 'utf-8', 'replace') # convert from utf8 and replace errors (if any) + msg = unicode(msg, 'utf-8', 'replace') # convert from utf8 and replace errors (if any) self.msg = msg Exception.__init__(self, msg) @@ -198,9 +198,6 @@ class DbItemObject(QObject): def refresh(self): self.changed.emit() # refresh the item data reading them from the db - def emitAboutToChange(self): - self.aboutToChange.emit() - def info(self): pass @@ -240,7 +237,7 @@ class Database(DbItemObject): return self.connector.publicUri() def delete(self): - self.emitAboutToChange() + self.aboutToChange.emit() ret = self.connection().remove() if ret is not False: self.deleted.emit() @@ -300,7 +297,7 @@ class Database(DbItemObject): except ImportError: pass else: - load(self, mainWindow) + load(self, mainWindow) # NOQA def registerDatabaseActions(self, mainWindow): action = QAction(QApplication.translate("DBManagerPlugin", "&Re-connect"), self) @@ -337,7 +334,10 @@ class Database(DbItemObject): if self.schemas() is not None: action = QAction(QApplication.translate("DBManagerPlugin", "&Move to schema"), self) action.setMenu(QMenu(mainWindow)) - invoke_callback = lambda: mainWindow.invokeCallback(self.prepareMenuMoveTableToSchemaActionSlot) + + def invoke_callback(): + return mainWindow.invokeCallback(self.prepareMenuMoveTableToSchemaActionSlot) + action.menu().aboutToShow.connect(invoke_callback) mainWindow.registerAction(action, QApplication.translate("DBManagerPlugin", "&Table")) @@ -399,7 +399,7 @@ class Database(DbItemObject): def schemas(self): schemas = self.connector.getSchemas() if schemas is not None: - schemas = map(lambda x: self.schemasFactory(x, self), schemas) + schemas = [self.schemasFactory(x, self) for x in schemas] return schemas def createSchema(self, name): @@ -470,7 +470,8 @@ class Database(DbItemObject): def prepareMenuMoveTableToSchemaActionSlot(self, item, menu, mainWindow): """ populate menu with schemas """ - slot = lambda x: lambda: mainWindow.invokeCallback(self.moveTableToSchemaActionSlot, x) + def slot(x): + return lambda: mainWindow.invokeCallback(self.moveTableToSchemaActionSlot, x) menu.clear() for schema in self.schemas(): @@ -508,12 +509,12 @@ class Database(DbItemObject): def tables(self, schema=None, sys_tables=False): tables = self.connector.getTables(schema.name if schema else None, sys_tables) if tables is not None: - tables = map(lambda x: self.tablesFactory(x, self, schema), tables) + tables = [self.tablesFactory(x, self, schema) for x in tables] return tables def createTable(self, table, fields, schema=None): - field_defs = map(lambda x: x.definition(), fields) - pkeys = filter(lambda x: x.primaryKey, fields) + field_defs = [x.definition() for x in fields] + pkeys = [x for x in fields if x.primaryKey] pk_name = pkeys[0].name if len(pkeys) > 0 else None ret = self.connector.createTable((schema, table), field_defs, pk_name) @@ -571,14 +572,14 @@ class Schema(DbItemObject): return self.database().tables(self) def delete(self): - self.emitAboutToChange() + self.aboutToChange.emit() ret = self.database().connector.deleteSchema(self.name) if ret is not False: self.deleted.emit() return ret def rename(self, new_name): - self.emitAboutToChange() + self.aboutToChange.emit() ret = self.database().connector.renameSchema(self.name, new_name) if ret is not False: self.name = new_name @@ -626,7 +627,7 @@ class Table(DbItemObject): return self.database().connector.quoteId((self.schemaName(), self.name)) def delete(self): - self.emitAboutToChange() + self.aboutToChange.emit() if self.isView: ret = self.database().connector.deleteView((self.schemaName(), self.name)) else: @@ -636,7 +637,7 @@ class Table(DbItemObject): return ret def rename(self, new_name): - self.emitAboutToChange() + self.aboutToChange.emit() ret = self.database().connector.renameTable((self.schemaName(), self.name), new_name) if ret is not False: self.name = new_name @@ -644,14 +645,14 @@ class Table(DbItemObject): return ret def empty(self): - self.emitAboutToChange() + self.aboutToChange.emit() ret = self.database().connector.emptyTable((self.schemaName(), self.name)) if ret is not False: self.refreshRowCount() return ret def moveToSchema(self, schema): - self.emitAboutToChange() + self.aboutToChange.emit() if self.schema() == schema: return True ret = self.database().connector.moveTableToSchema((self.schemaName(), self.name), schema.name) @@ -694,7 +695,7 @@ class Table(DbItemObject): ret = [] # add the pk - pkcols = filter(lambda x: x.primaryKey, self.fields()) + pkcols = [x for x in self.fields() if x.primaryKey] if len(pkcols) == 1: ret.append(pkcols[0]) @@ -726,7 +727,7 @@ class Table(DbItemObject): if self._fields is None: fields = self.database().connector.getTableFields((self.schemaName(), self.name)) if fields is not None: - self._fields = map(lambda x: self.tableFieldsFactory(x, self), fields) + self._fields = [self.tableFieldsFactory(x, self) for x in fields] return self._fields def refreshFields(self): @@ -734,14 +735,14 @@ class Table(DbItemObject): self.refresh() def addField(self, fld): - self.emitAboutToChange() + self.aboutToChange.emit() ret = self.database().connector.addTableColumn((self.schemaName(), self.name), fld.definition()) if ret is not False: self.refreshFields() return ret def deleteField(self, fld): - self.emitAboutToChange() + self.aboutToChange.emit() ret = self.database().connector.deleteTableColumn((self.schemaName(), self.name), fld.name) if ret is not False: self.refreshFields() @@ -750,7 +751,7 @@ class Table(DbItemObject): return ret def addGeometryColumn(self, geomCol, geomType, srid, dim, createSpatialIndex=False): - self.emitAboutToChange() + self.aboutToChange.emit() ret = self.database().connector.addGeometryColumn((self.schemaName(), self.name), geomCol, geomType, srid, dim) if not ret: return False @@ -772,7 +773,7 @@ class Table(DbItemObject): if self._constraints is None: constraints = self.database().connector.getTableConstraints((self.schemaName(), self.name)) if constraints is not None: - self._constraints = map(lambda x: self.tableConstraintsFactory(x, self), constraints) + self._constraints = [self.tableConstraintsFactory(x, self) for x in constraints] return self._constraints def refreshConstraints(self): @@ -780,7 +781,7 @@ class Table(DbItemObject): self.refresh() def addConstraint(self, constr): - self.emitAboutToChange() + self.aboutToChange.emit() if constr.type == TableConstraint.TypePrimaryKey: ret = self.database().connector.addTablePrimaryKey((self.schemaName(), self.name), constr.fields()[constr.columns[0]].name) @@ -794,7 +795,7 @@ class Table(DbItemObject): return ret def deleteConstraint(self, constr): - self.emitAboutToChange() + self.aboutToChange.emit() ret = self.database().connector.deleteTableConstraint((self.schemaName(), self.name), constr.name) if ret is not False: self.refreshConstraints() @@ -807,7 +808,7 @@ class Table(DbItemObject): if self._indexes is None: indexes = self.database().connector.getTableIndexes((self.schemaName(), self.name)) if indexes is not None: - self._indexes = map(lambda x: self.tableIndexesFactory(x, self), indexes) + self._indexes = [self.tableIndexesFactory(x, self) for x in indexes] return self._indexes def refreshIndexes(self): @@ -815,7 +816,7 @@ class Table(DbItemObject): self.refresh() def addIndex(self, idx): - self.emitAboutToChange() + self.aboutToChange.emit() ret = self.database().connector.createTableIndex((self.schemaName(), self.name), idx.name, idx.fields()[idx.columns[0]].name) if ret is not False: @@ -823,7 +824,7 @@ class Table(DbItemObject): return ret def deleteIndex(self, idx): - self.emitAboutToChange() + self.aboutToChange.emit() ret = self.database().connector.deleteTableIndex((self.schemaName(), self.name), idx.name) if ret is not False: self.refreshIndexes() @@ -836,7 +837,7 @@ class Table(DbItemObject): if self._triggers is None: triggers = self.database().connector.getTableTriggers((self.schemaName(), self.name)) if triggers is not None: - self._triggers = map(lambda x: self.tableTriggersFactory(x, self), triggers) + self._triggers = [self.tableTriggersFactory(x, self) for x in triggers] return self._triggers def refreshTriggers(self): @@ -850,7 +851,7 @@ class Table(DbItemObject): if self._rules is None: rules = self.database().connector.getTableRules((self.schemaName(), self.name)) if rules is not None: - self._rules = map(lambda x: self.tableRulesFactory(x, self), rules) + self._rules = [self.tableRulesFactory(x, self) for x in rules] return self._rules def refreshRules(self): @@ -858,7 +859,7 @@ class Table(DbItemObject): self.refresh() def refreshRowCount(self): - self.emitAboutToChange() + self.aboutToChange.emit() prevRowCount = self.rowCount try: self.rowCount = self.database().connector.getTableRowCount((self.schemaName(), self.name)) @@ -891,7 +892,7 @@ class Table(DbItemObject): if trigger_action == "enable" or trigger_action == "disable": enable = trigger_action == "enable" - self.emitAboutToChange() + self.aboutToChange.emit() self.database().connector.enableAllTableTriggers(enable, (self.schemaName(), self.name)) self.refreshTriggers() return True @@ -912,14 +913,14 @@ class Table(DbItemObject): QApplication.setOverrideCursor(Qt.WaitCursor) if trigger_action == "delete": - self.emitAboutToChange() + self.aboutToChange.emit() self.database().connector.deleteTableTrigger(trigger_name, (self.schemaName(), self.name)) self.refreshTriggers() return True elif trigger_action == "enable" or trigger_action == "disable": enable = trigger_action == "enable" - self.emitAboutToChange() + self.aboutToChange.emit() self.database().connector.enableTableTrigger(trigger_name, enable, (self.schemaName(), self.name)) self.refreshTriggers() return True @@ -956,7 +957,7 @@ class VectorTable(Table): return False def createSpatialIndex(self, geom_column=None): - self.emitAboutToChange() + self.aboutToChange.emit() geom_column = geom_column if geom_column is not None else self.geomColumn ret = self.database().connector.createSpatialIndex((self.schemaName(), self.name), geom_column) if ret is not False: @@ -964,7 +965,7 @@ class VectorTable(Table): return ret def deleteSpatialIndex(self, geom_column=None): - self.emitAboutToChange() + self.aboutToChange.emit() geom_column = geom_column if geom_column is not None else self.geomColumn ret = self.database().connector.deleteSpatialIndex((self.schemaName(), self.name), geom_column) if ret is not False: diff --git a/python/plugins/db_manager/db_plugins/postgis/connector.py b/python/plugins/db_manager/db_plugins/postgis/connector.py index 2fb5c9b8685..74d15711f8a 100644 --- a/python/plugins/db_manager/db_plugins/postgis/connector.py +++ b/python/plugins/db_manager/db_plugins/postgis/connector.py @@ -612,7 +612,7 @@ class PostGisDBConnector(DBConnector): try: c = self._execute(None, sql) - except DbError as e: # no statistics for the current table + except DbError: # No statistics for the current table return res = self._fetchone(c) self._close_cursor(c) @@ -640,7 +640,7 @@ class PostGisDBConnector(DBConnector): try: c = self._execute(None, "SELECT srtext FROM spatial_ref_sys WHERE srid = '%d'" % srid) - except DbError as e: + except DbError: return sr = self._fetchone(c) self._close_cursor(c) diff --git a/python/plugins/db_manager/db_plugins/postgis/data_model.py b/python/plugins/db_manager/db_plugins/postgis/data_model.py index c688019c083..73a07638c0d 100644 --- a/python/plugins/db_manager/db_plugins/postgis/data_model.py +++ b/python/plugins/db_manager/db_plugins/postgis/data_model.py @@ -20,7 +20,6 @@ email : brush.tyler@gmail.com ***************************************************************************/ """ -from PyQt4.QtCore import SIGNAL from ..data_model import TableDataModel, SqlResultModel diff --git a/python/plugins/db_manager/db_plugins/postgis/info_model.py b/python/plugins/db_manager/db_plugins/postgis/info_model.py index c64d6cacdab..bce445c7b16 100644 --- a/python/plugins/db_manager/db_plugins/postgis/info_model.py +++ b/python/plugins/db_manager/db_plugins/postgis/info_model.py @@ -106,7 +106,7 @@ class PGTableInfo(TableInfo): # primary key defined? if not self.table.isView: - if len(filter(lambda fld: fld.primaryKey, self.table.fields())) <= 0: + if len([fld for fld in self.table.fields() if fld.primaryKey]) <= 0: ret.append(HtmlParagraph( QApplication.translate("DBManagerPlugin", " No primary key defined for this table!"))) diff --git a/python/plugins/db_manager/db_plugins/postgis/plugin.py b/python/plugins/db_manager/db_plugins/postgis/plugin.py index 1c008d23f7f..cb4d79df3cf 100644 --- a/python/plugins/db_manager/db_plugins/postgis/plugin.py +++ b/python/plugins/db_manager/db_plugins/postgis/plugin.py @@ -33,7 +33,7 @@ from ..plugin import ConnectionError, InvalidDataException, DBPlugin, Database, import re -from . import resources_rc +from . import resources_rc # NOQA def classFactory(): @@ -78,7 +78,7 @@ class PostGisDBPlugin(DBPlugin): uri = QgsDataSourceURI() settingsList = ["service", "host", "port", "database", "username", "password", "authcfg"] - service, host, port, database, username, password, authcfg = map(lambda x: settings.value(x, "", type=str), settingsList) + service, host, port, database, username, password, authcfg = [settings.value(x, "", type=str) for x in settingsList] useEstimatedMetadata = settings.value("estimatedMetadata", False, type=bool) sslmode = settings.value("sslmode", QgsDataSourceURI.SSLprefer, type=int) @@ -94,7 +94,7 @@ class PostGisDBPlugin(DBPlugin): try: return self.connectToUri(uri) - except ConnectionError as e: + except ConnectionError: return False @@ -163,7 +163,7 @@ class PGTable(Table): self.estimatedRowCount = int(self.estimatedRowCount) def runVacuumAnalyze(self): - self.emitAboutToChange() + self.aboutToChange.emit() self.database().connector.runVacuumAnalyze((self.schemaName(), self.name)) # TODO: change only this item, not re-create all the tables in the schema/database self.schema().refresh() if self.schema() else self.database().refresh() @@ -193,7 +193,7 @@ class PGTable(Table): QApplication.setOverrideCursor(Qt.WaitCursor) if rule_action == "delete": - self.emitAboutToChange() + self.aboutToChange.emit() self.database().connector.deleteTableRule(rule_name, (self.schemaName(), self.name)) self.refreshRules() return True @@ -226,12 +226,12 @@ class PGTable(Table): return PGTableDataModel(self, parent) def delete(self): - self.emitAboutToChange() + self.aboutToChange.emit() if self.isView: ret = self.database().connector.deleteView((self.schemaName(), self.name), self._relationType == 'm') else: ret = self.database().connector.deleteTable((self.schemaName(), self.name)) - if ret is not False: + if not ret: self.deleted.emit() return ret diff --git a/python/plugins/db_manager/db_plugins/postgis/plugins/__init__.py b/python/plugins/db_manager/db_plugins/postgis/plugins/__init__.py index 67e744ea9f6..c20859edc3d 100644 --- a/python/plugins/db_manager/db_plugins/postgis/plugins/__init__.py +++ b/python/plugins/db_manager/db_plugins/postgis/plugins/__init__.py @@ -31,7 +31,7 @@ def load(dbplugin, mainwindow): continue try: exec (u"from .%s import load" % name) - except ImportError as e: + except ImportError: continue load(dbplugin, mainwindow) diff --git a/python/plugins/db_manager/db_plugins/postgis/plugins/versioning/dlg_versioning.py b/python/plugins/db_manager/db_plugins/postgis/plugins/versioning/dlg_versioning.py index f7cad7db1f7..14079f69d64 100644 --- a/python/plugins/db_manager/db_plugins/postgis/plugins/versioning/dlg_versioning.py +++ b/python/plugins/db_manager/db_plugins/postgis/plugins/versioning/dlg_versioning.py @@ -86,7 +86,7 @@ class DlgVersioning(QDialog, Ui_DlgVersioning): schemas = self.db.schemas() if schemas is not None: schema_name = self.cboSchema.currentText() - matching_schemas = filter(lambda x: x.name == schema_name, schemas) + matching_schemas = [x for x in schemas if x.name == schema_name] tables = matching_schemas[0].tables() if len(matching_schemas) > 0 else [] else: tables = self.db.tables() @@ -115,13 +115,13 @@ class DlgVersioning(QDialog, Ui_DlgVersioning): self.colStart = self.db.connector.quoteId(self.editStart.text()) self.colEnd = self.db.connector.quoteId(self.editEnd.text()) - self.columns = map(lambda x: self.db.connector.quoteId(x.name), self.table.fields()) + self.columns = [self.db.connector.quoteId(x.name) for x in self.table.fields()] self.colOrigPkey = None for constr in self.table.constraints(): if constr.type == constr.TypePrimaryKey: self.origPkeyName = self.db.connector.quoteId(constr.name) - self.colOrigPkey = map(lambda x_y: self.db.connector.quoteId(x_y[1].name), iter(constr.fields().items())) + self.colOrigPkey = [self.db.connector.quoteId(x_y[1].name) for x_y in iter(list(constr.fields().items()))] break if self.colOrigPkey is None: @@ -188,7 +188,7 @@ class DlgVersioning(QDialog, Ui_DlgVersioning): def sql_functions(self): cols = ",".join(self.columns) - old_cols = ",".join(map(lambda x: u"OLD." + x, self.columns)) + old_cols = ",".join([u"OLD." + x for x in self.columns]) sql = u""" CREATE OR REPLACE FUNCTION %(func_at_time)s(timestamp) @@ -247,8 +247,8 @@ FOR EACH ROW EXECUTE PROCEDURE %(func_insert)s();""" % \ def sql_updatesView(self): cols = ",".join(self.columns) - new_cols = ",".join(map(lambda x: u"NEW." + x, self.columns)) - assign_cols = ",".join(map(lambda x: u"%s = NEW.%s" % (x, x), self.columns)) + new_cols = ",".join([u"NEW." + x for x in self.columns]) + assign_cols = ",".join([u"%s = NEW.%s" % (x, x) for x in self.columns]) return u""" CREATE OR REPLACE RULE "_DELETE" AS ON DELETE TO %(view)s DO INSTEAD diff --git a/python/plugins/db_manager/db_plugins/postgis/sql_dictionary.py b/python/plugins/db_manager/db_plugins/postgis/sql_dictionary.py index a4e4796151d..2b0548625ec 100644 --- a/python/plugins/db_manager/db_plugins/postgis/sql_dictionary.py +++ b/python/plugins/db_manager/db_plugins/postgis/sql_dictionary.py @@ -202,10 +202,10 @@ def getSqlDictionary(spatial=True): def getQueryBuilderDictionary(): # concat functions def ff(l): - return filter(lambda s: s[0] != '*', l) + return [s for s in l if s[0] != '*'] def add_paren(l): - return map(lambda s: s + "(", l) + return [s + "(" for s in l] foo = sorted(add_paren(ff(list(set.union(set(functions), set(postgis_functions)))))) m = sorted(add_paren(ff(math_functions))) agg = sorted(add_paren(ff(aggregate_functions))) diff --git a/python/plugins/db_manager/db_plugins/spatialite/connector.py b/python/plugins/db_manager/db_plugins/spatialite/connector.py index bfcd666ed37..4f5555a790b 100644 --- a/python/plugins/db_manager/db_plugins/spatialite/connector.py +++ b/python/plugins/db_manager/db_plugins/spatialite/connector.py @@ -61,7 +61,7 @@ class SpatiaLiteDBConnector(DBConnector): return False try: conn = sqlite.connect(path) - except self.connection_error_types() as e: + except self.connection_error_types(): return False conn.close() return True @@ -88,7 +88,7 @@ class SpatiaLiteDBConnector(DBConnector): v = c.fetchone()[0] self.has_geometry_columns = v == 1 or v == 3 self.has_spatialite4 = v == 3 - except Exception as e: + except Exception: self.has_geometry_columns = False self.has_spatialite4 = False @@ -108,7 +108,7 @@ class SpatiaLiteDBConnector(DBConnector): result = self._execute(None, sql).fetchone()[0] == 1 except ConnectionError: result = False - except Exception as e: + except Exception: # SpatiaLite < 4.2 does not have HasGeoPackage() function result = False @@ -325,7 +325,7 @@ class SpatiaLiteDBConnector(DBConnector): """ if self.is_gpkg: - return [] # Not implemented + return [] # Not implemented if not self.has_geometry_columns: return [] if not self.has_raster: @@ -488,7 +488,7 @@ class SpatiaLiteDBConnector(DBConnector): if self.isRasterTable(table): return False if self.is_gpkg: - return False # Not implemented + return False # Not implemented c = self._get_cursor() sql = u"DROP TABLE %s" % self.quoteId(table) @@ -503,7 +503,7 @@ class SpatiaLiteDBConnector(DBConnector): if self.isRasterTable(table): return False if self.is_gpkg: - return False # Not implemented + return False # Not implemented sql = u"DELETE FROM %s" % self.quoteId(table) self._execute_and_commit(sql) @@ -517,7 +517,7 @@ class SpatiaLiteDBConnector(DBConnector): if self.isRasterTable(table): return False if self.is_gpkg: - return False # Not implemented + return False # Not implemented c = self._get_cursor() @@ -558,7 +558,7 @@ class SpatiaLiteDBConnector(DBConnector): def createSpatialView(self, view, query): if self.is_gpkg: - return False # Not implemented + return False # Not implemented self.createView(view, query) # get type info about the view @@ -639,7 +639,7 @@ class SpatiaLiteDBConnector(DBConnector): def isGeometryColumn(self, table, column): if self.is_gpkg: - return False # Not implemented + return False # Not implemented c = self._get_cursor() schema, tablename = self.getSchemaTableName(table) @@ -650,7 +650,7 @@ class SpatiaLiteDBConnector(DBConnector): def addGeometryColumn(self, table, geom_column='geometry', geom_type='POINT', srid=-1, dim=2): if self.is_gpkg: - return False # Not implemented + return False # Not implemented schema, tablename = self.getSchemaTableName(table) sql = u"SELECT AddGeometryColumn(%s, %s, %d, %s, %s)" % ( @@ -689,7 +689,7 @@ class SpatiaLiteDBConnector(DBConnector): if self.isRasterTable(table): return False if self.is_gpkg: - return False # Not implemented + return False # Not implemented schema, tablename = self.getSchemaTableName(table) sql = u"SELECT CreateSpatialIndex(%s, %s)" % (self.quoteString(tablename), self.quoteString(geom_column)) @@ -699,7 +699,7 @@ class SpatiaLiteDBConnector(DBConnector): if self.isRasterTable(table): return False if self.is_gpkg: - return False # Not implemented + return False # Not implemented schema, tablename = self.getSchemaTableName(table) try: @@ -714,7 +714,7 @@ class SpatiaLiteDBConnector(DBConnector): def hasSpatialIndex(self, table, geom_column='geometry'): if self.is_gpkg: - return False # Not implemented + return False # Not implemented if not self.has_geometry_columns or self.isRasterTable(table): return False c = self._get_cursor() diff --git a/python/plugins/db_manager/db_plugins/spatialite/plugin.py b/python/plugins/db_manager/db_plugins/spatialite/plugin.py index 3836cb02af8..8ede6ccdb4f 100644 --- a/python/plugins/db_manager/db_plugins/spatialite/plugin.py +++ b/python/plugins/db_manager/db_plugins/spatialite/plugin.py @@ -32,7 +32,7 @@ from qgis.gui import QgsMessageBar from ..plugin import DBPlugin, Database, Table, VectorTable, RasterTable, TableField, TableIndex, TableTrigger, \ InvalidDataException -from . import resources_rc +from . import resources_rc # NOQA def classFactory(): @@ -236,14 +236,14 @@ class SLVectorTable(SLTable, VectorTable): return self.database().connector.hasSpatialIndex((self.schemaName(), self.name), geom_column) def createSpatialIndex(self, geom_column=None): - self.emitAboutToChange() + self.aboutToChange.emit() ret = VectorTable.createSpatialIndex(self, geom_column) if ret is not False: self.database().refresh() return ret def deleteSpatialIndex(self, geom_column=None): - self.emitAboutToChange() + self.aboutToChange.emit() ret = VectorTable.deleteSpatialIndex(self, geom_column) if ret is not False: self.database().refresh() diff --git a/python/plugins/db_manager/db_plugins/spatialite/sql_dictionary.py b/python/plugins/db_manager/db_plugins/spatialite/sql_dictionary.py index 79c3c6a9ed4..bd2b9b01262 100644 --- a/python/plugins/db_manager/db_plugins/spatialite/sql_dictionary.py +++ b/python/plugins/db_manager/db_plugins/spatialite/sql_dictionary.py @@ -147,10 +147,10 @@ def getSqlDictionary(spatial=True): def getQueryBuilderDictionary(): # concat functions def ff(l): - return filter(lambda s: s[0] != '*', l) + return [s for s in l if s[0] != '*'] def add_paren(l): - return map(lambda s: s + "(", l) + return [s + "(" for s in l] foo = sorted(add_paren(ff(list(set.union(set(functions), set(spatialite_functions)))))) m = sorted(add_paren(ff(math_functions))) agg = sorted(add_paren(ff(aggregate_functions))) diff --git a/python/plugins/db_manager/db_plugins/vlayers/connector.py b/python/plugins/db_manager/db_plugins/vlayers/connector.py index c306050c1f7..4ffc3a2935c 100644 --- a/python/plugins/db_manager/db_plugins/vlayers/connector.py +++ b/python/plugins/db_manager/db_plugins/vlayers/connector.py @@ -64,7 +64,7 @@ class VLayerRegistry: @classmethod def instance(cls): - if cls._instance == None: + if cls._instance is None: cls._instance = VLayerRegistry() return cls._instance diff --git a/python/plugins/db_manager/db_plugins/vlayers/info_model.py b/python/plugins/db_manager/db_plugins/vlayers/info_model.py index 2f1b803e1bc..f079fd61604 100644 --- a/python/plugins/db_manager/db_plugins/vlayers/info_model.py +++ b/python/plugins/db_manager/db_plugins/vlayers/info_model.py @@ -36,7 +36,7 @@ class LDatabaseInfo(DatabaseInfo): return HtmlTable(tbl) def generalInfo(self): - info = self.db.connector.getInfo() + self.db.connector.getInfo() tbl = [ (QApplication.translate("DBManagerPlugin", "SQLite version:"), "3") ] diff --git a/python/plugins/db_manager/db_plugins/vlayers/plugin.py b/python/plugins/db_manager/db_plugins/vlayers/plugin.py index 0b6871d153c..3499cf81eeb 100644 --- a/python/plugins/db_manager/db_plugins/vlayers/plugin.py +++ b/python/plugins/db_manager/db_plugins/vlayers/plugin.py @@ -28,7 +28,7 @@ from qgis.core import QgsVectorLayer, QgsMapLayerRegistry from ..plugin import DBPlugin, Database, Table, VectorTable, TableField -from . import resources_rc +from . import resources_rc # NOQA def classFactory(): diff --git a/python/plugins/db_manager/db_plugins/vlayers/sql_dictionary.py b/python/plugins/db_manager/db_plugins/vlayers/sql_dictionary.py index 5a1b5acb467..efe6078a308 100644 --- a/python/plugins/db_manager/db_plugins/vlayers/sql_dictionary.py +++ b/python/plugins/db_manager/db_plugins/vlayers/sql_dictionary.py @@ -164,10 +164,10 @@ def getSqlDictionary(spatial=True): def getQueryBuilderDictionary(): # concat functions def ff(l): - return filter(lambda s: s[0] != '*', l) + return [s for s in l if s[0] != '*'] def add_paren(l): - return map(lambda s: s + "(", l) + return [s + "(" for s in l] foo = sorted(add_paren(ff(list(set.union(set(functions), set(spatialite_functions), set(qgis_functions)))))) m = sorted(add_paren(ff(math_functions))) agg = sorted(add_paren(ff(aggregate_functions))) diff --git a/python/plugins/db_manager/db_tree.py b/python/plugins/db_manager/db_tree.py index 539442ff29a..e68a68569ad 100644 --- a/python/plugins/db_manager/db_tree.py +++ b/python/plugins/db_manager/db_tree.py @@ -20,13 +20,13 @@ email : brush.tyler@gmail.com ***************************************************************************/ """ -from PyQt.QtCore import pyqtSignal, QObject +from PyQt.QtCore import pyqtSignal from PyQt.QtWidgets import QWidget, QTreeView, QMenu, QLabel -from qgis.core import QgsMapLayerRegistry +from qgis.core import QgsMapLayerRegistry, QgsMessageLog from qgis.gui import QgsMessageBar, QgsMessageBarItem -from .db_model import DBModel, PluginItem, TreeItem +from .db_model import DBModel, PluginItem from .db_plugins.plugin import DBPlugin, Schema, Table @@ -169,10 +169,8 @@ class DBTree(QTreeView): "%1 is an invalid layer and cannot be loaded. Please check the message log for further info.").replace( "%1", layer.publicSource()), self.mainWindow.infoBar) msgLabel.setWordWrap(True) - self.connect(msgLabel, SIGNAL("linkActivated( QString )"), - self.mainWindow.iface.mainWindow().findChild(QWidget, "MessageLog"), SLOT("show()")) - self.connect(msgLabel, SIGNAL("linkActivated( QString )"), - self.mainWindow.iface.mainWindow(), SLOT("raise()")) + msgLabel.linkActivated.connect(self.mainWindow.iface.mainWindow().findChild(QWidget, "MessageLog").show) + msgLabel.linkActivated.connect(self.mainWindow.iface.mainWindow().raise_) self.mainWindow.infoBar.pushItem(QgsMessageBarItem(msgLabel, QgsMessageBar.WARNING)) def reconnect(self): diff --git a/python/plugins/db_manager/dlg_export_vector.py b/python/plugins/db_manager/dlg_export_vector.py index 9baed047fdc..5fd9acc86f2 100644 --- a/python/plugins/db_manager/dlg_export_vector.py +++ b/python/plugins/db_manager/dlg_export_vector.py @@ -22,7 +22,7 @@ The content of this file is based on ***************************************************************************/ """ -from PyQt.QtCore import Qt, QObject, QSettings, QFileInfo +from PyQt.QtCore import Qt, QSettings, QFileInfo from PyQt.QtWidgets import QDialog, QFileDialog, QMessageBox, QApplication from PyQt.QtGui import QCursor @@ -39,7 +39,7 @@ class DlgExportVector(QDialog, Ui_Dialog): self.db = inDb self.setupUi(self) - vectorFilterName = "lastVectorFileFilter" # "lastRasterFileFilter" + vectorFilterName = "lastVectorFileFilter" # "lastRasterFileFilter" self.lastUsedVectorFilterSettingsKey = u"/UI/{0}".format(vectorFilterName) self.lastUsedVectorDirSettingsKey = u"/UI/{0}Dir".format(vectorFilterName) diff --git a/python/plugins/db_manager/dlg_field_properties.py b/python/plugins/db_manager/dlg_field_properties.py index 460168e97e9..868ee6788bf 100644 --- a/python/plugins/db_manager/dlg_field_properties.py +++ b/python/plugins/db_manager/dlg_field_properties.py @@ -23,7 +23,6 @@ __copyright__ = '(C) 2012, Giuseppe Sucameli' # This will get replaced with a git SHA1 when you do a git archive __revision__ = '$Format:%H$' -from PyQt4.QtCore import SIGNAL from PyQt.QtWidgets import QDialog, QMessageBox from .db_plugins.plugin import TableField diff --git a/python/plugins/db_manager/dlg_import_vector.py b/python/plugins/db_manager/dlg_import_vector.py index 267790f0a55..ec45bde870b 100644 --- a/python/plugins/db_manager/dlg_import_vector.py +++ b/python/plugins/db_manager/dlg_import_vector.py @@ -22,7 +22,7 @@ The content of this file is based on ***************************************************************************/ """ -from PyQt.QtCore import Qt, QObject, QSettings, QFileInfo +from PyQt.QtCore import Qt, QSettings, QFileInfo from PyQt.QtWidgets import QDialog, QFileDialog, QMessageBox, QApplication from PyQt.QtGui import QCursor @@ -68,9 +68,9 @@ class DlgImportVector(QDialog, Ui_Dialog): if mode == self.ASK_FOR_INPUT_MODE: self.btnChooseInputFile.clicked.connect(self.chooseInputFile) - # QObject.connect( self.cboInputLayer.lineEdit(), SIGNAL("editingFinished()"), self.updateInputLayer ) + # self.cboInputLayer.lineEdit().editingFinished.connect(self.updateInputLayer) self.cboInputLayer.editTextChanged.connect(self.inputPathChanged) - # QObject.connect( self.cboInputLayer, SIGNAL("currentIndexChanged(int)"), self.updateInputLayer ) + # self.cboInputLayer.currentIndexChanged.connect(self.updateInputLayer) self.btnUpdateInputLayer.clicked.connect(self.updateInputLayer) self.editPrimaryKey.setText(self.default_pk) @@ -226,7 +226,7 @@ class DlgImportVector(QDialog, Ui_Dialog): schemas = self.db.schemas() if schemas is not None: schema_name = self.cboSchema.currentText() - matching_schemas = filter(lambda x: x.name == schema_name, schemas) + matching_schemas = [x for x in schemas if x.name == schema_name] tables = matching_schemas[0].tables() if len(matching_schemas) > 0 else [] else: tables = self.db.tables() diff --git a/python/plugins/db_manager/dlg_query_builder.py b/python/plugins/db_manager/dlg_query_builder.py index 749e4e0cd2f..6dbaa3cfdb6 100644 --- a/python/plugins/db_manager/dlg_query_builder.py +++ b/python/plugins/db_manager/dlg_query_builder.py @@ -184,7 +184,7 @@ class QueryBuilderDlg(QDialog): return ag = self.ui.operators.currentText() - if self.evt.focus == "where": # in where section + if self.evt.focus == "where": # in where section self.ui.where.insertPlainText(ag) else: self.ui.col.insertPlainText(ag) @@ -215,8 +215,8 @@ class QueryBuilderDlg(QDialog): if self.ui.columns.currentIndex() <= 0: return ag = self.ui.columns.currentText() - if self.evt.focus == "where": # in where section - if ag in self.col_where: # column already called in where section + if self.evt.focus == "where": # in where section + if ag in self.col_where: # column already called in where section response = QMessageBox.question(self, "Column already used in WHERE clause", "Do you want to add column %s again?" % ag, QMessageBox.Yes | QMessageBox.No) if response == QMessageBox.No: self.ui.columns.setCurrentIndex(0) @@ -224,7 +224,7 @@ class QueryBuilderDlg(QDialog): self.ui.where.insertPlainText(ag) self.col_where.append(ag) elif self.evt.focus == "col": - if ag in self.col_col: # column already called in col section + if ag in self.col_col: # column already called in col section response = QMessageBox.question(self, "Column already used in COLUMNS section", "Do you want to add column %s again?" % ag, QMessageBox.Yes | QMessageBox.No) if response == QMessageBox.No: self.ui.columns.setCurrentIndex(0) @@ -301,7 +301,7 @@ class QueryBuilderDlg(QDialog): tab_idx = idx.split(".")[0][1:-1] # remove " col_idx = idx.split(".")[1][1:-1] # remove ' except: - pop_up_error("All fields are necessary", self) # FIXME + QMessageBox.warning(self, "Use R-Tree", "All fields are necessary", QMessageBox.Cancel) tgt = self.ui.table_target.currentText() if tgt in (None, "", " ", "Table (Target)"): return diff --git a/python/plugins/db_manager/dlg_sql_window.py b/python/plugins/db_manager/dlg_sql_window.py index f7363155bdd..f986a479c47 100644 --- a/python/plugins/db_manager/dlg_sql_window.py +++ b/python/plugins/db_manager/dlg_sql_window.py @@ -35,7 +35,7 @@ from .dlg_db_error import DlgDbError from .dlg_query_builder import QueryBuilderDlg try: - from qgis.gui import QgsCodeEditorSQL + from qgis.gui import QgsCodeEditorSQL # NOQA except: from .sqledit import SqlEdit from qgis import gui @@ -55,8 +55,8 @@ class DlgSqlWindow(QWidget, Ui_Dialog): self.iface = iface self.db = db self.filter = "" - self.allowMultiColumnPk = isinstance(db, PGDatabase) # at the moment only PostgreSQL allows a primary key to span multiple columns, spatialite doesn't - self.aliasSubQuery = isinstance(db, PGDatabase) # only PostgreSQL requires subqueries to be aliases + self.allowMultiColumnPk = isinstance(db, PGDatabase) # at the moment only PostgreSQL allows a primary key to span multiple columns, spatialite doesn't + self.aliasSubQuery = isinstance(db, PGDatabase) # only PostgreSQL requires subqueries to be aliases self.setupUi(self) self.setWindowTitle( u"%s - %s [%s]" % (self.windowTitle(), db.connection().connectionName(), db.connection().typeNameString())) @@ -99,8 +99,8 @@ class DlgSqlWindow(QWidget, Ui_Dialog): self.uniqueCombo.setModel(self.uniqueModel) if self.allowMultiColumnPk: self.uniqueCombo.setItemDelegate(QStyledItemDelegate()) - self.uniqueModel.itemChanged.connect(self.uniqueChanged) # react to the (un)checking of an item - self.uniqueCombo.lineEdit().textChanged.connect(self.uniqueTextChanged) # there are other events that change the displayed text and some of them can not be caught directly + self.uniqueModel.itemChanged.connect(self.uniqueChanged) # react to the (un)checking of an item + self.uniqueCombo.lineEdit().textChanged.connect(self.uniqueTextChanged) # there are other events that change the displayed text and some of them can not be caught directly # hide the load query as layer if feature is not supported self._loadAsLayerAvailable = self.db.connector.hasCustomQuerySupport() @@ -269,7 +269,7 @@ class DlgSqlWindow(QWidget, Ui_Dialog): QApplication.setOverrideCursor(QCursor(Qt.WaitCursor)) try: layer = self._getSqlLayer(self.filter) - if layer == None: + if layer is None: return from qgis.core import QgsMapLayerRegistry diff --git a/python/plugins/db_manager/layer_preview.py b/python/plugins/db_manager/layer_preview.py index 6071dcc7407..26b41eb6051 100644 --- a/python/plugins/db_manager/layer_preview.py +++ b/python/plugins/db_manager/layer_preview.py @@ -63,7 +63,8 @@ class LayerPreview(QgsMapCanvas): if isinstance(item, Table) and item.type in [Table.VectorType, Table.RasterType]: # update the preview, but first let the manager chance to show the canvas - runPrev = lambda: self._loadTablePreview(item) + def runPrev(): + return self._loadTablePreview(item) QTimer.singleShot(50, runPrev) else: return diff --git a/python/plugins/db_manager/table_viewer.py b/python/plugins/db_manager/table_viewer.py index 12af06a27e5..d17d36a9e83 100644 --- a/python/plugins/db_manager/table_viewer.py +++ b/python/plugins/db_manager/table_viewer.py @@ -20,7 +20,7 @@ email : brush.tyler@gmail.com ***************************************************************************/ """ -from PyQt.QtCore import Qt, QObject +from PyQt.QtCore import Qt from PyQt.QtWidgets import QTableView, QAbstractItemView, QApplication, QAction from PyQt.QtGui import QKeySequence, QCursor, QClipboard