diff options
author | Zac Medico <zmedico@gentoo.org> | 2009-02-19 10:14:13 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2009-02-19 10:14:13 +0000 |
commit | 698cfe955f2499d6f2ad0e32e32bb150cd4283ba (patch) | |
tree | 737535997d8d54511bebfb58585b1832bd445eb7 /pym/_emerge/__init__.py | |
parent | 61917cad53f2eaf9139d32b69c1a33a50cdf2a69 (diff) | |
download | portage-698cfe955f2499d6f2ad0e32e32bb150cd4283ba.tar.gz portage-698cfe955f2499d6f2ad0e32e32bb150cd4283ba.tar.bz2 portage-698cfe955f2499d6f2ad0e32e32bb150cd4283ba.zip |
For compatibility with python-3.0, always open streams for pickles in binary
mode.
svn path=/main/trunk/; revision=12641
Diffstat (limited to 'pym/_emerge/__init__.py')
-rw-r--r-- | pym/_emerge/__init__.py | 14 |
1 files changed, 3 insertions, 11 deletions
diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py index 830a6d5b4..413792606 100644 --- a/pym/_emerge/__init__.py +++ b/pym/_emerge/__init__.py @@ -4043,9 +4043,8 @@ class BlockerCache(portage.cache.mappings.MutableMapping): def _load(self): try: - f = open(self._cache_filename) + f = open(self._cache_filename, mode='rb') mypickle = pickle.Unpickler(f) - mypickle.find_global = None self._cache_data = mypickle.load() f.close() del f @@ -4129,7 +4128,7 @@ class BlockerCache(portage.cache.mappings.MutableMapping): if len(self._modified) >= self._cache_threshold and \ secpass >= 2: try: - f = portage.util.atomic_ofstream(self._cache_filename) + f = portage.util.atomic_ofstream(self._cache_filename, mode='wb') pickle.dump(self._cache_data, f, -1) f.close() portage.util.apply_secpass_permissions( @@ -14423,14 +14422,7 @@ def action_build(settings, trees, mtimedb, # a list type for options. mtimedb["resume"]["myopts"] = myopts.copy() - # Convert Atom instances to plain str since the mtimedb loader - # sets unpickler.find_global = None which causes unpickler.load() - # to raise the following exception: - # - # cPickle.UnpicklingError: Global and instance pickles are not supported. - # - # TODO: Maybe stop setting find_global = None, or find some other - # way to avoid accidental triggering of the above UnpicklingError. + # Convert Atom instances to plain str. mtimedb["resume"]["favorites"] = [str(x) for x in favorites] if ("--digest" in myopts) and not ("--fetchonly" in myopts or "--fetch-all-uri" in myopts): |