You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/app-portage/distpatch/files/distpatch-python3-support.p...

421 lines
15 KiB

From 0274956acf4479b7346ac441fe09f2e56d575c47 Mon Sep 17 00:00:00 2001
From: "Rafael G. Martins" <rafael@rafaelmartins.eng.br>
Date: Wed, 26 Feb 2020 18:22:06 +0100
Subject: [PATCH] python3 support
---
distdiffer | 46 ++++++++++++++++++++++----------------------
distpatch/chksums.py | 12 ++++++------
distpatch/deltadb.py | 4 ++--
distpatch/diff.py | 12 ++++++------
distpatch/package.py | 6 +++---
distpatch/patch.py | 4 ++--
distpatch/stats.py | 6 +++---
distpatcher | 32 +++++++++++++++---------------
distpatchq | 28 +++++++++++++--------------
9 files changed, 75 insertions(+), 75 deletions(-)
diff --git a/distdiffer b/distdiffer
index a2b933d..6975b5c 100755
--- a/distdiffer
+++ b/distdiffer
@@ -73,39 +73,39 @@ def main():
return
if args.verbose:
- print '>>> Starting distdiffer ...\n'
+ print('>>> Starting distdiffer ...\n')
for package in packages:
if args.verbose:
- print '>>> Package: %s' % package
+ print('>>> Package: %s' % package)
pkg = Package(db)
try:
pkg.diff(package)
- except Exception, err:
- print >> sys.stderr, str(err)
+ except Exception as err:
+ print(str(err), file=sys.stderr)
if args.verbose:
- print ' >>> Versions:'
+ print(' >>> Versions:')
for cpv in pkg.ebuilds:
- print ' %s' % cpv
- print ' >>> Deltas:'
+ print(' %s' % cpv)
+ print(' >>> Deltas:')
if len(pkg.diffs) == 0:
- print ' None\n'
+ print(' None\n')
else:
for diff in pkg.diffs:
- print ' %s -> %s' % (diff.src.fname,
- diff.dest.fname)
+ print(' %s -> %s' % (diff.src.fname,
+ diff.dest.fname))
if len(pkg.diffs) == 0:
continue
if args.verbose:
- print ' >>> Fetching distfiles:'
+ print(' >>> Fetching distfiles:')
try:
pkg.fetch_distfiles()
- except Exception, err:
- print >> sys.stderr, str(err)
- print
+ except Exception as err:
+ print(str(err), file=sys.stderr)
+ print()
continue
if args.verbose:
- print ' >>> Generating deltas:'
+ print(' >>> Generating deltas:')
for diff in pkg.diffs:
if args.verbose:
sys.stdout.write(' %s -> %s ... ' % (diff.src.fname,
@@ -116,20 +116,20 @@ def main():
not args.no_compress, args.force)
except DiffExists:
if args.verbose:
- print 'up2date!'
- print ' %s' % os.path.basename(diff.diff_file)
- except Exception, err:
+ print('up2date!')
+ print(' %s' % os.path.basename(diff.diff_file))
+ except Exception as err:
if args.verbose:
- print 'failed!'
- print ' %s: %s' % (err.__class__.__name__, str(err))
+ print('failed!')
+ print(' %s: %s' % (err.__class__.__name__, str(err)))
else:
if args.verbose:
- print 'done!'
- print ' %s' % os.path.basename(diff.diff_file)
+ print('done!')
+ print(' %s' % os.path.basename(diff.diff_file))
db.add(diff.dbrecord)
diff.cleanup()
if args.verbose:
- print
+ print()
if __name__ == '__main__':
main()
diff --git a/distpatch/chksums.py b/distpatch/chksums.py
index 808dc59..d3dffab 100644
--- a/distpatch/chksums.py
+++ b/distpatch/chksums.py
@@ -26,16 +26,16 @@ class ChksumValue(object):
self._handler = get_handler(algorithm)
def to_str(self):
- if isinstance(self.value, basestring):
+ if isinstance(self.value, str):
return self.value
- elif isinstance(self.value, long):
+ elif isinstance(self.value, int):
return self._handler.long2str(self.value)
raise ChksumException('Invalid value: %s' % self.value)
def to_long(self):
- if isinstance(self.value, long):
+ if isinstance(self.value, int):
return self.value
- elif isinstance(self.value, basestring):
+ elif isinstance(self.value, str):
return self._handler.str2long(self.value)
raise ChksumException('Invalid value: %s' % self.value)
@@ -69,11 +69,11 @@ class Chksum(object):
raise ChksumException('File not found: %s' % fname)
values = get_chksums(fname, *self.algorithms)
- chksums = zip(self.algorithms, values)
+ chksums = list(zip(self.algorithms, values))
# if provided checksums, use them
else:
- chksums = chksums.items()
+ chksums = list(chksums.items())
# validate checksums, and set attributes
tmp_algorithms = list(self.algorithms)
diff --git a/distpatch/deltadb.py b/distpatch/deltadb.py
index 77d8c21..345077d 100644
--- a/distpatch/deltadb.py
+++ b/distpatch/deltadb.py
@@ -40,7 +40,7 @@ import os
from collections import OrderedDict
from fcntl import lockf, LOCK_EX, LOCK_UN
-from itertools import izip
+
from shutil import rmtree
from snakeoil.chksum import get_handler
from snakeoil.fileutils import AtomicWriteFile
@@ -171,7 +171,7 @@ class DeltaDB(list):
pieces = line.split()
chksums = OrderedDict()
uchksums = OrderedDict()
- for key, value in izip(pieces[::2], pieces[1::2]):
+ for key, value in zip(pieces[::2], pieces[1::2]):
key = key.lower()[:]
mykey = key[0] == 'u' and key[1:] or key
myvalue = get_handler(mykey).str2long(value.strip())
diff --git a/distpatch/diff.py b/distpatch/diff.py
index d5818f1..eeaf8a6 100644
--- a/distpatch/diff.py
+++ b/distpatch/diff.py
@@ -37,11 +37,11 @@ class DiffUnsupported(Exception):
_supported_formats = [
- u'.tar',
- u'.tar.gz', u'.tgz', u'.gz',
- u'.tar.bz2', u'.tbz2', u'.bz2',
- u'.tar.xz', u'.xz',
- u'.tar.lzma', u'.ĺzma',
+ '.tar',
+ '.tar.gz', '.tgz', '.gz',
+ '.tar.bz2', '.tbz2', '.bz2',
+ '.tar.xz', '.xz',
+ '.tar.lzma', '.ĺzma',
]
@@ -152,7 +152,7 @@ class Diff(object):
try:
patch = Patch(self.dbrecord)
patch.reconstruct(output_dir, tmp_dir, False)
- except PatchException, err:
+ except PatchException as err:
if clean_sources:
os.unlink(self.diff_file)
raise DiffException('Delta reconstruction failed: %s' % str(err))
diff --git a/distpatch/package.py b/distpatch/package.py
index 553fc18..3c834cc 100644
--- a/distpatch/package.py
+++ b/distpatch/package.py
@@ -35,17 +35,17 @@ class Package(object):
diffs = []
taken = {}
for ebuild_id in range(len(self.ebuilds) - 1):
- cpvs = self.ebuilds.keys()
+ cpvs = list(self.ebuilds.keys())
src_cpv = cpvs[ebuild_id]
dest_cpv = cpvs[ebuild_id + 1]
src_ebuild = self.ebuilds[src_cpv]
dest_ebuild = self.ebuilds[dest_cpv]
- for src_distfile in src_ebuild.src_uri_map.keys():
+ for src_distfile in list(src_ebuild.src_uri_map.keys()):
avg_distfile = None
avg_ebuild = None
max_avg = 0.0
avgs = {}
- for dest_distfile in dest_ebuild.src_uri_map.keys():
+ for dest_distfile in list(dest_ebuild.src_uri_map.keys()):
prefix = ''
suffix = ''
for i in range(min(len(src_distfile), len(dest_distfile))):
diff --git a/distpatch/patch.py b/distpatch/patch.py
index c210a5e..83eb3d6 100644
--- a/distpatch/patch.py
+++ b/distpatch/patch.py
@@ -14,7 +14,7 @@ import portage
import posixpath
import re
-from itertools import izip
+
from portage.package.ebuild.fetch import fetch
from shutil import move
from subprocess import call
@@ -96,7 +96,7 @@ class Patch(object):
if self.src != DeltaDBFile(src):
raise PatchException('Bad checksum for source: %s' % \
self.src.fname)
- for delta, delta_record in izip(deltas, self.dbrecords):
+ for delta, delta_record in zip(deltas, self.dbrecords):
if delta_record.delta != DeltaDBFile(delta):
raise PatchException('Bad checksum for delta: %s' % \
delta_record.delta.fname)
diff --git a/distpatch/stats.py b/distpatch/stats.py
index 187f926..7716e07 100644
--- a/distpatch/stats.py
+++ b/distpatch/stats.py
@@ -48,7 +48,7 @@ class Stats(object):
delta = float(record.delta.chksums['size'])
dest = float(record.dest.chksums['size'])
ratio.append(100 - ((delta / dest) * 100))
- pyplot.plot(range(1, len(ratio) + 1), sorted(ratio))
+ pyplot.plot(list(range(1, len(ratio) + 1)), sorted(ratio))
pyplot.axes()
pyplot.xlabel('Deltas (total: %i)' % len(ratio))
pyplot.ylabel('Percentage of savings (for compressed files)')
@@ -60,6 +60,6 @@ class Stats(object):
for record in self.deltadb:
dest.append(int(record.dest.chksums['size']))
delta.append(int(record.delta.chksums['size']))
- pyplot.plot(range(len(dest)), dest)
- pyplot.plot(range(len(delta)), delta)
+ pyplot.plot(list(range(len(dest))), dest)
+ pyplot.plot(list(range(len(delta))), delta)
pyplot.show()
diff --git a/distpatcher b/distpatcher
index 05980e2..984e4c2 100755
--- a/distpatcher
+++ b/distpatcher
@@ -69,35 +69,35 @@ def main():
return
if args.verbose:
- print '>>> Starting distpatcher ...\n'
+ print('>>> Starting distpatcher ...\n')
for cpv in cpv_list:
if args.verbose:
if args.distfile:
- print '>>> Distfile: %s' % cpv
+ print('>>> Distfile: %s' % cpv)
else:
- print '>>> CPV: %s' % cpv
+ print('>>> CPV: %s' % cpv)
pkg = Package(db)
if args.distfile:
pkg.patch_distfile(cpv, args.output_dir)
else:
pkg.patch(cpv, args.output_dir)
if args.verbose:
- print ' >>> Deltas:'
+ print(' >>> Deltas:')
if len(pkg.patches) == 0:
- print ' None\n'
+ print(' None\n')
else:
for patch in pkg.patches:
- print ' %s' % '\n -> '.join(
- [i.delta.fname for i in patch.dbrecords])
+ print(' %s' % '\n -> '.join(
+ [i.delta.fname for i in patch.dbrecords]))
if len(pkg.patches) == 0:
continue
if args.verbose:
- print ' >>> Fetching deltas:'
+ print(' >>> Fetching deltas:')
for patch in pkg.patches:
patch.fetch_deltas(args.root_url, args.input_dir)
if args.verbose:
- print ' >>> Reconstructing distfiles:'
+ print(' >>> Reconstructing distfiles:')
for patch in pkg.patches:
if args.verbose:
sys.stdout.write(' %s ... ' % '\n -> '.join(
@@ -106,17 +106,17 @@ def main():
try:
patch.reconstruct(args.input_dir, args.output_dir,
not args.no_compress)
- except PatchException, err:
+ except PatchException as err:
if args.verbose:
- print 'failed!'
- print ' %s' % str(err)
+ print('failed!')
+ print(' %s' % str(err))
else:
if args.verbose:
- print 'done!'
- print ' %s' % \
- os.path.basename(patch.dest.fname)
+ print('done!')
+ print(' %s' % \
+ os.path.basename(patch.dest.fname))
if args.verbose:
- print
+ print()
if __name__ == '__main__':
main()
diff --git a/distpatchq b/distpatchq
index 902f6c0..e6bcebe 100755
--- a/distpatchq
+++ b/distpatchq
@@ -48,7 +48,7 @@ def delta_fetch_size(pkg, filename, distfiles_dir=None, deltas_dir=None):
except OSError:
pass
if filename in distfiles:
- print 0
+ print(0)
return 0
pkg.patch_distfile(filename, distfiles_dir)
if len(pkg.patches) == 0:
@@ -62,7 +62,7 @@ def delta_fetch_size(pkg, filename, distfiles_dir=None, deltas_dir=None):
if dbrecord.delta.fname in deltas:
continue
fetch_size += int(dbrecord.delta.chksums.size.to_long())
- print fetch_size
+ print(fetch_size)
def delta_verify_checksums(pkg, filename, distfiles_dir=None):
@@ -96,20 +96,20 @@ def delta_verify_checksums(pkg, filename, distfiles_dir=None):
return 0 if dest_record.uchksums == _Chksum(usrc) else 4
-commands = sorted(i for i in globals().keys() if not i.startswith('_'))
+commands = sorted(i for i in list(globals().keys()) if not i.startswith('_'))
def usage(argv):
- print '>>> distpatch information query tool'
- print '>>> Usage: distpatchq <command> [<option> ...]'
- print
- print 'Available commands:'
+ print('>>> distpatch information query tool')
+ print('>>> Usage: distpatchq <command> [<option> ...]')
+ print()
+ print('Available commands:')
for name in commands:
function = globals()[name]
if function.__doc__ is None:
- print ' ' + name
- print ' MISSING DOCUMENTATION!'
- print
+ print(' ' + name)
+ print(' MISSING DOCUMENTATION!')
+ print()
continue
# introspect command arguments
@@ -120,14 +120,14 @@ def usage(argv):
args.append('<%s>' % arg)
for arg in spec.args[-opt:]:
args.append('[%s]' % arg)
- print ' ' + name + ' ' + ' '.join(args)
+ print(' ' + name + ' ' + ' '.join(args))
lines = function.__doc__.split('\n')
if len(argv) > 1:
for line in lines:
- print " " + line.strip()
+ print(" " + line.strip())
if len(argv) == 1:
- print "\nRun distpatchq with --help for info"
+ print("\nRun distpatchq with --help for info")
if __name__ == '__main__':
if len(_sys.argv) < 2:
@@ -150,7 +150,7 @@ if __name__ == '__main__':
req = len(spec.args) - opt
if len(_sys.argv) < req + 2:
- print "Invalid number of arguments!!"
+ print("Invalid number of arguments!!")
_sys.exit(2)
dbfile = _sys.argv[2]
--
2.21.0