[elbe-devel] [PATCH 10/25] py3: avoid using has_key
Manuel Traut
manuel.traut at linutronix.de
Fri Dec 8 16:24:08 CET 2017
> On Wed, Dec 06, 2017 at 11:40:21AM +0100, Torben Hohn wrote:
> > On Fri, Dec 01, 2017 at 04:51:07PM +0100, Manuel Traut wrote:
> > > dictionaries no longer have the has_key function in python3.
> > > Instead 'in' can be used in py3 and py2.
> >
> > I assume, that this patch is completetly automatic.
> >
> > I was a big fan of has_key(), so this patch makes me a bit sad.
> >
> > Anyways, we have to move on. But i am not happy with these constructs:
> >
> > > + if ptype != parted.PARTITION_EXTENDED and part.text("label") in fslabel and fslabel[part.text("label")].fstype == "vfat":
> >
> > can we agree, that we "mandate" parenthesis in such expressions ? even
> > if not needed ?
> >
> > if (ptype != parted.PARTITION_EXTENDED) and (part.text("label") in fslabel) and (fslabel[part.text("label")].fstype == "vfat"):
> >
> > This is a good discussion object, because it was not havin parenthesis in the
> > first place. And i now think, it really should have some, or be extended
> > to multiple lines.
>
> i'm fine with additional parenthesis. Patches welcome!
>
> > We can do this later on, when we touch code. This is only cosmetics
> > after all.
> >
> > So i give
> >
> > Reviewed-by: Torben Hohn <torbenh at linutronix.de>
thanks for the review, i look forward to see patches for the parenthesis thing.
this change is applied to devel/elbe-3.0
> > anyways.
> >
> >
> > >
> > > Signed-off-by: Manuel Traut <manut at linutronix.de>
> > > ---
> > > elbepack/commands/parselicence.py | 10 +++++-----
> > > elbepack/config.py | 10 +++++-----
> > > elbepack/dump.py | 16 ++++++++--------
> > > elbepack/finetuning.py | 2 +-
> > > elbepack/fstab.py | 2 +-
> > > elbepack/hdimg.py | 8 ++++----
> > > elbepack/pkgutils.py | 2 +-
> > > elbepack/treeutils.py | 4 ++--
> > > elbepack/xmldefaults.py | 6 +++---
> > > 9 files changed, 30 insertions(+), 30 deletions(-)
> > >
> > > diff --git a/elbepack/commands/parselicence.py b/elbepack/commands/parselicence.py
> > > index 708d5aa4..c9d215de 100644
> > > --- a/elbepack/commands/parselicence.py
> > > +++ b/elbepack/commands/parselicence.py
> > > @@ -56,16 +56,16 @@ class license_dep5_to_spdx (dict):
> > >
> > >
> > > def have_override (self, pkgname):
> > > - return self.perpackage_override.has_key (pkgname)
> > > + return pkgname in self.perpackage_override
> > >
> > > def get_override (self, pkgname):
> > > return self.perpackage_override[pkgname]
> > >
> > > def map_one_license (self, pkgname, l, errors):
> > > - if self.perpackage_mapping.has_key(pkgname):
> > > - if self.perpackage_mapping[pkgname].has_key(l):
> > > + if pkgname in self.perpackage_mapping:
> > > + if l in self.perpackage_mapping[pkgname]:
> > > return self.perpackage_mapping[pkgname][l]
> > > - if self.has_key(l):
> > > + if l in self:
> > > return self[l]
> > > errors.append ('no mapping for "%s" for pkg "%s"' % (l, pkgname))
> > > return None
> > > @@ -92,7 +92,7 @@ class license_dep5_to_spdx (dict):
> > >
> > >
> > > def map_lic (self, pkgname, licenses, errors):
> > > - if self.perpackage_override.has_key (pkgname):
> > > + if pkgname in self.perpackage_override:
> > > if len(self.perpackage_override[pkgname]) > 0:
> > > return self.perpackage_override[pkgname]
> > >
> > > diff --git a/elbepack/config.py b/elbepack/config.py
> > > index 39ce2a61..f7262c7d 100644
> > > --- a/elbepack/config.py
> > > +++ b/elbepack/config.py
> > > @@ -27,19 +27,19 @@ class Config(dict):
> > > self['elbepass'] = "foo"
> > > self['pbuilder_jobs'] = "auto"
> > >
> > > - if os.environ.has_key('ELBE_SOAPPORT'):
> > > + if 'ELBE_SOAPPORT' in os.environ:
> > > self['soapport'] = os.environ['ELBE_SOAPPORT']
> > >
> > > - if os.environ.has_key('ELBE_SOAPHOST'):
> > > + if 'ELBE_SOAPHOST' in os.environ:
> > > self['soaphost'] = os.environ['ELBE_SOAPHOST']
> > >
> > > - if os.environ.has_key('ELBE_USER'):
> > > + if 'ELBE_USER' in os.environ:
> > > self['elbeuser'] = os.environ['ELBE_USER']
> > >
> > > - if os.environ.has_key('ELBE_PASS'):
> > > + if 'ELBE_PASS' in os.environ:
> > > self['elbepass'] = os.environ['ELBE_PASS']
> > >
> > > - if os.environ.has_key('ELBE_PBUILDER_JOBS'):
> > > + if 'ELBE_PBUILDER_JOBS' in os.environ:
> > > self['pbuilder_jobs'] = os.environ['ELBE_PBUILDER_JOBS']
> > >
> > >
> > > diff --git a/elbepack/dump.py b/elbepack/dump.py
> > > index 45669ec1..14cb0226 100644
> > > --- a/elbepack/dump.py
> > > +++ b/elbepack/dump.py
> > > @@ -153,7 +153,7 @@ def check_full_pkgs(pkgs, fullpkgs, errorname, cache):
> > > errors += 1
> > >
> > > for cp in cache.get_installed_pkgs():
> > > - if not pindex.has_key(cp.name):
> > > + if cp.name not in pindex:
> > > elog.printo( "additional package %s installed, that was not requested" % cp.name )
> > > errors += 1
> > >
> > > @@ -234,19 +234,19 @@ def elbe_report( xml, buildenv, cache, reportname, targetfs ):
> > > tgt_pkg_list = set()
> > >
> > > for fpath, realpath in targetfs.walk_files():
> > > - if index.has_key(fpath):
> > > + if fpath in index:
> > > pkg = index[fpath]
> > > tgt_pkg_list.add(pkg)
> > > else:
> > > pkg = "postinst generated"
> > >
> > > - if mt_index_post_fine.has_key(fpath) and mt_index.has_key(fpath):
> > > + if fpath in mt_index_post_fine and fpath in mt_index:
> > > if mt_index_post_fine[fpath] > mt_index[fpath]:
> > > pkg = "modified finetuning"
> > > - if mt_index_post_fine.has_key(fpath):
> > > + if fpath in mt_index_post_fine:
> > > if mt_index_post_arch[fpath] > mt_index_post_fine[fpath]:
> > > pkg = "from archive"
> > > - elif not mt_index.has_key(fpath):
> > > + elif fpath not in mt_index:
> > > pkg = "added in finetuning"
> > > else:
> > > pkg = "added in archive"
> > > @@ -257,9 +257,9 @@ def elbe_report( xml, buildenv, cache, reportname, targetfs ):
> > >
> > > outf.h2( "Deleted Files" )
> > > outf.table()
> > > - for fpath in mt_index.keys():
> > > - if not mt_index_post_arch.has_key(fpath):
> > > - if index.has_key(fpath):
> > > + for fpath in list(mt_index.keys()):
> > > + if fpath not in mt_index_post_arch:
> > > + if fpath in index:
> > > pkg = index[fpath]
> > > else:
> > > pkg = "postinst generated"
> > > diff --git a/elbepack/finetuning.py b/elbepack/finetuning.py
> > > index d209e1b3..0020e020 100644
> > > --- a/elbepack/finetuning.py
> > > +++ b/elbepack/finetuning.py
> > > @@ -53,7 +53,7 @@ class RmAction(FinetuningAction):
> > > def execute(self, log, buildenv, target):
> > > files = target.glob( self.node.et.text )
> > >
> > > - if self.node.et.attrib.has_key ('exclude'):
> > > + if 'exclude' in self.node.et.attrib:
> > > exclude = self.node.et.attrib['exclude'].split (' ')
> > > else:
> > > exclude = []
> > > diff --git a/elbepack/fstab.py b/elbepack/fstab.py
> > > index d86bc23f..47633002 100644
> > > --- a/elbepack/fstab.py
> > > +++ b/elbepack/fstab.py
> > > @@ -53,7 +53,7 @@ class mountpoint_dict (dict):
> > > def register (self, fstabentry):
> > > mp = fstabentry.mountpoint
> > >
> > > - if self.has_key (mp):
> > > + if mp in self:
> > > fstabentry.id = self[mp].id
> > > else:
> > > fstabentry.id = str(self.id_count)
> > > diff --git a/elbepack/hdimg.py b/elbepack/hdimg.py
> > > index e2834e51..872b0ded 100644
> > > --- a/elbepack/hdimg.py
> > > +++ b/elbepack/hdimg.py
> > > @@ -45,7 +45,7 @@ def mkfs_mtd( outf, mtd, fslabel, rfs, target ):
> > > continue
> > >
> > > label = v.text("label")
> > > - if not fslabel.has_key(label):
> > > + if label not in fslabel:
> > > continue
> > >
> > > try:
> > > @@ -301,7 +301,7 @@ def create_partition(disk, part, ptype, fslabel, size_in_sectors, current_sector
> > > sz = size_to_int(part.text("size"))/sector_size
> > >
> > > g = parted.Geometry(device=disk.device, start=current_sector, length=sz)
> > > - if ptype != parted.PARTITION_EXTENDED and fslabel.has_key(part.text("label")) and fslabel[part.text("label")].fstype == "vfat":
> > > + if ptype != parted.PARTITION_EXTENDED and part.text("label") in fslabel and fslabel[part.text("label")].fstype == "vfat":
> > > fs = simple_fstype("fat32")
> > > ppart = parted.Partition(disk, ptype, fs, geometry=g)
> > > ppart.setFlag(_ped.PARTITION_LBA)
> > > @@ -357,7 +357,7 @@ def create_logical_partitions(outf, disk, extended, epart, fslabel, target, grub
> > >
> > > current_sector += 2048
> > > lpart = create_partition(disk, logical, parted.PARTITION_LOGICAL, fslabel, size_in_sectors, current_sector)
> > > - if logical.has("label") and fslabel.has_key(logical.text("label")):
> > > + if logical.has("label") and logical.text("label") in fslabel:
> > > create_label(outf, disk, logical, lpart, fslabel, target, grub)
> > >
> > > current_sector += lpart.getLength();
> > > @@ -392,7 +392,7 @@ def do_image_hd( outf, hd, fslabel, target, grub_version ):
> > >
> > > if part.tag == "partition":
> > > ppart = create_partition(disk, part, parted.PARTITION_NORMAL, fslabel, size_in_sectors, current_sector)
> > > - if fslabel.has_key(part.text("label")):
> > > + if part.text("label") in fslabel:
> > > create_label(outf, disk, part, ppart, fslabel, target, grub)
> > > elif part.tag == "extended":
> > > ppart = create_partition(disk, part, parted.PARTITION_EXTENDED, fslabel, size_in_sectors, current_sector)
> > > diff --git a/elbepack/pkgutils.py b/elbepack/pkgutils.py
> > > index b8e82a68..d97baff7 100644
> > > --- a/elbepack/pkgutils.py
> > > +++ b/elbepack/pkgutils.py
> > > @@ -165,7 +165,7 @@ def get_dsc_size( fname ):
> > >
> > > sz = os.path.getsize(fname)
> > > for sect in tf:
> > > - if sect.has_key('Files'):
> > > + if 'Files' in sect:
> > > files = sect['Files'].split('\n')
> > > files = [ f.strip().split(' ') for f in files ]
> > > for f in files:
> > > diff --git a/elbepack/treeutils.py b/elbepack/treeutils.py
> > > index c998bde9..bcbd415e 100644
> > > --- a/elbepack/treeutils.py
> > > +++ b/elbepack/treeutils.py
> > > @@ -48,9 +48,9 @@ class ebase(object):
> > >
> > > def text( self, path, **args ):
> > > el = self.et.find("./"+path)
> > > - if (el is None) and not args.has_key("default"):
> > > + if (el is None) and "default" not in args:
> > > raise Exception( "Cant find path %s" % path )
> > > - elif (el is None) and args.has_key("default"):
> > > + elif (el is None) and "default" in args:
> > > default = args["default"]
> > > if type(default) == str:
> > > return default
> > > diff --git a/elbepack/xmldefaults.py b/elbepack/xmldefaults.py
> > > index 147d4be6..738d3199 100644
> > > --- a/elbepack/xmldefaults.py
> > > +++ b/elbepack/xmldefaults.py
> > > @@ -185,7 +185,7 @@ class ElbeDefaults(object):
> > >
> > > def __init__(self, build_type):
> > >
> > > - if not defaults.has_key(build_type):
> > > + if build_type not in defaults:
> > > print "Please specify a valid buildtype."
> > > print "Valid buildtypes:"
> > > print defaults.keys()
> > > @@ -197,9 +197,9 @@ class ElbeDefaults(object):
> > > self.generic_defaults = archindep_defaults
> > >
> > > def __getitem__( self, key ):
> > > - if self.defaults.has_key( key ):
> > > + if key in self.defaults:
> > > return self.defaults[key]
> > > - if self.generic_defaults.has_key( key ):
> > > + if key in self.generic_defaults:
> > > return self.generic_defaults[key]
> > >
> > > return None
> > > --
> > > 2.15.1
> > >
> > >
> > > _______________________________________________
> > > elbe-devel mailing list
> > > elbe-devel at linutronix.de
> > > https://lists.linutronix.de/mailman/listinfo/elbe-devel
> >
> > --
> > Mit freundlichen Grüßen
> > Torben Hohn
> >
> > Linutronix GmbH
> >
> > Standort: Bremen
> >
> > Phone: +49 7556 25 999 18; Fax.: +49 7556 25 999 99
> >
> > Firmensitz / Registered Office: D-88690 Uhldingen, Bahnhofstr. 3
> > Registergericht / Local District Court: Amtsgericht Freiburg i. Br.; HRB
> > Nr. / Trade register no.: 700 806
> >
> > Geschäftsführer / Managing Directors: Heinz Egger, Thomas Gleixner
> >
> > Eine Bitte von uns: Sollten Sie diese E-Mail irrtümlich erhalten haben,
> > benachrichtigen Sie uns in diesem Falle bitte sobald wie es Ihnen
> > möglich ist, durch Antwort-Mail. Vielen Dank!
>
>
>
> _______________________________________________
> elbe-devel mailing list
> elbe-devel at linutronix.de
> https://lists.linutronix.de/mailman/listinfo/elbe-devel
More information about the elbe-devel
mailing list