Sun, 09 Feb 2025 15:47:27 +0100
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 ""