[libcamera-devel] [PATCH 7/8] utils: checkstyle.py: Add commit checkers
Niklas Söderlund
niklas.soderlund at ragnatech.se
Sun Dec 27 11:41:38 CET 2020
Hi Laurent,
Thanks for your work.
On 2020-12-24 14:28:54 +0200, Laurent Pinchart wrote:
> Add a new category of checkers that operate on a whole commit.
>
> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>
> ---
> utils/checkstyle.py | 42 +++++++++++++++++++++++++++++++++++-------
> 1 file changed, 35 insertions(+), 7 deletions(-)
>
> diff --git a/utils/checkstyle.py b/utils/checkstyle.py
> index 9c2a1837aa11..c0a6b7ab06cd 100755
> --- a/utils/checkstyle.py
> +++ b/utils/checkstyle.py
> @@ -296,6 +296,30 @@ class ClassRegistry(type):
> return newclass
>
>
> +# ------------------------------------------------------------------------------
> +# Commit Checkers
> +#
> +
> +class CommitChecker(metaclass=ClassRegistry):
> + subclasses = []
> +
> + def __init__(self):
> + pass
> +
> + #
> + # Class methods
> + #
> + @classmethod
> + def checkers(cls):
> + for checker in cls.subclasses:
> + yield checker
> +
> +
> +class CommitIssue(object):
> + def __init__(self, msg):
> + self.msg = msg
> +
> +
> # ------------------------------------------------------------------------------
> # Style Checkers
> #
> @@ -721,25 +745,29 @@ def check_style(top_level, commit):
> print(commit.title)
> print(separator)
>
> + issues = 0
> +
> + # Apply the commit checkers first.
> + for checker in CommitChecker.checkers():
> + for issue in checker.check(commit, top_level):
> + print('%s%s%s' % (Colours.fg(Colours.Yellow), issue.msg, Colours.reset()))
> + issues += 1
> +
> # Filter out files we have no checker for.
> patterns = set()
> patterns.update(StyleChecker.all_patterns())
> patterns.update(Formatter.all_patterns())
> files = [f for f in commit.files() if len([p for p in patterns if fnmatch.fnmatch(os.path.basename(f), p)])]
> - if len(files) == 0:
> - print("Commit doesn't touch source files, skipping")
> - return 0
>
> - issues = 0
> for f in files:
> issues += check_file(top_level, commit, f)
>
> if issues == 0:
> - print("No style issue detected")
> + print("No issue detected")
> else:
> print('---')
> - print("%u potential style %s detected, please review" % \
> - (issues, 'issue' if issues == 1 else 'issues'))
> + print("%u potential %s detected, please review" %
> + (issues, 'issue' if issues == 1 else 'issues'))
>
> return issues
>
> --
> Regards,
>
> Laurent Pinchart
>
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel at lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel
--
Regards,
Niklas Söderlund
More information about the libcamera-devel
mailing list