[libcamera-devel] [PATCH] utils: checkstyle.py: Fix "protected" members in Commit class

Naushir Patuck naush at raspberrypi.com
Thu Jan 21 16:49:18 CET 2021


Hi Laurent,

Thank you for your fix, this does indeed fix the problem.

On Thu, 21 Jan 2021 at 12:44, Laurent Pinchart <
laurent.pinchart at ideasonboard.com> wrote:

> The Commit class and subclasses were reworked in commit 4f5d17f3a4f5
> ("utils: checkstyle.py: Make title and files properties of commit
> class") with the introduction of members of the base class that were
> meant to be protected (not used externally, but accessible by
> subclasses). They have been named with a '__' prefix for this purpose,
> which was a bad choice as Python effectively replaces a leading '__'
> with a literal '__classname__' prefix to make them private
> (https://docs.python.org/3/tutorial/classes.html#private-variables). The
> members accessed in the derived classes are thus different from the ones
> in the base class.
>
> Fix this by replacing the double underscore prefix with a single
> underscore, which is a "weak internal use indicator" (as specified in
> https://www.python.org/dev/peps/pep-0008/), closer to the protected
> access specifier of C++.
>
> Reported-by: Umang Jain <email at uajain.com>
> Reported-by: Naushir Patuck <naush at raspberrypi.com>
> Fixes: 4f5d17f3a4f5 ("utils: checkstyle.py: Make title and files
> properties of commit class")
> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
>

Tested-by: Naushir Patuck <naush at raspberrypi.com>
Reviewed-by: Naushir Patuck <naush at raspberrypi.com>


> ---
>  utils/checkstyle.py | 24 ++++++++++++------------
>  1 file changed, 12 insertions(+), 12 deletions(-)
>
> diff --git a/utils/checkstyle.py b/utils/checkstyle.py
> index 0e9659e98518..fb9366f8095d 100755
> --- a/utils/checkstyle.py
> +++ b/utils/checkstyle.py
> @@ -203,23 +203,23 @@ class CommitFile:
>  class Commit:
>      def __init__(self, commit):
>          self.commit = commit
> -        self.__parse()
> +        self._parse()
>
> -    def __parse(self):
> +    def _parse(self):
>          # Get the commit title and list of files.
>          ret = subprocess.run(['git', 'show', '--pretty=oneline',
> '--name-status',
>                                self.commit],
>
> stdout=subprocess.PIPE).stdout.decode('utf-8')
>          files = ret.splitlines()
> -        self.__files = [CommitFile(f) for f in files[1:]]
> -        self.__title = files[0]
> +        self._files = [CommitFile(f) for f in files[1:]]
> +        self._title = files[0]
>
>      def files(self, filter='AM'):
> -        return [f.filename for f in self.__files if f.status in filter]
> +        return [f.filename for f in self._files if f.status in filter]
>
>      @property
>      def title(self):
> -        return self.__title
> +        return self._title
>
>      def get_diff(self, top_level, filename):
>          diff = subprocess.run(['git', 'diff', '%s~..%s' % (self.commit,
> self.commit),
> @@ -236,11 +236,11 @@ class StagedChanges(Commit):
>      def __init__(self):
>          Commit.__init__(self, '')
>
> -    def __parse(self):
> +    def _parse(self):
>          ret = subprocess.run(['git', 'diff', '--staged', '--name-status'],
>
> stdout=subprocess.PIPE).stdout.decode('utf-8')
> -        self.__title = "Staged changes"
> -        self.__files = [CommitFile(f) for f in ret.splitlines()]
> +        self._title = "Staged changes"
> +        self._files = [CommitFile(f) for f in ret.splitlines()]
>
>      def get_diff(self, top_level, filename):
>          diff = subprocess.run(['git', 'diff', '--staged', '--',
> @@ -253,15 +253,15 @@ class Amendment(StagedChanges):
>      def __init__(self):
>          StagedChanges.__init__(self)
>
> -    def __parse(self):
> +    def _parse(self):
>          # Create a title using HEAD commit
>          ret = subprocess.run(['git', 'show', '--pretty=oneline',
> '--no-patch'],
>
> stdout=subprocess.PIPE).stdout.decode('utf-8')
> -        self.__title = 'Amendment of ' + ret.strip()
> +        self._title = 'Amendment of ' + ret.strip()
>          # Extract the list of modified files
>          ret = subprocess.run(['git', 'diff', '--staged', '--name-status',
> 'HEAD~'],
>
> stdout=subprocess.PIPE).stdout.decode('utf-8')
> -        self.__files = [CommitFile(f) for f in ret.splitlines()]
> +        self._files = [CommitFile(f) for f in ret.splitlines()]
>
>      def get_diff(self, top_level, filename):
>          diff = subprocess.run(['git', 'diff', '--staged', 'HEAD~', '--',
> --
> Regards,
>
> Laurent Pinchart
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.libcamera.org/pipermail/libcamera-devel/attachments/20210121/0d7e5bb8/attachment.htm>


More information about the libcamera-devel mailing list