Sat, 21 Sep 2019 16:04:17 +0200
Continued to resolve code style issue M841.
--- a/eric6.e4p Sat Sep 21 15:37:43 2019 +0200 +++ b/eric6.e4p Sat Sep 21 16:04:17 2019 +0200 @@ -171,7 +171,6 @@ <Source>eric6/E5Network/E5GoogleMailHelpers.py</Source> <Source>eric6/E5Network/E5NetworkHeaderDetailsDialog.py</Source> <Source>eric6/E5Network/E5NetworkIcon.py</Source> - <Source>eric6/E5Network/E5NetworkMonitor.py</Source> <Source>eric6/E5Network/E5NetworkProxyFactory.py</Source> <Source>eric6/E5Network/E5RFC6266.py</Source> <Source>eric6/E5Network/E5SslCertificateSelectionDialog.py</Source> @@ -1567,7 +1566,6 @@ <Form>eric6/E5Gui/E5ToolBarDialog.ui</Form> <Form>eric6/E5Gui/E5ZoomWidget.ui</Form> <Form>eric6/E5Network/E5NetworkHeaderDetailsDialog.ui</Form> - <Form>eric6/E5Network/E5NetworkMonitor.ui</Form> <Form>eric6/E5Network/E5SslCertificateSelectionDialog.ui</Form> <Form>eric6/E5Network/E5SslCertificatesDialog.ui</Form> <Form>eric6/E5Network/E5SslCertificatesInfoDialog.ui</Form>
--- a/eric6/Documentation/Source/eric6.E5Network.E5NetworkMonitor.html Sat Sep 21 15:37:43 2019 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,398 +0,0 @@ -<!DOCTYPE html> -<html><head> -<title>eric6.E5Network.E5NetworkMonitor</title> -<meta charset="UTF-8"> -<style> -body { - background: #EDECE6; - margin: 0em 1em 10em 1em; - color: black; -} - -h1 { color: white; background: #85774A; } -h2 { color: white; background: #85774A; } -h3 { color: white; background: #9D936E; } -h4 { color: white; background: #9D936E; } - -a { color: #BA6D36; } - -</style> -</head> -<body><a NAME="top" ID="top"></a> -<h1>eric6.E5Network.E5NetworkMonitor</h1> -<p> -Module implementing a network monitor dialog. -</p> -<h3>Global Attributes</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Classes</h3> -<table> -<tr> -<td><a href="#E5NetworkMonitor">E5NetworkMonitor</a></td> -<td>Class implementing a network monitor dialog.</td> -</tr><tr> -<td><a href="#E5NetworkRequest">E5NetworkRequest</a></td> -<td>Class for storing all data related to a specific request.</td> -</tr><tr> -<td><a href="#E5RequestModel">E5RequestModel</a></td> -<td>Class implementing a model storing request objects.</td> -</tr> -</table> -<h3>Functions</h3> -<table> -<tr><td>None</td></tr> -</table> -<hr /><hr /> -<a NAME="E5NetworkMonitor" ID="E5NetworkMonitor"></a> -<h2>E5NetworkMonitor</h2> -<p> - Class implementing a network monitor dialog. -</p> -<h3>Derived from</h3> -QDialog, Ui_E5NetworkMonitor -<h3>Class Attributes</h3> -<table> -<tr><td>_monitor</td></tr> -</table> -<h3>Class Methods</h3> -<table> -<tr> -<td><a href="#E5NetworkMonitor.closeMonitor">closeMonitor</a></td> -<td>Class method to close the monitor dialog.</td> -</tr><tr> -<td><a href="#E5NetworkMonitor.instance">instance</a></td> -<td>Class method to get a reference to our singleton.</td> -</tr> -</table> -<h3>Methods</h3> -<table> -<tr> -<td><a href="#E5NetworkMonitor.__init__">E5NetworkMonitor</a></td> -<td>Constructor</td> -</tr><tr> -<td><a href="#E5NetworkMonitor.__currentChanged">__currentChanged</a></td> -<td>Private slot to handle a change of the current index.</td> -</tr><tr> -<td><a href="#E5NetworkMonitor.__showHeaderDetails">__showHeaderDetails</a></td> -<td>Private slot to show a dialog with the header details.</td> -</tr><tr> -<td><a href="#E5NetworkMonitor.closeEvent">closeEvent</a></td> -<td>Protected method called upon closing the dialog.</td> -</tr><tr> -<td><a href="#E5NetworkMonitor.reject">reject</a></td> -<td>Public slot to close the dialog with a Reject status.</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="E5NetworkMonitor.closeMonitor" ID="E5NetworkMonitor.closeMonitor"></a> -<h4>E5NetworkMonitor.closeMonitor (class method)</h4> -<b>closeMonitor</b>(<i></i>) -<p> - Class method to close the monitor dialog. -</p><a NAME="E5NetworkMonitor.instance" ID="E5NetworkMonitor.instance"></a> -<h4>E5NetworkMonitor.instance (class method)</h4> -<b>instance</b>(<i>networkAccessManager</i>) -<p> - Class method to get a reference to our singleton. -</p><dl> -<dt><i>networkAccessManager</i></dt> -<dd> -reference to the network access manager - (QNetworkAccessManager) -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -reference to the network monitor singleton (E5NetworkMonitor) -</dd> -</dl><a NAME="E5NetworkMonitor.__init__" ID="E5NetworkMonitor.__init__"></a> -<h4>E5NetworkMonitor (Constructor)</h4> -<b>E5NetworkMonitor</b>(<i>networkAccessManager, parent=None</i>) -<p> - Constructor -</p><dl> -<dt><i>networkAccessManager</i></dt> -<dd> -reference to the network access manager - (QNetworkAccessManager) -</dd><dt><i>parent</i></dt> -<dd> -reference to the parent widget (QWidget) -</dd> -</dl><a NAME="E5NetworkMonitor.__currentChanged" ID="E5NetworkMonitor.__currentChanged"></a> -<h4>E5NetworkMonitor.__currentChanged</h4> -<b>__currentChanged</b>(<i>current, previous</i>) -<p> - Private slot to handle a change of the current index. -</p><dl> -<dt><i>current</i></dt> -<dd> -new current index (QModelIndex) -</dd><dt><i>previous</i></dt> -<dd> -old current index (QModelIndex) -</dd> -</dl><a NAME="E5NetworkMonitor.__showHeaderDetails" ID="E5NetworkMonitor.__showHeaderDetails"></a> -<h4>E5NetworkMonitor.__showHeaderDetails</h4> -<b>__showHeaderDetails</b>(<i>index, headerList</i>) -<p> - Private slot to show a dialog with the header details. -</p><dl> -<dt><i>index</i> (QModelIndex)</dt> -<dd> -index of the entry to show -</dd><dt><i>headerList</i> (QTableView)</dt> -<dd> -list requesting the header details -</dd> -</dl><a NAME="E5NetworkMonitor.closeEvent" ID="E5NetworkMonitor.closeEvent"></a> -<h4>E5NetworkMonitor.closeEvent</h4> -<b>closeEvent</b>(<i>evt</i>) -<p> - Protected method called upon closing the dialog. -</p><dl> -<dt><i>evt</i></dt> -<dd> -reference to the close event object (QCloseEvent) -</dd> -</dl><a NAME="E5NetworkMonitor.reject" ID="E5NetworkMonitor.reject"></a> -<h4>E5NetworkMonitor.reject</h4> -<b>reject</b>(<i></i>) -<p> - Public slot to close the dialog with a Reject status. -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="E5NetworkRequest" ID="E5NetworkRequest"></a> -<h2>E5NetworkRequest</h2> -<p> - Class for storing all data related to a specific request. -</p> -<h3>Derived from</h3> -object -<h3>Class Attributes</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Class Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Methods</h3> -<table> -<tr> -<td><a href="#E5NetworkRequest.__init__">E5NetworkRequest</a></td> -<td>Constructor</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="E5NetworkRequest.__init__" ID="E5NetworkRequest.__init__"></a> -<h4>E5NetworkRequest (Constructor)</h4> -<b>E5NetworkRequest</b>(<i></i>) -<p> - Constructor -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="E5RequestModel" ID="E5RequestModel"></a> -<h2>E5RequestModel</h2> -<p> - Class implementing a model storing request objects. -</p> -<h3>Derived from</h3> -QAbstractTableModel -<h3>Class Attributes</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Class Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Methods</h3> -<table> -<tr> -<td><a href="#E5RequestModel.__init__">E5RequestModel</a></td> -<td>Constructor</td> -</tr><tr> -<td><a href="#E5RequestModel.__addReply">__addReply</a></td> -<td>Private slot to add the reply data to the model.</td> -</tr><tr> -<td><a href="#E5RequestModel.__addRequest">__addRequest</a></td> -<td>Private method to add a request object to the model.</td> -</tr><tr> -<td><a href="#E5RequestModel.__requestCreated">__requestCreated</a></td> -<td>Private slot handling the creation of a network request.</td> -</tr><tr> -<td><a href="#E5RequestModel.columnCount">columnCount</a></td> -<td>Public method to get the number of columns of the model.</td> -</tr><tr> -<td><a href="#E5RequestModel.data">data</a></td> -<td>Public method to get data from the model.</td> -</tr><tr> -<td><a href="#E5RequestModel.headerData">headerData</a></td> -<td>Public method to get header data from the model.</td> -</tr><tr> -<td><a href="#E5RequestModel.removeRows">removeRows</a></td> -<td>Public method to remove entries from the model.</td> -</tr><tr> -<td><a href="#E5RequestModel.rowCount">rowCount</a></td> -<td>Public method to get the number of rows of the model.</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="E5RequestModel.__init__" ID="E5RequestModel.__init__"></a> -<h4>E5RequestModel (Constructor)</h4> -<b>E5RequestModel</b>(<i>networkAccessManager, parent=None</i>) -<p> - Constructor -</p><dl> -<dt><i>networkAccessManager</i></dt> -<dd> -reference to the network access manager - (QNetworkAccessManager) -</dd><dt><i>parent</i></dt> -<dd> -reference to the parent object (QObject) -</dd> -</dl><a NAME="E5RequestModel.__addReply" ID="E5RequestModel.__addReply"></a> -<h4>E5RequestModel.__addReply</h4> -<b>__addReply</b>(<i>reply</i>) -<p> - Private slot to add the reply data to the model. -</p><dl> -<dt><i>reply</i> (QNetworkReply)</dt> -<dd> -reference to the network reply object -</dd> -</dl><a NAME="E5RequestModel.__addRequest" ID="E5RequestModel.__addRequest"></a> -<h4>E5RequestModel.__addRequest</h4> -<b>__addRequest</b>(<i>req</i>) -<p> - Private method to add a request object to the model. -</p><dl> -<dt><i>req</i></dt> -<dd> -reference to the request object (E5NetworkRequest) -</dd> -</dl><a NAME="E5RequestModel.__requestCreated" ID="E5RequestModel.__requestCreated"></a> -<h4>E5RequestModel.__requestCreated</h4> -<b>__requestCreated</b>(<i>operation, request, reply</i>) -<p> - Private slot handling the creation of a network request. -</p><dl> -<dt><i>operation</i></dt> -<dd> -network operation (QNetworkAccessManager.Operation) -</dd><dt><i>request</i></dt> -<dd> -reference to the request object (QNetworkRequest) -</dd><dt><i>reply</i></dt> -<dd> -reference to the reply object(QNetworkReply) -</dd> -</dl><a NAME="E5RequestModel.columnCount" ID="E5RequestModel.columnCount"></a> -<h4>E5RequestModel.columnCount</h4> -<b>columnCount</b>(<i>parent</i>) -<p> - Public method to get the number of columns of the model. -</p><dl> -<dt><i>parent</i></dt> -<dd> -parent index (QModelIndex) -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -number of columns (integer) -</dd> -</dl><a NAME="E5RequestModel.data" ID="E5RequestModel.data"></a> -<h4>E5RequestModel.data</h4> -<b>data</b>(<i>index, role=Qt.DisplayRole</i>) -<p> - Public method to get data from the model. -</p><dl> -<dt><i>index</i></dt> -<dd> -index to get data for (QModelIndex) -</dd><dt><i>role</i></dt> -<dd> -role of the data to retrieve (integer) -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -requested data -</dd> -</dl><a NAME="E5RequestModel.headerData" ID="E5RequestModel.headerData"></a> -<h4>E5RequestModel.headerData</h4> -<b>headerData</b>(<i>section, orientation, role=Qt.DisplayRole</i>) -<p> - Public method to get header data from the model. -</p><dl> -<dt><i>section</i></dt> -<dd> -section number (integer) -</dd><dt><i>orientation</i></dt> -<dd> -orientation (Qt.Orientation) -</dd><dt><i>role</i></dt> -<dd> -role of the data to retrieve (integer) -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -requested data -</dd> -</dl><a NAME="E5RequestModel.removeRows" ID="E5RequestModel.removeRows"></a> -<h4>E5RequestModel.removeRows</h4> -<b>removeRows</b>(<i>row, count, parent</i>) -<p> - Public method to remove entries from the model. -</p><dl> -<dt><i>row</i></dt> -<dd> -start row (integer) -</dd><dt><i>count</i></dt> -<dd> -number of rows to remove (integer) -</dd><dt><i>parent</i></dt> -<dd> -parent index (QModelIndex) -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -flag indicating success (boolean) -</dd> -</dl><a NAME="E5RequestModel.rowCount" ID="E5RequestModel.rowCount"></a> -<h4>E5RequestModel.rowCount</h4> -<b>rowCount</b>(<i>parent</i>) -<p> - Public method to get the number of rows of the model. -</p><dl> -<dt><i>parent</i></dt> -<dd> -parent index (QModelIndex) -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -number of columns (integer) -</dd> -</dl> -<div align="right"><a href="#top">Up</a></div> -<hr /> -</body></html> \ No newline at end of file
--- a/eric6/E5Network/E5GoogleMail.py Sat Sep 21 15:37:43 2019 +0200 +++ b/eric6/E5Network/E5GoogleMail.py Sat Sep 21 16:04:17 2019 +0200 @@ -24,8 +24,9 @@ import Globals -from .E5GoogleMailHelpers import CLIENT_SECRET_FILE, SCOPES, TOKEN_FILE, \ - APPLICATION_NAME +from .E5GoogleMailHelpers import ( + CLIENT_SECRET_FILE, SCOPES, TOKEN_FILE, APPLICATION_NAME +) class E5GoogleMailAuthBrowser(QDialog): @@ -253,8 +254,8 @@ count += 1 message = self.__messages.pop(0) message1 = self.__prepareMessage(message) - service.users().messages()\ - .send(userId="me", body=message1).execute() + service.users().messages().send( + userId="me", body=message1).execute() results.append(self.tr("Message #{0} sent.").format(count)) self.sendResult.emit(True, "\n\n".join(results))
--- a/eric6/E5Network/E5NetworkMonitor.py Sat Sep 21 15:37:43 2019 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,388 +0,0 @@ -# -*- coding: utf-8 -*- - -# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de> -# - -""" -Module implementing a network monitor dialog. -""" - - -from PyQt5.QtCore import Qt, QAbstractTableModel, QModelIndex, QUrl, \ - QSortFilterProxyModel -from PyQt5.QtGui import QStandardItemModel -from PyQt5.QtWidgets import QDialog -from PyQt5.QtNetwork import QNetworkRequest, QNetworkAccessManager - -from .Ui_E5NetworkMonitor import Ui_E5NetworkMonitor - - -class E5NetworkRequest(object): - """ - Class for storing all data related to a specific request. - """ - def __init__(self): - """ - Constructor - """ - self.op = -1 - self.request = None - self.reply = None - - self.response = "" - self.length = 0 - self.contentType = "" - self.info = "" - self.replyHeaders = [] # list of tuple of two items - - -class E5NetworkMonitor(QDialog, Ui_E5NetworkMonitor): - """ - Class implementing a network monitor dialog. - """ - _monitor = None - - @classmethod - def instance(cls, networkAccessManager): - """ - Class method to get a reference to our singleton. - - @param networkAccessManager reference to the network access manager - (QNetworkAccessManager) - @return reference to the network monitor singleton (E5NetworkMonitor) - """ - if cls._monitor is None: - cls._monitor = E5NetworkMonitor(networkAccessManager) - - return cls._monitor - - @classmethod - def closeMonitor(cls): - """ - Class method to close the monitor dialog. - """ - if cls._monitor is not None: - cls._monitor.close() - - def __init__(self, networkAccessManager, parent=None): - """ - Constructor - - @param networkAccessManager reference to the network access manager - (QNetworkAccessManager) - @param parent reference to the parent widget (QWidget) - """ - super(E5NetworkMonitor, self).__init__(parent) - self.setupUi(self) - self.setWindowFlags(Qt.Window) - - self.__requestHeaders = QStandardItemModel(self) - self.__requestHeaders.setHorizontalHeaderLabels( - [self.tr("Name"), self.tr("Value")]) - self.requestHeadersList.setModel(self.__requestHeaders) - self.requestHeadersList.horizontalHeader().setStretchLastSection(True) - self.requestHeadersList.doubleClicked.connect( - lambda index: self.__showHeaderDetails( - index, self.requestHeadersList)) - - self.__replyHeaders = QStandardItemModel(self) - self.__replyHeaders.setHorizontalHeaderLabels( - [self.tr("Name"), self.tr("Value")]) - self.responseHeadersList.setModel(self.__replyHeaders) - self.responseHeadersList.horizontalHeader().setStretchLastSection(True) - self.responseHeadersList.doubleClicked.connect( - lambda index: self.__showHeaderDetails( - index, self.responseHeadersList)) - - self.requestsList.horizontalHeader().setStretchLastSection(True) - self.requestsList.verticalHeader().setMinimumSectionSize(-1) - - self.__proxyModel = QSortFilterProxyModel(self) - self.__proxyModel.setFilterKeyColumn(-1) - self.searchEdit.textChanged.connect( - self.__proxyModel.setFilterFixedString) - - self.removeButton.clicked.connect(self.requestsList.removeSelected) - self.removeAllButton.clicked.connect(self.requestsList.removeAll) - - self.__model = E5RequestModel(networkAccessManager, self) - self.__proxyModel.setSourceModel(self.__model) - self.requestsList.setModel(self.__proxyModel) - self.__proxyModel.rowsInserted.connect( - self.requestsList.scrollToBottom) - self.requestsList.selectionModel()\ - .currentChanged[QModelIndex, QModelIndex]\ - .connect(self.__currentChanged) - - fm = self.fontMetrics() - em = fm.width("m") - self.requestsList.horizontalHeader().resizeSection(0, em * 5) - self.requestsList.horizontalHeader().resizeSection(1, em * 20) - self.requestsList.horizontalHeader().resizeSection(3, em * 5) - self.requestsList.horizontalHeader().resizeSection(4, em * 15) - - self.__headersDlg = None - - def closeEvent(self, evt): - """ - Protected method called upon closing the dialog. - - @param evt reference to the close event object (QCloseEvent) - """ - self.__class__._monitor = None - super(E5NetworkMonitor, self).closeEvent(evt) - - def reject(self): - """ - Public slot to close the dialog with a Reject status. - """ - self.__class__._monitor = None - super(E5NetworkMonitor, self).reject() - - def __currentChanged(self, current, previous): - """ - Private slot to handle a change of the current index. - - @param current new current index (QModelIndex) - @param previous old current index (QModelIndex) - """ - self.__requestHeaders.setRowCount(0) - self.__replyHeaders.setRowCount(0) - - if not current.isValid(): - return - - row = self.__proxyModel.mapToSource(current).row() - - req = self.__model.requests[row].request - - for header in req.rawHeaderList(): - self.__requestHeaders.insertRows(0, 1, QModelIndex()) - self.__requestHeaders.setData( - self.__requestHeaders.index(0, 0), - str(header, "utf-8")) - self.__requestHeaders.setData( - self.__requestHeaders.index(0, 1), - str(req.rawHeader(header), "utf-8")) - self.__requestHeaders.item(0, 0).setFlags( - Qt.ItemIsSelectable | Qt.ItemIsEnabled) - self.__requestHeaders.item(0, 1).setFlags( - Qt.ItemIsSelectable | Qt.ItemIsEnabled) - - for header in self.__model.requests[row].replyHeaders: - self.__replyHeaders.insertRows(0, 1, QModelIndex()) - self.__replyHeaders.setData( - self.__replyHeaders.index(0, 0), - header[0]) - self.__replyHeaders.setData( - self.__replyHeaders.index(0, 1), - header[1]) - self.__replyHeaders.item(0, 0).setFlags( - Qt.ItemIsSelectable | Qt.ItemIsEnabled) - self.__replyHeaders.item(0, 1).setFlags( - Qt.ItemIsSelectable | Qt.ItemIsEnabled) - - def __showHeaderDetails(self, index, headerList): - """ - Private slot to show a dialog with the header details. - - @param index index of the entry to show - @type QModelIndex - @param headerList list requesting the header details - @type QTableView - """ - if not index.isValid(): - return - - row = index.row() - name = headerList.model().data(headerList.model().index(row, 0)) - value = headerList.model().data(headerList.model().index(row, 1)) - if self.__headersDlg is None: - from .E5NetworkHeaderDetailsDialog import \ - E5NetworkHeaderDetailsDialog - self.__headersDlg = E5NetworkHeaderDetailsDialog(self) - self.__headersDlg.setData(name, value) - self.__headersDlg.show() - - -class E5RequestModel(QAbstractTableModel): - """ - Class implementing a model storing request objects. - """ - def __init__(self, networkAccessManager, parent=None): - """ - Constructor - - @param networkAccessManager reference to the network access manager - (QNetworkAccessManager) - @param parent reference to the parent object (QObject) - """ - super(E5RequestModel, self).__init__(parent) - - self.__headerData = [ - self.tr("Method"), - self.tr("Address"), - self.tr("Response"), - self.tr("Length"), - self.tr("Content Type"), - self.tr("Info"), - ] - - self.__operations = { - QNetworkAccessManager.HeadOperation: "HEAD", - QNetworkAccessManager.GetOperation: "GET", - QNetworkAccessManager.PutOperation: "PUT", - QNetworkAccessManager.PostOperation: "POST", - } - - self.requests = [] - networkAccessManager.requestCreated.connect(self.__requestCreated) - - def __requestCreated(self, operation, request, reply): - """ - Private slot handling the creation of a network request. - - @param operation network operation (QNetworkAccessManager.Operation) - @param request reference to the request object (QNetworkRequest) - @param reply reference to the reply object(QNetworkReply) - """ - req = E5NetworkRequest() - req.op = operation - req.request = QNetworkRequest(request) - req.reply = reply - self.__addRequest(req) - - def __addRequest(self, req): - """ - Private method to add a request object to the model. - - @param req reference to the request object (E5NetworkRequest) - """ - self.beginInsertRows( - QModelIndex(), len(self.requests), len(self.requests)) - self.requests.append(req) - req.reply.finished.connect(lambda: self.__addReply(req.reply)) - self.endInsertRows() - - def __addReply(self, reply): - """ - Private slot to add the reply data to the model. - - @param reply reference to the network reply object - @type QNetworkReply - """ - offset = len(self.requests) - 1 - while offset >= 0: - if self.requests[offset].reply is reply: - break - offset -= 1 - if offset < 0: - return - - # save the reply header data - for header in reply.rawHeaderList(): - self.requests[offset].replyHeaders.append(( - str(header, "utf-8"), str(reply.rawHeader(header), "utf-8"))) - - # save reply info to be displayed - status = reply.attribute(QNetworkRequest.HttpStatusCodeAttribute) or 0 - reason = \ - reply.attribute(QNetworkRequest.HttpReasonPhraseAttribute) or "" - self.requests[offset].response = "{0:d} {1}".format(status, reason) - self.requests[offset].length = \ - reply.header(QNetworkRequest.ContentLengthHeader) - self.requests[offset].contentType = \ - reply.header(QNetworkRequest.ContentTypeHeader) - - if status == 302: - target = reply.attribute( - QNetworkRequest.RedirectionTargetAttribute) or QUrl() - self.requests[offset].info = \ - self.tr("Redirect: {0}").format(target.toString()) - - def headerData(self, section, orientation, role=Qt.DisplayRole): - """ - Public method to get header data from the model. - - @param section section number (integer) - @param orientation orientation (Qt.Orientation) - @param role role of the data to retrieve (integer) - @return requested data - """ - if orientation == Qt.Horizontal and role == Qt.DisplayRole: - return self.__headerData[section] - - return QAbstractTableModel.headerData(self, section, orientation, role) - - def data(self, index, role=Qt.DisplayRole): - """ - Public method to get data from the model. - - @param index index to get data for (QModelIndex) - @param role role of the data to retrieve (integer) - @return requested data - """ - if index.row() < 0 or index.row() >= len(self.requests): - return None - - if role == Qt.DisplayRole or role == Qt.EditRole: - col = index.column() - if col == 0: - try: - return self.__operations[self.requests[index.row()].op] - except KeyError: - return self.tr("Unknown") - elif col == 1: - return self.requests[index.row()].request.url().toEncoded() - elif col == 2: - return self.requests[index.row()].response - elif col == 3: - return self.requests[index.row()].length - elif col == 4: - return self.requests[index.row()].contentType - elif col == 5: - return self.requests[index.row()].info - - return None - - def columnCount(self, parent): - """ - Public method to get the number of columns of the model. - - @param parent parent index (QModelIndex) - @return number of columns (integer) - """ - if parent.column() > 0: - return 0 - else: - return len(self.__headerData) - - def rowCount(self, parent): - """ - Public method to get the number of rows of the model. - - @param parent parent index (QModelIndex) - @return number of columns (integer) - """ - if parent.isValid(): - return 0 - else: - return len(self.requests) - - def removeRows(self, row, count, parent): - """ - Public method to remove entries from the model. - - @param row start row (integer) - @param count number of rows to remove (integer) - @param parent parent index (QModelIndex) - @return flag indicating success (boolean) - """ - if parent.isValid(): - return False - - lastRow = row + count - 1 - self.beginRemoveRows(parent, row, lastRow) - del self.requests[row:lastRow + 1] - self.endRemoveRows() - return True
--- a/eric6/E5Network/E5NetworkMonitor.ui Sat Sep 21 15:37:43 2019 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,246 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<ui version="4.0"> - <class>E5NetworkMonitor</class> - <widget class="QDialog" name="E5NetworkMonitor"> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>800</width> - <height>600</height> - </rect> - </property> - <property name="windowTitle"> - <string>Network Monitor</string> - </property> - <property name="sizeGripEnabled"> - <bool>true</bool> - </property> - <layout class="QVBoxLayout" name="verticalLayout_3"> - <item> - <layout class="QHBoxLayout" name="horizontalLayout_2"> - <item> - <widget class="QLabel" name="label"> - <property name="text"> - <string>Network Requests</string> - </property> - </widget> - </item> - <item> - <spacer name="horizontalSpacer"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item> - <layout class="QHBoxLayout" name="horizontalLayout"> - <property name="spacing"> - <number>0</number> - </property> - <item> - <widget class="E5ClearableLineEdit" name="searchEdit"> - <property name="minimumSize"> - <size> - <width>350</width> - <height>0</height> - </size> - </property> - <property name="toolTip"> - <string>Enter search term for requests</string> - </property> - </widget> - </item> - </layout> - </item> - </layout> - </item> - <item> - <widget class="E5TableView" name="requestsList"> - <property name="alternatingRowColors"> - <bool>true</bool> - </property> - <property name="selectionBehavior"> - <enum>QAbstractItemView::SelectRows</enum> - </property> - <property name="showGrid"> - <bool>false</bool> - </property> - <property name="sortingEnabled"> - <bool>false</bool> - </property> - </widget> - </item> - <item> - <layout class="QHBoxLayout" name="horizontalLayout_3"> - <item> - <widget class="QPushButton" name="removeButton"> - <property name="toolTip"> - <string>Press to remove the selected requests</string> - </property> - <property name="text"> - <string>&Remove</string> - </property> - <property name="autoDefault"> - <bool>false</bool> - </property> - </widget> - </item> - <item> - <widget class="QPushButton" name="removeAllButton"> - <property name="toolTip"> - <string>Press to remove all requests</string> - </property> - <property name="text"> - <string>Remove &All</string> - </property> - <property name="autoDefault"> - <bool>false</bool> - </property> - </widget> - </item> - <item> - <spacer name="horizontalSpacer_2"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - </layout> - </item> - <item> - <widget class="QSplitter" name="splitter"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <widget class="QWidget" name="layoutWidget"> - <layout class="QVBoxLayout" name="verticalLayout"> - <item> - <widget class="QLabel" name="label_2"> - <property name="text"> - <string>Request Headers</string> - </property> - </widget> - </item> - <item> - <widget class="QTableView" name="requestHeadersList"> - <property name="alternatingRowColors"> - <bool>true</bool> - </property> - <property name="showGrid"> - <bool>false</bool> - </property> - <property name="sortingEnabled"> - <bool>false</bool> - </property> - </widget> - </item> - </layout> - </widget> - <widget class="QWidget" name="layoutWidget"> - <layout class="QVBoxLayout" name="verticalLayout_2"> - <item> - <widget class="QLabel" name="label_3"> - <property name="text"> - <string>Response Headers</string> - </property> - </widget> - </item> - <item> - <widget class="QTableView" name="responseHeadersList"> - <property name="alternatingRowColors"> - <bool>true</bool> - </property> - <property name="showGrid"> - <bool>false</bool> - </property> - <property name="sortingEnabled"> - <bool>false</bool> - </property> - </widget> - </item> - </layout> - </widget> - </widget> - </item> - <item> - <widget class="QDialogButtonBox" name="buttonBox"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="standardButtons"> - <set>QDialogButtonBox::Close</set> - </property> - </widget> - </item> - </layout> - </widget> - <customwidgets> - <customwidget> - <class>E5ClearableLineEdit</class> - <extends>QLineEdit</extends> - <header>E5Gui/E5LineEdit.h</header> - </customwidget> - <customwidget> - <class>E5TableView</class> - <extends>QTableView</extends> - <header>E5Gui/E5TableView.h</header> - </customwidget> - </customwidgets> - <tabstops> - <tabstop>searchEdit</tabstop> - <tabstop>requestsList</tabstop> - <tabstop>removeButton</tabstop> - <tabstop>removeAllButton</tabstop> - <tabstop>requestHeadersList</tabstop> - <tabstop>responseHeadersList</tabstop> - <tabstop>buttonBox</tabstop> - </tabstops> - <resources/> - <connections> - <connection> - <sender>buttonBox</sender> - <signal>accepted()</signal> - <receiver>E5NetworkMonitor</receiver> - <slot>accept()</slot> - <hints> - <hint type="sourcelabel"> - <x>252</x> - <y>595</y> - </hint> - <hint type="destinationlabel"> - <x>157</x> - <y>274</y> - </hint> - </hints> - </connection> - <connection> - <sender>buttonBox</sender> - <signal>rejected()</signal> - <receiver>E5NetworkMonitor</receiver> - <slot>reject()</slot> - <hints> - <hint type="sourcelabel"> - <x>320</x> - <y>595</y> - </hint> - <hint type="destinationlabel"> - <x>286</x> - <y>274</y> - </hint> - </hints> - </connection> - </connections> -</ui>
--- a/eric6/E5Network/E5NetworkProxyFactory.py Sat Sep 21 15:37:43 2019 +0200 +++ b/eric6/E5Network/E5NetworkProxyFactory.py Sat Sep 21 16:04:17 2019 +0200 @@ -12,8 +12,9 @@ from PyQt5.QtCore import Qt, QUrl, QCoreApplication, QRegExp from PyQt5.QtWidgets import QDialog -from PyQt5.QtNetwork import QNetworkProxyFactory, QNetworkProxy, \ - QNetworkProxyQuery +from PyQt5.QtNetwork import ( + QNetworkProxyFactory, QNetworkProxy, QNetworkProxyQuery +) from E5Gui import E5MessageBox @@ -50,8 +51,8 @@ """ info = QCoreApplication.translate( "E5NetworkProxyFactory", - "<b>Connect to proxy '{0}' using:</b>")\ - .format(Utilities.html_encode(proxy.hostName())) + "<b>Connect to proxy '{0}' using:</b>" + ).format(Utilities.html_encode(proxy.hostName())) from UI.AuthenticationDialog import AuthenticationDialog dlg = AuthenticationDialog(info, proxy.user(), True) @@ -156,8 +157,10 @@ @param query reference to the query object (QNetworkProxyQuery) @return list of proxies in order of preference (list of QNetworkProxy) """ - if query.queryType() == QNetworkProxyQuery.UrlRequest and \ - query.protocolTag() in ["http", "https", "ftp"]: + if ( + query.queryType() == QNetworkProxyQuery.UrlRequest and + query.protocolTag() in ["http", "https", "ftp"] + ): # use proxy at all ? if not Preferences.getUI("UseProxy"): return [QNetworkProxy(QNetworkProxy.NoProxy)] @@ -174,16 +177,21 @@ # determine proxy if Preferences.getUI("UseSystemProxy"): proxyList = QNetworkProxyFactory.systemProxyForQuery(query) - if not Globals.isWindowsPlatform() and \ - len(proxyList) == 1 and \ - proxyList[0].type() == QNetworkProxy.NoProxy: + if ( + not Globals.isWindowsPlatform() and + len(proxyList) == 1 and + proxyList[0].type() == QNetworkProxy.NoProxy + ): # try it the Python way # scan the environment for variables named <scheme>_proxy # scan over whole environment to make this case insensitive for name, value in os.environ.items(): name = name.lower() - if value and name[-6:] == '_proxy' and \ - name[:-6] == query.protocolTag().lower(): + if ( + value and + name[-6:] == '_proxy' and + name[:-6] == query.protocolTag().lower() + ): url = QUrl(value) if url.scheme() in ["http", "https"]: proxyType = QNetworkProxy.HttpProxy
--- a/eric6/E5Network/E5RFC6266.py Sat Sep 21 15:37:43 2019 +0200 +++ b/eric6/E5Network/E5RFC6266.py Sat Sep 21 16:04:17 2019 +0200 @@ -226,8 +226,9 @@ if 'filename*' in self.assocs: param = self.assocs['filename*'] assert isinstance(param, ExtDispositionParm) - self.assocs['filename*'] = \ + self.assocs['filename*'] = ( parse_ext_value(param.value).string + ) def filename(self): """
--- a/eric6/E5Network/E5SslCertificateSelectionDialog.py Sat Sep 21 15:37:43 2019 +0200 +++ b/eric6/E5Network/E5SslCertificateSelectionDialog.py Sat Sep 21 16:04:17 2019 +0200 @@ -15,8 +15,9 @@ except ImportError: pass -from .Ui_E5SslCertificateSelectionDialog import \ +from .Ui_E5SslCertificateSelectionDialog import ( Ui_E5SslCertificateSelectionDialog +) import Utilities import UI.PixmapCache @@ -100,8 +101,10 @@ """ Private slot to handle the selection of an item. """ - enable = len(self.certificatesTree.selectedItems()) > 0 and \ + enable = ( + len(self.certificatesTree.selectedItems()) > 0 and self.certificatesTree.selectedItems()[0].parent() is not None + ) self.buttonBox.button(QDialogButtonBox.OK).setEnabled(enable) self.viewButton.setEnabled(enable) @@ -111,8 +114,9 @@ Private slot to show data of the selected certificate. """ try: - from E5Network.E5SslCertificatesInfoDialog import \ + from E5Network.E5SslCertificatesInfoDialog import ( E5SslCertificatesInfoDialog + ) cert = QSslCertificate.fromData( self.certificatesTree.selectedItems()[0].data( 0, self.CertRole)) @@ -128,8 +132,10 @@ @return selected certificate @rtype QSslCertificate """ - valid = len(self.certificatesTree.selectedItems()) > 0 and \ + valid = ( + len(self.certificatesTree.selectedItems()) > 0 and self.certificatesTree.selectedItems()[0].parent() is not None + ) if valid: certificate = QSslCertificate.fromData(
--- a/eric6/E5Network/E5SslCertificatesDialog.py Sat Sep 21 15:37:43 2019 +0200 +++ b/eric6/E5Network/E5SslCertificatesDialog.py Sat Sep 21 16:04:17 2019 +0200 @@ -8,12 +8,14 @@ """ -from PyQt5.QtCore import pyqtSlot, Qt, QByteArray, QFile, QFileInfo, \ - QIODevice +from PyQt5.QtCore import ( + pyqtSlot, Qt, QByteArray, QFile, QFileInfo, QIODevice +) from PyQt5.QtWidgets import QDialog, QTreeWidgetItem try: - from PyQt5.QtNetwork import QSslCertificate, QSslSocket, \ - QSslConfiguration, QSsl + from PyQt5.QtNetwork import ( + QSslCertificate, QSslSocket, QSslConfiguration, QSsl + ) except ImportError: pass @@ -129,8 +131,9 @@ Private slot to show data of the selected server certificate. """ try: - from E5Network.E5SslCertificatesInfoDialog import \ + from E5Network.E5SslCertificatesInfoDialog import ( E5SslCertificatesInfoDialog + ) cert = QSslCertificate.fromData( self.serversCertificatesTree.currentItem().data( 0, self.CertRole)) @@ -238,8 +241,10 @@ """ cert = self.serversCertificatesTree.currentItem().data( 0, self.CertRole) - fname = self.serversCertificatesTree.currentItem().text(0)\ - .replace(" ", "").replace("\t", "") + fname = ( + self.serversCertificatesTree.currentItem().text(0).replace(" ", "") + .replace("\t", "") + ) self.__exportCertificate(fname, cert) def __updateDefaultConfiguration(self): @@ -331,8 +336,9 @@ Private slot to show data of the selected CA certificate. """ try: - from E5Network.E5SslCertificatesInfoDialog import \ + from E5Network.E5SslCertificatesInfoDialog import ( E5SslCertificatesInfoDialog + ) cert = QSslCertificate.fromData( self.caCertificatesTree.currentItem().data(0, self.CertRole)) dlg = E5SslCertificatesInfoDialog(cert, self) @@ -418,8 +424,10 @@ Private slot to export the selected CA certificate. """ cert = self.caCertificatesTree.currentItem().data(0, self.CertRole) - fname = self.caCertificatesTree.currentItem().text(0)\ - .replace(" ", "").replace("\t", "") + fname = ( + self.caCertificatesTree.currentItem().text(0).replace(" ", "") + .replace("\t", "") + ) self.__exportCertificate(fname, cert) def __exportCertificate(self, name, cert):
--- a/eric6/E5Network/E5SslErrorHandler.py Sat Sep 21 15:37:43 2019 +0200 +++ b/eric6/E5Network/E5SslErrorHandler.py Sat Sep 21 16:04:17 2019 +0200 @@ -11,8 +11,9 @@ import platform from PyQt5.QtCore import QObject, QByteArray -from PyQt5.QtNetwork import QSslCertificate, QSslConfiguration, QSslSocket, \ - QSslError, QSsl +from PyQt5.QtNetwork import ( + QSslCertificate, QSslConfiguration, QSslSocket, QSslError, QSsl +) from E5Gui import E5MessageBox @@ -207,24 +208,45 @@ """ result = "<p>" - result += self.tr("Name: {0}")\ - .format(Utilities.html_encode(Utilities.decodeString( - ", ".join(cert.subjectInfo(QSslCertificate.CommonName))))) + result += self.tr( + "Name: {0}" + ).format( + Utilities.html_encode( + Utilities.decodeString( + ", ".join(cert.subjectInfo(QSslCertificate.CommonName)) + ) + ) + ) - result += self.tr("<br/>Organization: {0}")\ - .format(Utilities.html_encode(Utilities.decodeString( - ", ".join(cert.subjectInfo( - QSslCertificate.Organization))))) + result += self.tr( + "<br/>Organization: {0}" + ).format( + Utilities.html_encode( + Utilities.decodeString( + ", ".join(cert.subjectInfo(QSslCertificate.Organization)) + ) + ) + ) - result += self.tr("<br/>Issuer: {0}")\ - .format(Utilities.html_encode(Utilities.decodeString( - ", ".join(cert.issuerInfo(QSslCertificate.CommonName))))) + result += self.tr( + "<br/>Issuer: {0}" + ).format( + Utilities.html_encode( + Utilities.decodeString( + ", ".join(cert.issuerInfo(QSslCertificate.CommonName)) + ) + ) + ) result += self.tr( - "<br/>Not valid before: {0}<br/>Valid Until: {1}")\ - .format(Utilities.html_encode( - cert.effectiveDate().toString("yyyy-MM-dd")), - Utilities.html_encode( - cert.expiryDate().toString("yyyy-MM-dd"))) + "<br/>Not valid before: {0}<br/>Valid Until: {1}" + ).format( + Utilities.html_encode( + cert.effectiveDate().toString("yyyy-MM-dd") + ), + Utilities.html_encode( + cert.expiryDate().toString("yyyy-MM-dd") + ) + ) result += "</p>"
--- a/eric6/E5Network/E5TldExtractor.py Sat Sep 21 15:37:43 2019 +0200 +++ b/eric6/E5Network/E5TldExtractor.py Sat Sep 21 16:04:17 2019 +0200 @@ -273,16 +273,18 @@ parsedDataFileExist = False for path in self.__dataSearchPaths: - dataFileName = QFileInfo(path + "/effective_tld_names.dat")\ - .absoluteFilePath() + dataFileName = ( + QFileInfo(path + "/effective_tld_names.dat").absoluteFilePath() + ) if QFileInfo(dataFileName).exists(): parsedDataFileExist = True break if not parsedDataFileExist: - tldDataFileDownloadLink = \ - "http://mxr.mozilla.org/mozilla-central/source/netwerk/dns/" \ + tldDataFileDownloadLink = ( + "http://mxr.mozilla.org/mozilla-central/source/netwerk/dns/" "effective_tld_names.dat?raw=1" + ) E5MessageBox.information( None, self.tr("TLD Data File not found"), @@ -336,8 +338,10 @@ if "===END PRIVATE DOMAINS===" in line: seekToEndOfPrivateDomains = False - if not loadPrivateDomains and \ - "===BEGIN PRIVATE DOMAINS===" in line: + if ( + not loadPrivateDomains and + "===BEGIN PRIVATE DOMAINS===" in line + ): seekToEndOfPrivateDomains = True continue @@ -449,16 +453,18 @@ testDataFileExist = False for path in self.__dataSearchPaths: - testDataFileName = QFileInfo(path + "/test_psl.txt")\ - .absoluteFilePath() + testDataFileName = ( + QFileInfo(path + "/test_psl.txt").absoluteFilePath() + ) if QFileInfo(testDataFileName).exists(): testDataFileExist = True break if not testDataFileExist: - testFileDownloadLink = \ - "http://mxr.mozilla.org/mozilla-central/source/netwerk/test/" \ + testFileDownloadLink = ( + "http://mxr.mozilla.org/mozilla-central/source/netwerk/test/" "unit/data/test_psl.txt?raw=1" + ) E5MessageBox.information( None, self.tr("TLD Data File not found"),
--- a/eric6/E5Network/E5XmlRpcClient.py Sat Sep 21 15:37:43 2019 +0200 +++ b/eric6/E5Network/E5XmlRpcClient.py Sat Sep 21 16:04:17 2019 +0200 @@ -11,8 +11,9 @@ import xmlrpc.client as xmlrpc from PyQt5.QtCore import QObject, QUrl, QByteArray -from PyQt5.QtNetwork import QNetworkAccessManager, \ - QNetworkRequest, QNetworkReply +from PyQt5.QtNetwork import ( + QNetworkAccessManager, QNetworkRequest, QNetworkReply +) from E5Network.E5NetworkProxyFactory import proxyAuthenticationRequired try:
--- a/eric6/E5Utilities/E5Cache.py Sat Sep 21 15:37:43 2019 +0200 +++ b/eric6/E5Utilities/E5Cache.py Sat Sep 21 16:04:17 2019 +0200 @@ -58,8 +58,8 @@ Private method to adjust the cache to its size. """ if self.__size: - removeList, self.__keyList = \ - self.__keyList[:-self.__size], self.__keyList[-self.__size:] + removeList = self.__keyList[:-self.__size] + self.__keyList = self.__keyList[-self.__size:] for key in removeList: del self.__store[key] del self.__accesStore[key]
--- a/eric6/E5XML/DebuggerPropertiesReader.py Sat Sep 21 15:37:43 2019 +0200 +++ b/eric6/E5XML/DebuggerPropertiesReader.py Sat Sep 21 16:04:17 2019 +0200 @@ -49,34 +49,42 @@ if self.version not in self.supportedVersions: self.raiseUnsupportedFormatVersion(self.version) elif self.name() == "VirtualEnv": - self.project.debugProperties["VIRTUALENV"] = \ + self.project.debugProperties["VIRTUALENV"] = ( self.readElementText() + ) elif self.name() == "Interpreter": # just read this obsolete entry and ignore it self.readElementText() elif self.name() == "DebugClient": - self.project.debugProperties["DEBUGCLIENT"] = \ + self.project.debugProperties["DEBUGCLIENT"] = ( self.readElementText() + ) elif self.name() == "Environment": - self.project.debugProperties["ENVIRONMENTOVERRIDE"] = \ + self.project.debugProperties["ENVIRONMENTOVERRIDE"] = ( int(self.attribute("override", "0")) - self.project.debugProperties["ENVIRONMENTSTRING"] = \ + ) + self.project.debugProperties["ENVIRONMENTSTRING"] = ( self.readElementText() + ) elif self.name() == "RemoteDebugger": self.__readRemoteDebugger() elif self.name() == "PathTranslation": self.__readPathTranslation() elif self.name() == "ConsoleDebugger": - self.project.debugProperties["CONSOLEDEBUGGER"] = \ + self.project.debugProperties["CONSOLEDEBUGGER"] = ( int(self.attribute("on", "0")) - self.project.debugProperties["CONSOLECOMMAND"] = \ + ) + self.project.debugProperties["CONSOLECOMMAND"] = ( self.readElementText() + ) elif self.name() == "Redirect": - self.project.debugProperties["REDIRECT"] = \ + self.project.debugProperties["REDIRECT"] = ( int(self.attribute("on", "1")) + ) elif self.name() == "Noencoding": - self.project.debugProperties["NOENCODING"] = \ + self.project.debugProperties["NOENCODING"] = ( int(self.attribute("on", "0")) + ) else: self.raiseUnexpectedStartTag(self.name()) @@ -97,11 +105,13 @@ if self.isStartElement(): if self.name() == "RemoteHost": - self.project.debugProperties["REMOTEHOST"] = \ + self.project.debugProperties["REMOTEHOST"] = ( self.readElementText() + ) elif self.name() == "RemoteCommand": - self.project.debugProperties["REMOTECOMMAND"] = \ + self.project.debugProperties["REMOTECOMMAND"] = ( self.readElementText() + ) else: self.raiseUnexpectedStartTag(self.name()) @@ -119,10 +129,12 @@ if self.isStartElement(): if self.name() == "RemotePath": - self.project.debugProperties["REMOTEPATH"] = \ + self.project.debugProperties["REMOTEPATH"] = ( self.readElementText() + ) elif self.name() == "LocalPath": - self.project.debugProperties["LOCALPATH"] = \ + self.project.debugProperties["LOCALPATH"] = ( self.readElementText() + ) else: self.raiseUnexpectedStartTag(self.name())
--- a/eric6/E5XML/PluginRepositoryReader.py Sat Sep 21 15:37:43 2019 +0200 +++ b/eric6/E5XML/PluginRepositoryReader.py Sat Sep 21 16:04:17 2019 +0200 @@ -88,8 +88,9 @@ pluginInfo["short"] = self.readElementText() elif self.name() == "Description": txt = self.readElementText() - pluginInfo["description"] = \ - [line.strip() for line in txt.splitlines()] + pluginInfo["description"] = [ + line.strip() for line in txt.splitlines() + ] elif self.name() == "Url": pluginInfo["url"] = self.readElementText() elif self.name() == "Author":
--- a/eric6/E5XML/ProjectReader.py Sat Sep 21 15:37:43 2019 +0200 +++ b/eric6/E5XML/ProjectReader.py Sat Sep 21 16:04:17 2019 +0200 @@ -44,24 +44,28 @@ self.readNext() if self.isStartElement(): if self.name() == "Project": - self.version = \ - self.attribute("version", projectFileFormatVersion) + self.version = self.attribute( + "version", projectFileFormatVersion) if self.version not in self.supportedVersions: self.raiseUnsupportedFormatVersion(self.version) elif self.name() == "Language": - self.project.pdata["SPELLLANGUAGE"] = \ + self.project.pdata["SPELLLANGUAGE"] = ( self.readElementText() + ) elif self.name() == "ProjectWordList": - self.project.pdata["SPELLWORDS"] = \ + self.project.pdata["SPELLWORDS"] = ( Utilities.toNativeSeparators(self.readElementText()) + ) elif self.name() == "ProjectExcludeList": - self.project.pdata["SPELLEXCLUDES"] = \ + self.project.pdata["SPELLEXCLUDES"] = ( Utilities.toNativeSeparators(self.readElementText()) + ) elif self.name() == "Hash": self.project.pdata["HASH"] = self.readElementText() elif self.name() == "ProgLanguage": - self.project.pdata["MIXEDLANGUAGE"] = \ - int(self.attribute("mixed", "0")) + self.project.pdata["MIXEDLANGUAGE"] = int( + self.attribute("mixed", "0") + ) self.project.pdata["PROGLANGUAGE"] = self.readElementText() if self.project.pdata["PROGLANGUAGE"] == "Python": # convert Python to the more specific Python2 @@ -77,14 +81,17 @@ elif self.name() == "Email": self.project.pdata["EMAIL"] = self.readElementText() elif self.name() == "TranslationPattern": - self.project.pdata["TRANSLATIONPATTERN"] = \ + self.project.pdata["TRANSLATIONPATTERN"] = ( Utilities.toNativeSeparators(self.readElementText()) + ) elif self.name() == "TranslationsBinPath": - self.project.pdata["TRANSLATIONSBINPATH"] = \ + self.project.pdata["TRANSLATIONSBINPATH"] = ( Utilities.toNativeSeparators(self.readElementText()) + ) elif self.name() == "Eol": - self.project.pdata["EOL"] = \ - int(self.attribute("index", "0")) + self.project.pdata["EOL"] = int( + self.attribute("index", "0") + ) elif self.name() == "Sources": self.__readFiles("Sources", "Source", "SOURCES") elif self.name() == "Forms": @@ -105,8 +112,9 @@ elif self.name() == "Others": self.__readFiles("Others", "Other", "OTHERS") elif self.name() == "MainScript": - self.project.pdata["MAINSCRIPT"] = \ + self.project.pdata["MAINSCRIPT"] = ( Utilities.toNativeSeparators(self.readElementText()) + ) elif self.name() == "Vcs": self.__readVcs() elif self.name() == "FiletypeAssociations":
--- a/eric6/E5XML/ProjectWriter.py Sat Sep 21 15:37:43 2019 +0200 +++ b/eric6/E5XML/ProjectWriter.py Sat Sep 21 16:04:17 2019 +0200 @@ -13,9 +13,11 @@ from E5Gui.E5Application import e5App from .XMLStreamWriterBase import XMLStreamWriterBase -from .Config import projectFileFormatVersion, projectFileFormatVersionUic, \ - projectFileFormatVersionIdl, projectFileFormatVersionMake, \ +from .Config import ( + projectFileFormatVersion, projectFileFormatVersionUic, + projectFileFormatVersionIdl, projectFileFormatVersionMake, projectFileFormatVersionProto, projectFileFormatVersionAlt +) import Preferences import Utilities
--- a/eric6/E5XML/SessionReader.py Sat Sep 21 15:37:43 2019 +0200 +++ b/eric6/E5XML/SessionReader.py Sat Sep 21 16:04:17 2019 +0200 @@ -395,8 +395,8 @@ while not self.atEnd(): self.readNext() if self.isEndElement() and self.name() == "ProjectBrowserState": - projectBrowser = \ - self.projectBrowser.getProjectBrowser(browserName) + projectBrowser = self.projectBrowser.getProjectBrowser( + browserName) if projectBrowser is not None: projectBrowser.expandItemsByName(expandedNames) break
--- a/eric6/E5XML/SessionWriter.py Sat Sep 21 15:37:43 2019 +0200 +++ b/eric6/E5XML/SessionWriter.py Sat Sep 21 16:04:17 2019 +0200 @@ -127,8 +127,9 @@ self.writeStartElement("Breakpoints") for row in range(bpModel.rowCount()): index = bpModel.index(row, 0) - fname, lineno, cond, temp, enabled, count = \ + fname, lineno, cond, temp, enabled, count = ( bpModel.getBreakPointByIndex(index)[:6] + ) if isGlobal or allBreaks or fname in projectFiles: self.writeStartElement("Breakpoint") self.writeTextElement("BpFilename", fname) @@ -149,8 +150,9 @@ wpModel = self.dbs.getWatchPointModel() for row in range(wpModel.rowCount()): index = wpModel.index(row, 0) - cond, special, temp, enabled, count = \ + cond, special, temp, enabled, count = ( wpModel.getWatchPointByIndex(index)[:5] + ) self.writeStartElement("Watchexpression") self.writeTextElement("Condition", str(cond)) self.writeEmptyElement("Temporary") @@ -243,8 +245,8 @@ self.writeStartElement("ProjectBrowserState") self.writeAttribute("name", browserName) # get the names of expanded files and directories - names = self.projectBrowser\ - .getProjectBrowser(browserName).getExpandedItemNames() + names = self.projectBrowser.getProjectBrowser( + browserName).getExpandedItemNames() for name in names: self.writeTextElement("ExpandedItemName", name) self.writeEndElement()
--- a/eric6/E5XML/TasksReader.py Sat Sep 21 15:37:43 2019 +0200 +++ b/eric6/E5XML/TasksReader.py Sat Sep 21 16:04:17 2019 +0200 @@ -132,8 +132,9 @@ elif self.name() == "Resource": continue # handle but ignore this tag elif self.name() == "Filename": - task["filename"] = \ - Utilities.toNativeSeparators(self.readElementText()) + task["filename"] = Utilities.toNativeSeparators( + self.readElementText() + ) elif self.name() == "Linenumber": try: task["linenumber"] = int(self.readElementText())
--- a/eric6/E5XML/TemplatesReader.py Sat Sep 21 15:37:43 2019 +0200 +++ b/eric6/E5XML/TemplatesReader.py Sat Sep 21 16:04:17 2019 +0200 @@ -80,9 +80,11 @@ while not self.atEnd(): self.readNext() - if self.isEndElement() and \ - self.name() == "Template" and \ - templateName: + if ( + self.isEndElement() and + self.name() == "Template" and + templateName + ): self.__viewer.addEntry(self.groupName, templateName, templateDescription, templateText, quiet=True)
--- a/eric6/E5XML/XMLStreamReaderBase.py Sat Sep 21 15:37:43 2019 +0200 +++ b/eric6/E5XML/XMLStreamReaderBase.py Sat Sep 21 16:04:17 2019 +0200 @@ -283,9 +283,11 @@ li = [] while not self.atEnd(): val = self._readBasics() - if self.isEndElement() and \ - self.name() == "frozenset" and \ - val is None: + if ( + self.isEndElement() and + self.name() == "frozenset" and + val is None + ): return frozenset(li) else: li.append(val)
--- a/eric6/E5XML/XMLStreamWriterBase.py Sat Sep 21 15:37:43 2019 +0200 +++ b/eric6/E5XML/XMLStreamWriterBase.py Sat Sep 21 16:04:17 2019 +0200 @@ -69,8 +69,10 @@ @param pyobject object to be dumped """ - writeMethod = self.basics.get(type(pyobject)) or \ + writeMethod = ( + self.basics.get(type(pyobject)) or self._write_unimplemented + ) writeMethod(pyobject) ###########################################################################
--- a/eric6/Globals/__init__.py Sat Sep 21 15:37:43 2019 +0200 +++ b/eric6/Globals/__init__.py Sat Sep 21 16:04:17 2019 +0200 @@ -17,8 +17,10 @@ import re import shutil -from PyQt5.QtCore import QDir, QLibraryInfo, QByteArray, QCoreApplication, \ - QT_VERSION_STR, QT_VERSION, QProcess, qVersion +from PyQt5.QtCore import ( + QDir, QLibraryInfo, QByteArray, QCoreApplication, QT_VERSION_STR, + QT_VERSION, QProcess, qVersion +) # names of the various settings objects settingsNameOrganization = "Eric6" @@ -114,9 +116,11 @@ isKDE = False - desktop = os.environ.get("XDG_CURRENT_DESKTOP", "").lower() or \ - os.environ.get("XDG_SESSION_DESKTOP", "").lower() or \ + desktop = ( + os.environ.get("XDG_CURRENT_DESKTOP", "").lower() or + os.environ.get("XDG_SESSION_DESKTOP", "").lower() or os.environ.get("DESKTOP_SESSION", "").lower() + ) if desktop: isKDE = "kde" in desktop or "plasma" in desktop else: @@ -137,9 +141,11 @@ isGnome = False - desktop = os.environ.get("XDG_CURRENT_DESKTOP", "").lower() or \ - os.environ.get("XDG_SESSION_DESKTOP", "").lower() or \ + desktop = ( + os.environ.get("XDG_CURRENT_DESKTOP", "").lower() or + os.environ.get("XDG_SESSION_DESKTOP", "").lower() or os.environ.get("GDMSESSION", "").lower() + ) if desktop: isGnome = "gnome" in desktop else: