[elbe-devel] [PATCH 2/4] cdroms: Add class SrcMananager

Torben Hohn torben.hohn at linutronix.de
Tue Apr 14 09:14:17 CEST 2020


On Sun, Apr 12, 2020 at 10:45:09AM -0400, Olivier Dion wrote:
> On Thu, 02 Apr 2020, Torben Hohn <torben.hohn at linutronix.de> wrote:
> > On Mon, Mar 23, 2020 at 02:53:54PM -0400, Olivier Dion wrote:
> >> The source manager manage a dictionary of package with their version and
> >> components.  It also provide a generator for iterating over a set of
> >> tuples of the form (pkg, version, component).
> >> 
> >> Signed-off-by: Olivier Dion <dion at linutronix.de>
> >> ---
> >>  elbepack/cdroms.py | 22 ++++++++++++++++++++++
> >>  1 file changed, 22 insertions(+)
> >> 
> >> diff --git a/elbepack/cdroms.py b/elbepack/cdroms.py
> >> index 669c3c78..827ddf88 100644
> >> --- a/elbepack/cdroms.py
> >> +++ b/elbepack/cdroms.py
> >> @@ -25,6 +25,28 @@ from elbepack.isooptions import get_iso_options
> >>  
> >>  CDROM_SIZE = 640 * 1000 * 1000
> >>  
> >> +class SrcManager(object):
> >> +
> >> +    def __init__(self):
> >> +        self.pkgs = {}
> >> +
> >> +    def __iter__(self):
> >> +        return self.gen()
> >
> > errm... why do you use gen() ?
> > just put the code into the body.
> 
> Because an iterator has to keeps track of states, e.g. the index.  The
> generator however allows to yield results in tuples without having to keep
> states.

you can implement __iter__ as a generator, or conventionally.

-----------------------------------------------------------------------------
>>> class bla:
...     def __iter__(self):
...         for i in [1,2,3,4]:
...             yield i
...         
...     
... 
>>> for i in bla():
...     print(i)
...     
... 
1
2
3
4
>>> 
-----------------------------------------------------------------------------


-- 
Torben Hohn
Linutronix GmbH | Bahnhofstrasse 3 | D-88690 Uhldingen-Mühlhofen
Phone: +49 7556 25 999 18; Fax.: +49 7556 25 999 99

Hinweise zum Datenschutz finden Sie hier (Informations on data privacy 
can be found here): https://linutronix.de/kontakt/Datenschutz.php

Linutronix GmbH | Firmensitz (Registered Office): Uhldingen-Mühlhofen | 
Registergericht (Registration Court): Amtsgericht Freiburg i.Br., HRB700 
806 | Geschäftsführer (Managing Directors): Heinz Egger, Thomas Gleixner



More information about the elbe-devel mailing list