utils: checkstyle: Add a python formatter

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@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
Stefan Klug 2024-09-03 18:10:54 +02:00
parent b318101ada
commit 8ffaf376bb

View file

@ -943,6 +943,21 @@ class IncludeOrderFormatter(Formatter):
return '\n'.join(lines) 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): class StripTrailingSpaceFormatter(Formatter):
patterns = ('*.c', '*.cpp', '*.h', '*.py', 'meson.build') patterns = ('*.c', '*.cpp', '*.h', '*.py', 'meson.build')