diff options
author | Ben Boeckel <ben.boeckel@kitware.com> | 2015-10-15 09:18:16 -0400 |
---|---|---|
committer | Ben Boeckel <ben.boeckel@kitware.com> | 2015-10-26 17:38:19 -0400 |
commit | 9d90cb69622dbc6a22eaf2fbf796dd27a3e2def2 (patch) | |
tree | dce8061de0b86711970528d7ddb0926ab7ff2d2c /lib | |
parent | f76b3890ff32308c4fcaf7cbecb073d945ae411e (diff) | |
download | spack-9d90cb69622dbc6a22eaf2fbf796dd27a3e2def2.tar.gz spack-9d90cb69622dbc6a22eaf2fbf796dd27a3e2def2.tar.bz2 spack-9d90cb69622dbc6a22eaf2fbf796dd27a3e2def2.tar.xz spack-9d90cb69622dbc6a22eaf2fbf796dd27a3e2def2.zip |
python: use the setdefault method on dict
It allows more concise code and skips some key lookups.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/spack/llnl/util/lang.py | 5 | ||||
-rw-r--r-- | lib/spack/spack/directives.py | 10 | ||||
-rw-r--r-- | lib/spack/spack/virtual.py | 8 |
3 files changed, 7 insertions, 16 deletions
diff --git a/lib/spack/llnl/util/lang.py b/lib/spack/llnl/util/lang.py index 9e1bef18ca..156ee34c9e 100644 --- a/lib/spack/llnl/util/lang.py +++ b/lib/spack/llnl/util/lang.py @@ -87,10 +87,7 @@ def index_by(objects, *funcs): result = {} for o in objects: key = f(o) - if key not in result: - result[key] = [o] - else: - result[key].append(o) + result.setdefault(key, []).append(o) for key, objects in result.items(): result[key] = index_by(objects, *funcs[1:]) diff --git a/lib/spack/spack/directives.py b/lib/spack/spack/directives.py index 9297d6dac3..78039ac6f9 100644 --- a/lib/spack/spack/directives.py +++ b/lib/spack/spack/directives.py @@ -239,12 +239,10 @@ def patch(pkg, url_or_filename, level=1, when=None): when = pkg.name when_spec = parse_anonymous_spec(when, pkg.name) - if when_spec not in pkg.patches: - pkg.patches[when_spec] = [Patch(pkg.name, url_or_filename, level)] - else: - # if this spec is identical to some other, then append this - # patch to the existing list. - pkg.patches[when_spec].append(Patch(pkg.name, url_or_filename, level)) + cur_patches = pkg.patches.setdefault(when_spec, []) + # if this spec is identical to some other, then append this + # patch to the existing list. + cur_patches.append(Patch(pkg.name, url_or_filename, level)) @directive('variants') diff --git a/lib/spack/spack/virtual.py b/lib/spack/spack/virtual.py index fa070e6bd5..c77b259d61 100644 --- a/lib/spack/spack/virtual.py +++ b/lib/spack/spack/virtual.py @@ -73,10 +73,8 @@ class ProviderIndex(object): for provided_spec, provider_spec in pkg.provided.iteritems(): if provider_spec.satisfies(spec, deps=False): provided_name = provided_spec.name - if provided_name not in self.providers: - self.providers[provided_name] = {} - provider_map = self.providers[provided_name] + provider_map = self.providers.setdefault(provided_name, {}) if not provided_spec in provider_map: provider_map[provided_spec] = set() @@ -133,9 +131,7 @@ class ProviderIndex(object): if lp_spec.name == rp_spec.name: try: const = lp_spec.copy().constrain(rp_spec,deps=False) - if constrained not in result: - result[constrained] = set() - result[constrained].add(const) + result.setdefault(constrained, set()).add(const) except spack.spec.UnsatisfiableSpecError: continue return result |