[pacman-dev] [PATCH v2 4/8] Use dict iteration methods common to both Python 2 and 3.

Jeremy Heiner scalaprotractor at gmail.com
Sat Oct 12 12:44:33 EDT 2013


The .items, .keys, and .values methods in Python 2 make copies, so the
test framework uses the .iter* flavors of those methods. But in Python
3 those .iter* (and even the 2.7 .view*) flavors are removed and the
original methods return views.

Measurements were taken under Python2 to see what impact the copying
had, and there was none. Thus it is not worth the effort to avoid.

Reported as a compatibility issue by 2to3.

Signed-off-by: Jeremy Heiner <ScalaProtractor at gmail.com>
---
 test/pacman/pmdb.py   | 4 ++--
 test/pacman/pmpkg.py  | 2 +-
 test/pacman/pmtest.py | 6 +++---
 test/pacman/util.py   | 6 +++---
 4 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/test/pacman/pmdb.py b/test/pacman/pmdb.py
index b7b3522..53de91e 100644
--- a/test/pacman/pmdb.py
+++ b/test/pacman/pmdb.py
@@ -236,7 +236,7 @@ def generate(self):
             for pkg, entry in pkg_entries:
                 path = os.path.join(self.dbdir, pkg.fullname())
                 util.mkdir(path)
-                for name, data in entry.iteritems():
+                for name, data in entry.items():
                     util.mkfile(path, name, data)
 
         if self.dbfile:
@@ -247,7 +247,7 @@ def generate(self):
                 info = tarfile.TarInfo(pkg.fullname())
                 info.type = tarfile.DIRTYPE
                 tar.addfile(info)
-                for name, data in entry.iteritems():
+                for name, data in entry.items():
                     filename = os.path.join(pkg.fullname(), name)
                     info = tarfile.TarInfo(filename)
                     info.size = len(data)
diff --git a/test/pacman/pmpkg.py b/test/pacman/pmpkg.py
index 24ef1e2..6f7ae6e 100644
--- a/test/pacman/pmpkg.py
+++ b/test/pacman/pmpkg.py
@@ -223,7 +223,7 @@ def local_backup_entries(self):
 
     def installfile(self):
         data = []
-        for key, value in self.install.iteritems():
+        for key, value in self.install.items():
             if value:
                 data.append("%s() {\n%s\n}\n" % (key, value))
 
diff --git a/test/pacman/pmtest.py b/test/pacman/pmtest.py
index 731a9fc..a1f3645d 100644
--- a/test/pacman/pmtest.py
+++ b/test/pacman/pmtest.py
@@ -58,7 +58,7 @@ def findpkg(self, name, version, allow_local=False):
         """Find a package object matching the name and version specified in
         either sync databases or the local package collection. The local database
         is allowed to match if allow_local is True."""
-        for db in self.db.itervalues():
+        for db in self.db.values():
             if db.is_local and not allow_local:
                 continue
             pkg = db.getpkg(name)
@@ -151,7 +151,7 @@ def generate(self, pacman):
             vprint("\t%s" % os.path.join(util.TMPDIR, pkg.filename()))
             pkg.finalize()
             pkg.makepkg(tmpdir)
-        for key, value in self.db.iteritems():
+        for key, value in self.db.items():
             for pkg in value.pkgs:
                 pkg.finalize()
             if key == "local" and not self.createlocalpkgs:
@@ -167,7 +167,7 @@ def generate(self, pacman):
 
         # Creating sync database archives
         vprint("    Creating databases")
-        for key, value in self.db.iteritems():
+        for key, value in self.db.items():
             vprint("\t" + value.treename)
             value.generate()
 
diff --git a/test/pacman/util.py b/test/pacman/util.py
index c1ab390..ab5a6f4 100644
--- a/test/pacman/util.py
+++ b/test/pacman/util.py
@@ -112,13 +112,13 @@ def writedata(filename, data):
 def mkcfgfile(filename, root, option, db):
     # Options
     data = ["[options]"]
-    for key, value in option.iteritems():
+    for key, value in option.items():
         data.extend(["%s = %s" % (key, j) for j in value])
 
     # Repositories
     # sort by repo name so tests can predict repo order, rather than be
     # subjects to the whims of python dict() ordering
-    for key in sorted(db.iterkeys()):
+    for key in sorted(db.keys()):
         if key != "local":
             value = db[key]
             data.append("[%s]\n" \
@@ -126,7 +126,7 @@ def mkcfgfile(filename, root, option, db):
                     "Server = file://%s" \
                      % (value.treename, value.getverify(), \
                         os.path.join(root, SYNCREPO, value.treename)))
-            for optkey, optval in value.option.iteritems():
+            for optkey, optval in value.option.items():
                 data.extend(["%s = %s" % (optkey, j) for j in optval])
 
     mkfile(root, filename, "\n".join(data))
-- 
1.8.4



More information about the pacman-dev mailing list