eric7/Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py

Sun, 03 Jul 2022 13:52:59 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 03 Jul 2022 13:52:59 +0200
branch
eric7
changeset 9202
81388c6065e8
parent 9201
2f1ccadee231
child 9205
b75da2ba2a1a
permissions
-rw-r--r--

Refined the setup wizard a little bit.

6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
8881
54e42bc2437a Updated copyright for 2022.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8862
diff changeset
3 # Copyright (c) 2013 - 2022 Detlev Offenbach <detlev@die-offenbachs.de>
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing the setup.py wizard dialog.
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
9201
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
10 import configparser
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
11 import datetime
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
12 import io
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13 import os
9201
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
14 import pathlib
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
15
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
16 import tomlkit
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
18 import trove_classifiers
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
19
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
20 from PyQt6.QtCore import pyqtSlot, Qt
8318
962bce857696 Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8312
diff changeset
21 from PyQt6.QtWidgets import (
7771
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7637
diff changeset
22 QDialog, QDialogButtonBox, QTreeWidgetItem, QListWidgetItem
7258
aff39db4dacc Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7248
diff changeset
23 )
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24
8358
144a6b854f70 Sorted the eric specific extensions into packages named like the corresponding PyQt packages (i.e. EricCore,EricGui and EricWidgets).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8356
diff changeset
25 from EricWidgets.EricApplication import ericApp
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
26 from EricWidgets import EricFileDialog
8757
23b2fe1cd863 Corrected the Setup wizard dialog and changed it to use the EricPathPicker widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8501
diff changeset
27 from EricWidgets.EricPathPicker import EricPathPickerModes
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28
9201
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
29 from .AddEntryPointDialog import AddEntryPointDialog
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
30 from .AddProjectUrlDialog import AddProjectUrlDialog
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 from .Ui_SetupWizardDialog import Ui_SetupWizardDialog
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 import Utilities
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 import Preferences
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 class SetupWizardDialog(QDialog, Ui_SetupWizardDialog):
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 """
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 Class implementing the setup.py wizard dialog.
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40
8757
23b2fe1cd863 Corrected the Setup wizard dialog and changed it to use the EricPathPicker widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8501
diff changeset
41 It displays a dialog for entering the parameters for the setup.py code
23b2fe1cd863 Corrected the Setup wizard dialog and changed it to use the EricPathPicker widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8501
diff changeset
42 generator.
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 """
9202
81388c6065e8 Refined the setup wizard a little bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9201
diff changeset
44 def __init__(self, category, editor, parent=None):
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 """
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 Constructor
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47
9201
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
48 @param category category of setup file to create
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
49 @type str
9202
81388c6065e8 Refined the setup wizard a little bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9201
diff changeset
50 @param editor reference to the editor object to receive the code
81388c6065e8 Refined the setup wizard a little bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9201
diff changeset
51 @type Editor
9201
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
52 @param parent reference to the parent widget (defaults to None)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
53 @type QWidget (optional)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
54 @exception ValueError raised for an illegal setup file category
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 """
9201
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
56 if category not in ("setup.py", "setup.cfg", "pyproject.toml"):
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
57 raise ValueError("illegal setup file category given")
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
58
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8143
diff changeset
59 super().__init__(parent)
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 self.setupUi(self)
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61
9202
81388c6065e8 Refined the setup wizard a little bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9201
diff changeset
62 self.setWindowTitle(self.tr("{0} Wizard").format(category))
81388c6065e8 Refined the setup wizard a little bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9201
diff changeset
63
7005
342819f05839 setup.py Wizard:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
64 self.__replies = []
9201
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
65 self.__category = category
9202
81388c6065e8 Refined the setup wizard a little bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9201
diff changeset
66 self.__editor = editor
9201
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
67
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
68 if category != "setup.py":
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
69 self.introCheckBox.setVisible(False)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
70 self.importCheckBox.setVisible(False)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
71 self.metaDataCheckBox.setVisible(False)
7005
342819f05839 setup.py Wizard:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
72
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 self.dataTabWidget.setCurrentIndex(0)
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74
8757
23b2fe1cd863 Corrected the Setup wizard dialog and changed it to use the EricPathPicker widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8501
diff changeset
75 self.packageRootPicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
23b2fe1cd863 Corrected the Setup wizard dialog and changed it to use the EricPathPicker widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8501
diff changeset
76 self.sourceDirectoryPicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77
8862
99459beb81b1 Adapted some style sheet usages to observe the palette lightness (dark/light).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8838
diff changeset
78 self.__mandatoryStyleSheet = (
99459beb81b1 Adapted some style sheet usages to observe the palette lightness (dark/light).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8838
diff changeset
79 "QLineEdit {border: 2px solid; border-color: #dd8888}"
99459beb81b1 Adapted some style sheet usages to observe the palette lightness (dark/light).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8838
diff changeset
80 if ericApp().usesDarkPalette() else
99459beb81b1 Adapted some style sheet usages to observe the palette lightness (dark/light).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8838
diff changeset
81 "QLineEdit {border: 2px solid; border-color: #800000}"
99459beb81b1 Adapted some style sheet usages to observe the palette lightness (dark/light).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8838
diff changeset
82 )
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83 for lineEdit in [self.nameEdit, self.versionEdit,
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 self.homePageUrlEdit, self.authorEdit,
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85 self.authorEmailEdit, self.maintainerEdit,
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86 self.maintainerEmailEdit]:
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 lineEdit.setStyleSheet(self.__mandatoryStyleSheet)
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
89 self.__populateClassifiers()
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
91 self.__okButton = self.buttonBox.button(
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
92 QDialogButtonBox.StandardButton.Ok)
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 self.__okButton.setEnabled(False)
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8322
diff changeset
95 projectOpen = ericApp().getObject("Project").isOpen()
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 self.projectButton.setEnabled(projectOpen)
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97
9201
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
98 self.projectUrlsList.header().setSortIndicator(0, Qt.SortOrder.AscendingOrder)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
99 self.entryPointsList.header().setSortIndicator(0, Qt.SortOrder.AscendingOrder)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
100
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
101 self.descriptionContentTypeComboBox.addItem("", "")
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
102 for contentType, mimetype in sorted([
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
103 (self.tr("Plain Text"), "text/plain"),
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
104 (self.tr("Markdown"), "text/markdown"),
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
105 (self.tr("reStructuredText"), "text/x-rst")
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
106
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
107 ]):
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
108 self.descriptionContentTypeComboBox.addItem(contentType, mimetype)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
109
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
110 self.homePageUrlEdit.textChanged.connect(self.__enableOkButton)
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111 self.nameEdit.textChanged.connect(self.__enableOkButton)
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
112 self.versionEdit.textChanged.connect(self.__enableOkButton)
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113 self.authorEdit.textChanged.connect(self.__enableOkButton)
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114 self.authorEmailEdit.textChanged.connect(self.__enableOkButton)
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115 self.maintainerEdit.textChanged.connect(self.__enableOkButton)
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116 self.maintainerEmailEdit.textChanged.connect(self.__enableOkButton)
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
118 def __enableOkButton(self):
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
119 """
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
120 Private slot to set the state of the OK button.
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
121 """
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
122 enable = (
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
123 bool(self.nameEdit.text()) and
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
124 bool(self.versionEdit.text()) and
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
125 bool(self.homePageUrlEdit.text()) and
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
126 ((bool(self.authorEdit.text()) and
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
127 bool(self.authorEmailEdit.text())) or
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
128 (bool(self.maintainerEdit.text()) and
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
129 bool(self.maintainerEmailEdit.text()))) and
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
130 self.homePageUrlEdit.text().startswith(("http://", "https://"))
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
131 )
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
132
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133 self.__okButton.setEnabled(enable)
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
134
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
135 def __populateClassifiers(self):
7005
342819f05839 setup.py Wizard:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
136 """
342819f05839 setup.py Wizard:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
137 Private method to populate the classifiers.
342819f05839 setup.py Wizard:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
138 """
342819f05839 setup.py Wizard:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
139 self.licenseClassifierComboBox.clear()
342819f05839 setup.py Wizard:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
140 self.classifiersList.clear()
342819f05839 setup.py Wizard:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
141 self.developmentStatusComboBox.clear()
342819f05839 setup.py Wizard:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
142
342819f05839 setup.py Wizard:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
143 self.developmentStatusComboBox.addItem("", "")
342819f05839 setup.py Wizard:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
144
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
145 self.__classifiersDict = {}
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
146 for classifier in trove_classifiers.sorted_classifiers:
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
147 if classifier.startswith("License ::"):
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
148 self.licenseClassifierComboBox.addItem(
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
149 "/".join(classifier.split(" :: ")[1:]),
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
150 classifier
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
151 )
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
152 elif classifier.startswith("Development Status ::"):
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
153 self.developmentStatusComboBox.addItem(
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
154 classifier.split(" :: ")[1], classifier)
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
155 else:
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
156 self.__addClassifierEntry(classifier)
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
157 self.__classifiersDict = {}
7005
342819f05839 setup.py Wizard:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
158
342819f05839 setup.py Wizard:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
159 self.licenseClassifierComboBox.setCurrentIndex(
342819f05839 setup.py Wizard:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
160 self.licenseClassifierComboBox.findText(
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
161 "(GPLv3)",
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
162 Qt.MatchFlag.MatchContains | Qt.MatchFlag.MatchCaseSensitive
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
163 )
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
164 )
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
165
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
166 def __addClassifierEntry(self, classifier):
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
167 """
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
168 Private method to add a new entry to the list of trove classifiers.
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
169
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
170 @param classifier classifier containing the data for the entry
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
171 @type str
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
172 """
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
173 itm = None
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
174 pitm = None
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
175 dataList = classifier.split(" :: ")
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
176 for index in range(len(dataList)):
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
177 key = " :: ".join(dataList[:index + 1])
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
178 if key not in self.__classifiersDict:
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
179 if pitm is None:
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
180 itm = QTreeWidgetItem(
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
181 self.classifiersList, [dataList[index]])
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
182 pitm = itm
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
183 else:
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
184 itm = QTreeWidgetItem(pitm, [dataList[index]])
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
185 itm.setExpanded(True)
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
186 self.__classifiersDict[key] = itm
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
187 else:
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
188 pitm = self.__classifiersDict[key]
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
189 itm.setCheckState(0, Qt.CheckState.Unchecked)
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
190 itm.setData(0, Qt.ItemDataRole.UserRole, classifier)
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
191
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
192 def __getLicenseText(self):
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
193 """
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
194 Private method to get the license text.
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
195
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
196 @return license text
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
197 @rtype str
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
198 """
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
199 if not self.licenseClassifierCheckBox.isChecked():
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
200 return self.licenseEdit.text()
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
201 else:
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
202 lic = self.licenseClassifierComboBox.currentText()
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
203 if "(" in lic:
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
204 lic = lic.rsplit("(", 1)[1].split(")", 1)[0]
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
205 return lic
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
206
9201
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
207 def __getSetupPyCode(self, indLevel, indString):
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
208 """
9201
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
209 Private method to get the source code for a 'setup.py' file.
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
210
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
211 @param indLevel indentation level
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
212 @type int
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
213 @param indString string used for indentation (space or tab)
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
214 @type str
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
215 @return generated code
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
216 @rtype str
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
217 """
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
218 # Note: all paths are created with '/'; setup will do the right thing
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
219
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
220 # calculate our indentation level and the indentation string
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
221 il = indLevel + 1
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
222 istring = il * indString
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
223 i1string = (il + 1) * indString
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
224 i2string = (il + 2) * indString
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
225 estring = os.linesep + indLevel * indString
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
226
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
227 # now generate the code
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
228 if self.introCheckBox.isChecked():
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
229 sourceCode = "#!/usr/bin/env python3{0}".format(os.linesep)
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
230 sourceCode += "# -*- coding: utf-8 -*-{0}{0}".format(os.linesep)
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
231 else:
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
232 sourceCode = ""
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
233
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
234 if self.metaDataCheckBox.isChecked():
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
235 sourceCode += '# metadata{0}'.format(os.linesep)
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
236 sourceCode += '"{0}"{1}'.format(
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
237 self.summaryEdit.text() or "Setup routine",
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
238 os.linesep
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
239 )
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
240 sourceCode += '__version__ = "{0}"{1}'.format(
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
241 self.versionEdit.text(), os.linesep)
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
242 sourceCode += '__license__ = "{0}"{1}'.format(
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
243 self.__getLicenseText(), os.linesep)
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
244 sourceCode += '__author__ = "{0}"{1}'.format(
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
245 self.authorEdit.text() or self.maintainerEdit.text(),
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
246 os.linesep)
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
247 sourceCode += '__email__ = "{0}"{1}'.format(
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
248 self.authorEmailEdit.text() or self.maintainerEmailEdit.text(),
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
249 os.linesep)
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
250 sourceCode += '__url__ = "{0}"{1}'.format(
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
251 self.homePageUrlEdit.text(), os.linesep)
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
252 sourceCode += '__date__ = "{0}"{1}'.format(
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
253 datetime.datetime.now().isoformat().split('.')[0], os.linesep)
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
254 sourceCode += '__prj__ = "{0}"{1}'.format(
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
255 self.nameEdit.text(), os.linesep)
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
256 sourceCode += os.linesep
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
257
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
258 if self.importCheckBox.isChecked():
8501
7b5f10581c35 Removed the support for the deprecated distutils package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8366
diff changeset
259 additionalImport = ", find_packages"
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
260 sourceCode += "from setuptools import setup{0}{1}".format(
8501
7b5f10581c35 Removed the support for the deprecated distutils package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8366
diff changeset
261 additionalImport, os.linesep)
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
262 if sourceCode:
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
263 sourceCode += "{0}{0}".format(os.linesep)
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
264
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
265 if self.descriptionFromFilesCheckBox.isChecked():
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
266 sourceCode += 'def get_long_description():{0}'.format(os.linesep)
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
267 sourceCode += '{0}descr = []{1}'.format(istring, os.linesep)
9202
81388c6065e8 Refined the setup wizard a little bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9201
diff changeset
268 sourceCode += '{0}for fname in ("{1}"):{2}'.format(
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
269 istring,
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
270 '", "'.join(self.descriptionEdit.toPlainText().splitlines()),
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
271 os.linesep)
9201
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
272 sourceCode += (
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
273 '{0}with open(fname, "r", encoding="utf-8") as f:{1}'
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
274 ).format(i1string, os.linesep)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
275 sourceCode += '{0}descr.append(f.read()){1}'.format(
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
276 i2string, os.linesep)
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
277 sourceCode += '{0}return "\\n\\n".join(descr){1}'.format(
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
278 istring, os.linesep)
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
279 sourceCode += "{0}{0}".format(os.linesep)
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
280
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
281 sourceCode += 'setup({0}'.format(os.linesep)
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
282 sourceCode += '{0}name="{1}",{2}'.format(
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
283 istring, self.nameEdit.text(), os.linesep)
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
284 sourceCode += '{0}version="{1}",{2}'.format(
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
285 istring, self.versionEdit.text(), os.linesep)
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
286
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
287 if self.summaryEdit.text():
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
288 sourceCode += '{0}description="{1}",{2}'.format(
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
289 istring, self.summaryEdit.text(), os.linesep)
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
290
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
291 if self.descriptionFromFilesCheckBox.isChecked():
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
292 sourceCode += '{0}long_description=get_long_description(),{1}'.format(
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
293 istring, os.linesep)
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
294 elif self.descriptionEdit.toPlainText():
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
295 sourceCode += '{0}long_description="""{1}""",{2}'.format(
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
296 istring, self.descriptionEdit.toPlainText(), os.linesep)
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
297
9201
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
298 if self.descriptionContentTypeComboBox.currentData():
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
299 sourceCode += '{0}long_description_content_type="{1}",{2}'.format(
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
300 istring, self.descriptionContentTypeComboBox.currentData(), os.linesep)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
301
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
302 if self.authorEdit.text():
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
303 sourceCode += '{0}author="{1}",{2}'.format(
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
304 istring, self.authorEdit.text(), os.linesep)
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
305 sourceCode += '{0}author_email="{1}",{2}'.format(
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
306 istring, self.authorEmailEdit.text(), os.linesep)
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
307
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
308 if self.maintainerEdit.text():
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
309 sourceCode += '{0}maintainer="{1}",{2}'.format(
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
310 istring, self.maintainerEdit.text(), os.linesep)
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
311 sourceCode += '{0}maintainer_email="{1}",{2}'.format(
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
312 istring, self.maintainerEmailEdit.text(), os.linesep)
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
313
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
314 sourceCode += '{0}url="{1}",{2}'.format(
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
315 istring, self.homePageUrlEdit.text(), os.linesep)
9201
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
316 if self.downloadUrlEdit.text():
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
317 sourceCode += '{0}download_url="{1}",{2}'.format(
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
318 istring, self.downloadUrlEdit.text(), os.linesep)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
319
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
320 if self.projectUrlsList.topLevelItemCount():
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
321 sourceCode += '{0}project_urls={{{1}'.format(istring, os.linesep)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
322 for row in range(self.projectUrlsList.topLevelItemCount()):
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
323 urlItem = self.projectUrlsList.topLevelItem(row)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
324 sourceCode += '{0}"{1}": "{2}",{3}'.format(
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
325 i1string, urlItem.text(0), urlItem.text(1), os.linesep)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
326 sourceCode += '{0}}},{1}'.format(istring, os.linesep)
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
327
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
328 classifiers = []
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
329 if not self.licenseClassifierCheckBox.isChecked():
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
330 sourceCode += '{0}license="{1}",{2}'.format(
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
331 istring, self.licenseEdit.text(), os.linesep)
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
332 else:
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
333 classifiers.append(
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
334 self.licenseClassifierComboBox.itemData(
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
335 self.licenseClassifierComboBox.currentIndex()))
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
336
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
337 platforms = self.platformsEdit.toPlainText().splitlines()
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
338 if platforms:
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
339 sourceCode += '{0}platforms=[{1}'.format(istring, os.linesep)
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
340 sourceCode += '{0}"{1}"{2}'.format(
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
341 i1string,
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
342 '",{0}{1}"'.format(os.linesep, i1string).join(platforms),
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
343 os.linesep)
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
344 sourceCode += '{0}],{1}'.format(istring, os.linesep)
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
345
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
346 if self.developmentStatusComboBox.currentIndex() != 0:
9201
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
347 classifiers.append(self.developmentStatusComboBox.currentData())
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
348
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
349 itm = self.classifiersList.topLevelItem(0)
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
350 while itm:
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
351 itm.setExpanded(True)
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
352 if itm.checkState(0) == Qt.CheckState.Checked:
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
353 classifiers.append(itm.data(0, Qt.ItemDataRole.UserRole))
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
354 itm = self.classifiersList.itemBelow(itm)
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
355
6940
12ed1a714527 SetupWizardDialog: change setup default method to 'setuptools' and fixed an issue causing an exception, if no classifiers were selected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
356 # cleanup classifiers list - remove all invalid entries
12ed1a714527 SetupWizardDialog: change setup default method to 'setuptools' and fixed an issue causing an exception, if no classifiers were selected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
357 classifiers = [c for c in classifiers if bool(c)]
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
358 if classifiers:
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
359 sourceCode += '{0}classifiers=[{1}'.format(istring, os.linesep)
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
360 sourceCode += '{0}"{1}"{2}'.format(
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
361 i1string,
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
362 '",{0}{1}"'.format(os.linesep, i1string).join(classifiers),
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
363 os.linesep)
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
364 sourceCode += '{0}],{1}'.format(istring, os.linesep)
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
365 del classifiers
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
366
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
367 if self.keywordsEdit.text():
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
368 sourceCode += '{0}keywords="{1}",{2}'.format(
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
369 istring, self.keywordsEdit.text(), os.linesep)
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
370
9201
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
371 if self.pyVersionEdit.text():
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
372 sourceCode += '{0}python_requires="{1}",{2}'.format(
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
373 istring, self.pyVersionEdit.text(), os.linesep)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
374
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
375 sourceCode += '{0}packages=find_packages('.format(istring)
8501
7b5f10581c35 Removed the support for the deprecated distutils package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8366
diff changeset
376 src = Utilities.fromNativeSeparators(
8757
23b2fe1cd863 Corrected the Setup wizard dialog and changed it to use the EricPathPicker widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8501
diff changeset
377 self.sourceDirectoryPicker.text())
8501
7b5f10581c35 Removed the support for the deprecated distutils package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8366
diff changeset
378 excludePatterns = []
7b5f10581c35 Removed the support for the deprecated distutils package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8366
diff changeset
379 for row in range(self.excludePatternList.count()):
7b5f10581c35 Removed the support for the deprecated distutils package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8366
diff changeset
380 excludePatterns.append(
7b5f10581c35 Removed the support for the deprecated distutils package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8366
diff changeset
381 self.excludePatternList.item(row).text())
7b5f10581c35 Removed the support for the deprecated distutils package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8366
diff changeset
382 if src:
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
383 sourceCode += '{0}{1}"{2}"'.format(os.linesep, i1string, src)
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
384 if excludePatterns:
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
385 sourceCode += ','
8501
7b5f10581c35 Removed the support for the deprecated distutils package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8366
diff changeset
386 else:
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
387 sourceCode += '{0}{1}'.format(os.linesep, istring)
8501
7b5f10581c35 Removed the support for the deprecated distutils package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8366
diff changeset
388 if excludePatterns:
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
389 sourceCode += '{0}{1}exclude=[{0}'.format(os.linesep, i1string)
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
390 sourceCode += '{0}"{1}"{2}'.format(
8501
7b5f10581c35 Removed the support for the deprecated distutils package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8366
diff changeset
391 i2string,
7b5f10581c35 Removed the support for the deprecated distutils package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8366
diff changeset
392 '",{0}{1}"'.format(os.linesep, i2string)
7b5f10581c35 Removed the support for the deprecated distutils package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8366
diff changeset
393 .join(excludePatterns),
7b5f10581c35 Removed the support for the deprecated distutils package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8366
diff changeset
394 os.linesep)
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
395 sourceCode += '{0}]{1}{2}'.format(i1string, os.linesep, istring)
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
396 sourceCode += '),{0}'.format(os.linesep)
8501
7b5f10581c35 Removed the support for the deprecated distutils package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8366
diff changeset
397
7b5f10581c35 Removed the support for the deprecated distutils package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8366
diff changeset
398 if self.includePackageDataCheckBox.isChecked():
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
399 sourceCode += '{0}include_package_data = True,{1}'.format(
8501
7b5f10581c35 Removed the support for the deprecated distutils package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8366
diff changeset
400 istring, os.linesep)
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
401
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
402 modules = []
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
403 for row in range(self.modulesList.count()):
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
404 modules.append(self.modulesList.item(row).text())
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
405 if modules:
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
406 sourceCode += '{0}py_modules=[{1}'.format(istring, os.linesep)
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
407 sourceCode += '{0}"{1}"{2}'.format(
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
408 i1string,
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
409 '",{0}{1}"'.format(os.linesep, i1string).join(modules),
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
410 os.linesep)
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
411 sourceCode += '{0}],{1}'.format(istring, os.linesep)
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
412 del modules
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
413
9201
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
414 if self.entryPointsList.topLevelItemCount():
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
415 entryPoints = {
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
416 "console_scripts": [],
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
417 "gui_scripts": [],
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
418 }
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
419 for row in range(self.entryPointsList.topLevelItemCount()):
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
420 itm = self.entryPointsList.topLevelItem(row)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
421 entryPoints[itm.data(0, Qt.ItemDataRole.UserRole)].append(
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
422 "{0} = {1}".format(itm.text(1), itm.text(2))
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
423 )
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
424 sourceCode += '{0}entry_points={{{1}'.format(istring, os.linesep)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
425 for epCategory in entryPoints:
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
426 if entryPoints[epCategory]:
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
427 sourceCode += '{0}"{1}": [{2}'.format(
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
428 i1string, epCategory, os.linesep)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
429 for entryPoint in entryPoints[epCategory]:
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
430 sourceCode += '{0}"{1}",{2}'.format(
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
431 i2string, entryPoint, os.linesep)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
432 sourceCode += '{0}],{1}'.format(i1string, os.linesep)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
433 sourceCode += '{0}}},{1}'.format(istring, os.linesep)
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
434
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
435 sourceCode += "){0}".format(estring)
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
436 return sourceCode
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
437
9201
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
438 def __getSetupCfgCode(self):
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
439 """
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
440 Private method to get the source code for a 'setup.cfg' file.
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
441
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
442 @return generated code
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
443 @rtype str
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
444 """
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
445 from . import SetupCfgUtilities
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
446 metadata = {
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
447 "name": self.nameEdit.text(),
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
448 "version": self.versionEdit.text(),
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
449 }
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
450
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
451 if self.summaryEdit.text():
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
452 metadata["description"] = self.summaryEdit.text()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
453
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
454 if self.descriptionEdit.toPlainText():
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
455 metadata["long_description"] = (
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
456 "file: {0}".format(
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
457 ", ".join(self.descriptionEdit.toPlainText().splitlines())
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
458 )
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
459 if self.descriptionFromFilesCheckBox.isChecked() else
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
460 self.descriptionEdit.toPlainText()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
461 )
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
462
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
463 if self.descriptionContentTypeComboBox.currentData():
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
464 metadata["long_description_content_type"] = (
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
465 self.descriptionContentTypeComboBox.currentData()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
466 )
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
467
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
468 if self.authorEdit.text():
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
469 metadata["author"] = self.authorEdit.text()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
470 metadata["author_email"] = self.authorEmailEdit.text()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
471
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
472 if self.maintainerEdit.text():
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
473 metadata["maintainer"] = self.maintainerEdit.text()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
474 metadata["maintainer_email"] = self.maintainerEmailEdit.text()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
475
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
476 metadata["url"] = self.homePageUrlEdit.text()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
477 if self.downloadUrlEdit.text():
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
478 metadata["download_url"] = self.downloadUrlEdit.text()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
479
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
480 if self.projectUrlsList.topLevelItemCount():
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
481 projectURLs = {}
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
482 for row in range(self.projectUrlsList.topLevelItemCount()):
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
483 urlItem = self.projectUrlsList.topLevelItem(row)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
484 projectURLs[urlItem.text(0)] = urlItem.text(1)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
485 metadata["project_urls"] = SetupCfgUtilities.toString(projectURLs)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
486
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
487 classifiers = []
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
488 if not self.licenseClassifierCheckBox.isChecked():
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
489 metadata["license"] = self.licenseEdit.text()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
490 else:
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
491 classifiers.append(
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
492 self.licenseClassifierComboBox.itemData(
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
493 self.licenseClassifierComboBox.currentIndex()))
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
494
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
495 platforms = self.platformsEdit.toPlainText().splitlines()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
496 if platforms:
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
497 metadata["platforms"] = SetupCfgUtilities.toString(platforms)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
498
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
499 if self.developmentStatusComboBox.currentIndex() != 0:
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
500 classifiers.append(self.developmentStatusComboBox.currentData())
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
501
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
502 itm = self.classifiersList.topLevelItem(0)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
503 while itm:
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
504 itm.setExpanded(True)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
505 if itm.checkState(0) == Qt.CheckState.Checked:
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
506 classifiers.append(itm.data(0, Qt.ItemDataRole.UserRole))
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
507 itm = self.classifiersList.itemBelow(itm)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
508
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
509 # cleanup classifiers list - remove all invalid entries
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
510 classifiers = [c for c in classifiers if bool(c)]
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
511 if classifiers:
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
512 metadata["classifiers"] = SetupCfgUtilities.toString(classifiers)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
513
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
514 if self.keywordsEdit.text():
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
515 metadata["keywords"] = SetupCfgUtilities.toString(
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
516 self.keywordsEdit.text().split())
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
517
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
518 options = {
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
519 "packages": "find:"
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
520 }
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
521
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
522 if self.pyVersionEdit.text():
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
523 options["python_requires"] = self.pyVersionEdit.text()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
524
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
525 findOptions = {}
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
526 src = Utilities.fromNativeSeparators(self.sourceDirectoryPicker.text())
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
527 excludePatterns = []
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
528 for row in range(self.excludePatternList.count()):
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
529 excludePatterns.append(
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
530 self.excludePatternList.item(row).text())
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
531 if src:
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
532 options["package_dir"] = SetupCfgUtilities.toString({"": src})
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
533 findOptions["where"] = src
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
534 if excludePatterns:
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
535 findOptions["exclude"] = SetupCfgUtilities.toString(excludePatterns)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
536
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
537 if self.includePackageDataCheckBox.isChecked():
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
538 options["include_package_data"] = SetupCfgUtilities.toString(True)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
539 packageData = {} # placeholder section
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
540 else:
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
541 packageData = None
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
542
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
543 modules = []
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
544 for row in range(self.modulesList.count()):
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
545 modules.append(self.modulesList.item(row).text())
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
546 if modules:
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
547 options["py_modules"] = SetupCfgUtilities.toString(modules)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
548
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
549 if self.entryPointsList.topLevelItemCount():
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
550 entryPoints = {
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
551 "console_scripts": {},
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
552 "gui_scripts": {},
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
553 }
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
554 for row in range(self.entryPointsList.topLevelItemCount()):
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
555 itm = self.entryPointsList.topLevelItem(row)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
556 entryPoints[itm.data(0, Qt.ItemDataRole.UserRole)][
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
557 itm.text(1)] = itm.text(2)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
558 for epType in list(entryPoints.keys()):
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
559 if entryPoints[epType]:
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
560 entryPoints[epType] = SetupCfgUtilities.toString(
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
561 entryPoints[epType])
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
562 else:
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
563 del entryPoints[epType]
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
564 else:
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
565 entryPoints = {}
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
566
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
567 configDict = {
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
568 "metadata": metadata,
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
569 "options": options,
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
570 "options.packages.find": findOptions,
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
571 }
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
572 if packageData is not None:
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
573 configDict["options.package_data"] = packageData
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
574 if entryPoints:
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
575 configDict["options.entry_points"] = entryPoints
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
576
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
577 cparser = configparser.ConfigParser()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
578 cparser.read_dict(configDict)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
579 sio = io.StringIO()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
580 cparser.write(sio)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
581 sourceCode = sio.getvalue()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
582 return sourceCode
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
583
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
584 def __getPyprojectCode(self):
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
585 """
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
586 Private method to get the source code for a 'pyproject.toml' file.
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
587
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
588 @return generated code
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
589 @rtype str
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
590 """
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
591 doc = tomlkit.document()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
592
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
593 buildSystem = tomlkit.table()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
594 buildSystem["requires"] = ["setuptools>=61.0.0", "wheel"]
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
595 buildSystem["build-backend"] = "setuptools.build_meta"
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
596 doc["build-system"] = buildSystem
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
597
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
598 project = tomlkit.table()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
599 project["name"] = self.nameEdit.text()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
600 project["version"] = self.versionEdit.text()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
601
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
602 if self.summaryEdit.text():
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
603 project["description"] = self.summaryEdit.text()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
604
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
605 if self.descriptionEdit.toPlainText():
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
606 if self.descriptionFromFilesCheckBox.isChecked():
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
607 project["readme"] = self.descriptionEdit.toPlainText().splitlines()[0]
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
608 else:
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
609 readme = tomlkit.table()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
610 readme["text"] = self.descriptionEdit.toPlainText()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
611 readme["content-type"] = (
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
612 self.descriptionContentTypeComboBox.currentData()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
613 )
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
614 project["readme"] = readme
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
615
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
616 if self.authorEdit.text():
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
617 authors = tomlkit.array()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
618 author = tomlkit.inline_table()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
619 author["name"] = self.authorEdit.text()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
620 author["email"] = self.authorEmailEdit.text()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
621 authors.append(author)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
622 project["authors"] = authors
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
623
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
624 if self.maintainerEdit.text():
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
625 maintainers = tomlkit.array()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
626 maintainer = tomlkit.inline_table()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
627 maintainer["name"] = self.maintainerEdit.text()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
628 maintainer["email"] = self.maintainerEmailEdit.text()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
629 maintainers.append(maintainer)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
630 project["maintainers"] = maintainers
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
631
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
632 urls = tomlkit.table()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
633 urls["Homepage"] = self.homePageUrlEdit.text()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
634 if self.downloadUrlEdit.text():
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
635 urls["Download"] = self.downloadUrlEdit.text()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
636
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
637 if self.projectUrlsList.topLevelItemCount():
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
638 for row in range(self.projectUrlsList.topLevelItemCount()):
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
639 urlItem = self.projectUrlsList.topLevelItem(row)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
640 urls[urlItem.text(0)] = urlItem.text(1)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
641 project["urls"] = urls
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
642
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
643 classifiers = []
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
644 if not self.licenseClassifierCheckBox.isChecked():
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
645 license = tomlkit.table()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
646 license["text"] = self.licenseEdit.text()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
647 project["license"] = license
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
648 else:
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
649 classifiers.append(
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
650 self.licenseClassifierComboBox.itemData(
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
651 self.licenseClassifierComboBox.currentIndex()))
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
652
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
653 if self.developmentStatusComboBox.currentIndex() != 0:
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
654 classifiers.append(self.developmentStatusComboBox.currentData())
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
655
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
656 itm = self.classifiersList.topLevelItem(0)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
657 while itm:
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
658 itm.setExpanded(True)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
659 if itm.checkState(0) == Qt.CheckState.Checked:
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
660 classifiers.append(itm.data(0, Qt.ItemDataRole.UserRole))
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
661 itm = self.classifiersList.itemBelow(itm)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
662
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
663 # cleanup classifiers list - remove all invalid entries
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
664 classifiers = [c for c in classifiers if bool(c)]
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
665 if classifiers:
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
666 classifiersArray = tomlkit.array()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
667 for classifier in classifiers:
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
668 classifiersArray.add_line(classifier)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
669 classifiersArray.append(tomlkit.nl())
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
670 project["classifiers"] = classifiersArray
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
671
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
672 if self.keywordsEdit.text():
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
673 keywords = tomlkit.array()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
674 for kw in self.keywordsEdit.text().split():
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
675 keywords.add_line(kw)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
676 keywords.append(tomlkit.nl())
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
677 project["keywords"] = keywords
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
678
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
679 if self.pyVersionEdit.text():
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
680 project["requires-python"] = self.pyVersionEdit.text()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
681
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
682 if self.entryPointsList.topLevelItemCount():
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
683 entryPoints = {
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
684 "console_scripts": {},
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
685 "gui_scripts": {},
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
686 }
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
687 for row in range(self.entryPointsList.topLevelItemCount()):
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
688 itm = self.entryPointsList.topLevelItem(row)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
689 entryPoints[itm.data(0, Qt.ItemDataRole.UserRole)][
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
690 itm.text(1)] = itm.text(2)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
691
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
692 if entryPoints["console_scripts"]:
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
693 scripts = tomlkit.table()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
694 for name, function in entryPoints["console_scripts"].items():
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
695 scripts[name] = function
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
696 project["scripts"] = scripts
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
697
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
698 if entryPoints["gui_scripts"]:
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
699 guiScripts = tomlkit.table()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
700 for name, function in entryPoints["gui_scripts"].items():
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
701 guiScripts[name] = function
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
702 project["gui-scripts"] = guiScripts
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
703
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
704 # placeholder
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
705 dependencies = tomlkit.array()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
706 dependencies.append(tomlkit.comment(
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
707 "TODO: enter project dependencies " # __NO-TASK__
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
708 ))
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
709 project["dependencies"] = dependencies
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
710
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
711 doc["project"] = project
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
712
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
713 setuptools = tomlkit.table()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
714
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
715 platforms = self.platformsEdit.toPlainText().splitlines()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
716 if platforms:
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
717 platformsArray = tomlkit.array()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
718 for plt in platforms:
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
719 platformsArray.add_line(plt)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
720 platformsArray.append(tomlkit.nl())
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
721 setuptools["platforms"] = platformsArray
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
722
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
723 setuptools["include-package-data"] = self.includePackageDataCheckBox.isChecked()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
724 if self.includePackageDataCheckBox.isChecked():
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
725 # placeholder
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
726 setuptools["package-data"] = tomlkit.table()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
727 setuptools["package-data"].add(tomlkit.comment(
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
728 "TODO: enter package data patterns" # __NO-TASK__
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
729 ))
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
730
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
731 if self.modulesList.count():
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
732 modulesArray = tomlkit.array()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
733 for row in range(self.modulesList.count()):
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
734 modulesArray.add_line(self.modulesList.item(row).text())
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
735 modulesArray.append(tomlkit.nl())
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
736 setuptools["py-modules"] = modulesArray
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
737
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
738 findspec = tomlkit.table()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
739 src = Utilities.fromNativeSeparators(self.sourceDirectoryPicker.text())
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
740 excludePatterns = []
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
741 for row in range(self.excludePatternList.count()):
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
742 excludePatterns.append(
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
743 self.excludePatternList.item(row).text())
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
744 if src:
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
745 findspec["where"] = [ericApp().getObject("Project").getRelativePath(src)]
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
746 if excludePatterns:
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
747 excludePatternsArray = tomlkit.array()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
748 for pattern in excludePatterns:
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
749 excludePatternsArray.add_line(pattern)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
750 excludePatternsArray.append(tomlkit.nl())
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
751 findspec["exclude"] = excludePatternsArray
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
752
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
753 if bool(findspec):
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
754 setuptools["packages"] = tomlkit.table(is_super_table=True)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
755 setuptools["packages"]["find"] = findspec
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
756
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
757 doc["tool"] = tomlkit.table(is_super_table=True)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
758 doc["tool"]["setuptools"] = setuptools
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
759
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
760 sourceCode = tomlkit.dumps(doc)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
761 return sourceCode
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
762
9202
81388c6065e8 Refined the setup wizard a little bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9201
diff changeset
763 @pyqtSlot()
81388c6065e8 Refined the setup wizard a little bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9201
diff changeset
764 def accept(self):
81388c6065e8 Refined the setup wizard a little bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9201
diff changeset
765 """
81388c6065e8 Refined the setup wizard a little bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9201
diff changeset
766 Public slot to handle pressing the OK button.
9201
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
767 """
9202
81388c6065e8 Refined the setup wizard a little bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9201
diff changeset
768 line, index = self.__editor.getCursorPosition()
81388c6065e8 Refined the setup wizard a little bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9201
diff changeset
769 indLevel = self.__editor.indentation(line) // self.__editor.indentationWidth()
81388c6065e8 Refined the setup wizard a little bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9201
diff changeset
770 if self.__editor.indentationsUseTabs():
81388c6065e8 Refined the setup wizard a little bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9201
diff changeset
771 indString = '\t'
81388c6065e8 Refined the setup wizard a little bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9201
diff changeset
772 else:
81388c6065e8 Refined the setup wizard a little bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9201
diff changeset
773 indString = self.__editor.indentationWidth() * ' '
9201
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
774
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
775 if self.__category == "setup.py":
9202
81388c6065e8 Refined the setup wizard a little bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9201
diff changeset
776 sourceCode = self.__getSetupPyCode(indLevel, indString)
9201
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
777 elif self.__category == "setup.cfg":
9202
81388c6065e8 Refined the setup wizard a little bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9201
diff changeset
778 sourceCode = self.__getSetupCfgCode()
9201
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
779 elif self.__category == "pyproject.toml":
9202
81388c6065e8 Refined the setup wizard a little bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9201
diff changeset
780 sourceCode = self.__getPyprojectCode()
9201
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
781 else:
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
782 # should not happen, but play it safe
9202
81388c6065e8 Refined the setup wizard a little bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9201
diff changeset
783 sourceCode = ""
81388c6065e8 Refined the setup wizard a little bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9201
diff changeset
784
81388c6065e8 Refined the setup wizard a little bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9201
diff changeset
785 if sourceCode:
81388c6065e8 Refined the setup wizard a little bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9201
diff changeset
786 line, index = self.__editor.getCursorPosition()
81388c6065e8 Refined the setup wizard a little bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9201
diff changeset
787 # It should be done this way to allow undo
81388c6065e8 Refined the setup wizard a little bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9201
diff changeset
788 self.__editor.beginUndoAction()
81388c6065e8 Refined the setup wizard a little bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9201
diff changeset
789 self.__editor.insertAt(sourceCode, line, index)
81388c6065e8 Refined the setup wizard a little bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9201
diff changeset
790 self.__editor.endUndoAction()
81388c6065e8 Refined the setup wizard a little bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9201
diff changeset
791
81388c6065e8 Refined the setup wizard a little bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9201
diff changeset
792 super().accept()
9201
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
793
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
794 @pyqtSlot()
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
795 def on_projectButton_clicked(self):
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
796 """
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
797 Private slot to populate some fields with data retrieved from the
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
798 current project.
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
799 """
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8322
diff changeset
800 project = ericApp().getObject("Project")
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
801
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
802 self.nameEdit.setText(project.getProjectName())
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
803 try:
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
804 self.versionEdit.setText(project.getProjectVersion())
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
805 self.authorEdit.setText(project.getProjectAuthor())
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
806 self.authorEmailEdit.setText(project.getProjectAuthorEmail())
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
807 description = project.getProjectDescription()
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
808 except AttributeError:
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
809 self.versionEdit.setText(project.pdata["VERSION"][0])
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
810 self.authorEdit.setText(project.pdata["AUTHOR"][0])
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
811 self.authorEmailEdit.setText(project.pdata["EMAIL"][0])
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
812 description = project.pdata["DESCRIPTION"][0]
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
813
7258
aff39db4dacc Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7248
diff changeset
814 summary = (
aff39db4dacc Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7248
diff changeset
815 description.split(".", 1)[0].replace("\r", "").replace("\n", "") +
aff39db4dacc Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7248
diff changeset
816 "."
aff39db4dacc Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7248
diff changeset
817 )
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
818 self.summaryEdit.setText(summary)
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
819 self.descriptionEdit.setPlainText(description)
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
820
8757
23b2fe1cd863 Corrected the Setup wizard dialog and changed it to use the EricPathPicker widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8501
diff changeset
821 self.packageRootPicker.setText(project.getProjectPath())
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
822
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
823 # prevent overwriting of entries by disabling the button
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
824 self.projectButton.setEnabled(False)
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
825
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
826 def __getStartDir(self):
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
827 """
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
828 Private method to get the start directory for selection dialogs.
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
829
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
830 @return start directory
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
831 @rtype str
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
832 """
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
833 return (Preferences.getMultiProject("Workspace") or
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
834 Utilities.getHomeDir())
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
835
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
836 @pyqtSlot()
9201
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
837 def on_entryPointsList_itemSelectionChanged(self):
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
838 """
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
839 Private slot to handle a change of selected items of the
9201
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
840 entry points list.
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
841 """
9201
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
842 self.deleteEntryPointButton.setEnabled(
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
843 bool(self.entryPointsList.selectedItems()))
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
844 self.editEntryPointButton.setEnabled(
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
845 len(self.entryPointsList.selectedItems()) == 1)
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
846
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
847 @pyqtSlot()
9201
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
848 def on_deleteEntryPointButton_clicked(self):
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
849 """
9201
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
850 Private slot to delete the selected entry point items.
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
851 """
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
852 for itm in self.entryPointsList.selectedItems():
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
853 self.entryPointsList.takeTopLevelItem(self.entryPointsList.row(itm))
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
854 del itm
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
855
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
856 @pyqtSlot()
9201
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
857 def on_addEntryPointButton_clicked(self):
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
858 """
9201
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
859 Private slot to add an entry point to the list.
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
860 """
9201
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
861 project = ericApp().getObject("Project")
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
862 rootDir = (
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
863 project.getProjectPath()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
864 if project.isOpen() else
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
865 ""
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
866 )
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
867 dlg = AddEntryPointDialog(rootDir, parent=self)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
868 if dlg.exec() == QDialog.DialogCode.Accepted:
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
869 epType, epCategory, name, script = dlg.getEntryPoint()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
870 itm = QTreeWidgetItem(self.entryPointsList, [epType, name, script])
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
871 itm.setData(0, Qt.ItemDataRole.UserRole, epCategory)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
872
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
873 @pyqtSlot()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
874 def on_editEntryPointButton_clicked(self):
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
875 """
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
876 Private slot to edit the selected entry point.
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
877 """
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
878 project = ericApp().getObject("Project")
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
879 rootDir = (
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
880 project.getProjectPath()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
881 if project.isOpen() else
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
882 ""
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
883 )
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
884 itm = self.entryPointsList.selectedItems()[0]
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
885 dlg = AddEntryPointDialog(rootDir, epType=itm.text(0), name=itm.text(1),
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
886 script=itm.text(2), parent=self)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
887 if dlg.exec() == QDialog.DialogCode.Accepted:
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
888 epType, epCategory, name, script = dlg.getEntryPoint()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
889 itm.setText(0, epType)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
890 itm.setText(1, name)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
891 itm.setText(2, script)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
892 itm.setData(0, Qt.ItemDataRole.UserRole, epCategory)
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
893
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
894 @pyqtSlot()
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
895 def on_modulesList_itemSelectionChanged(self):
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
896 """
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
897 Private slot to handle a change of selected items of the
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
898 modules list.
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
899 """
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
900 self.deleteModuleButton.setEnabled(
9201
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
901 bool(self.modulesList.selectedItems()))
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
902
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
903 @pyqtSlot()
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
904 def on_deleteModuleButton_clicked(self):
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
905 """
9201
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
906 Private slot to delete the selected module items.
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
907 """
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
908 for itm in self.modulesList.selectedItems():
9201
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
909 self.modulesList.takeItem(self.modulesList.row(itm))
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
910 del itm
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
911
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
912 @pyqtSlot()
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
913 def on_addModuleButton_clicked(self):
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
914 """
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
915 Private slot to add Python modules to the list.
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
916 """
8757
23b2fe1cd863 Corrected the Setup wizard dialog and changed it to use the EricPathPicker widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8501
diff changeset
917 startDir = self.packageRootPicker.text() or self.__getStartDir()
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8322
diff changeset
918 modulesList = EricFileDialog.getOpenFileNames(
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
919 self,
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
920 self.tr("Add Python Modules"),
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
921 startDir,
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
922 self.tr("Python Files (*.py)"))
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
923 for module in modulesList:
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
924 module = module.replace(
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
925 Utilities.toNativeSeparators(startDir), "")
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
926 if module.startswith(("\\", "/")):
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
927 module = module[1:]
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
928 if module:
9201
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
929 QListWidgetItem(
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
930 str(pathlib.Path(module).with_suffix(""))
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
931 .replace("\\", ".")
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
932 .replace("/", "."),
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
933 self.modulesList
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
934 )
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
935
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
936 @pyqtSlot()
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
937 def on_excludePatternList_itemSelectionChanged(self):
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
938 """
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
939 Private slot to handle a change of selected items of the
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
940 exclude pattern list.
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
941 """
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
942 self.deleteExcludePatternButton.setEnabled(
9201
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
943 bool(self.excludePatternList.selectedItems()))
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
944
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
945 @pyqtSlot()
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
946 def on_deleteExcludePatternButton_clicked(self):
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
947 """
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
948 Private slot to delete the selected exclude pattern items.
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
949 """
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
950 for itm in self.excludePatternList.selectedItems():
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
951 self.excludePatternList.takeItem(
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
952 self.excludePatternList.row(itm))
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
953 del itm
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
954
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
955 @pyqtSlot()
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
956 def on_addExludePatternButton_clicked(self):
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
957 """
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
958 Private slot to add an exclude pattern to the list.
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
959 """
7258
aff39db4dacc Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7248
diff changeset
960 pattern = (
aff39db4dacc Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7248
diff changeset
961 self.excludePatternEdit.text().replace("\\", ".").replace("/", ".")
aff39db4dacc Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7248
diff changeset
962 )
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
963 if not self.excludePatternList.findItems(
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
964 pattern,
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
965 Qt.MatchFlag.MatchExactly | Qt.MatchFlag.MatchCaseSensitive
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
966 ):
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
967 QListWidgetItem(pattern, self.excludePatternList)
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
968
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
969 @pyqtSlot(str)
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
970 def on_excludePatternEdit_textChanged(self, txt):
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
971 """
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
972 Private slot to handle a change of the exclude pattern text.
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
973
9175
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
974 @param txt text of the line edit
21e2be5f0b41 Changed code to use the 'trove-classifiers' package instead of a local text file copy or a download from PyPI.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
975 @type str
6015
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
976 """
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
977 self.addExludePatternButton.setEnabled(bool(txt))
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
978
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
979 @pyqtSlot()
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
980 def on_excludePatternEdit_returnPressed(self):
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
981 """
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
982 Private slot handling a press of the return button of the
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
983 exclude pattern edit.
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
984 """
26fc8e08f4ac Added the setup.py wizard plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
985 self.on_addExludePatternButton_clicked()
9201
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
986
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
987 @pyqtSlot()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
988 def on_urlDeleteButton_clicked(self):
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
989 """
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
990 Private slot to delete the selected URL items.
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
991 """
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
992 for itm in self.projectUrlsList.selectedItems():
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
993 self.projectUrlsList.takeTopLevelItem(self.projectUrlsList.row(itm))
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
994 del itm
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
995
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
996 @pyqtSlot()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
997 def on_urlAddButton_clicked(self):
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
998 """
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
999 Private slot to add a project URL to the list.
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
1000 """
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
1001 dlg = AddProjectUrlDialog(parent=self)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
1002 if dlg.exec() == QDialog.DialogCode.Accepted:
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
1003 name, url = dlg.getUrl()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
1004 QTreeWidgetItem(self.projectUrlsList, [name, url])
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
1005
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
1006 @pyqtSlot()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
1007 def on_urlEditButton_clicked(self):
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
1008 """
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
1009 Private slot to edit the selected project URL.
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
1010 """
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
1011 itm = self.projectUrlsList.selectedItems()[0]
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
1012 dlg = AddProjectUrlDialog(name=itm.text(0), url=itm.text(1), parent=self)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
1013 if dlg.exec() == QDialog.DialogCode.Accepted:
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
1014 name, url = dlg.getUrl()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
1015 itm.setText(0, name)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
1016 itm.setText(1, url)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
1017
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
1018 @pyqtSlot()
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
1019 def on_projectUrlsList_itemSelectionChanged(self):
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
1020 """
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
1021 Private slot to handle a change of selected items of the
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
1022 project URLs list.
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
1023 """
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
1024 self.urlDeleteButton.setEnabled(bool(self.projectUrlsList.selectedItems()))
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9188
diff changeset
1025 self.urlEditButton.setEnabled(len(self.projectUrlsList.selectedItems()) == 1)

eric ide

mercurial