summaryrefslogtreecommitdiff
diff options
authorRobert C Jennings <robert.jennings@canonical.com>2017-05-31 16:11:16 -0500
committerRobert C Jennings <robert.jennings@canonical.com>2017-05-31 16:11:16 -0500
commit642f2e1bc68b632e818bf4828e8a306667db92f5 (patch)
tree11b6b9bae17a4a76427611e99f5427ae050769af
parent2b042d4de67ca3673ad27d9b2f1c3f790756916b (diff)
python3 compatibility changes
bzr-revno: 18.2.3
-rwxr-xr-xmfdiff48
1 files changed, 24 insertions, 24 deletions
diff --git a/mfdiff b/mfdiff
index f30925d..06b1863 100755
--- a/mfdiff
+++ b/mfdiff
@@ -27,6 +27,7 @@ from optparse import OptionParser
import apt
from debian.changelog import Changelog
+from six import iteritems, viewkeys
try:
from apt import VersionCompare as version_compare
@@ -124,7 +125,7 @@ def hashmffile(filename):
:param str filename: Name of package manifest file
:return: List of package versions by name
- :rtype: list
+ :rtype: dict
"""
ret = {}
@@ -184,7 +185,7 @@ def get_cache(cache_d):
def render_block(block):
"Render a changelog block to something printable (dropping blank lines)"
- return('\n'.join([x.encode('ascii', 'replace')
+ return('\n'.join([x.encode('ascii', 'replace').decode('ascii')
for x in block.changes() if x]))
@@ -230,7 +231,7 @@ def main():
# fix up kernels so the pkg names match
kfixups = {}
kmatch = re.compile("linux-image-[0-9]")
- for pkg, ver in h_to.iteritems():
+ for pkg in h_to:
# if this is a linux-image-* binary package do some hacks to make it
# look like h_from is the same (format like
# linux-image-2.6.32-32-virtual)
@@ -238,30 +239,28 @@ def main():
img_type = pkg[pkg.rfind("-") + 1:]
if pkg in h_from:
continue
- for fpkg, fver in h_from.iteritems():
+ for fpkg in h_from:
if (kmatch.match(fpkg) and fpkg.endswith("-%s" % img_type)):
kfixups[pkg] = fpkg
- for pkg_to, pkg_from in kfixups.iteritems():
+ for pkg_to, pkg_from in iteritems(kfixups):
h_from[pkg_to] = h_from[pkg_from]
del h_from[pkg_from]
# find new packages in mf2
new = {}
- for pkg, ver in h_to.iteritems():
- if pkg not in h_from:
- new[pkg] = h_to[pkg]
+ for pkg in viewkeys(h_to) - viewkeys(h_from):
+ new[pkg] = h_to[pkg]
# find packages removed from mf1
removed = {}
- for pkg, ver in h_from.iteritems():
- if pkg not in h_to:
- removed[pkg] = h_from[pkg]
+ for pkg in viewkeys(h_from) - viewkeys(h_to):
+ removed[pkg] = h_from[pkg]
# find modified packages
changed = []
- for pkg, ver in h_to.iteritems():
- if pkg in h_from and h_from[pkg] != ver:
+ for pkg in viewkeys(h_from) & viewkeys(h_to):
+ if h_from[pkg] != h_to[pkg]:
changed.append(pkg)
print("new: %s" % new)
@@ -285,30 +284,29 @@ def main():
b2s_hash = get_bin2src(changed, cache)
- for pkg, src in b2s_hash.iteritems():
- if src not in bin2src:
- bin2src[src] = []
- bin2src[src].append(pkg)
+ for pkg in b2s_hash:
+ bin2src.setdefault(b2s_hash[pkg], []).append(pkg)
- for src, binlist in bin2src.iteritems():
+ for src in bin2src:
if src not in srcs:
srcs[src] = {"changelog_file": "", "changeblocks": []}
+ binary = bin2src[src][0]
try:
- pkg_name = binlist[0].split(':')[0]
+ pkg_name = binary.split(':')[0]
versions = cache[pkg_name].versions
except KeyError as e:
raise Exception(
"%s not in cache did not have versions info in cache")
- binver_to = h_to[binlist[0]]
+ binver_to = h_to[binary]
try:
srcver_to = versions[binver_to].source_version
except KeyError as e:
raise Exception("bin pkg %s from src %s version %s not in "
"binver list (%s)" %
- (binlist[0], src, binver_to, versions))
+ (binary, src, binver_to, versions))
- binver_from = h_from[binlist[0]]
+ binver_from = h_from[binary]
try:
srcver_from = versions[binver_from].source_version
except KeyError as e:
@@ -348,9 +346,11 @@ def main():
except UnknownSourceVersionError as e:
errors.append(e)
- for src, binlist in bin2src.iteritems():
+ for src in bin2src:
+ binlist = bin2src[src]
+ binary = binlist[0]
print("==== %s: %s => %s ====" %
- (src, h_from[binlist[0]], h_to[binlist[0]]))
+ (src, h_from[binary], h_to[binary]))
print("==== %s" % ' '.join(binlist))
print_blocks(srcs[src]["changeblocks"])