[PATCH v2 1/2] utils: checkstyle: Add a python formatter

Stefan Klug stefan.klug at ideasonboard.com
Tue Sep 3 18:10:54 CEST 2024


Reporting style issues on python files is great, automatically fixing them is
even better. Add a call to autopep8 for python files. This fixes the same
issues as the ones reported by pycodestyle.

Signed-off-by: Stefan Klug <stefan.klug at ideasonboard.com>
---
 utils/checkstyle.py | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/utils/checkstyle.py b/utils/checkstyle.py
index c9e41d4149f7..1ee211c3bb9b 100755
--- a/utils/checkstyle.py
+++ b/utils/checkstyle.py
@@ -943,6 +943,21 @@ class IncludeOrderFormatter(Formatter):
         return '\n'.join(lines)
 
 
+class Pep8Formatter(Formatter):
+    patterns = ('*.py',)
+
+    @classmethod
+    def format(cls, filename, data):
+        try:
+            ret = subprocess.run(['autopep8', '--ignore=E501', '-'],
+                                 input=data.encode('utf-8'), stdout=subprocess.PIPE)
+        except FileNotFoundError:
+            issues.append(StyleIssue(0, None, None, 'Please install autopep8 to format python additions'))
+            return issues
+
+        return ret.stdout.decode('utf-8')
+
+
 class StripTrailingSpaceFormatter(Formatter):
     patterns = ('*.c', '*.cpp', '*.h', '*.py', 'meson.build')
 
-- 
2.43.0



More information about the libcamera-devel mailing list