9214
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1
|
# -*- coding: utf-8 -*- |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
3
|
# Copyright (c) 2022 Detlev Offenbach <detlev@die-offenbachs.de> |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4
|
# |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7
|
Module implementing a dialog showing the code formatting progress and the result. |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10
|
import copy |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
11
|
import datetime |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
12
|
import pathlib |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
13
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14
|
import black |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16
|
from PyQt6.QtCore import pyqtSlot, Qt, QCoreApplication |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17
|
from PyQt6.QtWidgets import ( |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18
|
QAbstractButton, |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19
|
QDialog, |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20
|
QDialogButtonBox, |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21
|
QHeaderView, |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22
|
QTreeWidgetItem |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23
|
) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25
|
from EricWidgets import EricMessageBox |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27
|
from .Ui_BlackFormattingDialog import Ui_BlackFormattingDialog |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29
|
from . import BlackUtilities |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30
|
from .BlackDiffWidget import BlackDiffWidget |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31
|
from .BlackFormattingAction import BlackFormattingAction |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33
|
import Utilities |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36
|
class BlackFormattingDialog(QDialog, Ui_BlackFormattingDialog): |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38
|
Class implementing a dialog showing the code formatting progress and the result. |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40
|
DataTypeRole = Qt.ItemDataRole.UserRole |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41
|
DataRole = Qt.ItemDataRole.UserRole + 1 |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43
|
def __init__(self, configuration, filesList, project=None, |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44
|
action=BlackFormattingAction.Format, parent=None): |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46
|
Constructor |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48
|
@param configuration dictionary containing the configuration parameters |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49
|
@type dict |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50
|
@param filesList list of absolute file paths to be processed |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51
|
@type list of str |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52
|
@param project reference to the project object (defaults to None) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53
|
@type Project (optional) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54
|
@param action action to be performed (defaults to BlackFormattingAction.Format) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55
|
@type BlackFormattingAction (optional) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56
|
@param parent reference to the parent widget (defaults to None) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57
|
@type QWidget (optional) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59
|
super().__init__(parent) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60
|
self.setupUi(self) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62
|
self.progressBar.setMaximum(len(filesList)) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63
|
self.progressBar.setValue(0) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
65
|
self.resultsList.header().setSortIndicator(1, Qt.SortOrder.AscendingOrder) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
66
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
67
|
self.__report = BlackReport(self) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
68
|
self.__report.check = action is BlackFormattingAction.Check |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69
|
self.__report.diff = action is BlackFormattingAction.Diff |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
70
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
71
|
self.__config = copy.deepcopy(configuration) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
72
|
self.__project = project |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73
|
self.__action = action |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
75
|
self.__cancelled = False |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
76
|
self.__diffDialog = None |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
77
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
78
|
self.buttonBox.button(QDialogButtonBox.StandardButton.Cancel).setEnabled(True) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
79
|
self.buttonBox.button(QDialogButtonBox.StandardButton.Close).setEnabled(False) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
80
|
self.buttonBox.button(QDialogButtonBox.StandardButton.Cancel).setDefault(True) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
81
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
82
|
self.show() |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
83
|
QCoreApplication.processEvents() |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
84
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
85
|
self.__files = self.__filterFiles(filesList) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
86
|
self.__formatFiles() |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
87
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
88
|
def __filterFiles(self, filesList): |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
89
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
90
|
Private method to filter the given list of files according the |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
91
|
configuration parameters. |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
92
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
93
|
@param filesList list of files |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
94
|
@type list of str |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
95
|
@return list of filtered files |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
96
|
@rtype list of str |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
97
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
98
|
filterRegExps = [ |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
99
|
BlackUtilities.compileRegExp(self.__config[k]) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
100
|
for k in ["force-exclude", "extend-exclude", "exclude"] |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
101
|
if k in self.__config and bool(self.__config[k]) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
102
|
and BlackUtilities.validateRegExp(self.__config[k])[0] |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
103
|
] |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
104
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
105
|
files = [] |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
106
|
for file in filesList: |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
107
|
file = Utilities.fromNativeSeparators(file) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
108
|
for filterRegExp in filterRegExps: |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
109
|
filterMatch = filterRegExp.search(file) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
110
|
if filterMatch and filterMatch.group(0): |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
111
|
self.__report.path_ignored(file) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
112
|
break |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
113
|
else: |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
114
|
files.append(file) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
115
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
116
|
return files |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
117
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
118
|
def __resort(self): |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
119
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
120
|
Private method to resort the result list. |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
121
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
122
|
self.resultsList.sortItems( |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
123
|
self.resultsList.sortColumn(), |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
124
|
self.resultsList.header().sortIndicatorOrder()) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
125
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
126
|
def __resizeColumns(self): |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
127
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
128
|
Private method to resize the columns of the result list. |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
129
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
130
|
self.resultsList.header().resizeSections( |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
131
|
QHeaderView.ResizeMode.ResizeToContents) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
132
|
self.resultsList.header().setStretchLastSection(True) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
133
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
134
|
def __finish(self): |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
135
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
136
|
Private method to perform some actions after the run was performed or canceled. |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
137
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
138
|
self.__resort() |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
139
|
self.__resizeColumns() |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
140
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
141
|
self.buttonBox.button(QDialogButtonBox.StandardButton.Cancel).setEnabled(False) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
142
|
self.buttonBox.button(QDialogButtonBox.StandardButton.Close).setEnabled(True) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
143
|
self.buttonBox.button(QDialogButtonBox.StandardButton.Close).setDefault(True) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
144
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
145
|
self.progressBar.setVisible(False) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
146
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
147
|
self.__updateStatistics() |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
148
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
149
|
def __updateStatistics(self): |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
150
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
151
|
Private method to update the statistics about the recent formatting run. |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
152
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
153
|
self.reformattedLabel.setText( |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
154
|
self.tr("reformatted") |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
155
|
if self.__action is BlackFormattingAction.Format else |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
156
|
self.tr("would reformat") |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
157
|
) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
158
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
159
|
total = self.progressBar.maximum() |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
160
|
processed = total - self.__report.ignored_count |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
161
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
162
|
self.totalCountLabel.setText("{0:n}".format(total)) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
163
|
self.excludedCountLabel.setText("{0:n}".format(self.__report.ignored_count)) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
164
|
self.failuresCountLabel.setText("{0:n}".format(self.__report.failure_count)) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
165
|
self.processedCountLabel.setText("{0:n}".format(processed)) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
166
|
self.reformattedCountLabel.setText("{0:n}".format(self.__report.change_count)) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
167
|
self.unchangedCountLabel.setText("{0:n}".format(self.__report.same_count)) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
168
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
169
|
@pyqtSlot(QAbstractButton) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
170
|
def on_buttonBox_clicked(self, button): |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
171
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
172
|
Private slot to handle button presses of the dialog buttons. |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
173
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
174
|
@param button reference to the pressed button |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
175
|
@type QAbstractButton |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
176
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
177
|
if button == self.buttonBox.button(QDialogButtonBox.StandardButton.Cancel): |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
178
|
self.__cancelled = True |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
179
|
elif button == self.buttonBox.button(QDialogButtonBox.StandardButton.Close): |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
180
|
self.accept() |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
181
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
182
|
@pyqtSlot(QTreeWidgetItem, int) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
183
|
def on_resultsList_itemDoubleClicked(self, item, column): |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
184
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
185
|
Private slot handling a double click of a result item. |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
186
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
187
|
@param item reference to the double clicked item |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
188
|
@type QTreeWidgetItem |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
189
|
@param column column number that was double clicked |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
190
|
@type int |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
191
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
192
|
dataType = item.data(0, BlackFormattingDialog.DataTypeRole) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
193
|
if dataType == "error": |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
194
|
EricMessageBox.critical( |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
195
|
self, |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
196
|
self.tr("Formatting Failure"), |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
197
|
self.tr( |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
198
|
"<p>Formatting failed due to this error.</p><p>{0}</p>" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
199
|
).format(item.data(0, BlackFormattingDialog.DataRole)) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
200
|
) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
201
|
elif dataType == "diff": |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
202
|
if self.__diffDialog is None: |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
203
|
self.__diffDialog = BlackDiffWidget() |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
204
|
self.__diffDialog.showDiff(item.data(0, BlackFormattingDialog.DataRole)) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
205
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
206
|
def addResultEntry(self, status, fileName, isError=False, data=None): |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
207
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
208
|
Public method to add an entry to the result list. |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
209
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
210
|
@param status status of the operation |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
211
|
@type str |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
212
|
@param fileName name of the processed file |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
213
|
@type str |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
214
|
@param isError flag indicating that data contains an error message (defaults to |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
215
|
False) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
216
|
@type bool (optional) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
217
|
@param data associated data (diff or error message) (defaults to None) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
218
|
@type str (optional) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
219
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
220
|
if self.__project: |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
221
|
fileName = self.__project.getRelativePath(fileName) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
222
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
223
|
itm = QTreeWidgetItem(self.resultsList, [status, fileName]) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
224
|
if data: |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
225
|
itm.setData( |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
226
|
0, |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
227
|
BlackFormattingDialog.DataTypeRole, |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
228
|
"error" if isError else "diff" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
229
|
) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
230
|
itm.setData(0, BlackFormattingDialog.DataRole, data) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
231
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
232
|
self.progressBar.setValue(self.progressBar.value() + 1) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
233
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
234
|
QCoreApplication.processEvents() |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
235
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
236
|
def __formatFiles(self): |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
237
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
238
|
Private method to format the list of files according the configuration. |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
239
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
240
|
writeBack = black.WriteBack.from_configuration( |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
241
|
check=self.__action is BlackFormattingAction.Check, |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
242
|
diff=self.__action is BlackFormattingAction.Diff |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
243
|
) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
244
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
245
|
versions = ( |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
246
|
{ |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
247
|
black.TargetVersion[target.upper()] |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
248
|
for target in self.__config["target-version"] |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
249
|
} |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
250
|
if self.__config["target-version"] else |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
251
|
set() |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
252
|
) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
253
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
254
|
mode = black.Mode( |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
255
|
target_versions=versions, |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
256
|
line_length=int(self.__config["line-length"]), |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
257
|
string_normalization=not self.__config["skip-string-normalization"], |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
258
|
magic_trailing_comma=not self.__config["skip-magic-trailing-comma"] |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
259
|
) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
260
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
261
|
for file in self.__files: |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
262
|
if self.__action is BlackFormattingAction.Diff: |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
263
|
self.__diffFormatFile( |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
264
|
pathlib.Path(file), |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
265
|
fast=False, |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
266
|
mode=mode, |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
267
|
report=self.__report |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
268
|
) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
269
|
else: |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
270
|
black.reformat_one( |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
271
|
pathlib.Path(file), |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
272
|
fast=False, |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
273
|
write_back=writeBack, |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
274
|
mode=mode, |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
275
|
report=self.__report |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
276
|
) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
277
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
278
|
if self.__cancelled: |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
279
|
break |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
280
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
281
|
self.__finish() |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
282
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
283
|
def __diffFormatFile(self, src, fast, mode, report): |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
284
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
285
|
Private method to check, if the given files need to be reformatted, and generate |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
286
|
a unified diff. |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
287
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
288
|
@param src path of file to be checked |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
289
|
@type pathlib.Path |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
290
|
@param fast flag indicating fast operation |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
291
|
@type bool |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
292
|
@param mode code formatting options |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
293
|
@type black.Mode |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
294
|
@param report reference to the report object |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
295
|
@type BlackReport |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
296
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
297
|
then = datetime.datetime.utcfromtimestamp(src.stat().st_mtime) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
298
|
with open(src, "rb") as buf: |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
299
|
srcContents, _, _ = black.decode_bytes(buf.read()) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
300
|
try: |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
301
|
dstContents = black.format_file_contents(srcContents, fast=fast, mode=mode) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
302
|
except black.NothingChanged: |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
303
|
report.done(src, black.Changed.NO) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
304
|
return |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
305
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
306
|
fileName = str(src) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
307
|
if self.__project: |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
308
|
fileName = self.__project.getRelativePath(fileName) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
309
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
310
|
now = datetime.datetime.utcnow() |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
311
|
srcName = f"{fileName}\t{then} +0000" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
312
|
dstName = f"{fileName}\t{now} +0000" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
313
|
diffContents = black.diff(srcContents, dstContents, srcName, dstName) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
314
|
report.done(src, black.Changed.YES, diff=diffContents) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
315
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
316
|
def closeEvent(self, evt): |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
317
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
318
|
Protected slot implementing a close event handler. |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
319
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
320
|
@param evt reference to the close event |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
321
|
@type QCloseEvent |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
322
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
323
|
if self.__diffDialog is not None: |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
324
|
self.__diffDialog.close() |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
325
|
evt.accept() |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
326
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
327
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
328
|
class BlackReport(black.Report): |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
329
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
330
|
Class extending the black Report to work with our dialog. |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
331
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
332
|
def __init__(self, dialog): |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
333
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
334
|
Constructor |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
335
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
336
|
@param dialog reference to the result dialog |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
337
|
@type QDialog |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
338
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
339
|
super().__init__() |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
340
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
341
|
self.ignored_count = 0 |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
342
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
343
|
self.__dialog = dialog |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
344
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
345
|
def done(self, src, changed, diff=""): |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
346
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
347
|
Public method to handle the end of a reformat. |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
348
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
349
|
@param src name of the processed file |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
350
|
@type pathlib.Path |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
351
|
@param changed change status |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
352
|
@type black.Changed |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
353
|
@param diff unified diff of potential changes (defaults to "") |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
354
|
@type str |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
355
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
356
|
if changed is black.Changed.YES: |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
357
|
status = ( |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
358
|
QCoreApplication.translate("BlackFormattingDialog", "would reformat") |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
359
|
if self.check or self.diff else |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
360
|
QCoreApplication.translate("BlackFormattingDialog", "reformatted") |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
361
|
) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
362
|
self.change_count += 1 |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
363
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
364
|
elif changed is black.Changed.NO: |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
365
|
status = QCoreApplication.translate("BlackFormattingDialog", "unchanged") |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
366
|
self.same_count += 1 |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
367
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
368
|
elif changed is black.Changed.CACHED: |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
369
|
status = QCoreApplication.translate("BlackFormattingDialog", "unmodified") |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
370
|
self.same_count += 1 |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
371
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
372
|
if self.diff: |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
373
|
self.__dialog.addResultEntry(status, str(src), data=diff) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
374
|
else: |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
375
|
self.__dialog.addResultEntry(status, str(src)) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
376
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
377
|
def failed(self, src, message): |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
378
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
379
|
Public method to handle a reformat failure. |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
380
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
381
|
@param src name of the processed file |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
382
|
@type pathlib.Path |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
383
|
@param message error message |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
384
|
@type str |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
385
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
386
|
status = QCoreApplication.translate("BlackFormattingDialog", "failed") |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
387
|
self.failure_count += 1 |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
388
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
389
|
self.__dialog.addResultEntry(status, str(src), isError=True, data=message) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
390
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
391
|
def path_ignored(self, src, message=""): |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
392
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
393
|
Public method handling an ignored path. |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
394
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
395
|
@param src name of the processed file |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
396
|
@type pathlib.Path or str |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
397
|
@param message ignore message (default to "") |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
398
|
@type str (optional) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
399
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
400
|
status = QCoreApplication.translate("BlackFormattingDialog", "ignored") |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
401
|
self.ignored_count += 1 |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
402
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
403
|
self.__dialog.addResultEntry(status, str(src)) |