--- a/eric6/Project/ProjectBrowserModel.py Fri Apr 02 11:59:41 2021 +0200 +++ b/eric6/Project/ProjectBrowserModel.py Sat May 01 14:27:20 2021 +0200 @@ -9,6 +9,7 @@ import os import re +import contextlib from PyQt5.QtCore import QDir, QModelIndex, pyqtSignal, QFileSystemWatcher, Qt from PyQt5.QtGui import QColor @@ -37,7 +38,7 @@ ProjectBrowserProtocolsType = 7 -class ProjectBrowserItemMixin(object): +class ProjectBrowserItemMixin: """ Class implementing common methods of project browser items. @@ -169,9 +170,11 @@ @param order sort order (Qt.SortOrder) (for special sorting) @return true, if this item is less than other (boolean) """ - if issubclass(other.__class__, BrowserFileItem): - if Preferences.getUI("BrowsersListFoldersFirst"): - return order == Qt.SortOrder.AscendingOrder + if ( + issubclass(other.__class__, BrowserFileItem) and + Preferences.getUI("BrowsersListFoldersFirst") + ): + return order == Qt.SortOrder.AscendingOrder return BrowserItem.lessThan(self, other, column, order) @@ -233,7 +236,7 @@ @param parent reference to parent object (Project.Project) """ - super(ProjectBrowserModel, self).__init__(parent, nopopulate=True) + super().__init__(parent, nopopulate=True) rootData = self.tr("Name") self.rootItem = BrowserItem(None, rootData) @@ -342,15 +345,15 @@ qdir = QDir(parentItem.dirName()) - if Preferences.getProject("BrowsersListHiddenFiles"): - fileFilter = QDir.Filters( + fileFilter = ( + QDir.Filters( QDir.Filter.AllEntries | QDir.Filter.Hidden | QDir.Filter.NoDotAndDotDot ) - else: - fileFilter = QDir.Filters( - QDir.Filter.AllEntries | QDir.Filter.NoDotAndDotDot) + if Preferences.getProject("BrowsersListHiddenFiles") else + QDir.Filters(QDir.Filter.AllEntries | QDir.Filter.NoDotAndDotDot) + ) entryInfoList = qdir.entryInfoList(fileFilter) if len(entryInfoList) > 0: @@ -368,16 +371,17 @@ states = self.project.vcs.vcsAllRegisteredStates(states, dname) for f in entryInfoList: - if f.isDir(): - node = ProjectBrowserDirectoryItem( + node = ( + ProjectBrowserDirectoryItem( parentItem, Utilities.toNativeSeparators(f.absoluteFilePath()), parentItem.getProjectTypes()[0], False) - else: - node = ProjectBrowserFileItem( + if f.isDir() else + ProjectBrowserFileItem( parentItem, Utilities.toNativeSeparators(f.absoluteFilePath()), parentItem.getProjectTypes()[0]) + ) if self.project.vcs is not None: fname = f.absoluteFilePath() if ( @@ -436,28 +440,24 @@ for key in keys: # Show the entry in bold in the others browser to make it more # distinguishable - if key == "OTHERS": - bold = True - else: - bold = False - - if key == "SOURCES": - sourceLanguage = self.project.getProjectLanguage() - else: - sourceLanguage = "" + bold = key == "OTHERS" + sourceLanguage = ( + self.project.getProjectLanguage() if key == "SOURCES" else "" + ) for fn in self.project.pdata[key]: fname = os.path.join(self.project.ppath, fn) parentItem, dt = self.findParentItemByName( self.projectBrowserTypes[key], fn) - if os.path.isdir(fname): - itm = ProjectBrowserDirectoryItem( + itm = ( + ProjectBrowserDirectoryItem( parentItem, fname, self.projectBrowserTypes[key], False, bold) - else: - itm = ProjectBrowserFileItem( + if os.path.isdir(fname) else + ProjectBrowserFileItem( parentItem, fname, self.projectBrowserTypes[key], False, bold, sourceLanguage=sourceLanguage) + ) self._addItem(itm, parentItem) if self.project.vcs is not None: if ( @@ -549,18 +549,16 @@ """ # Show the entry in bold in the others browser to make it more # distinguishable - if typeString == "OTHERS": - bold = True - else: - bold = False + bold = typeString == "OTHERS" fname = os.path.join(self.project.ppath, name) parentItem, dt = self.findParentItemByName( self.projectBrowserTypes[typeString], name) - if parentItem == self.rootItem: - parentIndex = QModelIndex() - else: - parentIndex = self.createIndex(parentItem.row(), 0, parentItem) + parentIndex = ( + QModelIndex() + if parentItem == self.rootItem else + self.createIndex(parentItem.row(), 0, parentItem) + ) if os.path.isdir(fname): itm = ProjectBrowserDirectoryItem( parentItem, fname, self.projectBrowserTypes[typeString], @@ -625,10 +623,7 @@ @return index of the item found (QModelIndex) """ itm = self.findItem(name) - if itm is None: - index = QModelIndex() - else: - index = self.createIndex(itm.row(), 0, itm) + index = self.createIndex(itm.row(), 0, itm) if itm else QModelIndex() return index def itemIndexByNameAndLine(self, name, lineno): @@ -654,15 +649,13 @@ else: break for child in itm.children(): - try: + with contextlib.suppress(AttributeError): start, end = child.boundaries() if end == -1: end = 1000000 # assume end of file if start <= lineno <= end: itm = child break - except AttributeError: - pass else: itm = None if itm: @@ -696,15 +689,15 @@ # just ignore the situation we don't have a reference to the item return - if Preferences.getProject("BrowsersListHiddenFiles"): - fileFilter = QDir.Filters( + fileFilter = ( + QDir.Filters( QDir.Filter.AllEntries | QDir.Filter.Hidden | QDir.Filter.NoDotAndDotDot ) - else: - fileFilter = QDir.Filters( - QDir.Filter.AllEntries | QDir.Filter.NoDotAndDotDot) + if Preferences.getProject("BrowsersListHiddenFiles") else + QDir.Filters(QDir.Filter.AllEntries | QDir.Filter.NoDotAndDotDot) + ) for itm in self.watchedItems[path]: oldCnt = itm.childCount() @@ -729,17 +722,18 @@ cnt = itm.childCount() self.beginInsertRows( self.createIndex(itm.row(), 0, itm), cnt, cnt) - if f.isDir(): - node = ProjectBrowserDirectoryItem( + node = ( + ProjectBrowserDirectoryItem( itm, Utilities.toNativeSeparators(f.absoluteFilePath()), itm.getProjectTypes()[0], False) - else: - node = ProjectBrowserFileItem( + if f.isDir() else + ProjectBrowserFileItem( itm, Utilities.toNativeSeparators(f.absoluteFilePath()), itm.getProjectTypes()[0]) + ) self._addItem(node, itm) if self.project.vcs is not None: self.project.vcs.clearStatusCache() @@ -831,10 +825,11 @@ """ fname = os.path.basename(name) parentItem = self.findParentItemByName(0, name)[0] - if parentItem == self.rootItem: - parentIndex = QModelIndex() - else: - parentIndex = self.createIndex(parentItem.row(), 0, parentItem) + parentIndex = ( + QModelIndex() + if parentItem == self.rootItem else + self.createIndex(parentItem.row(), 0, parentItem) + ) childItem = self.findChildItem(fname, 0, parentItem) if childItem is not None: self.beginRemoveRows(parentIndex, childItem.row(), childItem.row())