Merge pull request #127 from mathstuf/use-dict.setdefault
python: use the setdefault method on dict
This commit is contained in:
		| @@ -87,10 +87,7 @@ def index_by(objects, *funcs): | |||||||
|     result = {} |     result = {} | ||||||
|     for o in objects: |     for o in objects: | ||||||
|         key = f(o) |         key = f(o) | ||||||
|         if key not in result: |         result.setdefault(key, []).append(o) | ||||||
|             result[key] = [o] |  | ||||||
|         else: |  | ||||||
|             result[key].append(o) |  | ||||||
|  |  | ||||||
|     for key, objects in result.items(): |     for key, objects in result.items(): | ||||||
|         result[key] = index_by(objects, *funcs[1:]) |         result[key] = index_by(objects, *funcs[1:]) | ||||||
|   | |||||||
| @@ -239,12 +239,10 @@ def patch(pkg, url_or_filename, level=1, when=None): | |||||||
|         when = pkg.name |         when = pkg.name | ||||||
|     when_spec = parse_anonymous_spec(when, pkg.name) |     when_spec = parse_anonymous_spec(when, pkg.name) | ||||||
|  |  | ||||||
|     if when_spec not in pkg.patches: |     cur_patches = pkg.patches.setdefault(when_spec, []) | ||||||
|         pkg.patches[when_spec] = [Patch(pkg.name, url_or_filename, level)] |     # if this spec is identical to some other, then append this | ||||||
|     else: |     # patch to the existing list. | ||||||
|         # if this spec is identical to some other, then append this |     cur_patches.append(Patch(pkg.name, url_or_filename, level)) | ||||||
|         # patch to the existing list. |  | ||||||
|         pkg.patches[when_spec].append(Patch(pkg.name, url_or_filename, level)) |  | ||||||
|  |  | ||||||
|  |  | ||||||
| @directive('variants') | @directive('variants') | ||||||
|   | |||||||
| @@ -73,10 +73,8 @@ def update(self, spec): | |||||||
|         for provided_spec, provider_spec in pkg.provided.iteritems(): |         for provided_spec, provider_spec in pkg.provided.iteritems(): | ||||||
|             if provider_spec.satisfies(spec, deps=False): |             if provider_spec.satisfies(spec, deps=False): | ||||||
|                 provided_name = provided_spec.name |                 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: |                 if not provided_spec in provider_map: | ||||||
|                     provider_map[provided_spec] = set() |                     provider_map[provided_spec] = set() | ||||||
|  |  | ||||||
| @@ -133,9 +131,7 @@ def _cross_provider_maps(self, lmap, rmap): | |||||||
|                 if lp_spec.name == rp_spec.name: |                 if lp_spec.name == rp_spec.name: | ||||||
|                     try: |                     try: | ||||||
|                         const = lp_spec.copy().constrain(rp_spec,deps=False) |                         const = lp_spec.copy().constrain(rp_spec,deps=False) | ||||||
|                         if constrained not in result: |                         result.setdefault(constrained, set()).add(const) | ||||||
|                             result[constrained] = set() |  | ||||||
|                         result[constrained].add(const) |  | ||||||
|                     except spack.spec.UnsatisfiableSpecError: |                     except spack.spec.UnsatisfiableSpecError: | ||||||
|                         continue |                         continue | ||||||
|         return result |         return result | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Todd Gamblin
					Todd Gamblin