package.py : workaround for a known bug that was not fixed in python 2.6
https://bugs.python.org/issue1515
This commit is contained in:
		| @@ -120,6 +120,17 @@ def _on_phase_exit(self, instance): | |||||||
|         if getattr(instance, 'last_phase', None) == self.name: |         if getattr(instance, 'last_phase', None) == self.name: | ||||||
|             raise StopIteration('Stopping at \'{0}\' phase'.format(self.name)) |             raise StopIteration('Stopping at \'{0}\' phase'.format(self.name)) | ||||||
|  |  | ||||||
|  |     def copy(self): | ||||||
|  |         try: | ||||||
|  |             return copy.deepcopy(self) | ||||||
|  |         except TypeError: | ||||||
|  |             # This bug-fix was not back-ported in Python 2.6 | ||||||
|  |             # http://bugs.python.org/issue1515 | ||||||
|  |             other = InstallPhase(self.name) | ||||||
|  |             other.preconditions.extend(self.preconditions) | ||||||
|  |             other.sanity_checks.extend(self.sanity_checks) | ||||||
|  |             return other | ||||||
|  |  | ||||||
|  |  | ||||||
| class PackageMeta(type): | class PackageMeta(type): | ||||||
|     """Conveniently transforms attributes to permit extensible phases |     """Conveniently transforms attributes to permit extensible phases | ||||||
| @@ -156,7 +167,7 @@ def _append_checks(check_name): | |||||||
|                         # and extend |                         # and extend | ||||||
|                         for base in bases: |                         for base in bases: | ||||||
|                             phase = getattr(base, PackageMeta.phase_fmt.format(phase_name), None) |                             phase = getattr(base, PackageMeta.phase_fmt.format(phase_name), None) | ||||||
|                         attr_dict[PackageMeta.phase_fmt.format(phase_name)] = copy.deepcopy(phase) |                         attr_dict[PackageMeta.phase_fmt.format(phase_name)] = phase.copy() | ||||||
|                         phase = attr_dict[PackageMeta.phase_fmt.format(phase_name)] |                         phase = attr_dict[PackageMeta.phase_fmt.format(phase_name)] | ||||||
|                     getattr(phase, check_name).extend(funcs) |                     getattr(phase, check_name).extend(funcs) | ||||||
|                 # Clear the attribute for the next class |                 # Clear the attribute for the next class | ||||||
| @@ -901,7 +912,6 @@ def do_fetch(self, mirror_only=False): | |||||||
|  |  | ||||||
|         self.stage.cache_local() |         self.stage.cache_local() | ||||||
|  |  | ||||||
|  |  | ||||||
|     def do_stage(self, mirror_only=False): |     def do_stage(self, mirror_only=False): | ||||||
|         """Unpacks the fetched tarball, then changes into the expanded tarball |         """Unpacks the fetched tarball, then changes into the expanded tarball | ||||||
|            directory.""" |            directory.""" | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 alalazo
					alalazo