src/eric7/CodeFormatting/BlackFormattingDialog.py

Tue, 06 Dec 2022 17:42:24 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 06 Dec 2022 17:42:24 +0100
branch
eric7
changeset 9577
a0600d883f9e
parent 9473
3f23dbf37dbe
child 9624
b47dfa7a137d
permissions
-rw-r--r--

Corrected a little glitch in the BlackFormattingDialog widget.

9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3 # Copyright (c) 2022 Detlev Offenbach <detlev@die-offenbachs.de>
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
9453
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
7 Module implementing a dialog showing the Black code formatting progress and the results.
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 import copy
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11 import datetime
9283
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
12 import multiprocessing
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13 import pathlib
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14
9281
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
15 from dataclasses import dataclass
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
16
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17 import black
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9460
diff changeset
19 from PyQt6.QtCore import QCoreApplication, QObject, Qt, pyqtSignal, pyqtSlot
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 from PyQt6.QtWidgets import (
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 QAbstractButton,
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 QDialog,
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 QDialogButtonBox,
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 QHeaderView,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
25 QTreeWidgetItem,
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 )
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9460
diff changeset
28 from eric7 import Preferences, Utilities
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9360
diff changeset
29 from eric7.EricWidgets import EricMessageBox
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 from . import BlackUtilities
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9460
diff changeset
32 from .BlackFormattingAction import BlackFormattingAction
9453
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
33 from .FormattingDiffWidget import FormattingDiffWidget
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9460
diff changeset
34 from .Ui_BlackFormattingDialog import Ui_BlackFormattingDialog
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 class BlackFormattingDialog(QDialog, Ui_BlackFormattingDialog):
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 """
9453
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
39 Class implementing a dialog showing the Black code formatting progress and the
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
40 results.
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
42
9460
0d1b5d0fd815 Modified the Black and Isort dialogs such, that only files that need a change are processed after a diff or check run by pressing the relevant button.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9453
diff changeset
43 DataRole = Qt.ItemDataRole.UserRole
0d1b5d0fd815 Modified the Black and Isort dialogs such, that only files that need a change are processed after a diff or check run by pressing the relevant button.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9453
diff changeset
44 DataTypeRole = Qt.ItemDataRole.UserRole + 1
0d1b5d0fd815 Modified the Black and Isort dialogs such, that only files that need a change are processed after a diff or check run by pressing the relevant button.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9453
diff changeset
45 FileNameRole = Qt.ItemDataRole.UserRole + 2
0d1b5d0fd815 Modified the Black and Isort dialogs such, that only files that need a change are processed after a diff or check run by pressing the relevant button.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9453
diff changeset
46 StatusRole = Qt.ItemDataRole.UserRole + 3
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
47
9460
0d1b5d0fd815 Modified the Black and Isort dialogs such, that only files that need a change are processed after a diff or check run by pressing the relevant button.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9453
diff changeset
48 FileNameColumn = 1
9220
e9e7eca7efee Black Formatting Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
49 StatusColumn = 0
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
50
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
51 def __init__(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
52 self,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
53 configuration,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
54 filesList,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
55 project=None,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
56 action=BlackFormattingAction.Format,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
57 parent=None,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
58 ):
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 """
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 Constructor
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
61
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 @param configuration dictionary containing the configuration parameters
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 @type dict
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 @param filesList list of absolute file paths to be processed
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 @type list of str
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 @param project reference to the project object (defaults to None)
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 @type Project (optional)
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 @param action action to be performed (defaults to BlackFormattingAction.Format)
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 @type BlackFormattingAction (optional)
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 @param parent reference to the parent widget (defaults to None)
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 @type QWidget (optional)
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 """
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 super().__init__(parent)
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 self.setupUi(self)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
75
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 self.resultsList.header().setSortIndicator(1, Qt.SortOrder.AscendingOrder)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
77
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 self.__config = copy.deepcopy(configuration)
9283
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
79 self.__config["__action__"] = action # needed by the workers
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80 self.__project = project
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
81
9344
52990830b13f Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9292
diff changeset
82 self.__filesList = filesList[:]
52990830b13f Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9292
diff changeset
83
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 self.__diffDialog = None
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
85
9220
e9e7eca7efee Black Formatting Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
86 self.__allFilter = self.tr("<all>")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
87
9344
52990830b13f Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9292
diff changeset
88 self.__formatButton = self.buttonBox.addButton(
52990830b13f Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9292
diff changeset
89 self.tr("Format Code"), QDialogButtonBox.ButtonRole.ActionRole
52990830b13f Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9292
diff changeset
90 )
52990830b13f Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9292
diff changeset
91 self.__formatButton.setVisible(False)
52990830b13f Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9292
diff changeset
92
52990830b13f Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9292
diff changeset
93 self.show()
52990830b13f Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9292
diff changeset
94 QCoreApplication.processEvents()
52990830b13f Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9292
diff changeset
95
52990830b13f Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9292
diff changeset
96 self.__performAction()
52990830b13f Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9292
diff changeset
97
52990830b13f Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9292
diff changeset
98 def __performAction(self):
52990830b13f Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9292
diff changeset
99 """
9453
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
100 Private method to execute the requested formatting action.
9344
52990830b13f Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9292
diff changeset
101 """
9577
a0600d883f9e Corrected a little glitch in the BlackFormattingDialog widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
102 self.progressBar.setMaximum(len(self.__filesList))
9344
52990830b13f Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9292
diff changeset
103 self.progressBar.setValue(0)
9360
8b46571d9cc9 Forgot to make the progress bar of the formatting dialog visible again.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9348
diff changeset
104 self.progressBar.setVisible(True)
9344
52990830b13f Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9292
diff changeset
105
52990830b13f Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9292
diff changeset
106 self.statisticsGroup.setVisible(False)
52990830b13f Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9292
diff changeset
107 self.__statistics = BlackStatistics()
52990830b13f Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9292
diff changeset
108
52990830b13f Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9292
diff changeset
109 self.__cancelled = False
52990830b13f Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9292
diff changeset
110
52990830b13f Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9292
diff changeset
111 self.statusFilterComboBox.clear()
52990830b13f Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9292
diff changeset
112 self.resultsList.clear()
52990830b13f Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9292
diff changeset
113
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114 self.buttonBox.button(QDialogButtonBox.StandardButton.Cancel).setEnabled(True)
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115 self.buttonBox.button(QDialogButtonBox.StandardButton.Close).setEnabled(False)
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116 self.buttonBox.button(QDialogButtonBox.StandardButton.Cancel).setDefault(True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
117
9344
52990830b13f Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9292
diff changeset
118 files = self.__filterFiles(self.__filesList)
9283
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
119 if len(files) > 1:
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
120 self.__formatManyFiles(files)
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
121 elif len(files) == 1:
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
122 self.__formatOneFile(files[0])
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
123
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
124 def __filterFiles(self, filesList):
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
125 """
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
126 Private method to filter the given list of files according the
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
127 configuration parameters.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
128
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
129 @param filesList list of files
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
130 @type list of str
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
131 @return list of filtered files
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
132 @rtype list of str
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133 """
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
134 filterRegExps = [
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
135 BlackUtilities.compileRegExp(self.__config[k])
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
136 for k in ["force-exclude", "extend-exclude", "exclude"]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
137 if k in self.__config
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
138 and bool(self.__config[k])
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
139 and BlackUtilities.validateRegExp(self.__config[k])[0]
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
140 ]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
141
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
142 files = []
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
143 for file in filesList:
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
144 file = Utilities.fromNativeSeparators(file)
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
145 for filterRegExp in filterRegExps:
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
146 filterMatch = filterRegExp.search(file)
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
147 if filterMatch and filterMatch.group(0):
9283
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
148 self.__handleBlackFormattingResult("ignored", file, "")
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
149 break
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
150 else:
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
151 files.append(file)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
152
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
153 return files
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
154
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
155 def __resort(self):
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
156 """
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
157 Private method to resort the result list.
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
158 """
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
159 self.resultsList.sortItems(
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
160 self.resultsList.sortColumn(),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
161 self.resultsList.header().sortIndicatorOrder(),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
162 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
163
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
164 def __resizeColumns(self):
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
165 """
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
166 Private method to resize the columns of the result list.
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
167 """
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
168 self.resultsList.header().resizeSections(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
169 QHeaderView.ResizeMode.ResizeToContents
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
170 )
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
171 self.resultsList.header().setStretchLastSection(True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
172
9220
e9e7eca7efee Black Formatting Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
173 def __populateStatusFilterCombo(self):
e9e7eca7efee Black Formatting Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
174 """
e9e7eca7efee Black Formatting Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
175 Private method to populate the status filter combo box with allowed selections.
e9e7eca7efee Black Formatting Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
176 """
e9e7eca7efee Black Formatting Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
177 allowedSelections = set()
e9e7eca7efee Black Formatting Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
178 for row in range(self.resultsList.topLevelItemCount()):
e9e7eca7efee Black Formatting Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
179 allowedSelections.add(
e9e7eca7efee Black Formatting Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
180 self.resultsList.topLevelItem(row).text(
e9e7eca7efee Black Formatting Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
181 BlackFormattingDialog.StatusColumn
e9e7eca7efee Black Formatting Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
182 )
e9e7eca7efee Black Formatting Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
183 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
184
9220
e9e7eca7efee Black Formatting Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
185 self.statusFilterComboBox.addItem(self.__allFilter)
e9e7eca7efee Black Formatting Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
186 self.statusFilterComboBox.addItems(sorted(allowedSelections))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
187
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
188 def __finish(self):
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
189 """
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
190 Private method to perform some actions after the run was performed or canceled.
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
191 """
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
192 self.__resort()
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
193 self.__resizeColumns()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
194
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
195 self.buttonBox.button(QDialogButtonBox.StandardButton.Cancel).setEnabled(False)
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
196 self.buttonBox.button(QDialogButtonBox.StandardButton.Close).setEnabled(True)
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
197 self.buttonBox.button(QDialogButtonBox.StandardButton.Close).setDefault(True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
198
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
199 self.progressBar.setVisible(False)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
200
9344
52990830b13f Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9292
diff changeset
201 self.__formatButton.setVisible(
52990830b13f Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9292
diff changeset
202 self.__config["__action__"] is not BlackFormattingAction.Format
52990830b13f Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9292
diff changeset
203 and self.__statistics.changeCount > 0
52990830b13f Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9292
diff changeset
204 )
52990830b13f Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9292
diff changeset
205
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
206 self.__updateStatistics()
9220
e9e7eca7efee Black Formatting Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
207 self.__populateStatusFilterCombo()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
208
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
209 def __updateStatistics(self):
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
210 """
9220
e9e7eca7efee Black Formatting Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
211 Private method to update the statistics about the recent formatting run and
e9e7eca7efee Black Formatting Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
212 make them visible.
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
213 """
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
214 self.reformattedLabel.setText(
9283
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
215 self.tr("Reformatted:")
9344
52990830b13f Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9292
diff changeset
216 if self.__config["__action__"] is BlackFormattingAction.Format
9283
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
217 else self.tr("Would Reformat:")
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
218 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
219
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
220 total = self.progressBar.maximum()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
221
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
222 self.totalCountLabel.setText("{0:n}".format(total))
9281
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
223 self.excludedCountLabel.setText("{0:n}".format(self.__statistics.ignoreCount))
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
224 self.failuresCountLabel.setText("{0:n}".format(self.__statistics.failureCount))
9283
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
225 self.processedCountLabel.setText(
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
226 "{0:n}".format(self.__statistics.processedCount)
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
227 )
9281
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
228 self.reformattedCountLabel.setText(
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
229 "{0:n}".format(self.__statistics.changeCount)
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
230 )
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
231 self.unchangedCountLabel.setText("{0:n}".format(self.__statistics.sameCount))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
232
9220
e9e7eca7efee Black Formatting Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
233 self.statisticsGroup.setVisible(True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
234
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
235 @pyqtSlot(QAbstractButton)
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
236 def on_buttonBox_clicked(self, button):
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
237 """
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
238 Private slot to handle button presses of the dialog buttons.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
239
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
240 @param button reference to the pressed button
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
241 @type QAbstractButton
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
242 """
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
243 if button == self.buttonBox.button(QDialogButtonBox.StandardButton.Cancel):
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
244 self.__cancelled = True
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
245 elif button == self.buttonBox.button(QDialogButtonBox.StandardButton.Close):
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
246 self.accept()
9344
52990830b13f Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9292
diff changeset
247 elif button is self.__formatButton:
52990830b13f Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9292
diff changeset
248 self.__formatButtonClicked()
52990830b13f Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9292
diff changeset
249
52990830b13f Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9292
diff changeset
250 @pyqtSlot()
52990830b13f Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9292
diff changeset
251 def __formatButtonClicked(self):
52990830b13f Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9292
diff changeset
252 """
52990830b13f Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9292
diff changeset
253 Private slot handling the selection of the 'Format Code' button.
52990830b13f Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9292
diff changeset
254 """
9460
0d1b5d0fd815 Modified the Black and Isort dialogs such, that only files that need a change are processed after a diff or check run by pressing the relevant button.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9453
diff changeset
255 files = []
0d1b5d0fd815 Modified the Black and Isort dialogs such, that only files that need a change are processed after a diff or check run by pressing the relevant button.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9453
diff changeset
256 for row in range(self.resultsList.topLevelItemCount()):
0d1b5d0fd815 Modified the Black and Isort dialogs such, that only files that need a change are processed after a diff or check run by pressing the relevant button.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9453
diff changeset
257 itm = self.resultsList.topLevelItem(row)
0d1b5d0fd815 Modified the Black and Isort dialogs such, that only files that need a change are processed after a diff or check run by pressing the relevant button.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9453
diff changeset
258 if itm.data(0, BlackFormattingDialog.StatusRole) == "changed":
0d1b5d0fd815 Modified the Black and Isort dialogs such, that only files that need a change are processed after a diff or check run by pressing the relevant button.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9453
diff changeset
259 files.append(itm.data(0, BlackFormattingDialog.FileNameRole))
0d1b5d0fd815 Modified the Black and Isort dialogs such, that only files that need a change are processed after a diff or check run by pressing the relevant button.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9453
diff changeset
260 if files:
0d1b5d0fd815 Modified the Black and Isort dialogs such, that only files that need a change are processed after a diff or check run by pressing the relevant button.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9453
diff changeset
261 self.__filesList = files
0d1b5d0fd815 Modified the Black and Isort dialogs such, that only files that need a change are processed after a diff or check run by pressing the relevant button.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9453
diff changeset
262
9344
52990830b13f Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9292
diff changeset
263 self.__config["__action__"] = BlackFormattingAction.Format
52990830b13f Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9292
diff changeset
264 self.__performAction()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
265
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
266 @pyqtSlot(QTreeWidgetItem, int)
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
267 def on_resultsList_itemDoubleClicked(self, item, column):
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
268 """
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
269 Private slot handling a double click of a result item.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
270
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
271 @param item reference to the double clicked item
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
272 @type QTreeWidgetItem
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
273 @param column column number that was double clicked
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
274 @type int
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
275 """
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
276 dataType = item.data(0, BlackFormattingDialog.DataTypeRole)
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
277 if dataType == "error":
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
278 EricMessageBox.critical(
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
279 self,
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
280 self.tr("Formatting Failure"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
281 self.tr("<p>Formatting failed due to this error.</p><p>{0}</p>").format(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
282 item.data(0, BlackFormattingDialog.DataRole)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
283 ),
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
284 )
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
285 elif dataType == "diff":
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
286 if self.__diffDialog is None:
9453
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
287 self.__diffDialog = FormattingDiffWidget()
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
288 self.__diffDialog.showDiff(item.data(0, BlackFormattingDialog.DataRole))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
289
9283
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
290 def __formatManyFiles(self, files):
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
291 """
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
292 Private method to format the list of files according the configuration using
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
293 multiple processes in parallel.
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
294
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
295 @param files list of files to be processed
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
296 @type list of str
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
297 """
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
298 maxProcesses = Preferences.getUI("BackgroundServiceProcesses")
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
299 if maxProcesses == 0:
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
300 # determine based on CPU count
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
301 try:
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
302 NumberOfProcesses = multiprocessing.cpu_count()
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
303 if NumberOfProcesses >= 1:
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
304 NumberOfProcesses -= 1
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
305 except NotImplementedError:
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
306 NumberOfProcesses = 1
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
307 else:
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
308 NumberOfProcesses = maxProcesses
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
309
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
310 # Create queues
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
311 taskQueue = multiprocessing.Queue()
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
312 doneQueue = multiprocessing.Queue()
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
313
9289
ba49c41e8f63 Did some optimizations in the multiprocessing code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9284
diff changeset
314 # Submit tasks (initially two times the number of processes)
ba49c41e8f63 Did some optimizations in the multiprocessing code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9284
diff changeset
315 tasks = len(files)
9292
a5c8a0213fe3 Fixed an issue in the multiprocessing usage causing a traceback when then number of tasks is smaller than the number of worker processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9289
diff changeset
316 initialTasks = min(2 * NumberOfProcesses, tasks)
9289
ba49c41e8f63 Did some optimizations in the multiprocessing code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9284
diff changeset
317 for _ in range(initialTasks):
ba49c41e8f63 Did some optimizations in the multiprocessing code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9284
diff changeset
318 file = files.pop(0)
9283
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
319 relSrc = self.__project.getRelativePath(str(file)) if self.__project else ""
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
320 taskQueue.put((file, relSrc))
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
321
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
322 # Start worker processes
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
323 workers = [
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
324 multiprocessing.Process(
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
325 target=self.formattingWorkerTask,
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
326 args=(taskQueue, doneQueue, self.__config),
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
327 )
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
328 for _ in range(NumberOfProcesses)
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
329 ]
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
330 for worker in workers:
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
331 worker.start()
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
332
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
333 # Get the results from the worker tasks
9289
ba49c41e8f63 Did some optimizations in the multiprocessing code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9284
diff changeset
334 for _ in range(tasks):
9283
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
335 result = doneQueue.get()
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
336 self.__handleBlackFormattingResult(
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
337 result.status, result.filename, result.data
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
338 )
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
339
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
340 if self.__cancelled:
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
341 break
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
342
9289
ba49c41e8f63 Did some optimizations in the multiprocessing code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9284
diff changeset
343 if files:
ba49c41e8f63 Did some optimizations in the multiprocessing code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9284
diff changeset
344 file = files.pop(0)
ba49c41e8f63 Did some optimizations in the multiprocessing code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9284
diff changeset
345 relSrc = (
ba49c41e8f63 Did some optimizations in the multiprocessing code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9284
diff changeset
346 self.__project.getRelativePath(str(file)) if self.__project else ""
ba49c41e8f63 Did some optimizations in the multiprocessing code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9284
diff changeset
347 )
ba49c41e8f63 Did some optimizations in the multiprocessing code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9284
diff changeset
348 taskQueue.put((file, relSrc))
ba49c41e8f63 Did some optimizations in the multiprocessing code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9284
diff changeset
349
ba49c41e8f63 Did some optimizations in the multiprocessing code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9284
diff changeset
350 # Tell child processes to stop
ba49c41e8f63 Did some optimizations in the multiprocessing code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9284
diff changeset
351 for _ in range(NumberOfProcesses):
ba49c41e8f63 Did some optimizations in the multiprocessing code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9284
diff changeset
352 taskQueue.put("STOP")
9283
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
353
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
354 for worker in workers:
9348
f61d71d95cb1 Changed the multiprocessing start method to 'spawn' because 'fork' (on *nix) seems to be unreliable with respect to queues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9344
diff changeset
355 worker.join()
9283
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
356 worker.close()
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
357
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
358 taskQueue.close()
9348
f61d71d95cb1 Changed the multiprocessing start method to 'spawn' because 'fork' (on *nix) seems to be unreliable with respect to queues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9344
diff changeset
359 doneQueue.close()
9283
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
360
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
361 self.__finish()
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
362
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
363 @staticmethod
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
364 def formattingWorkerTask(inputQueue, outputQueue, config):
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
365 """
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
366 Static method acting as the parallel worker for the formatting task.
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
367
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
368 @param inputQueue input queue
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
369 @type multiprocessing.Queue
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
370 @param outputQueue output queue
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
371 @type multiprocessing.Queue
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
372 @param config dictionary containing the configuration parameters
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
373 @type dict
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
374 """
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
375 report = BlackMultiprocessingReport(outputQueue)
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
376 report.check = config["__action__"] is BlackFormattingAction.Check
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
377 report.diff = config["__action__"] is BlackFormattingAction.Diff
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
378
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
379 versions = (
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
380 {black.TargetVersion[target.upper()] for target in config["target-version"]}
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
381 if config["target-version"]
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
382 else set()
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
383 )
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
384
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
385 mode = black.Mode(
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
386 target_versions=versions,
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
387 line_length=int(config["line-length"]),
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
388 string_normalization=not config["skip-string-normalization"],
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
389 magic_trailing_comma=not config["skip-magic-trailing-comma"],
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
390 )
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
391
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
392 if config["__action__"] is BlackFormattingAction.Diff:
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
393 for file, relSrc in iter(inputQueue.get, "STOP"):
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
394 BlackFormattingDialog.__diffFormatFile(
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
395 pathlib.Path(file),
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
396 fast=False,
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
397 mode=mode,
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
398 report=report,
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
399 relSrc=relSrc,
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
400 )
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
401 else:
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
402 writeBack = black.WriteBack.from_configuration(
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
403 check=config["__action__"] is BlackFormattingAction.Check,
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
404 diff=config["__action__"] is BlackFormattingAction.Diff,
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
405 )
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
406
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
407 for file, _relSrc in iter(inputQueue.get, "STOP"):
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
408 black.reformat_one(
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
409 pathlib.Path(file),
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
410 fast=False,
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
411 write_back=writeBack,
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
412 mode=mode,
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
413 report=report,
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
414 )
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
415
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
416 def __formatOneFile(self, file):
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
417 """
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
418 Private method to format the list of files according the configuration.
9284
3b3a4f659782 "Blacked" the sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9283
diff changeset
419
9283
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
420 @param file name of the file to be processed
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
421 @type str
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
422 """
9283
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
423 report = BlackReport(self)
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
424 report.check = self.__config["__action__"] is BlackFormattingAction.Check
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
425 report.diff = self.__config["__action__"] is BlackFormattingAction.Diff
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
426 report.result.connect(self.__handleBlackFormattingResult)
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
427
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
428 writeBack = black.WriteBack.from_configuration(
9283
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
429 check=self.__config["__action__"] is BlackFormattingAction.Check,
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
430 diff=self.__config["__action__"] is BlackFormattingAction.Diff,
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
431 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
432
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
433 versions = (
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
434 {
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
435 black.TargetVersion[target.upper()]
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
436 for target in self.__config["target-version"]
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
437 }
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
438 if self.__config["target-version"]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
439 else set()
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
440 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
441
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
442 mode = black.Mode(
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
443 target_versions=versions,
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
444 line_length=int(self.__config["line-length"]),
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
445 string_normalization=not self.__config["skip-string-normalization"],
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
446 magic_trailing_comma=not self.__config["skip-magic-trailing-comma"],
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
447 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
448
9344
52990830b13f Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9292
diff changeset
449 if self.__config["__action__"] is BlackFormattingAction.Diff:
9283
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
450 relSrc = self.__project.getRelativePath(str(file)) if self.__project else ""
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
451 self.__diffFormatFile(
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
452 pathlib.Path(file), fast=False, mode=mode, report=report, relSrc=relSrc
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
453 )
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
454 else:
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
455 black.reformat_one(
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
456 pathlib.Path(file),
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
457 fast=False,
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
458 write_back=writeBack,
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
459 mode=mode,
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
460 report=report,
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
461 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
462
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
463 self.__finish()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
464
9283
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
465 @staticmethod
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
466 def __diffFormatFile(src, fast, mode, report, relSrc=""):
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
467 """
9283
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
468 Static method to check, if the given files need to be reformatted, and generate
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
469 a unified diff.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
470
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
471 @param src path of file to be checked
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
472 @type pathlib.Path
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
473 @param fast flag indicating fast operation
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
474 @type bool
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
475 @param mode code formatting options
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
476 @type black.Mode
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
477 @param report reference to the report object
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
478 @type BlackReport
9283
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
479 @param relSrc name of the file relative to the project (defaults to "")
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
480 @type str (optional)
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
481 """
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
482 then = datetime.datetime.utcfromtimestamp(src.stat().st_mtime)
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
483 with open(src, "rb") as buf:
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
484 srcContents, _, _ = black.decode_bytes(buf.read())
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
485 try:
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
486 dstContents = black.format_file_contents(srcContents, fast=fast, mode=mode)
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
487 except black.NothingChanged:
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
488 report.done(src, black.Changed.NO)
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
489 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
490
9283
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
491 fileName = relSrc if bool(relSrc) else str(src)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
492
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
493 now = datetime.datetime.utcnow()
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
494 srcName = f"{fileName}\t{then} +0000"
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
495 dstName = f"{fileName}\t{now} +0000"
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
496 diffContents = black.diff(srcContents, dstContents, srcName, dstName)
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
497 report.done(src, black.Changed.YES, diff=diffContents)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
498
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
499 def closeEvent(self, evt):
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
500 """
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
501 Protected slot implementing a close event handler.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
502
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
503 @param evt reference to the close event
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
504 @type QCloseEvent
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
505 """
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
506 if self.__diffDialog is not None:
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
507 self.__diffDialog.close()
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
508 evt.accept()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
509
9220
e9e7eca7efee Black Formatting Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
510 @pyqtSlot(str)
e9e7eca7efee Black Formatting Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
511 def on_statusFilterComboBox_currentTextChanged(self, status):
e9e7eca7efee Black Formatting Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
512 """
e9e7eca7efee Black Formatting Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
513 Private slot handling the selection of a status for items to be shown.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
514
9220
e9e7eca7efee Black Formatting Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
515 @param status selected status
e9e7eca7efee Black Formatting Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
516 @type str
e9e7eca7efee Black Formatting Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
517 """
e9e7eca7efee Black Formatting Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
518 for row in range(self.resultsList.topLevelItemCount()):
e9e7eca7efee Black Formatting Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
519 itm = self.resultsList.topLevelItem(row)
e9e7eca7efee Black Formatting Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
520 itm.setHidden(
e9e7eca7efee Black Formatting Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
521 status != self.__allFilter
e9e7eca7efee Black Formatting Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
522 and itm.text(BlackFormattingDialog.StatusColumn) != status
e9e7eca7efee Black Formatting Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
523 )
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
524
9281
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
525 @pyqtSlot(str, str, str)
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
526 def __handleBlackFormattingResult(self, status, filename, data):
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
527 """
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
528 Private slot to handle the result of a black reformatting action.
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
529
9453
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
530 @param status status of the performed action (one of 'changed', 'failed',
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
531 'ignored', 'unchanged' or 'unmodified')
9281
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
532 @type str
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
533 @param filename name of the processed file
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
534 @type str
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
535 @param data action data (error message or unified diff)
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
536 @type str
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
537 """
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
538 isError = False
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
539
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
540 if status == "changed":
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
541 statusMsg = (
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
542 self.tr("would reformat")
9344
52990830b13f Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9292
diff changeset
543 if self.__config["__action__"]
9281
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
544 in (BlackFormattingAction.Check, BlackFormattingAction.Diff)
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
545 else self.tr("reformatted")
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
546 )
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
547 self.__statistics.changeCount += 1
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
548
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
549 elif status == "unchanged":
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
550 statusMsg = self.tr("unchanged")
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
551 self.__statistics.sameCount += 1
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
552
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
553 elif status == "unmodified":
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
554 statusMsg = self.tr("unmodified")
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
555 self.__statistics.sameCount += 1
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
556
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
557 elif status == "ignored":
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
558 statusMsg = self.tr("ignored")
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
559 self.__statistics.ignoreCount += 1
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
560
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
561 elif status == "failed":
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
562 statusMsg = self.tr("failed")
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
563 self.__statistics.failureCount += 1
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
564 isError = True
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
565
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
566 else:
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
567 statusMsg = self.tr("invalid status ({0})").format(status)
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
568 self.__statistics.failureCount += 1
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
569 isError = True
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
570
9283
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
571 if status != "ignored":
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
572 self.__statistics.processedCount += 1
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
573
9460
0d1b5d0fd815 Modified the Black and Isort dialogs such, that only files that need a change are processed after a diff or check run by pressing the relevant button.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9453
diff changeset
574 itm = QTreeWidgetItem(
0d1b5d0fd815 Modified the Black and Isort dialogs such, that only files that need a change are processed after a diff or check run by pressing the relevant button.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9453
diff changeset
575 self.resultsList,
0d1b5d0fd815 Modified the Black and Isort dialogs such, that only files that need a change are processed after a diff or check run by pressing the relevant button.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9453
diff changeset
576 [
0d1b5d0fd815 Modified the Black and Isort dialogs such, that only files that need a change are processed after a diff or check run by pressing the relevant button.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9453
diff changeset
577 statusMsg,
0d1b5d0fd815 Modified the Black and Isort dialogs such, that only files that need a change are processed after a diff or check run by pressing the relevant button.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9453
diff changeset
578 self.__project.getRelativePath(filename)
0d1b5d0fd815 Modified the Black and Isort dialogs such, that only files that need a change are processed after a diff or check run by pressing the relevant button.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9453
diff changeset
579 if self.__project
0d1b5d0fd815 Modified the Black and Isort dialogs such, that only files that need a change are processed after a diff or check run by pressing the relevant button.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9453
diff changeset
580 else filename,
0d1b5d0fd815 Modified the Black and Isort dialogs such, that only files that need a change are processed after a diff or check run by pressing the relevant button.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9453
diff changeset
581 ],
0d1b5d0fd815 Modified the Black and Isort dialogs such, that only files that need a change are processed after a diff or check run by pressing the relevant button.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9453
diff changeset
582 )
0d1b5d0fd815 Modified the Black and Isort dialogs such, that only files that need a change are processed after a diff or check run by pressing the relevant button.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9453
diff changeset
583 itm.setData(0, BlackFormattingDialog.StatusRole, status)
0d1b5d0fd815 Modified the Black and Isort dialogs such, that only files that need a change are processed after a diff or check run by pressing the relevant button.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9453
diff changeset
584 itm.setData(0, BlackFormattingDialog.FileNameRole, filename)
9281
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
585 if data:
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
586 itm.setData(
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
587 0, BlackFormattingDialog.DataTypeRole, "error" if isError else "diff"
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
588 )
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
589 itm.setData(0, BlackFormattingDialog.DataRole, data)
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
590
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
591 self.progressBar.setValue(self.progressBar.value() + 1)
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
592
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
593 QCoreApplication.processEvents()
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
594
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
595
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
596 @dataclass
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
597 class BlackStatistics:
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
598 """
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
599 Class containing the reformatting statistic data.
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
600 """
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
601
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
602 ignoreCount: int = 0
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
603 changeCount: int = 0
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
604 sameCount: int = 0
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
605 failureCount: int = 0
9283
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
606 processedCount: int = 0
9281
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
607
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
608
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
609 class BlackReport(QObject, black.Report):
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
610 """
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
611 Class extending the black Report to work with our dialog.
9281
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
612
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
613 @signal result(status, file name, data) emitted to signal the reformatting result
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
614 as three strings giving the status (one of 'changed', 'unchanged', 'unmodified',
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
615 'failed' or 'ignored'), the file name and data related to the result
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
616 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
617
9281
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
618 result = pyqtSignal(str, str, str)
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
619
9283
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
620 def __init__(self, parent=None):
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
621 """
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
622 Constructor
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
623
9283
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
624 @param parent reference to the parent object (defaults to None
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
625 @type QObject (optional)
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
626 """
9283
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
627 QObject.__init__(self, parent)
9281
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
628 black.Report.__init__(self)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
629
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
630 def done(self, src, changed, diff=""):
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
631 """
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
632 Public method to handle the end of a reformat.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
633
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
634 @param src name of the processed file
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
635 @type pathlib.Path
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
636 @param changed change status
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
637 @type black.Changed
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
638 @param diff unified diff of potential changes (defaults to "")
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
639 @type str
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
640 """
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
641 if changed is black.Changed.YES:
9281
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
642 status = "changed"
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
643
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
644 elif changed is black.Changed.NO:
9281
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
645 status = "unchanged"
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
646
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
647 elif changed is black.Changed.CACHED:
9281
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
648 status = "unmodified"
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
649
9281
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
650 self.result.emit(status, str(src), diff)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
651
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
652 def failed(self, src, message):
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
653 """
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
654 Public method to handle a reformat failure.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
655
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
656 @param src name of the processed file
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
657 @type pathlib.Path
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
658 @param message error message
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
659 @type str
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
660 """
9281
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
661 self.result.emit("failed", str(src), message)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
662
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
663 def path_ignored(self, src, message=""):
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
664 """
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
665 Public method handling an ignored path.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9220
diff changeset
666
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
667 @param src name of the processed file
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
668 @type pathlib.Path or str
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
669 @param message ignore message (default to "")
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
670 @type str (optional)
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
671 """
9281
76caf27cb8a8 Changed the code reformatting dialog to work with signals and slots and do the statistics calculation in the dialog class (prepare for multi processing).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
672 self.result.emit("ignored", str(src), "")
9283
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
673
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
674
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
675 @dataclass
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
676 class BlackMultiprocessingResult:
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
677 """
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
678 Class containing the reformatting result data.
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
679
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
680 This class is used when reformatting multiple files in parallel using processes.
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
681 """
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
682
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
683 status: str = ""
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
684 filename: str = ""
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
685 data: str = ""
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
686
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
687
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
688 class BlackMultiprocessingReport(black.Report):
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
689 """
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
690 Class extending the black Report to work with multiprocessing.
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
691 """
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
692
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
693 def __init__(self, resultQueue):
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
694 """
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
695 Constructor
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
696
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
697 @param resultQueue reference to the queue to put the results into
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
698 @type multiprocessing.Queue
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
699 """
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
700 super().__init__()
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
701
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
702 self.__queue = resultQueue
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
703
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
704 def done(self, src, changed, diff=""):
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
705 """
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
706 Public method to handle the end of a reformat.
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
707
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
708 @param src name of the processed file
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
709 @type pathlib.Path
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
710 @param changed change status
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
711 @type black.Changed
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
712 @param diff unified diff of potential changes (defaults to "")
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
713 @type str
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
714 """
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
715 if changed is black.Changed.YES:
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
716 status = "changed"
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
717
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
718 elif changed is black.Changed.NO:
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
719 status = "unchanged"
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
720
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
721 elif changed is black.Changed.CACHED:
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
722 status = "unmodified"
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
723
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
724 self.__queue.put(
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
725 BlackMultiprocessingResult(status=status, filename=str(src), data=diff)
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
726 )
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
727
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
728 def failed(self, src, message):
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
729 """
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
730 Public method to handle a reformat failure.
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
731
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
732 @param src name of the processed file
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
733 @type pathlib.Path
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
734 @param message error message
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
735 @type str
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
736 """
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
737 self.__queue.put(
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
738 BlackMultiprocessingResult(status="failed", filename=str(src), data=message)
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
739 )
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
740
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
741 def path_ignored(self, src, message=""):
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
742 """
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
743 Public method handling an ignored path.
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
744
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
745 @param src name of the processed file
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
746 @type pathlib.Path or str
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
747 @param message ignore message (default to "")
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
748 @type str (optional)
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
749 """
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
750 self.__queue.put(
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
751 BlackMultiprocessingResult(status="ignored", filename=str(src), data="")
0e9d2c4e379e Changed the code reformatting dialog such, that it uses multiple processes to reformat files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9281
diff changeset
752 )

eric ide

mercurial