Skip to content

Commit

Permalink
Adds dict utils (iteritems(), itervalues(), ...)
Browse files Browse the repository at this point in the history
  • Loading branch information
remram44 committed Aug 26, 2014
1 parent 16d8945 commit 0a6f9ca
Show file tree
Hide file tree
Showing 11 changed files with 33 additions and 18 deletions.
4 changes: 2 additions & 2 deletions reprounzip-vagrant/reprounzip/unpackers/vagrant/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
composite_action, target_must_exist, make_unique_name, shell_escape, \
load_config, select_installer, busybox_url, join_root
from reprounzip.unpackers.vagrant.interaction import interactive_shell
from reprounzip.utils import unicode_
from reprounzip.utils import unicode_, iteritems


class IgnoreMissingKey(MissingHostKeyPolicy):
Expand Down Expand Up @@ -252,7 +252,7 @@ def vagrant_setup_create(args):
cmd = 'cd %s && ' % shell_escape(run['workingdir'])
cmd += '/usr/bin/env -i '
cmd += ' '.join('%s=%s' % (k, shell_escape(v))
for k, v in run['environ'].items())
for k, v in iteritems(run['environ']))
cmd += ' '
# FIXME : Use exec -a or something if binary != argv[0]
cmd += ' '.join(
Expand Down
2 changes: 1 addition & 1 deletion reprounzip/reprounzip/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ def load_config(filename, canonical, File=File, Package=Package):

ver = LooseVersion(config['version'])

keys_ = set(config.keys())
keys_ = set(config)
if 'version' not in keys_:
raise InvalidConfig("Missing version")
# Accepts versions from 0.2 to 0.3 inclusive
Expand Down
4 changes: 2 additions & 2 deletions reprounzip/reprounzip/pack_info.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@

from reprounzip.unpackers.common import load_config, COMPAT_OK, COMPAT_MAYBE, \
COMPAT_NO
from reprounzip.utils import hsize
from reprounzip.utils import iteritems, hsize


def print_info(args, unpackers):
Expand Down Expand Up @@ -122,7 +122,7 @@ def print_info(args, unpackers):
# Unpacker compatibility
print("----- Unpackers -----")
unpacker_status = {}
for name, upk in unpackers.items():
for name, upk in iteritems(unpackers):
if 'test_compatibility' in upk:
compat = upk['test_compatibility']
if callable(compat):
Expand Down
4 changes: 2 additions & 2 deletions reprounzip/reprounzip/unpackers/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
import tarfile

import reprounzip.common
from reprounzip.utils import irange
from reprounzip.utils import irange, itervalues


THIS_DISTRIBUTION = platform.linux_distribution()[0].lower()
Expand Down Expand Up @@ -117,7 +117,7 @@ def install(self, packages, assume_yes=False):

# Checks on packages
pkgs_status = self.get_packages_info(packages)
for pkg, status in pkgs_status.itervalues():
for pkg, status in itervalues(pkgs_status):
if status is not None:
required_pkgs.discard(pkg.name)
if required_pkgs:
Expand Down
6 changes: 3 additions & 3 deletions reprounzip/reprounzip/unpackers/default.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
from reprounzip.unpackers.common import THIS_DISTRIBUTION, load_config, \
select_installer, target_must_exist, shell_escape, busybox_url, \
join_root, PKG_NOT_INSTALLED, COMPAT_OK, COMPAT_NO
from reprounzip.utils import unicode_, download_file
from reprounzip.utils import unicode_, iteritems, download_file


def installpkgs(args):
Expand Down Expand Up @@ -161,7 +161,7 @@ def directory_create(args):
unicode_(join_root(root,
Path(run['workingdir']))))
cmd += ' '.join('%s=%s' % (k, shell_escape(v))
for k, v in run['environ'].items())
for k, v in iteritems(run['environ']))
cmd += ' '
path = [PosixPath(d)
for d in run['environ'].get('PATH', '').split(':')]
Expand Down Expand Up @@ -307,7 +307,7 @@ def chroot_create(args):
cmd = 'cd %s && ' % shell_escape(run['workingdir'])
cmd += '/usr/bin/env -i '
cmd += ' '.join('%s=%s' % (k, shell_escape(v))
for k, v in run['environ'].items())
for k, v in iteritems(run['environ']))
cmd += ' '
# FIXME : Use exec -a or something if binary != argv[0]
cmd += ' '.join(
Expand Down
5 changes: 3 additions & 2 deletions reprounzip/reprounzip/unpackers/graph.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@
from reprounzip.common import FILE_READ, FILE_WRITE, FILE_WDIR, load_config
from reprounzip.orderedset import OrderedSet
from reprounzip.unpackers.common import COMPAT_OK
from reprounzip.utils import PY3, CommonEqualityMixin, escape, unicode_
from reprounzip.utils import PY3, unicode_, iteritems, escape, \
CommonEqualityMixin


C_INITIAL = 0 # First process or don't know
Expand Down Expand Up @@ -213,7 +214,7 @@ def generate(target, directory, all_forks=False):
fp.write('\n node [shape=ellipse];\n\n /* system packages */\n')

# Files from packages
for i, ((name, version), files) in enumerate(package_files.items()):
for i, ((name, version), files) in enumerate(iteritems(package_files)):
fp.write(' subgraph cluster%d {\n label=' % i)
if version:
fp.write('"%s %s";\n' % (escape(name), escape(version)))
Expand Down
6 changes: 6 additions & 0 deletions reprounzip/reprounzip/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,17 @@
from urllib.request import Request, urlopen
izip = zip
irange = range
iteritems = dict.items
itervalues = dict.values
listvalues = lambda d: list(d.values())
else:
from urllib2 import Request, HTTPError, URLError, urlopen
import itertools
izip = itertools.izip
irange = xrange
iteritems = dict.iteritems
itervalues = dict.itervalues
listvalues = dict.values


if PY3:
Expand Down
2 changes: 1 addition & 1 deletion reprozip/reprozip/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ def load_config(filename, canonical, File=File, Package=Package):

ver = LooseVersion(config['version'])

keys_ = set(config.keys())
keys_ = set(config)
if 'version' not in keys_:
raise InvalidConfig("Missing version")
# Accepts versions from 0.2 to 0.3 inclusive
Expand Down
3 changes: 2 additions & 1 deletion reprozip/reprozip/tracer/linux_pkgs.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import subprocess

from reprozip.common import Package
from reprozip.utils import listvalues


magic_dirs = ('/dev', '/proc', '/sys')
Expand Down Expand Up @@ -117,4 +118,4 @@ def identify_packages(files):
for f in files:
manager.search_for_file(f)

return manager.unknown_files, manager.packages.values()
return manager.unknown_files, listvalues(manager.packages)
9 changes: 5 additions & 4 deletions reprozip/reprozip/tracer/trace.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@
from reprozip.orderedset import OrderedSet
from reprozip.tracer.linux_pkgs import magic_dirs, system_dirs, \
identify_packages
from reprozip.utils import PY3, izip, hsize, find_all_links
from reprozip.utils import PY3, izip, itervalues, listvalues, hsize, \
find_all_links


class TracedFile(File):
Expand Down Expand Up @@ -185,7 +186,7 @@ def get_files(conn):
# Displays a warning for READ_THEN_WRITTEN files
read_then_written_files = [
fi
for fi in files.values()
for fi in itervalues(files)
if fi.what == TracedFile.READ_THEN_WRITTEN and
not any(fi.path.lies_under(m) for m in magic_dirs)]
if read_then_written_files:
Expand All @@ -196,7 +197,7 @@ def get_files(conn):
", ".join(fi.path for fi in read_then_written_files))

files = [fi
for fi in files.values()
for fi in itervalues(files)
if fi.what != TracedFile.WRITTEN and not any(fi.path.lies_under(m)
for m in magic_dirs)]
return files, inputs, outputs
Expand All @@ -217,7 +218,7 @@ def merge_files(newfiles, newpackages, oldfiles, oldpackages):
packages[oldpkg.name] = oldpkg
else:
packages[oldpkg.name] = oldpkg
packages = list(packages.values())
packages = listvalues(packages)

return files, packages

Expand Down
6 changes: 6 additions & 0 deletions reprozip/reprozip/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,17 @@
from urllib.request import Request, urlopen
izip = zip
irange = range
iteritems = dict.items
itervalues = dict.values
listvalues = lambda d: list(d.values())
else:
from urllib2 import Request, HTTPError, URLError, urlopen
import itertools
izip = itertools.izip
irange = xrange
iteritems = dict.iteritems
itervalues = dict.itervalues
listvalues = dict.values


if PY3:
Expand Down

0 comments on commit 0a6f9ca

Please sign in to comment.