From a7bd35b993858a7aef58652baab0735ba4812c3e Mon Sep 17 00:00:00 2001
From: Andrew <18502096+classicrocker883@users.noreply.github.com>
Date: Sun, 24 Nov 2024 22:12:24 -0500
Subject: [PATCH] =?UTF-8?q?=F0=9F=A7=91=E2=80=8D=F0=9F=92=BB=20Python=20sc?=
=?UTF-8?q?ripts=20cleanup,=20improve=20(#27533)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Marlin/src/HAL/LPC1768/upload_extra_script.py | 2 +-
.../ftdi_eve_lib/scripts/file2cpp.py | 5 +---
.../ftdi_eve_lib/scripts/font2cpp.py | 3 +-
.../ftdi_eve_lib/scripts/img2cpp.py | 6 +---
.../ftdi_eve_lib/scripts/svg2cpp.py | 2 +-
buildroot/bin/opt_disable | 2 +-
buildroot/bin/opt_enable | 2 +-
.../scripts/generic_create_variant.py | 3 +-
buildroot/share/PlatformIO/scripts/schema.py | 29 +++++++++++--------
.../share/PlatformIO/scripts/signature.py | 4 +--
buildroot/share/dwin/bin/DWIN_ICO.py | 3 +-
buildroot/share/dwin/bin/makeIco.py | 4 +--
buildroot/share/dwin/bin/splitIco.py | 4 +--
buildroot/share/fonts/buildhzk.py | 3 +-
.../share/scripts/MarlinBinaryProtocol.py | 9 ++----
.../share/scripts/createSpeedLookupTable.py | 3 +-
.../scripts/createTemperatureLookupMarlin.py | 3 +-
.../scripts/rle16_compress_cpp_image_data.py | 3 +-
.../share/scripts/rle_compress_bitmap.py | 3 +-
19 files changed, 37 insertions(+), 56 deletions(-)
diff --git a/Marlin/src/HAL/LPC1768/upload_extra_script.py b/Marlin/src/HAL/LPC1768/upload_extra_script.py
index b788a2bd1db0..ce241c4658f1 100755
--- a/Marlin/src/HAL/LPC1768/upload_extra_script.py
+++ b/Marlin/src/HAL/LPC1768/upload_extra_script.py
@@ -37,7 +37,7 @@ def before_upload(source, target, env):
#
# platformio.ini will accept this for a Windows upload port designation: 'upload_port = L:'
# Windows - doesn't care about the disk's name, only cares about the drive letter
- import subprocess,string
+ import subprocess, string
from ctypes import windll
from pathlib import PureWindowsPath
diff --git a/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/scripts/file2cpp.py b/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/scripts/file2cpp.py
index 1b84f171d954..92c1a5259ed7 100755
--- a/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/scripts/file2cpp.py
+++ b/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/scripts/file2cpp.py
@@ -16,10 +16,7 @@
# location: .
from __future__ import print_function
-import argparse
-import textwrap
-import os
-import zlib
+import argparse, textwrap, os, zlib
def deflate(data):
return zlib.compress(data)
diff --git a/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/scripts/font2cpp.py b/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/scripts/font2cpp.py
index 1d11b9307a5b..98a242049755 100755
--- a/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/scripts/font2cpp.py
+++ b/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/scripts/font2cpp.py
@@ -17,8 +17,7 @@
from __future__ import print_function
from PIL import Image
-import argparse
-import textwrap
+import argparse, textwrap
def pack_rle(data):
"""Use run-length encoding to pack the bytes"""
diff --git a/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/scripts/img2cpp.py b/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/scripts/img2cpp.py
index 131141079a21..b55b1250a96c 100755
--- a/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/scripts/img2cpp.py
+++ b/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/scripts/img2cpp.py
@@ -17,11 +17,7 @@
from __future__ import print_function
from PIL import Image
-import argparse
-import textwrap
-import os
-import sys
-import zlib
+import argparse, textwrap, os, sys, zlib
class WriteSource:
def __init__(self, mode):
diff --git a/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/scripts/svg2cpp.py b/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/scripts/svg2cpp.py
index 0f39932c6a92..f505636c86f5 100755
--- a/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/scripts/svg2cpp.py
+++ b/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/scripts/svg2cpp.py
@@ -16,7 +16,7 @@
# location: .
from __future__ import print_function
-import argparse,re,sys
+import argparse, re, sys
from html.parser import HTMLParser
diff --git a/buildroot/bin/opt_disable b/buildroot/bin/opt_disable
index 9331b2c924de..ce0eaa4ee62a 100755
--- a/buildroot/bin/opt_disable
+++ b/buildroot/bin/opt_disable
@@ -1,6 +1,6 @@
#!/usr/bin/env python
-import sys, os,config
+import sys, os, config
def main():
args = sys.argv[1:]
diff --git a/buildroot/bin/opt_enable b/buildroot/bin/opt_enable
index fd5c3a1b4b3e..644edb9a285e 100755
--- a/buildroot/bin/opt_enable
+++ b/buildroot/bin/opt_enable
@@ -1,6 +1,6 @@
#!/usr/bin/env python
-import sys, os,config
+import sys, os, config
def main():
args = sys.argv[1:]
diff --git a/buildroot/share/PlatformIO/scripts/generic_create_variant.py b/buildroot/share/PlatformIO/scripts/generic_create_variant.py
index cfab812e1503..d03e0ba1fb11 100644
--- a/buildroot/share/PlatformIO/scripts/generic_create_variant.py
+++ b/buildroot/share/PlatformIO/scripts/generic_create_variant.py
@@ -6,6 +6,7 @@
# will be picked up by PlatformIO just like any other variant.
#
import pioutil, re
+
marlin_variant_pattern = re.compile("marlin_.*")
if pioutil.is_pio_build():
import shutil, marlin
@@ -55,4 +56,4 @@
variants_dir = here / 'buildroot' / 'share' / 'PlatformIO' / 'variants'
source_dir = variants_dir / variant
assert source_dir.is_dir()
- board.update("build.variants_dir", str(variants_dir));
+ board.update("build.variants_dir", str(variants_dir))
diff --git a/buildroot/share/PlatformIO/scripts/schema.py b/buildroot/share/PlatformIO/scripts/schema.py
index 381a7865c97c..dedc8727bf8e 100755
--- a/buildroot/share/PlatformIO/scripts/schema.py
+++ b/buildroot/share/PlatformIO/scripts/schema.py
@@ -11,7 +11,7 @@
# been extended to evaluate conditions and can determine what options are actually enabled, not just which
# options are uncommented. That will be migrated to this script for standalone migration.
#
-import re,json
+import re, json
from pathlib import Path
def extend_dict(d:dict, k:tuple):
@@ -120,8 +120,6 @@ class Parse:
defgrep = re.compile(r'^(//)?\s*(#define)\s+([A-Za-z0-9_]+)\s*(.*?)\s*(//.+)?$')
# Pattern to match a float value
flt = r'[-+]?\s*(\d+\.|\d*\.\d+)([eE][-+]?\d+)?[fF]?'
- # Defines to ignore
- ignore = ('CONFIGURATION_H_VERSION', 'CONFIGURATION_ADV_H_VERSION', 'CONFIG_EXAMPLES_DIR', 'CONFIG_EXPORT')
# Start with unknown state
state = Parse.NORMAL
# Serial ID
@@ -138,7 +136,7 @@ class Parse:
eol_options = False # The options came from end of line, so only apply once
join_line = False # A flag that the line should be joined with the previous one
line = '' # A line buffer to handle \ continuation
- last_added_ref = None # Reference to the last added item
+ last_added_ref = {} # Reference to the last added item
# Loop through the lines in the file
for the_line in fileobj.readlines():
line_number += 1
@@ -175,7 +173,8 @@ class Parse:
comment_buff = []
if cline != '':
# A (block or slash) comment was already added
- cfield = 'notes' if 'comment' in last_added_ref else 'comment'
+ if 'comment' in last_added_ref:
+ cfield = 'notes'
last_added_ref[cfield] = cline
#
@@ -220,7 +219,6 @@ def use_comment(c, opt, sec, bufref):
# Temperature sensors are done
if state == Parse.GET_SENSORS:
options_json = f'[ {options_json[:-2]} ]'
-
state = Parse.NORMAL
# Strip the leading '* ' from block comments
@@ -230,7 +228,7 @@ def use_comment(c, opt, sec, bufref):
if state == Parse.GET_SENSORS:
sens = re.match(r'^(-?\d+)\s*:\s*(.+)$', cline)
if sens:
- s2 = sens[2].replace("'","''")
+ s2 = sens[2].replace("'", "''")
options_json += f"{sens[1]}:'{sens[1]} - {s2}', "
elif state == Parse.BLOCK_COMMENT:
@@ -255,12 +253,11 @@ def use_comment(c, opt, sec, bufref):
comment_buff = []
state = Parse.BLOCK_COMMENT
eol_options = False
-
elif cpos2 != -1 and (cpos2 < cpos1 or cpos1 == -1):
cpos = cpos2
# Comment after a define may be continued on the following lines
- if defmatch != None and cpos > 10:
+ if defmatch is not None and cpos > 10:
state = Parse.EOL_COMMENT
prev_comment = '\n'.join(comment_buff)
comment_buff = []
@@ -327,10 +324,10 @@ def atomize(s):
conditions.append([ f'!defined({line[7:].strip()})' ])
# Handle a complete #define line
- elif defmatch != None:
+ elif defmatch is not None:
# Get the match groups into vars
- enabled, define_name, val = defmatch[1] == None, defmatch[3], defmatch[4]
+ enabled, define_name, val = defmatch[1] is None, defmatch[3], defmatch[4]
# Increment the serial ID
sid += 1
@@ -375,7 +372,7 @@ def atomize(s):
# If the comment_buff is not empty, add the comment to the info
if comment_buff:
- full_comment = '\n'.join(comment_buff)
+ full_comment = '\n'.join(comment_buff).strip()
# An EOL comment will be added later
# The handling could go here instead of above
@@ -392,6 +389,14 @@ def atomize(s):
if units == 's' or units == 'sec': units = 'seconds'
define_info['units'] = units
+ if 'comment' not in define_info or define_info['comment'] == '':
+ if prev_comment:
+ define_info['comment'] = prev_comment
+ prev_comment = ''
+
+ if 'comment' in define_info and define_info['comment'] == '':
+ del define_info['comment']
+
# Set the options for the current #define
if define_name == "MOTHERBOARD" and boards != '':
define_info['options'] = boards
diff --git a/buildroot/share/PlatformIO/scripts/signature.py b/buildroot/share/PlatformIO/scripts/signature.py
index 046f02dd3eb8..6ae379391096 100755
--- a/buildroot/share/PlatformIO/scripts/signature.py
+++ b/buildroot/share/PlatformIO/scripts/signature.py
@@ -2,9 +2,7 @@
#
# signature.py
#
-import schema
-
-import subprocess,re,json,hashlib
+import schema, subprocess, re, json, hashlib
from datetime import datetime
from pathlib import Path
from functools import reduce
diff --git a/buildroot/share/dwin/bin/DWIN_ICO.py b/buildroot/share/dwin/bin/DWIN_ICO.py
index ff95b8cbc99b..d132000db64b 100644
--- a/buildroot/share/dwin/bin/DWIN_ICO.py
+++ b/buildroot/share/dwin/bin/DWIN_ICO.py
@@ -54,8 +54,7 @@
# does not define a name for 39. This is specially handled to
# prevent reordering stock icons.
-import os
-import struct
+import os, struct
from PIL import Image
def getJpegResolution(jpegFile):
diff --git a/buildroot/share/dwin/bin/makeIco.py b/buildroot/share/dwin/bin/makeIco.py
index 95d81503011a..b69b046a1ea3 100755
--- a/buildroot/share/dwin/bin/makeIco.py
+++ b/buildroot/share/dwin/bin/makeIco.py
@@ -18,9 +18,7 @@
# along with this program. If not, see .
#----------------------------------------------------------------
-import os.path
-import argparse
-import DWIN_ICO
+import os.path, argparse, DWIN_ICO
version = '2.0.7'
diff --git a/buildroot/share/dwin/bin/splitIco.py b/buildroot/share/dwin/bin/splitIco.py
index a96d1823d22e..a1a20971b78d 100755
--- a/buildroot/share/dwin/bin/splitIco.py
+++ b/buildroot/share/dwin/bin/splitIco.py
@@ -18,9 +18,7 @@
# along with this program. If not, see .
#----------------------------------------------------------------
-import os.path
-import argparse
-import DWIN_ICO
+import os.path, argparse, DWIN_ICO
version = '2.0.7'
diff --git a/buildroot/share/fonts/buildhzk.py b/buildroot/share/fonts/buildhzk.py
index 185cc14e973c..2b59980f6629 100644
--- a/buildroot/share/fonts/buildhzk.py
+++ b/buildroot/share/fonts/buildhzk.py
@@ -4,8 +4,7 @@
# Author: Taylor Talkington
# License: GPL
-import bdflib.reader
-import math
+import bdflib.reader, math
def glyph_bits(size_x, size_y, font, glyph_ord):
asc = font[b'FONT_ASCENT']
diff --git a/buildroot/share/scripts/MarlinBinaryProtocol.py b/buildroot/share/scripts/MarlinBinaryProtocol.py
index 5ec83b15032d..f759773fe2cd 100644
--- a/buildroot/share/scripts/MarlinBinaryProtocol.py
+++ b/buildroot/share/scripts/MarlinBinaryProtocol.py
@@ -2,14 +2,9 @@
# MarlinBinaryProtocol.py
# Supporting Firmware upload via USB/Serial, saving to the attached media.
#
-import serial
-import math
-import time
+import serial, math, time, threading, sys, datetime, random
from collections import deque
-import threading
-import sys
-import datetime
-import random
+
try:
import heatshrink2 as heatshrink
heatshrink_exists = True
diff --git a/buildroot/share/scripts/createSpeedLookupTable.py b/buildroot/share/scripts/createSpeedLookupTable.py
index 70ed953e54cd..c5b8a0275def 100755
--- a/buildroot/share/scripts/createSpeedLookupTable.py
+++ b/buildroot/share/scripts/createSpeedLookupTable.py
@@ -1,7 +1,6 @@
#!/usr/bin/env python
-from __future__ import print_function
-from __future__ import division
+from __future__ import print_function, division
""" Generate the stepper delay lookup table for Marlin firmware. """
diff --git a/buildroot/share/scripts/createTemperatureLookupMarlin.py b/buildroot/share/scripts/createTemperatureLookupMarlin.py
index e2441f5d89d5..eb8c09495735 100755
--- a/buildroot/share/scripts/createTemperatureLookupMarlin.py
+++ b/buildroot/share/scripts/createTemperatureLookupMarlin.py
@@ -18,8 +18,7 @@
--num-temps=... the number of temperature points to calculate (default: 36)
"""
-from __future__ import print_function
-from __future__ import division
+from __future__ import print_function, division
from math import *
import sys, getopt
diff --git a/buildroot/share/scripts/rle16_compress_cpp_image_data.py b/buildroot/share/scripts/rle16_compress_cpp_image_data.py
index 60681ee57a23..ed0c640fb874 100755
--- a/buildroot/share/scripts/rle16_compress_cpp_image_data.py
+++ b/buildroot/share/scripts/rle16_compress_cpp_image_data.py
@@ -5,8 +5,7 @@
#
# Usage: rle16_compress_cpp_image_data.py INPUT_FILE.cpp OUTPUT_FILE.cpp
#
-import sys, struct
-import re
+import sys, struct, re
def addCompressedData(input_file, output_file):
ofile = open(output_file, 'wt')
diff --git a/buildroot/share/scripts/rle_compress_bitmap.py b/buildroot/share/scripts/rle_compress_bitmap.py
index 8c25204919bf..d33f7be28086 100755
--- a/buildroot/share/scripts/rle_compress_bitmap.py
+++ b/buildroot/share/scripts/rle_compress_bitmap.py
@@ -6,8 +6,7 @@
#
# Usage: rle_compress_bitmap.py INPUT_FILE OUTPUT_FILE
#
-import sys, struct
-import re
+import sys, struct, re
def addCompressedData(input_file, output_file):
input_lines = input_file.readlines()