Gentoo Archives: gentoo-portage-dev

From: Matt Turner <mattst88@g.o>
To: Zac Medico <zmedico@g.o>
Cc: gentoo-portage-dev@l.g.o
Subject: Re: [gentoo-portage-dev] [PATCH gentoolkit 1/2] eclean: Inline _sort_keys method
Date: Thu, 05 Dec 2019 02:25:29
Message-Id: CAEdQ38FEHB7STEDuRagP8t83stVCBx8zEG+fo4SsMAeu0EdTTQ@mail.gmail.com
In Reply to: Re: [gentoo-portage-dev] [PATCH gentoolkit 1/2] eclean: Inline _sort_keys method by Zac Medico
1 On Wed, Dec 4, 2019 at 9:17 PM Zac Medico <zmedico@g.o> wrote:
2 >
3 > On 12/4/19 6:12 PM, Matt Turner wrote:
4 > > The boilerplate for calling this method was larger than what it actually
5 > > contained. Additionally I think this change will allow the loop to run
6 > > on a generator rather than a full list.
7 > >
8 > > Signed-off-by: Matt Turner <mattst88@g.o>
9 > > ---
10 > > pym/gentoolkit/eclean/clean.py | 21 ++++++---------------
11 > > 1 file changed, 6 insertions(+), 15 deletions(-)
12 > >
13 > > diff --git a/pym/gentoolkit/eclean/clean.py b/pym/gentoolkit/eclean/clean.py
14 > > index fd59976..b790de0 100644
15 > > --- a/pym/gentoolkit/eclean/clean.py
16 > > +++ b/pym/gentoolkit/eclean/clean.py
17 > > @@ -36,10 +36,9 @@ class CleanUp(object):
18 > > @return: total size that was cleaned
19 > > """
20 > > file_type = 'file'
21 > > - clean_keys = self._sort_keys(clean_dict)
22 > > clean_size = 0
23 > > - # clean all entries one by one
24 > > - for key in clean_keys:
25 > > + # clean all entries one by one; sorting helps reading
26 > > + for key in sorted(clean_dict.keys()):
27 > > clean_size += self._clean_files(clean_dict[key], key, file_type)
28 > > # return total size of deleted or to delete files
29 > > return clean_size
30 > > @@ -57,10 +56,9 @@ class CleanUp(object):
31 > > @return: total size that was cleaned
32 > > """
33 > > file_type = 'binary package'
34 > > - clean_keys = self._sort_keys(clean_dict)
35 > > clean_size = 0
36 > > - # clean all entries one by one
37 > > - for key in clean_keys:
38 > > + # clean all entries one by one; sorting helps reading
39 > > + for key in sorted(clean_dict.keys()):
40 > > clean_size += self._clean_files(clean_dict[key], key, file_type)
41 > >
42 > > # run 'emaint --fix' here
43 > > @@ -83,10 +81,9 @@ class CleanUp(object):
44 > > @return: total size that would be cleaned
45 > > """
46 > > file_type = 'file'
47 > > - clean_keys = self._sort_keys(clean_dict)
48 > > clean_size = 0
49 > > - # tally all entries one by one
50 > > - for key in clean_keys:
51 > > + # tally all entries one by one; sorting helps reading
52 > > + for key in sorted(clean_dict.keys()):
53 > > key_size = self._get_size(clean_dict[key])
54 > > self.controller(key_size, key, clean_dict[key], file_type)
55 > > clean_size += key_size
56 > > @@ -110,12 +107,6 @@ class CleanUp(object):
57 > > print( pp.error("Error: %s" %str(er)), file=sys.stderr)
58 > > return key_size
59 > >
60 > > - def _sort_keys(self, clean_dict):
61 > > - """Returns a list of sorted dictionary keys."""
62 > > - # sorting helps reading
63 > > - clean_keys = sorted(clean_dict)
64 > > - return clean_keys
65 > > -
66 > > def _clean_files(self, files, key, file_type):
67 > > """File removal function."""
68 > > clean_size = 0
69 > >
70 >
71 > Looks good except you can just use sorted(clean_dict) without calling
72 > the keys() method.
73
74 Thanks Zac! Both fixes you noted (here and in 2/2) are fixed locally.