src/eric7/MicroPython/MipPackageDialog.py

Thu, 11 Jul 2024 14:21:34 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Thu, 11 Jul 2024 14:21:34 +0200
branch
eric7
changeset 10840
c8045d0dbaa7
parent 10643
08682797bfcd
child 11090
f5f5f5803935
permissions
-rw-r--r--

MicroPython
- Updated the list of known CircuitPython boards for CPy 9.1.0.
- Updated the list of known UF2 capable boards.

9844
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
10439
21c28b0f9e41 Updated copyright for 2024.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9979
diff changeset
3 # Copyright (c) 2023 - 2024 Detlev Offenbach <detlev@die-offenbachs.de>
9844
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing a dialog to enter the package data for 'mip'.
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 from PyQt6.QtCore import pyqtSlot
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11 from PyQt6.QtWidgets import QDialog, QDialogButtonBox
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 from semver import VersionInfo
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13
9979
dbafba79461d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9844
diff changeset
14 from .MipLocalInstaller import MicroPythonPackageIndex
9844
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15 from .Ui_MipPackageDialog import Ui_MipPackageDialog
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 class MipPackageDialog(QDialog, Ui_MipPackageDialog):
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 """
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 Class implementing a dialog to enter the package data for 'mip'.
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 """
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 def __init__(self, parent=None):
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 """
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 Constructor
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 @param parent reference to the parent widget (defaults to None)
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 @type QWidget (optional)
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 """
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 super().__init__(parent)
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 self.setupUi(self)
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32
9979
dbafba79461d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9844
diff changeset
33 self.indexEdit.setToolTip(
dbafba79461d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9844
diff changeset
34 self.tr(
dbafba79461d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9844
diff changeset
35 "Enter the URL of the package index. Leave empty to use the default"
dbafba79461d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9844
diff changeset
36 " index ({0})."
dbafba79461d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9844
diff changeset
37 ).format(MicroPythonPackageIndex)
dbafba79461d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9844
diff changeset
38 )
dbafba79461d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9844
diff changeset
39
9844
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 self.packageEdit.textChanged.connect(self.__updateOk)
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 self.versionEdit.textChanged.connect(self.__updateOk)
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 self.__updateOk()
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 msh = self.minimumSizeHint()
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 self.resize(max(self.width(), msh.width()), msh.height())
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 @pyqtSlot()
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 def __updateOk(self):
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 """
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 Private slot to set the enabled state of the OK button.
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 """
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 enable = bool(self.packageEdit.text())
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 version = self.versionEdit.text()
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 if version:
10643
08682797bfcd Fixed a 'semver' compatibility issue in the CircuitPython updater and the MIP package dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
56 try:
08682797bfcd Fixed a 'semver' compatibility issue in the CircuitPython updater and the MIP package dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
57 enable &= VersionInfo.is_valid(version)
08682797bfcd Fixed a 'semver' compatibility issue in the CircuitPython updater and the MIP package dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
58 except AttributeError:
08682797bfcd Fixed a 'semver' compatibility issue in the CircuitPython updater and the MIP package dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
59 enable &= VersionInfo.isvalid(version)
9844
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 self.buttonBox.button(QDialogButtonBox.StandardButton.Ok).setEnabled(enable)
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 def getData(self):
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 """
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 Public method to get the entered package installation data.
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66
9979
dbafba79461d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9844
diff changeset
67 @return tuple containing the package name, package version, a flag indicating
dbafba79461d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9844
diff changeset
68 to install the package as '.mpy ' file, the target directory on the device
dbafba79461d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9844
diff changeset
69 and the package index to get the package from
dbafba79461d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9844
diff changeset
70 @rtype tuple of (str, str, bool, str, str)
9844
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 """
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 return (
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 self.packageEdit.text(),
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 self.versionEdit.text(),
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 self.mpyCheckBox.isChecked(),
9979
dbafba79461d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9844
diff changeset
76 self.targetEdit.text(),
dbafba79461d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9844
diff changeset
77 self.indexEdit.text(),
9844
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 )

eric ide

mercurial