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

Niklas Söderlund niklas.soderlund at ragnatech.se
Thu Jan 21 16:25:40 CET 2021


Hi Laurent,

Thanks for your fix.

On 2021-01-21 14:44:17 +0200, Laurent Pinchart 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>

Reviewed-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>

> ---
>  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
> 
> _______________________________________________
> 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