[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