Merged with branch 'eric7' in order to prepare a new release. eric7-maintenance release-25.02

Sun, 09 Feb 2025 15:47:27 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 09 Feb 2025 15:47:27 +0100
branch
eric7-maintenance
changeset 11125
a12ce139743a
parent 11119
3902fb1f4129 (current diff)
parent 11124
f475e4e210d2 (diff)
child 11126
32d0ec15eba0

Merged with branch 'eric7' in order to prepare a new release.

docs/changelog.md file | annotate | diff | comparison | revisions
src/eric7/QScintilla/Editor.py file | annotate | diff | comparison | revisions
--- a/docs/changelog.md	Tue Jan 14 17:30:54 2025 +0100
+++ b/docs/changelog.md	Sun Feb 09 15:47:27 2025 +0100
@@ -1,6 +1,12 @@
 # Change Log
 
-### Version 25.01
+### Version 25.2
+- bug fixes
+- MicroPython
+    - Updated the list of known CircuitPython boards for CPy 9.2.3.
+    - Updated the list of known UF2 capable boards.
+
+### Version 25.1
 - bug fixes
 - General
     - Made the code compatible with Qt/PyQt 6.8.
--- a/src/eric7/MicroPython/Devices/__init__.py	Tue Jan 14 17:30:54 2025 +0100
+++ b/src/eric7/MicroPython/Devices/__init__.py	Sun Feb 09 15:47:27 2025 +0100
@@ -37,6 +37,8 @@
     },
     "circuitpython": {
         "ids": (
+            (0x0456, 0x003C),  # Analog Devices, Inc. MAX32690 APARD
+            (0x0456, 0x003D),  # Analog Devices, Inc. MAX32690 EvKit
             (0x0483, 0x572A),  # STMicroelectronics NUCLEO-F446RE - CPy
             (0x04D8, 0xE799),  # Cytron Maker Zero SAMD21
             (0x04D8, 0xEA2A),  # BHDynamics DynaLoRa_USB
@@ -58,6 +60,7 @@
             (0x04D8, 0xEF67),  # senseBox MCU
             (0x04E9, 0x80FF),  # PCTEL WSC-1450
             (0x054C, 0x0BC2),  # Sony Spresense
+            (0x1209, 0x0001),  # Solder Party ESP32-P4 Stamp XL
             (0x1209, 0x2017),  # Benjamin Shockley Mini SAM M4
             (0x1209, 0x2023),  # Lilygo T-Display
             (0x1209, 0x2031),  # Czech maker ES3ink
@@ -73,6 +76,7 @@
             (0x1209, 0x4DF1),  # Oak Dev Tech BREAD2040
             (0x1209, 0x4DF2),  # Oak Dev Tech CAST AWAY RP2040
             (0x1209, 0x4DF6),  # Oak Dev Tech RPGA Feather
+            (0x1209, 0x5687),  # Bradán Lane STUDIO Coin M0
             (0x1209, 0x5A52),  # ZRichard RP2.65-F
             (0x1209, 0x5BF0),  # Foosn Fomu
             (0x1209, 0x6036),  # Weekin WK-50
@@ -93,6 +97,7 @@
             (0x1209, 0xBAB6),  # Electronic Cats Escornabot Makech
             (0x1209, 0xBAB8),  # Electronic Cats NFC Copy Cat
             (0x1209, 0xC051),  # Betrusted Simmel
+            (0x1209, 0xCB65),  # 0xCB Gemini
             (0x1209, 0xCB74),  # 0xCB Helios
             (0x1209, 0xD10D),  # Diodes Delight Piunora
             (0x1209, 0xD1B5),  # Radomir Dopieralski PewPew LCD
@@ -122,6 +127,7 @@
             (0x1B4F, 0x0027),  # SparkFun STM32 MicroMod Processor
             (0x1B4F, 0x0028),  # SparkFun Thing Plus - STM32
             (0x1B4F, 0x002E),  # PJRC/Sparkfun Teensy MicroMod
+            (0x1B4F, 0x0038),  # SparkFun Thing Plus RP2350
             (0x1B4F, 0x0039),  # SparkFun Pro Micro RP2350
             (0x1B4F, 0x5289),  # SparkFun SFE_nRF52840_Mini
             (0x1B4F, 0x8D22),  # SparkFun SAMD21 Mini Breakout
@@ -225,12 +231,25 @@
             (0x2E8A, 0x1096),  # Cytron MOTION 2350 Pro
             (0x2E8A, 0x109A),  # Invector Labs Challenger+ RP2350 WiFi6/BLE5
             (0x2E8A, 0x109B),  # Invector Labs Challenger+ RP2350 BConnect
+            (0x2E8A, 0x109E),  # WIZnet W5100S-EVB-Pico2
             (0x2E8A, 0x10A2),  # Pimoroni Tiny FX
             (0x2E8A, 0x10A3),  # Pimoroni Pico Plus 2
             (0x2E8A, 0x10A4),  # Pimoroni Tiny 2350
             (0x2E8A, 0x10A5),  # Pimoroni Plasma 2350
             (0x2E8A, 0x10A6),  # Pimoroni PGA2350
             (0x2E8A, 0x10AE),  # Datanoise PicoADK V2
+            (0x2E8A, 0x10B0),  # Waveshare Electronics RP2350-Zero
+            (0x2E8A, 0x10B1),  # Waveshare Electronics RP2350-Plus
+            (0x2E8A, 0x10B2),  # Waveshare Electronics RP2350-Tiny
+            (0x2E8A, 0x10B3),  # Waveshare Electronics Waveshare RP2350-LCD-1.28
+            (0x2E8A, 0x10B4),  # Waveshare Electronics Waveshare RP2350-TOUCH-LCD-1.28
+            (0x2E8A, 0x10B5),  # Waveshare Electronics RP2350-One
+            (0x2E8A, 0x10B6),  # Waveshare Electronics RP2350-GEEK
+            (0x2E8A, 0x10B7),  # Waveshare Electronics Waveshare RP2350-LCD-0.96
+            (0x2E8A, 0x10BD),  # Pimoroni Pico Plus 2 W
+            (0x2E8A, 0x10BF),  # Pimoroni Plasma 2350 W
+            (0x2E8A, 0x10C1),  # Music Thing Modular Workshop Computer
+            (0x2E8A, 0x10C4),  # HEIA-FR Picomo V3
             (0x303A, 0x7001),  # Espressif ESP32-S2-HMI-DevKit-1
             (0x303A, 0x7003),
             # Espressif ESP32-S3-DevKitC-1
@@ -250,6 +269,7 @@
             (0x303A, 0x700D),  # Espressif ESP32-S3-Box-Lite
             (0x303A, 0x700F),  # Espressif ESP32-S3-EYE
             (0x303A, 0x7011),  # Espressif ESP32-S3-EV-LCD-Board_v1.5
+            (0x303A, 0x7013),  # Espressif ESP32-P4-Function-EV
             (0x303A, 0x8002),  # UnexpectedMaker TinyS2
             (0x303A, 0x8007),  # LILYGO TTGO T8 ESP32-S2
             (0x303A, 0x800D),  # Gravitech Cucumber RS
@@ -296,6 +316,7 @@
             (0x303A, 0x8162),  # WEMOS LOLIN S3 PRO 16MB Flash 8MB PSRAM
             (0x303A, 0x8166),  # VCC-GND YD-ESP32-S3
             (0x303A, 0x8168),  # WEMOS LOLIN S3 MINI 4MB Flash 2MB PSRAM
+            (0x303A, 0x816B),  # M5STACK M5Stack StampS3 - CircuitPython
             (0x303A, 0x817A),  # UnexpectedMaker NanoS3
             (0x303A, 0x817D),  # UnexpectedMaker BlizzardS3
             (0x303A, 0x8180),  # UnexpectedMaker BLING!
@@ -304,7 +325,7 @@
             (0x303A, 0x81AA),  # MakerM0 MagiClick S3 n4r2
             (0x303A, 0x81B1),  # UnexpectedMaker TinyWATCH S3
             (0x303A, 0x81B4),  # Waveshare Electronics Waveshare ESP32-S3-Zero
-            (0x303A, 0x81B6),  # LILYGO T DECK
+            (0x303A, 0x81B6),  # LILYGO T-Deck (Plus)
             (0x303A, 0x81B9),  # Espressif senseBox MCU-S2 ESP32S2
             (0x303A, 0x81BF),
             # MakerFabs MakerFabs-ESP32-S3-Parallel-TFT-With-Touch-7inch
@@ -321,9 +342,12 @@
             (0x303A, 0x821C),  # LILYGO T-Watch-S3
             (0x303A, 0x8225),  # UnexpectedMaker OMGS3
             (0x303A, 0x8244),  # Fablab Barcelona Barduino 4.0.2
+            (0x303A, 0x826E),  # Waveshare Electronics Waveshare ESP32-S3-Matrix
+            (0x303A, 0x82A7),  # Waveshare Electronics ESP32-S3-ETH
             (0x30A4, 0x0002),  # Blues Inc. Swan R5
             (0x3171, 0x0101),  # 8086.net Commander
             (0x3171, 0x010C),  # 8086.net USB Interposer
+            (0x3171, 0x010D),  # 8086.net RP2040 Interfacer
             (0x31E2, 0x2001),  # BDMICRO LLC VINA-D21
             (0x31E2, 0x2011),  # BDMICRO LLC VINA-D51
             (0x31E2, 0x2021),  # BDMICRO LLC VINA-D51
--- a/src/eric7/MicroPython/MicroPythonReplWidget.py	Tue Jan 14 17:30:54 2025 +0100
+++ b/src/eric7/MicroPython/MicroPythonReplWidget.py	Sun Feb 09 15:47:27 2025 +0100
@@ -401,19 +401,19 @@
         if key == Qt.Key.Key_Backspace:
             msg = b"\b"
         elif key == Qt.Key.Key_Delete:
-            msg = b"\x1B[\x33\x7E"
+            msg = b"\x1b[\x33\x7e"
         elif key == Qt.Key.Key_Up:
-            msg = b"\x1B[A"
+            msg = b"\x1b[A"
         elif key == Qt.Key.Key_Down:
-            msg = b"\x1B[B"
+            msg = b"\x1b[B"
         elif key == Qt.Key.Key_Right:
-            msg = b"\x1B[C"
+            msg = b"\x1b[C"
         elif key == Qt.Key.Key_Left:
-            msg = b"\x1B[D"
+            msg = b"\x1b[D"
         elif key == Qt.Key.Key_Home:
-            msg = b"\x1B[H"
+            msg = b"\x1b[H"
         elif key == Qt.Key.Key_End:
-            msg = b"\x1B[F"
+            msg = b"\x1b[F"
         elif (
             OSUtilities.isMacPlatform()
             and evt.modifiers() == Qt.KeyboardModifier.MetaModifier
--- a/src/eric7/MicroPython/UF2FlashDialog.py	Tue Jan 14 17:30:54 2025 +0100
+++ b/src/eric7/MicroPython/UF2FlashDialog.py	Sun Feb 09 15:47:27 2025 +0100
@@ -34,6 +34,9 @@
                 ("SAMD21", "SAMD21 Board"),
                 ("SAME54", "SAME54 Board"),
             ],
+            (0x04D8, 0x2402): [
+                ("SAMD21XPL", "SAMD21 Xplained Pro"),
+            ],
             (0x04D8, 0xE799): [
                 ("ZEROBOOT", "Maker Zero SAMD21"),
             ],
@@ -74,6 +77,9 @@
             (0x1209, 0x4DDD): [
                 ("SapBOOT", "CP Sapling"),
             ],
+            (0x1209, 0x5284): [
+                ("NRFMICRO", "nRFMicro"),
+            ],
             (0x1209, 0x7102): [
                 ("MINISAMBOOT", "Mini SAM M0"),
             ],
@@ -500,6 +506,10 @@
             (0x239A, 0x015F): [
                 ("VNDS2BOOT", "Vindie S2"),
             ],
+            (0x239A, 0x0163): [
+                ("STMH503BOOT", "TinyUF2 for STM32H5"),
+                ("STMH563BOOT", "TinyUF2 for STM32H5"),
+            ],
             (0x239A, 0x2030): [
                 ("MBBOOT", "Maker badge"),
             ],
@@ -647,6 +657,9 @@
             (0x303A, 0x8134): [
                 ("TBEAMBOOT", "T-Beam Supreme"),
             ],
+            (0x303A, 0x8140): [
+                ("TDISPBOOT", "T-Display S3"),
+            ],
             (0x303A, 0x8143): [
                 ("DYMBOOT", "Deneyap Mini"),
             ],
@@ -692,6 +705,9 @@
             (0x303A, 0x81B3): [
                 ("WS3ZEROBOOT", "ESP32-S3-Zero"),
             ],
+            (0x303A, 0x81B7): [
+                ("TDECKBOOT", "T-Deck"),
+            ],
             (0x303A, 0x81BA): [
                 ("senseBox", "MCU-S2 ESP32S2"),
             ],
@@ -713,6 +729,9 @@
             (0x303A, 0x8226): [
                 ("OMGS3BOOT", "OMGS3"),
             ],
+            (0x303A, 0x8248): [
+                ("SprMiniBoot", "ESP32-S3-Super-Mini"),
+            ],
             (0x30A4, 0x0002): [
                 ("SWANBOOT", "Swan R5"),
             ],
--- a/src/eric7/PipInterface/pipcleanup.py	Tue Jan 14 17:30:54 2025 +0100
+++ b/src/eric7/PipInterface/pipcleanup.py	Sun Feb 09 15:47:27 2025 +0100
@@ -1,7 +1,7 @@
 #!/usr/bin/env python3
 # -*- coding: utf-8 -*-
 
-# Copyright (c) 2002 - 2025 Detlev Offenbach <detlev@die-offenbachs.de>
+# Copyright (c) 2025 Detlev Offenbach <detlev@die-offenbachs.de>
 #
 
 """
@@ -32,7 +32,22 @@
 
     # check again for leftovers and report via exit code
     leftovers = glob.glob("~*", root_dir=sitepackages)
-    sys.exit(1 if bool(leftovers) else 0)
+
+    # delete more uninstall directories on Windows machines
+    if sys.platform.startswith("win"):
+        tempDir = os.path.expanduser("~\\AppData\\Local\\Temp")
+        win_leftovers = glob.glob("pip-uninstall-*", root_dir=tempDir)
+        for leftover in win_leftovers:
+            directory = os.path.join(tempDir, leftover)
+            print(f"Removing '{directory}'.")  # noqa: M801
+            shutil.rmtree(directory, ignore_errors=True)
+
+        # check again for leftovers and report via exit code
+        win_leftovers = glob.glob("pip-uninstall-*", root_dir=tempDir)
+    else:
+        win_leftovers = []
+
+    sys.exit(1 if bool(leftovers) or bool(win_leftovers) else 0)
 
 
 if __name__ == "__main__":
--- a/src/eric7/Plugins/CheckerPlugins/CodeStyleChecker/Security/Checks/trojanSource.py	Tue Jan 14 17:30:54 2025 +0100
+++ b/src/eric7/Plugins/CheckerPlugins/CodeStyleChecker/Security/Checks/trojanSource.py	Sun Feb 09 15:47:27 2025 +0100
@@ -35,16 +35,16 @@
 
 
 BIDI_CHARACTERS = (
-    "\u202A",
-    "\u202B",
-    "\u202C",
-    "\u202D",
-    "\u202E",
+    "\u202a",
+    "\u202b",
+    "\u202c",
+    "\u202d",
+    "\u202e",
     "\u2066",
     "\u2067",
     "\u2068",
     "\u2069",
-    "\u200F",
+    "\u200f",
 )
 
 
--- a/src/eric7/Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py	Tue Jan 14 17:30:54 2025 +0100
+++ b/src/eric7/Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py	Sun Feb 09 15:47:27 2025 +0100
@@ -465,7 +465,7 @@
     "S413": ["Crypto.Cipher"],
     "S505": ["RSA", 2048],
     "S609": ["os.system"],
-    "S613": [repr("\u202E")],
+    "S613": [repr("\u202e")],
     "S801": ["A1B2C3D4E5F6G7H8I9J0"],  # secok
     "S802": ["aA1bB2cC3dD4/eE5fF6gG7+hH8iI9jJ0=kKlLM+="],  # secok
 }
--- a/src/eric7/QScintilla/Editor.py	Tue Jan 14 17:30:54 2025 +0100
+++ b/src/eric7/QScintilla/Editor.py	Sun Feb 09 15:47:27 2025 +0100
@@ -5631,12 +5631,13 @@
         ):
             eolMode = self.__getEditorConfig("EOLMode", nodefault=True)
             if eolMode is None:
-                eolStr = self.project.getEolString()
-                self.setEolModeByEolString(eolStr)
-            else:
-                self.setEolMode(eolMode)
+                eolMode = self.project.getEolString()
         else:
             eolMode = self.__getEditorConfig("EOLMode")
+
+        if isinstance(eolMode, str):
+            self.setEolModeByEolString(eolMode)
+        else:
             self.setEolMode(eolMode)
         self.__eolChanged()
 
--- a/src/eric7/WebBrowser/Bookmarks/BookmarksModel.py	Tue Jan 14 17:30:54 2025 +0100
+++ b/src/eric7/WebBrowser/Bookmarks/BookmarksModel.py	Sun Feb 09 15:47:27 2025 +0100
@@ -205,7 +205,7 @@
         if role in [Qt.ItemDataRole.EditRole, Qt.ItemDataRole.DisplayRole]:
             if bookmarkNode.type() == BookmarkNodeType.Separator:
                 if index.column() == 0:
-                    return 50 * "\xB7"
+                    return 50 * "\xb7"
                 elif index.column() == 1:
                     return ""
 

eric ide

mercurial