Set Unpickler.find_global = None when possible and handle AttributeError
authorZac Medico <zmedico@gentoo.org>
Thu, 5 Mar 2009 03:03:50 +0000 (03:03 -0000)
committerZac Medico <zmedico@gentoo.org>
Thu, 5 Mar 2009 03:03:50 +0000 (03:03 -0000)
for py3k.

svn path=/main/trunk/; revision=12751

pym/_emerge/__init__.py
pym/portage/__init__.py
pym/portage/dbapi/vartree.py
pym/portage/getbinpkg.py

index 8abe080f979922a72f2e5cc49540da74eb325b13..a53d58a8f7fb334f24b04b884738e6246aa0cc56 100644 (file)
@@ -4105,6 +4105,11 @@ class BlockerCache(portage.cache.mappings.MutableMapping):
                try:
                        f = open(self._cache_filename, mode='rb')
                        mypickle = pickle.Unpickler(f)
+                       try:
+                               mypickle.find_global = None
+                       except AttributeError:
+                               # TODO: If py3k, override Unpickler.find_class().
+                               pass
                        self._cache_data = mypickle.load()
                        f.close()
                        del f
index b9365ff36269c54cb96d8ffdaac8d473c6b98de8..26860de8009e3b6d8bcda4aa2c3fe373e7749321 100644 (file)
@@ -7819,6 +7819,11 @@ class MtimeDB(dict):
                try:
                        f = open(filename, 'rb')
                        mypickle = pickle.Unpickler(f)
+                       try:
+                               mypickle.find_global = None
+                       except AttributeError:
+                               # TODO: If py3k, override Unpickler.find_class().
+                               pass
                        d = mypickle.load()
                        f.close()
                        del f
index 7509f06f56a95f8ca9a6f41b8f5635f33fe65df6..63705d27c5ff881f8940c236724d75af904c7770 100644 (file)
@@ -1059,6 +1059,11 @@ class vardbapi(dbapi):
                try:
                        f = open(self._aux_cache_filename, mode='rb', **open_kwargs)
                        mypickle = pickle.Unpickler(f)
+                       try:
+                               mypickle.find_global = None
+                       except AttributeError:
+                               # TODO: If py3k, override Unpickler.find_class().
+                               pass
                        aux_cache = mypickle.load()
                        f.close()
                        del f
index bb3911a6b57e521f723e54591cb655c86c49b7e8..02e5de27761c5577b6dffe0baed2d37ccd260018 100644 (file)
@@ -486,7 +486,13 @@ def dir_get_metadata(baseurl, conn=None, chunk_size=3000, verbose=1, usingcache=
        out = sys.stdout
        try:
                metadatafile = open(metadatafilename, 'rb')
-               metadata = pickle.load(metadatafile)
+               mypickle = pickle.Unpickler(metadatafile)
+               try:
+                       mypickle.find_global = None
+               except AttributeError:
+                       # TODO: If py3k, override Unpickler.find_class().
+                       pass
+               metadata = mypickle.load()
                out.write("Loaded metadata pickle.\n")
                out.flush()
                metadatafile.close()