当前位置: 首页>>代码示例>>Python>>正文


Python copy_reg.pickle方法代码示例

本文整理汇总了Python中copy_reg.pickle方法的典型用法代码示例。如果您正苦于以下问题:Python copy_reg.pickle方法的具体用法?Python copy_reg.pickle怎么用?Python copy_reg.pickle使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在copy_reg的用法示例。


在下文中一共展示了copy_reg.pickle方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: no_tracing

# 需要导入模块: import copy_reg [as 别名]
# 或者: from copy_reg import pickle [as 别名]
def no_tracing(func):
    """Decorator to temporarily turn off tracing for the duration of a test."""
    if not hasattr(sys, 'gettrace'):
        return func
    else:
        def wrapper(*args, **kwargs):
            original_trace = sys.gettrace()
            try:
                sys.settrace(None)
                return func(*args, **kwargs)
            finally:
                sys.settrace(original_trace)
        wrapper.__name__ = func.__name__
        return wrapper


# Return True if opcode code appears in the pickle, else False. 
开发者ID:IronLanguages,项目名称:ironpython2,代码行数:19,代码来源:pickletester.py

示例2: test_long

# 需要导入模块: import copy_reg [as 别名]
# 或者: from copy_reg import pickle [as 别名]
def test_long(self):
        for proto in protocols:
            # 256 bytes is where LONG4 begins.
            for nbits in 1, 8, 8*254, 8*255, 8*256, 8*257:
                nbase = 1L << nbits
                for npos in nbase-1, nbase, nbase+1:
                    for n in npos, -npos:
                        pickle = self.dumps(n, proto)
                        got = self.loads(pickle)
                        self.assertEqual(n, got)
        # Try a monster.  This is quadratic-time in protos 0 & 1, so don't
        # bother with those.
        nbase = long("deadbeeffeedface", 16)
        nbase += nbase << 1000000
        for n in nbase, -nbase:
            p = self.dumps(n, 2)
            got = self.loads(p)
            self.assertEqual(n, got) 
开发者ID:IronLanguages,项目名称:ironpython2,代码行数:20,代码来源:pickletester.py

示例3: test_proto

# 需要导入模块: import copy_reg [as 别名]
# 或者: from copy_reg import pickle [as 别名]
def test_proto(self):
        build_none = pickle.NONE + pickle.STOP
        for proto in protocols:
            expected = build_none
            if proto >= 2:
                expected = pickle.PROTO + chr(proto) + expected
            p = self.dumps(None, proto)
            self.assertEqual(p, expected)

        oob = protocols[-1] + 1     # a future protocol
        badpickle = pickle.PROTO + chr(oob) + build_none
        try:
            self.loads(badpickle)
        except ValueError, detail:
            self.assertTrue(str(detail).startswith(
                                            "unsupported pickle protocol")) 
开发者ID:IronLanguages,项目名称:ironpython2,代码行数:18,代码来源:pickletester.py

示例4: test_singletons

# 需要导入模块: import copy_reg [as 别名]
# 或者: from copy_reg import pickle [as 别名]
def test_singletons(self):
        # Map (proto, singleton) to expected opcode.
        expected_opcode = {(0, None): pickle.NONE,
                           (1, None): pickle.NONE,
                           (2, None): pickle.NONE,

                           (0, True): pickle.INT,
                           (1, True): pickle.INT,
                           (2, True): pickle.NEWTRUE,

                           (0, False): pickle.INT,
                           (1, False): pickle.INT,
                           (2, False): pickle.NEWFALSE,
                          }
        for proto in protocols:
            for x in None, False, True:
                s = self.dumps(x, proto)
                y = self.loads(s)
                self.assertTrue(x is y, (proto, x, s, y))
                expected = expected_opcode[proto, x]
                self.assertEqual(opcode_in_pickle(expected, s), True) 
开发者ID:IronLanguages,项目名称:ironpython2,代码行数:23,代码来源:pickletester.py

示例5: test_list_chunking

# 需要导入模块: import copy_reg [as 别名]
# 或者: from copy_reg import pickle [as 别名]
def test_list_chunking(self):
        n = 10  # too small to chunk
        x = range(n)
        for proto in protocols:
            s = self.dumps(x, proto)
            y = self.loads(s)
            self.assertEqual(x, y)
            num_appends = count_opcode(pickle.APPENDS, s)
            self.assertEqual(num_appends, proto > 0)

        n = 2500  # expect at least two chunks when proto > 0
        x = range(n)
        for proto in protocols:
            s = self.dumps(x, proto)
            y = self.loads(s)
            self.assertEqual(x, y)
            num_appends = count_opcode(pickle.APPENDS, s)
            if proto == 0:
                self.assertEqual(num_appends, 0)
            else:
                self.assertTrue(num_appends >= 2) 
开发者ID:IronLanguages,项目名称:ironpython2,代码行数:23,代码来源:pickletester.py

示例6: test_dict_chunking

# 需要导入模块: import copy_reg [as 别名]
# 或者: from copy_reg import pickle [as 别名]
def test_dict_chunking(self):
        n = 10  # too small to chunk
        x = dict.fromkeys(range(n))
        for proto in protocols:
            s = self.dumps(x, proto)
            y = self.loads(s)
            self.assertEqual(x, y)
            num_setitems = count_opcode(pickle.SETITEMS, s)
            self.assertEqual(num_setitems, proto > 0)

        n = 2500  # expect at least two chunks when proto > 0
        x = dict.fromkeys(range(n))
        for proto in protocols:
            s = self.dumps(x, proto)
            y = self.loads(s)
            self.assertEqual(x, y)
            num_setitems = count_opcode(pickle.SETITEMS, s)
            if proto == 0:
                self.assertEqual(num_setitems, 0)
            else:
                self.assertTrue(num_setitems >= 2) 
开发者ID:IronLanguages,项目名称:ironpython2,代码行数:23,代码来源:pickletester.py

示例7: test_reduce_bad_iterator

# 需要导入模块: import copy_reg [as 别名]
# 或者: from copy_reg import pickle [as 别名]
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 
开发者ID:IronLanguages,项目名称:ironpython2,代码行数:25,代码来源:pickletester.py

示例8: count_opcode

# 需要导入模块: import copy_reg [as 别名]
# 或者: from copy_reg import pickle [as 别名]
def count_opcode(code, pickle):
    n = 0
    for op, dummy, dummy in pickletools.genops(pickle):
        if op.code == code:
            n += 1
    return n

# We can't very well test the extension registry without putting known stuff
# in it, but we have to be careful to restore its original state.  Code
# should do this:
#
#     e = ExtensionSaver(extension_code)
#     try:
#         fiddle w/ the extension registry's stuff for extension_code
#     finally:
#         e.restore() 
开发者ID:dxwu,项目名称:BinderFilter,代码行数:18,代码来源:pickletester.py

示例9: test_reduce_bad_iterator

# 需要导入模块: import copy_reg [as 别名]
# 或者: from copy_reg import pickle [as 别名]
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 is less strict and also accept iterables.
        for proto in protocols:
            try:
                self.dumps(C(), proto)
            except (AttributeError, pickle.PickleError, cPickle.PickleError):
                pass
            try:
                self.dumps(D(), proto)
            except (AttributeError, pickle.PickleError, cPickle.PickleError):
                pass 
开发者ID:dxwu,项目名称:BinderFilter,代码行数:24,代码来源:pickletester.py

示例10: pickle_exception

# 需要导入模块: import copy_reg [as 别名]
# 或者: from copy_reg import pickle [as 别名]
def pickle_exception(obj):
    # All exceptions, unlike generic Python objects, define __reduce_ex__
    # __reduce_ex__(4) should be no different from __reduce_ex__(3).
    # __reduce_ex__(5) could bring benefits in the unlikely case the exception
    # directly contains buffers, but PickleBuffer objects will cause a crash when
    # running on protocol=4, and there's no clean way to figure out the current
    # protocol from here. Note that any object returned by __reduce_ex__(3) will
    # still be pickled with protocol 5 if pickle.dump() is running with it.
    rv = obj.__reduce_ex__(3)
    if isinstance(rv, str):
        raise TypeError("str __reduce__ output is not supported")
    assert isinstance(rv, tuple) and len(rv) >= 2

    return (unpickle_exception, rv[:2] + (obj.__cause__, obj.__traceback__)) + rv[2:] 
开发者ID:pywren,项目名称:pywren-ibm-cloud,代码行数:16,代码来源:pickling_support.py

示例11: install

# 需要导入模块: import copy_reg [as 别名]
# 或者: from copy_reg import pickle [as 别名]
def install(*exc_classes_or_instances):
    copyreg.pickle(TracebackType, pickle_traceback)

    if sys.version_info.major < 3:
        # Dummy decorator?
        if len(exc_classes_or_instances) == 1:
            exc = exc_classes_or_instances[0]
            if isinstance(exc, type) and issubclass(exc, BaseException):
                return exc
        return

    if not exc_classes_or_instances:
        for exception_cls in _get_subclasses(BaseException):
            copyreg.pickle(exception_cls, pickle_exception)
        return

    for exc in exc_classes_or_instances:
        if isinstance(exc, BaseException):
            while exc is not None:
                copyreg.pickle(type(exc), pickle_exception)
                exc = exc.__cause__
        elif isinstance(exc, type) and issubclass(exc, BaseException):
            copyreg.pickle(exc, pickle_exception)
            # Allow using @install as a decorator for Exception classes
            if len(exc_classes_or_instances) == 1:
                return exc
        else:
            raise TypeError(
                "Expected subclasses or instances of BaseException, got %s"
                % (type(exc))
            ) 
开发者ID:pywren,项目名称:pywren-ibm-cloud,代码行数:33,代码来源:pickling_support.py

示例12: _ufunc_reconstruct

# 需要导入模块: import copy_reg [as 别名]
# 或者: from copy_reg import pickle [as 别名]
def _ufunc_reconstruct(module, name):
    # The `fromlist` kwarg is required to ensure that `mod` points to the
    # inner-most module rather than the parent package when module name is
    # nested. This makes it possible to pickle non-toplevel ufuncs such as
    # scipy.special.expit for instance.
    mod = __import__(module, fromlist=[name])
    return getattr(mod, name) 
开发者ID:Frank-qlu,项目名称:recruit,代码行数:9,代码来源:__init__.py

示例13: _ufunc_reduce

# 需要导入模块: import copy_reg [as 别名]
# 或者: from copy_reg import pickle [as 别名]
def _ufunc_reduce(func):
    from pickle import whichmodule
    name = func.__name__
    return _ufunc_reconstruct, (whichmodule(func, name), name) 
开发者ID:Frank-qlu,项目名称:recruit,代码行数:6,代码来源:__init__.py

示例14: precisionbigmemtest

# 需要导入模块: import copy_reg [as 别名]
# 或者: from copy_reg import pickle [as 别名]
def precisionbigmemtest(*args, **kwargs):
        return lambda self: None

# Tests that try a number of pickle protocols should have a
#     for proto in protocols:
# kind of outer loop. 
开发者ID:IronLanguages,项目名称:ironpython2,代码行数:8,代码来源:pickletester.py

示例15: opcode_in_pickle

# 需要导入模块: import copy_reg [as 别名]
# 或者: from copy_reg import pickle [as 别名]
def opcode_in_pickle(code, pickle):
    for op, dummy, dummy in pickletools.genops(pickle):
        if op.code == code:
            return True
    return False

# Return the number of times opcode code appears in pickle. 
开发者ID:IronLanguages,项目名称:ironpython2,代码行数:9,代码来源:pickletester.py


注:本文中的copy_reg.pickle方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。