Python pickle 模块,PicklingError() 实例源码

我们从Python开源项目中,提取了以下50个代码示例,用于说明如何使用pickle.PicklingError()

项目:zippy    作者:securesystemslab    | 项目源码 | 文件源码
def putmessage(self, message):
        self.debug("putmessage:%d:" % message[0])
        try:
            s = pickle.dumps(message)
        except pickle.PicklingError:
            print("Cannot pickle:", repr(message), file=sys.__stderr__)
            raise
        s = struct.pack("<i", len(s)) + s
        while len(s) > 0:
            try:
                r, w, x = select.select([], [self.sock], [])
                n = self.sock.send(s[:BUFSIZE])
            except (AttributeError, TypeError):
                raise IOError("socket no longer exists")
            except socket.error:
                raise
            else:
                s = s[n:]
项目:loopchain    作者:theloopkr    | 项目源码 | 文件源码
def GetPeerList(self, request, context):
        """?? RadioStation ? ??? Peer ??? ???.

        :param request: CommonRequest
        :param context:
        :return: PeerList
        """
        channel_name = conf.LOOPCHAIN_DEFAULT_CHANNEL if not request.channel else request.channel
        try:
            peer_list_dump = ObjectManager().rs_service.channel_manager.get_peer_manager(channel_name).dump()
        except pickle.PicklingError as e:
            logging.warning("fail peer_list dump")
            peer_list_dump = b''

        return loopchain_pb2.PeerList(
            peer_list=peer_list_dump
        )
项目:async-ipython-magic    作者:leriomaggio    | 项目源码 | 文件源码
def on_connected(self, f):
        """Callback fired /on_connection/ established.

        Once the connection to the websocket has been established,
        all the currenct namespace is pickled and written to the
        corresponding web_socket connection.
        """
        try:
            ws_conn = f.result()
            self.ws_conn = ws_conn
            data = {'connection_id': self.connection_id,
                    'nb_code_to_run_async': self.cell_source,}
            msg = json.dumps(data)
            ws_conn.write_message(message=msg)
            white_ns = self._pack_namespace()
            ws_conn.write_message(message=pickle_dumps(white_ns), binary=True)
        except PicklingError as e:
            print(str(e))
项目:async-ipython-magic    作者:leriomaggio    | 项目源码 | 文件源码
def _pack_namespace(self):
        """Collect all the /pickable/ objects from the namespace
        so to pass them to the async execution environment."""
        white_ns = dict()
        white_ns.setdefault('import_modules', list())
        for k, v in self.shell.user_ns.items():
            if not k in DEFAULT_BLACKLIST:
                try:
                    if inspect_ismodule(v):
                        white_ns['import_modules'].append((k, v.__name__))
                    else:
                        _ = pickle_dumps({k: v})
                        white_ns[k] = v
                except PicklingError:
                    continue
                except Exception:
                    continue
        white_ns['connection_id'] = self.connection_id
        return white_ns
项目:oil    作者:oilshell    | 项目源码 | 文件源码
def test_reduce_bad_iterator(self):
        # Issue4176: crash when 4th and 5th items of __reduce__()
        # are not iterators
        class C(object):
            def __reduce__(self):
                # 4th item is not an iterator
                return list, (), None, [], None
        class D(object):
            def __reduce__(self):
                # 5th item is not an iterator
                return dict, (), None, None, []

        # Protocol 0 in Python implementation is less strict and also accepts
        # iterables.
        for proto in protocols:
            try:
                self.dumps(C(), proto)
            except (AttributeError, pickle.PicklingError, cPickle.PicklingError):
                pass
            try:
                self.dumps(D(), proto)
            except (AttributeError, pickle.PicklingError, cPickle.PicklingError):
                pass
项目:python2-tracer    作者:extremecoders-re    | 项目源码 | 文件源码
def test_reduce_bad_iterator(self):
        # Issue4176: crash when 4th and 5th items of __reduce__()
        # are not iterators
        class C(object):
            def __reduce__(self):
                # 4th item is not an iterator
                return list, (), None, [], None
        class D(object):
            def __reduce__(self):
                # 5th item is not an iterator
                return dict, (), None, None, []

        # Protocol 0 in Python implementation is less strict and also accepts
        # iterables.
        for proto in protocols:
            try:
                self.dumps(C(), proto)
            except (AttributeError, pickle.PicklingError, cPickle.PicklingError):
                pass
            try:
                self.dumps(D(), proto)
            except (AttributeError, pickle.PicklingError, cPickle.PicklingError):
                pass
项目:estimators    作者:fridiculous    | 项目源码 | 文件源码
def save_global(self, obj, name=None, pack=struct.pack):
        # We have to override this method in order to deal with objects
        # defined interactively in IPython that are not injected in
        # __main__
        kwargs = dict(name=name, pack=pack)
        if sys.version_info >= (3, 4):
            del kwargs['pack']
        try:
            Pickler.save_global(self, obj, **kwargs)
        except pickle.PicklingError:
            Pickler.save_global(self, obj, **kwargs)
            module = getattr(obj, "__module__", None)
            if module == '__main__':
                my_name = name
                if my_name is None:
                    my_name = obj.__name__
                mod = sys.modules[module]
                if not hasattr(mod, my_name):
                    # IPython doesn't inject the variables define
                    # interactively in __main__
                    setattr(mod, my_name, obj)
项目:web_ctp    作者:molebot    | 项目源码 | 文件源码
def pickleRoundTrip(self, obj, name, dumper, loader):
        save_m = sys.modules[name]
        try:
            sys.modules[name] = dumper
            temp = pickle.dumps(obj)
            sys.modules[name] = loader
            result = pickle.loads(temp)
        except pickle.PicklingError as pe:
            # pyET must be second, because pyET may be (equal to) ET.
            human = dict([(ET, "cET"), (pyET, "pyET")])
            raise support.TestFailed("Failed to round-trip %r from %r to %r"
                                     % (obj,
                                        human.get(dumper, dumper),
                                        human.get(loader, loader))) from pe
        finally:
            sys.modules[name] = save_m
        return result
项目:mlens    作者:flennerhag    | 项目源码 | 文件源码
def save_global(self, obj, name=None, pack=struct.pack):
        # We have to override this method in order to deal with objects
        # defined interactively in IPython that are not injected in
        # __main__
        kwargs = dict(name=name, pack=pack)
        if sys.version_info >= (3, 4):
            del kwargs['pack']
        try:
            Pickler.save_global(self, obj, **kwargs)
        except pickle.PicklingError:
            Pickler.save_global(self, obj, **kwargs)
            module = getattr(obj, "__module__", None)
            if module == '__main__':
                my_name = name
                if my_name is None:
                    my_name = obj.__name__
                mod = sys.modules[module]
                if not hasattr(mod, my_name):
                    # IPython doesn't inject the variables define
                    # interactively in __main__
                    setattr(mod, my_name, obj)
项目:ouroboros    作者:pybee    | 项目源码 | 文件源码
def pickleRoundTrip(self, obj, name, dumper, loader, proto):
        save_m = sys.modules[name]
        try:
            sys.modules[name] = dumper
            temp = pickle.dumps(obj, proto)
            sys.modules[name] = loader
            result = pickle.loads(temp)
        except pickle.PicklingError as pe:
            # pyET must be second, because pyET may be (equal to) ET.
            human = dict([(ET, "cET"), (pyET, "pyET")])
            raise support.TestFailed("Failed to round-trip %r from %r to %r"
                                     % (obj,
                                        human.get(dumper, dumper),
                                        human.get(loader, loader))) from pe
        finally:
            sys.modules[name] = save_m
        return result
项目:deepjets    作者:deepjets    | 项目源码 | 文件源码
def save_func(self, obj):
        try:
            self.save_global(obj)
            return
        except pickle.PicklingError:
            pass
        assert type(obj) is types.FunctionType
        self.save(types.FunctionType)
        self.save((
            obj.func_code,
            obj.func_globals,
            obj.func_name,
            obj.func_defaults,
            obj.func_closure,
        ))
        self.write(pickle.REDUCE)
        if id(obj) not in self.memo:    # Could be if we recursively landed here. See also pickle.save_tuple().
            self.memoize(obj)
项目:rankpy    作者:dmitru    | 项目源码 | 文件源码
def save_global(self, obj, name=None, pack=struct.pack):
        # We have to override this method in order to deal with objects
        # defined interactively in IPython that are not injected in
        # __main__
        kwargs = dict(name=name, pack=pack)
        if sys.version_info >= (3, 4):
            del kwargs['pack']
        try:
            Pickler.save_global(self, obj, **kwargs)
        except pickle.PicklingError:
            Pickler.save_global(self, obj, **kwargs)
            module = getattr(obj, "__module__", None)
            if module == '__main__':
                my_name = name
                if my_name is None:
                    my_name = obj.__name__
                mod = sys.modules[module]
                if not hasattr(mod, my_name):
                    # IPython doesn't inject the variables define
                    # interactively in __main__
                    setattr(mod, my_name, obj)
项目:kbe_server    作者:xiaohaoppy    | 项目源码 | 文件源码
def pickleRoundTrip(self, obj, name, dumper, loader):
        save_m = sys.modules[name]
        try:
            sys.modules[name] = dumper
            temp = pickle.dumps(obj)
            sys.modules[name] = loader
            result = pickle.loads(temp)
        except pickle.PicklingError as pe:
            # pyET must be second, because pyET may be (equal to) ET.
            human = dict([(ET, "cET"), (pyET, "pyET")])
            raise support.TestFailed("Failed to round-trip %r from %r to %r"
                                     % (obj,
                                        human.get(dumper, dumper),
                                        human.get(loader, loader))) from pe
        finally:
            sys.modules[name] = save_m
        return result
项目:Parallel-SGD    作者:angadgill    | 项目源码 | 文件源码
def save_global(self, obj, name=None, pack=struct.pack):
        # We have to override this method in order to deal with objects
        # defined interactively in IPython that are not injected in
        # __main__
        kwargs = dict(name=name, pack=pack)
        if sys.version_info >= (3, 4):
            del kwargs['pack']
        try:
            Pickler.save_global(self, obj, **kwargs)
        except pickle.PicklingError:
            Pickler.save_global(self, obj, **kwargs)
            module = getattr(obj, "__module__", None)
            if module == '__main__':
                my_name = name
                if my_name is None:
                    my_name = obj.__name__
                mod = sys.modules[module]
                if not hasattr(mod, my_name):
                    # IPython doesn't inject the variables define
                    # interactively in __main__
                    setattr(mod, my_name, obj)
项目:provenance    作者:bmabey    | 项目源码 | 文件源码
def save_global(self, obj, name=None, pack=struct.pack):
        # We have to override this method in order to deal with objects
        # defined interactively in IPython that are not injected in
        # __main__
        kwargs = dict(name=name, pack=pack)
        if sys.version_info >= (3, 4):
            del kwargs['pack']
        try:
            Pickler.save_global(self, obj, **kwargs)
        except pickle.PicklingError:
            Pickler.save_global(self, obj, **kwargs)
            module = getattr(obj, "__module__", None)
            if module == '__main__':
                my_name = name
                if my_name is None:
                    my_name = obj.__name__
                mod = sys.modules[module]
                if not hasattr(mod, my_name):
                    # IPython doesn't inject the variables define
                    # interactively in __main__
                    setattr(mod, my_name, obj)
项目:mendelmd    作者:raonyguimaraes    | 项目源码 | 文件源码
def set_to_cache(self):
        """
        Add widget object to Django's cache.

        You may need to overwrite this method, to pickle all information
        that is required to serve your JSON response view.
        """
        try:
            cache.set(self._get_cache_key(), {
                'widget': self,
                'url': self.get_url(),
            })
        except (PicklingError, cPicklingError, AttributeError):
            msg = "You need to overwrite \"set_to_cache\" or ensure that %s is serialisable."
            raise NotImplementedError(msg % self.__class__.__name__)
项目:gipc    作者:jgehrcke    | 项目源码 | 文件源码
def put(self, o):
        """Encode object ``o`` and write it to the pipe.
        Block gevent-cooperatively until all data is written. The default
        encoder is ``pickle.dumps``.

        :arg o: a Python object that is encodable with the encoder of choice.

        Raises:
            - :exc:`GIPCError`
            - :exc:`GIPCClosed`
            - :exc:`pickle.PicklingError`

        """
        self._validate()
        with self._lock:
            bindata = self._encoder(o)
            self._write(struct.pack("!i", len(bindata)) + bindata)
项目:MIT-Thesis    作者:alec-heif    | 项目源码 | 文件源码
def dump(self, obj):
        self.inject_addons()
        try:
            return Pickler.dump(self, obj)
        except RuntimeError as e:
            if 'recursion' in e.args[0]:
                msg = """Could not pickle object as excessively deep recursion required."""
                raise pickle.PicklingError(msg)
        except pickle.PickleError:
            raise
        except Exception as e:
            if "'i' format requires" in e.message:
                msg = "Object too large to serialize: " + e.message
            else:
                msg = "Could not serialize object: " + e.__class__.__name__ + ": " + e.message
            print_exec(sys.stderr)
            raise pickle.PicklingError(msg)
项目:MIT-Thesis    作者:alec-heif    | 项目源码 | 文件源码
def save_unsupported(self, obj):
        raise pickle.PicklingError("Cannot pickle objects of type %s" % type(obj))
项目:MIT-Thesis    作者:alec-heif    | 项目源码 | 文件源码
def save_ufunc(self, obj):
        """Hack function for saving numpy ufunc objects"""
        name = obj.__name__
        numpy_tst_mods = ['numpy', 'scipy.special']
        for tst_mod_name in numpy_tst_mods:
            tst_mod = sys.modules.get(tst_mod_name, None)
            if tst_mod and name in tst_mod.__dict__:
                return self.save_reduce(_getobject, (tst_mod_name, name))
        raise pickle.PicklingError('cannot save %s. Cannot resolve what module it is defined in'
                                   % str(obj))
项目:python3-tutorial    作者:JustinSDK    | 项目源码 | 文件源码
def save(self, filename=None):
        self.check_filename(filename)

        fh = None
        try:
            data = (self.title, self.year, self.duration, self.director_id)
            fh = open(self.filename, 'wb')
            pickle.dump(data, fh)
        except (EnvironmentError, pickle.PicklingError) as err:
            raise SaveError(str(err))
        finally:
            if fh is not None:
                fh.close()
项目:python3-tutorial    作者:JustinSDK    | 项目源码 | 文件源码
def load(self, filename=None):
        self.check_filename(filename)

        fh = None
        try:
            fh = open(self.filename, 'rb')
            data = pickle.load(fh)
            (self.title, self.year, self.duration, self.director_id) = data
        except (EnvironmentError, pickle.PicklingError) as err:
            raise LoadError(str(err))
        finally:
            if fh is not None:
                fh.close()
项目:python3-tutorial    作者:JustinSDK    | 项目源码 | 文件源码
def save(self, filename=None):
        self.check_filename(filename)

        fh = None
        try:
            # todo..


        except (EnvironmentError, pickle.PicklingError) as err:
            raise SaveError(str(err))
        finally:
            if fh is not None:
                fh.close()
项目:python3-tutorial    作者:JustinSDK    | 项目源码 | 文件源码
def load(self, filename=None):
        self.check_filename(filename)

        fh = None
        try:
            # todo..


        except (EnvironmentError, pickle.PicklingError) as err:
            raise LoadError(str(err))
        finally:
            if fh is not None:
                fh.close()
项目:python3-tutorial    作者:JustinSDK    | 项目源码 | 文件源码
def save(self, filename=None):
        self.check_filename(filename)

        fh = None
        try:
            data = (self.title, self.year, self.duration, self.director_id)
            with open(self.filename, 'wb') as fh:
                pickle.dump(data, fh)
        except (EnvironmentError, pickle.PicklingError) as err:
            raise SaveError(str(err))
项目:python3-tutorial    作者:JustinSDK    | 项目源码 | 文件源码
def save(self, filename=None):
        self.check_filename(filename)

        fh = None
        try:
            data = (self.title, self.year, self.duration, self.director_id)
            fh = open(self.filename, 'wb')
            pickle.dump(data, fh)
        except (EnvironmentError, pickle.PicklingError) as err:
            raise SaveError(str(err))
        finally:
            if fh is not None:
                fh.close()
项目:python3-tutorial    作者:JustinSDK    | 项目源码 | 文件源码
def load(self, filename=None):
        self.check_filename(filename)

        fh = None
        try:
            fh = open(self.filename, 'rb')
            data = pickle.load(fh)
            (self.title, self.year, self.duration, self.director_id) = data
        except (EnvironmentError, pickle.PicklingError) as err:
            raise LoadError(str(err))
        finally:
            if fh is not None:
                fh.close()
项目:SameKeyProxy    作者:xzhou    | 项目源码 | 文件源码
def __getstate__(self):
        raise PicklingError('no access to the daemon')
项目:Intranet-Penetration    作者:yuxiaokui    | 项目源码 | 文件源码
def test_class_nested_enum_and_pickle_protocol_four(self):
            # would normally just have this directly in the class namespace
            class NestedEnum(Enum):
                twigs = 'common'
                shiny = 'rare'

            self.__class__.NestedEnum = NestedEnum
            self.NestedEnum.__qualname__ = '%s.NestedEnum' % self.__class__.__name__
            test_pickle_exception(
                    self.assertRaises, PicklingError, self.NestedEnum.twigs,
                    protocol=(0, 3))
            test_pickle_dump_load(self.assertTrue, self.NestedEnum.twigs,
                    protocol=(4, HIGHEST_PROTOCOL))
项目:Intranet-Penetration    作者:yuxiaokui    | 项目源码 | 文件源码
def test_exploding_pickle(self):
        BadPickle = Enum('BadPickle', 'dill sweet bread-n-butter')
        enum._make_class_unpicklable(BadPickle)
        globals()['BadPickle'] = BadPickle
        test_pickle_exception(self.assertRaises, TypeError, BadPickle.dill)
        test_pickle_exception(self.assertRaises, PicklingError, BadPickle)
项目:Intranet-Penetration    作者:yuxiaokui    | 项目源码 | 文件源码
def __getstate__(self):
    raise pickle.PicklingError(
        'Pickling of datastore_query.PropertyFilter is unsupported.')
项目:Intranet-Penetration    作者:yuxiaokui    | 项目源码 | 文件源码
def __getstate__(self):
    raise pickle.PicklingError(
        'Pickling of %r is unsupported.' % self)
项目:Intranet-Penetration    作者:yuxiaokui    | 项目源码 | 文件源码
def __getstate__(self):
    raise pickle.PicklingError(
        'Pickling of datastore_query.PropertyOrder is unsupported.')
项目:Intranet-Penetration    作者:yuxiaokui    | 项目源码 | 文件源码
def __getstate__(self):
    raise pickle.PicklingError(
        'Pickling of %r is unsupported.' % self)
项目:Intranet-Penetration    作者:yuxiaokui    | 项目源码 | 文件源码
def __getstate__(self):
    raise pickle.PicklingError(
        'Pickling of datastore_query.Batch is unsupported.')
项目:Intranet-Penetration    作者:yuxiaokui    | 项目源码 | 文件源码
def __getstate__(self):
    raise pickle.PicklingError(
        'Pickling of datastore_query.Batcher is unsupported.')
项目:Sublime-uroboroSQL-formatter    作者:future-architect    | 项目源码 | 文件源码
def test_class_nested_enum_and_pickle_protocol_four(self):
            # would normally just have this directly in the class namespace
            class NestedEnum(Enum):
                twigs = 'common'
                shiny = 'rare'

            self.__class__.NestedEnum = NestedEnum
            self.NestedEnum.__qualname__ = '%s.NestedEnum' % self.__class__.__name__
            test_pickle_exception(
                    self.assertRaises, PicklingError, self.NestedEnum.twigs,
                    protocol=(0, 3))
            test_pickle_dump_load(self.assertTrue, self.NestedEnum.twigs,
                    protocol=(4, HIGHEST_PROTOCOL))
项目:Sublime-uroboroSQL-formatter    作者:future-architect    | 项目源码 | 文件源码
def test_exploding_pickle(self):
        BadPickle = Enum('BadPickle', 'dill sweet bread-n-butter')
        enum._make_class_unpicklable(BadPickle)
        globals()['BadPickle'] = BadPickle
        test_pickle_exception(self.assertRaises, TypeError, BadPickle.dill)
        test_pickle_exception(self.assertRaises, PicklingError, BadPickle)
项目:MKFQ    作者:maojingios    | 项目源码 | 文件源码
def test_class_nested_enum_and_pickle_protocol_four(self):
            # would normally just have this directly in the class namespace
            class NestedEnum(Enum):
                twigs = 'common'
                shiny = 'rare'

            self.__class__.NestedEnum = NestedEnum
            self.NestedEnum.__qualname__ = '%s.NestedEnum' % self.__class__.__name__
            test_pickle_exception(
                    self.assertRaises, PicklingError, self.NestedEnum.twigs,
                    protocol=(0, 3))
            test_pickle_dump_load(self.assertTrue, self.NestedEnum.twigs,
                    protocol=(4, HIGHEST_PROTOCOL))
项目:MKFQ    作者:maojingios    | 项目源码 | 文件源码
def test_exploding_pickle(self):
        BadPickle = Enum('BadPickle', 'dill sweet bread-n-butter')
        enum._make_class_unpicklable(BadPickle)
        globals()['BadPickle'] = BadPickle
        test_pickle_exception(self.assertRaises, TypeError, BadPickle.dill)
        test_pickle_exception(self.assertRaises, PicklingError, BadPickle)
项目:MKFQ    作者:maojingios    | 项目源码 | 文件源码
def __getstate__(self):
    raise pickle.PicklingError(
        'Pickling of datastore_query.PropertyFilter is unsupported.')
项目:MKFQ    作者:maojingios    | 项目源码 | 文件源码
def __getstate__(self):
    raise pickle.PicklingError(
        'Pickling of %r is unsupported.' % self)
项目:MKFQ    作者:maojingios    | 项目源码 | 文件源码
def __getstate__(self):
    raise pickle.PicklingError(
        'Pickling of datastore_query.PropertyOrder is unsupported.')
项目:MKFQ    作者:maojingios    | 项目源码 | 文件源码
def __getstate__(self):
    raise pickle.PicklingError(
        'Pickling of %r is unsupported.' % self)
项目:MKFQ    作者:maojingios    | 项目源码 | 文件源码
def __getstate__(self):
    raise pickle.PicklingError(
        'Pickling of datastore_query.Batch is unsupported.')
项目:MKFQ    作者:maojingios    | 项目源码 | 文件源码
def __getstate__(self):
    raise pickle.PicklingError(
        'Pickling of datastore_query.Batcher is unsupported.')
项目:django-estimators    作者:fridiculous    | 项目源码 | 文件源码
def hash(self, obj, return_digest=True):
        try:
            self.dump(obj)
        except pickle.PicklingError as e:
            e.args += ('PicklingError while hashing %r: %r' % (obj, e),)
            raise
        dumps = self.stream.getvalue()
        self._hash.update(dumps)
        if return_digest:
            return self._hash.hexdigest()
项目:uroboroSQL-formatter    作者:future-architect    | 项目源码 | 文件源码
def test_class_nested_enum_and_pickle_protocol_four(self):
            # would normally just have this directly in the class namespace
            class NestedEnum(Enum):
                twigs = 'common'
                shiny = 'rare'

            self.__class__.NestedEnum = NestedEnum
            self.NestedEnum.__qualname__ = '%s.NestedEnum' % self.__class__.__name__
            test_pickle_exception(
                    self.assertRaises, PicklingError, self.NestedEnum.twigs,
                    protocol=(0, 3))
            test_pickle_dump_load(self.assertTrue, self.NestedEnum.twigs,
                    protocol=(4, HIGHEST_PROTOCOL))
项目:uroboroSQL-formatter    作者:future-architect    | 项目源码 | 文件源码
def test_exploding_pickle(self):
        BadPickle = Enum('BadPickle', 'dill sweet bread-n-butter')
        enum._make_class_unpicklable(BadPickle)
        globals()['BadPickle'] = BadPickle
        test_pickle_exception(self.assertRaises, TypeError, BadPickle.dill)
        test_pickle_exception(self.assertRaises, PicklingError, BadPickle)
项目:fidget    作者:angr    | 项目源码 | 文件源码
def __init__(self, infile, cache=False, cfg_options=None, debugangr=False):
        self.infile = infile
        self.error = False
        self._stack_patch_data = []
        self.stack_increases = {}
        if cfg_options is None:
            cfg_options = {}
        cachename = infile + '.fcfg'

        l.info("Loading %s", infile)
        try:
            if not cache: raise IOError('fuck off')
            fh = open(cachename, 'rb')
            self.project, self.cfg = pickle.load(fh)
            self.cfg.project = self.project
            fh.close()
        except (IOError, OSError, pickle.UnpicklingError):
            if debugangr:
                import ipdb; ipdb.set_trace()
            self.project = Project(infile, load_options={'auto_load_libs': False})
            self.cfg = self.project.analyses.CFGFast(**cfg_options)
            try:
                fh = open(cachename, 'wb')
                pickle.dump((self.project, self.cfg), fh, -1)
                fh.close()
            except (IOError, OSError, pickle.PicklingError):
                l.exception('Error pickling CFG')