Hi Tamar,

A few suggestions below.

>diff --git a/contrib/check_GNU_style_lib.py b/contrib/check_GNU_style_lib.py 
>index 
>>6dbe4b53559c63d2e0276d0ff88619cd2f7f8e06..ab21ed4607593668ab95f24715295a41ac7d8>a21
> 100755
>--- a/contrib/check_GNU_style_lib.py
>+++ b/contrib/check_GNU_style_lib.py
>@@ -29,6 +29,7 @@
> import sys
> import re
> import unittest
>+import json
 
> def import_pip3(*args):
>     missing=[]
>@@ -317,6 +318,33 @@ def check_GNU_style_file(file, format):
>         else:
>             print('%d error(s) written to %s file.' % (len(errors), f))
>             exit(1)
>+    elif format == 'json':
>+        fn = lambda x: x.error_message
>+        i = 1
>+        result = []
>+        for (k, errors) in groupby(sorted(errors, key = fn), fn):
>+            errors = list(errors)
>+            entry = {}
>+            entry['type'] = i
>+            entry['msg'] = k
>+            entry['count'] = len(errors)
>+            i += 1
>+            errlines = []
>+            for e in errors:
>+                locs = e.error_location ().split(':')
>+                errlines.append({ "file": locs[0]
>+                                , "row": int(locs[1])
>+                                , "column": int(locs[2])
>+                                , "err": e.console_error })
>+            entry['errors'] = errlines
>+            result.append(entry)
>+
>+        if len(errors) == 0:
>+            exit(0)
>+        else:
>+            json_string = json.dumps(result)
>+            print(json_string)
>+            exit(1)
>     else:
>         assert False

Might be a good idea to rename "fn" -> "get_err", "i" -> "error_type_counter", 
"k" -> "error_message", "errors" -> "grouped_errors" to make it easier to 
understand. 

You can also simplify "entry" construction like this:
entry = {
    'type': error_type_counter,
    'msg': error_message,
    'count': len(grouped_errors)
}

BR,
- Vladimir Miloserdov

Reply via email to