[libcamera-devel] [PATCH 3/8] utils: checkstyle.py: Move commit handling to a separate section

Laurent Pinchart laurent.pinchart at ideasonboard.com
Thu Dec 24 13:28:50 CET 2020


To prepare for checkers that operate directly on commits, move the
related classes to a separate section. No functional change is included.

Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
---
 utils/checkstyle.py | 120 +++++++++++++++++++++++---------------------
 1 file changed, 62 insertions(+), 58 deletions(-)

diff --git a/utils/checkstyle.py b/utils/checkstyle.py
index 76267d5ea764..4ba65e5a4ff1 100755
--- a/utils/checkstyle.py
+++ b/utils/checkstyle.py
@@ -190,6 +190,68 @@ def parse_diff(diff):
     return hunks
 
 
+# ------------------------------------------------------------------------------
+# Commit, Staged Changes & Amendments
+#
+
+class Commit:
+    def __init__(self, commit):
+        self.commit = commit
+
+    def get_info(self):
+        # Get the commit title and list of files.
+        ret = subprocess.run(['git', 'show', '--pretty=oneline', '--name-only',
+                              self.commit],
+                             stdout=subprocess.PIPE).stdout.decode('utf-8')
+        files = ret.splitlines()
+        # Returning title and files list as a tuple
+        return files[0], files[1:]
+
+    def get_diff(self, top_level, filename):
+        return subprocess.run(['git', 'diff', '%s~..%s' % (self.commit, self.commit),
+                               '--', '%s/%s' % (top_level, filename)],
+                              stdout=subprocess.PIPE).stdout.decode('utf-8')
+
+    def get_file(self, filename):
+        return subprocess.run(['git', 'show', '%s:%s' % (self.commit, filename)],
+                              stdout=subprocess.PIPE).stdout.decode('utf-8')
+
+
+class StagedChanges(Commit):
+    def __init__(self):
+        Commit.__init__(self, '')
+
+    def get_info(self):
+        ret = subprocess.run(['git', 'diff', '--staged', '--name-only'],
+                             stdout=subprocess.PIPE).stdout.decode('utf-8')
+        return "Staged changes", ret.splitlines()
+
+    def get_diff(self, top_level, filename):
+        return subprocess.run(['git', 'diff', '--staged', '--',
+                               '%s/%s' % (top_level, filename)],
+                              stdout=subprocess.PIPE).stdout.decode('utf-8')
+
+
+class Amendment(StagedChanges):
+    def __init__(self):
+        StagedChanges.__init__(self)
+
+    def get_info(self):
+        # Create a title using HEAD commit
+        ret = subprocess.run(['git', 'show', '--pretty=oneline', '--no-patch'],
+                             stdout=subprocess.PIPE).stdout.decode('utf-8')
+        title = 'Amendment of ' + ret.strip()
+        # Extract the list of modified files
+        ret = subprocess.run(['git', 'diff', '--staged', '--name-only', 'HEAD~'],
+                             stdout=subprocess.PIPE).stdout.decode('utf-8')
+        return title, ret.splitlines()
+
+    def get_diff(self, top_level, filename):
+        return subprocess.run(['git', 'diff', '--staged', 'HEAD~', '--',
+                               '%s/%s' % (top_level, filename)],
+                              stdout=subprocess.PIPE).stdout.decode('utf-8')
+
+
 # ------------------------------------------------------------------------------
 # Helpers
 #
@@ -564,64 +626,6 @@ class StripTrailingSpaceFormatter(Formatter):
 # Style checking
 #
 
-class Commit:
-    def __init__(self, commit):
-        self.commit = commit
-
-    def get_info(self):
-        # Get the commit title and list of files.
-        ret = subprocess.run(['git', 'show', '--pretty=oneline', '--name-only',
-                              self.commit],
-                             stdout=subprocess.PIPE).stdout.decode('utf-8')
-        files = ret.splitlines()
-        # Returning title and files list as a tuple
-        return files[0], files[1:]
-
-    def get_diff(self, top_level, filename):
-        return subprocess.run(['git', 'diff', '%s~..%s' % (self.commit, self.commit),
-                               '--', '%s/%s' % (top_level, filename)],
-                              stdout=subprocess.PIPE).stdout.decode('utf-8')
-
-    def get_file(self, filename):
-        return subprocess.run(['git', 'show', '%s:%s' % (self.commit, filename)],
-                              stdout=subprocess.PIPE).stdout.decode('utf-8')
-
-
-class StagedChanges(Commit):
-    def __init__(self):
-        Commit.__init__(self, '')
-
-    def get_info(self):
-        ret = subprocess.run(['git', 'diff', '--staged', '--name-only'],
-                             stdout=subprocess.PIPE).stdout.decode('utf-8')
-        return "Staged changes", ret.splitlines()
-
-    def get_diff(self, top_level, filename):
-        return subprocess.run(['git', 'diff', '--staged', '--',
-                               '%s/%s' % (top_level, filename)],
-                              stdout=subprocess.PIPE).stdout.decode('utf-8')
-
-
-class Amendment(StagedChanges):
-    def __init__(self):
-        StagedChanges.__init__(self)
-
-    def get_info(self):
-        # Create a title using HEAD commit
-        ret = subprocess.run(['git', 'show', '--pretty=oneline', '--no-patch'],
-                             stdout=subprocess.PIPE).stdout.decode('utf-8')
-        title = 'Amendment of ' + ret.strip()
-        # Extract the list of modified files
-        ret = subprocess.run(['git', 'diff', '--staged', '--name-only', 'HEAD~'],
-                             stdout=subprocess.PIPE).stdout.decode('utf-8')
-        return title, ret.splitlines()
-
-    def get_diff(self, top_level, filename):
-        return subprocess.run(['git', 'diff', '--staged', 'HEAD~', '--',
-                               '%s/%s' % (top_level, filename)],
-                              stdout=subprocess.PIPE).stdout.decode('utf-8')
-
-
 def check_file(top_level, commit, filename):
     # Extract the line numbers touched by the commit.
     diff = commit.get_diff(top_level, filename)
-- 
Regards,

Laurent Pinchart



More information about the libcamera-devel mailing list