--- a/eric6/Debugger/VariablesViewer.py Fri Apr 02 11:59:41 2021 +0200 +++ b/eric6/Debugger/VariablesViewer.py Sat May 01 14:27:20 2021 +0200 @@ -9,6 +9,7 @@ import ast import re +import contextlib from PyQt5.QtCore import ( Qt, QAbstractItemModel, QModelIndex, QCoreApplication, @@ -28,7 +29,7 @@ SORT_ROLE = Qt.ItemDataRole.UserRole -class VariableItem(object): +class VariableItem: """ Class implementing the data structure for all variable items. """ @@ -145,11 +146,11 @@ if dtype.startswith('class '): dtype = dtype[7:-1] # Qt related stuff? - elif (dtype.startswith(ConfigQtNames) and - dtype.endswith(ConfigKnownQtTypes)): - self.hasChildren = True - - elif dtype in ('instance', 'class'): + elif ( + (dtype.startswith(ConfigQtNames) and + dtype.endswith(ConfigKnownQtTypes)) or + dtype in ('instance', 'class') + ): self.hasChildren = True # Special Qt types should not be expanded infinite @@ -201,10 +202,8 @@ elif dtype == 'str': if VariableItem.rx_nonprintable.search(dvalue) is None: - try: + with contextlib.suppress(Exception): dvalue = ast.literal_eval(dvalue) - except Exception: # secok - pass dvalue = str(dvalue) self.value = dvalue @@ -263,7 +262,7 @@ variables @type bool """ - super(VariablesModel, self).__init__() + super().__init__() self.treeView = treeView self.proxyModel = treeView.proxyModel @@ -271,11 +270,7 @@ self.openItems = [] self.closedItems = [] - if globalScope: - visibility = self.tr("Globals") - else: - visibility = self.tr("Locals") - + visibility = self.tr("Globals") if globalScope else self.tr("Locals") self.rootNode = VariableItem(None, visibility, self.tr("Type"), self.tr("Value")) @@ -482,10 +477,8 @@ @param pathlist full path to the variable @type list of str """ - if parentIdx.isValid(): - parent = parentIdx.internalPointer() - else: - parent = self.rootNode + parent = (parentIdx.internalPointer() if parentIdx.isValid() + else self.rootNode) parent.newItems.clear() parent.changedItems.clear() @@ -497,15 +490,18 @@ if posPaths: for child in parent.children: - if child.hasChildren and child.nameWithId in posPaths: - if child.currentCount >= 0: - # Discard loaded elements and refresh if still expanded - child.currentCount = -1 - child.populated = False - row = parent.children.index(child) - newParentIdx = self.index(row, 0, parentIdx) - self.resetModifiedMarker( - newParentIdx, pathlist + (child.nameWithId,)) + if ( + child.hasChildren and + child.nameWithId in posPaths and + child.currentCount >= 0 + ): + # Discard loaded elements and refresh if still expanded + child.currentCount = -1 + child.populated = False + row = parent.children.index(child) + newParentIdx = self.index(row, 0, parentIdx) + self.resetModifiedMarker( + newParentIdx, pathlist + (child.nameWithId,)) self.closedItems = [] @@ -537,10 +533,7 @@ @return number of rows @rtype int """ - if parent.isValid(): - node = parent.internalPointer() - else: - node = self.rootNode + node = parent.internalPointer() if parent.isValid() else self.rootNode return len(node.children) @@ -588,10 +581,7 @@ if not self.hasIndex(row, column, parent): return QModelIndex() - if not parent.isValid(): - node = self.rootNode - else: - node = parent.internalPointer() + node = parent.internalPointer() if parent.isValid() else self.rootNode return self.createIndex(row, column, node.children[row]) @@ -645,14 +635,12 @@ if role == SORT_ROLE: return node.sort return node.name + node.indicator - elif column == 1: - return node.valueShort - elif column == 2: - return node.type - elif column == 3: - return node.sort else: - return None + return { + 1: node.valueShort, + 2: node.type, + 3: node.sort + }.get(column) except AttributeError: return ['None', '', '', ''][column] @@ -723,16 +711,12 @@ ): return None - if section == 0: - return self.rootNode.name - elif section == 1: - return self.rootNode.value - elif section == 2: - return self.rootNode.type - elif section == 3: - return self.rootNode.sort - - return None + return { + 0: self.rootNode.name, + 1: self.rootNode.value, + 2: self.rootNode.type, + 3: self.rootNode.sort + }.get(section) def __findPendingItem(self, parent=None, pathlist=()): """ @@ -865,7 +849,7 @@ @param parent the parent model index @type QModelIndex """ - super(VariablesProxyModel, self).__init__(parent) + super().__init__(parent) self.setSortRole(SORT_ROLE) def hasChildren(self, parent): @@ -928,7 +912,7 @@ @param parent the parent @type QWidget """ - super(VariablesViewer, self).__init__(parent) + super().__init__(parent) self.__debugViewer = viewer self.__globalScope = globalScope @@ -1046,7 +1030,7 @@ @type int """ self.varModel.getMore() - super(VariablesViewer, self).verticalScrollbarValueChanged(value) + super().verticalScrollbarValueChanged(value) def resizeEvent(self, event): """ @@ -1056,7 +1040,7 @@ @type QResizeEvent """ self.varModel.getMore() - super(VariablesViewer, self).resizeEvent(event) + super().resizeEvent(event) def __itemDoubleClicked(self, index): """