Lines Matching refs:pickle

9 import pickle
37 from pickle import bytes_types
52 # Tests that try a number of pickle protocols should have a
55 protocols = range(pickle.HIGHEST_PROTOCOL + 1)
58 # Return True if opcode code appears in the pickle, else False.
59 def opcode_in_pickle(code, pickle):
60 for op, dummy, dummy in pickletools.genops(pickle):
65 # Return the number of times opcode code appears in pickle.
66 def count_opcode(code, pickle):
68 for op, dummy, dummy in pickletools.genops(pickle):
209 return type(self)._reconstruct, (pickle.PickleBuffer(self),), None
237 return type(self)._reconstruct, (pickle.PickleBuffer(self),), None
314 pb = pickle.PickleBuffer(self.array)
887 # Protocol 0 (text mode pickle):
904 # Protocol 1 (binary mode pickle)
980 # From Python 2: pickle.dumps('a\x00\xa0', protocol=0)
983 # From Python 2: pickle.dumps('a\x00\xa0', protocol=1)
986 # From Python 2: pickle.dumps('a\x00\xa0', protocol=2)
991 # From Python 2: pickle.dumps(u'π', protocol=0)
994 # From Python 2: pickle.dumps(u'π', protocol=1)
997 # From Python 2: pickle.dumps(u'π', protocol=2)
1002 # From Python 2: pickle.dumps('x' * 300, protocol=1)
1003 self.assertEqual(self.loads(pickle.BINSTRING +
1005 b'x' * 300 + pickle.STOP,
1032 self.check_unpickling_error((pickle.UnpicklingError, OverflowError),
1039 self.check_unpickling_error((pickle.UnpicklingError, OverflowError),
1047 self.check_unpickling_error(pickle.UnpicklingError, b'g0\np0')
1048 self.check_unpickling_error(pickle.UnpicklingError, b'jens:')
1049 self.check_unpickling_error(pickle.UnpicklingError, b'hens:')
1068 self.check_unpickling_error((pickle.UnpicklingError, OverflowError),
1074 self.check_unpickling_error((pickle.UnpicklingError, OverflowError),
1080 self.check_unpickling_error((pickle.UnpicklingError, OverflowError),
1137 self.check_unpickling_error(pickle.UnpicklingError, p)
1188 error = (pickle.UnpicklingError, TypeError)
1194 error = (pickle.UnpicklingError, TypeError)
1426 results.append(pickle.loads(pickle_bytes))
1487 # pickle and cPickle, largely because cPickle starts PUT indices at
1488 # 1 and pickle starts them at 0. See XXX comment in cPickle's put2() --
1507 for proto in range(minprotocol, pickle.HIGHEST_PROTOCOL + 1):
1528 for proto in range(minprotocol, pickle.HIGHEST_PROTOCOL + 1):
1540 for proto in range(minprotocol, pickle.HIGHEST_PROTOCOL + 1):
1563 for proto in range(minprotocol, pickle.HIGHEST_PROTOCOL + 1):
1584 for proto in range(minprotocol, pickle.HIGHEST_PROTOCOL + 1):
1596 for proto in range(minprotocol, pickle.HIGHEST_PROTOCOL + 1):
1620 for proto in range(minprotocol, pickle.HIGHEST_PROTOCOL + 1):
1643 for proto in range(minprotocol, pickle.HIGHEST_PROTOCOL + 1):
1657 for proto in range(minprotocol, pickle.HIGHEST_PROTOCOL + 1):
1679 for proto in range(4, pickle.HIGHEST_PROTOCOL + 1):
1689 for proto in range(4, pickle.HIGHEST_PROTOCOL + 1):
1851 self.assertTrue(opcode_in_pickle(pickle.GLOBAL, p))
1854 self.assertTrue(opcode_in_pickle(pickle.STACK_GLOBAL, p))
1857 self.assertTrue(opcode_in_pickle(pickle.BYTEARRAY8, p))
1884 pickle = self.dumps(n, proto)
1885 got = self.loads(pickle)
1906 pickle = self.dumps(value, proto)
1907 got = self.loads(pickle)
1938 copyreg.pickle(pickling_metaclass, pickling_metaclass.__reduce__)
2018 proto_header = pickle.PROTO + bytes([proto])
2021 self.assertEqual(count_opcode(pickle.PROTO, pickled), 0)
2024 build_none = pickle.NONE + pickle.STOP
2025 badpickle = pickle.PROTO + bytes([oob]) + build_none
2029 self.assertIn("unsupported pickle protocol", str(err))
2039 self.assertEqual(opcode_in_pickle(pickle.LONG1, s), proto >= 2)
2047 self.assertEqual(opcode_in_pickle(pickle.LONG4, s), proto >= 2)
2051 expected_opcode = {(0, 0): pickle.TUPLE,
2052 (0, 1): pickle.TUPLE,
2053 (0, 2): pickle.TUPLE,
2054 (0, 3): pickle.TUPLE,
2055 (0, 4): pickle.TUPLE,
2057 (1, 0): pickle.EMPTY_TUPLE,
2058 (1, 1): pickle.TUPLE,
2059 (1, 2): pickle.TUPLE,
2060 (1, 3): pickle.TUPLE,
2061 (1, 4): pickle.TUPLE,
2063 (2, 0): pickle.EMPTY_TUPLE,
2064 (2, 1): pickle.TUPLE1,
2065 (2, 2): pickle.TUPLE2,
2066 (2, 3): pickle.TUPLE3,
2067 (2, 4): pickle.TUPLE,
2069 (3, 0): pickle.EMPTY_TUPLE,
2070 (3, 1): pickle.TUPLE1,
2071 (3, 2): pickle.TUPLE2,
2072 (3, 3): pickle.TUPLE3,
2073 (3, 4): pickle.TUPLE,
2090 expected_opcode = {(0, None): pickle.NONE,
2091 (1, None): pickle.NONE,
2092 (2, None): pickle.NONE,
2093 (3, None): pickle.NONE,
2095 (0, True): pickle.INT,
2096 (1, True): pickle.INT,
2097 (2, True): pickle.NEWTRUE,
2098 (3, True): pickle.NEWTRUE,
2100 (0, False): pickle.INT,
2101 (1, False): pickle.INT,
2102 (2, False): pickle.NEWFALSE,
2103 (3, False): pickle.NEWFALSE,
2182 self.assertRaises((TypeError, pickle.UnpicklingError), self.loads, b)
2187 # an object of that type. Check that the resulting pickle uses opcode
2219 self.produce_global_ext(0x00000001, pickle.EXT1) # smallest EXT1 code
2220 self.produce_global_ext(0x000000ff, pickle.EXT1) # largest EXT1 code
2223 self.produce_global_ext(0x00000100, pickle.EXT2) # smallest EXT2 code
2224 self.produce_global_ext(0x0000ffff, pickle.EXT2) # largest EXT2 code
2225 self.produce_global_ext(0x0000abcd, pickle.EXT2) # check endianness
2228 self.produce_global_ext(0x00010000, pickle.EXT4) # smallest EXT4 code
2229 self.produce_global_ext(0x7fffffff, pickle.EXT4) # largest EXT4 code
2230 self.produce_global_ext(0x12abcdef, pickle.EXT4) # check endianness
2239 num_appends = count_opcode(pickle.APPENDS, s)
2248 num_appends = count_opcode(pickle.APPENDS, s)
2262 num_setitems = count_opcode(pickle.SETITEMS, s)
2271 num_setitems = count_opcode(pickle.SETITEMS, s)
2284 num_additems = count_opcode(pickle.ADDITEMS, s)
2296 num_additems = count_opcode(pickle.ADDITEMS, s)
2312 self.assertEqual(opcode_in_pickle(pickle.NEWOBJ, s),
2314 self.assertFalse(opcode_in_pickle(pickle.NEWOBJ_EX, s))
2332 self.assertEqual(opcode_in_pickle(pickle.NEWOBJ, s),
2334 self.assertFalse(opcode_in_pickle(pickle.NEWOBJ_EX, s))
2352 self.assertFalse(opcode_in_pickle(pickle.NEWOBJ, s))
2353 self.assertEqual(opcode_in_pickle(pickle.NEWOBJ_EX, s),
2418 for proto in range(2, pickle.HIGHEST_PROTOCOL + 1):
2437 except pickle.PicklingError:
2441 except pickle.PicklingError:
2501 self.assertFalse(opcode_in_pickle(pickle.LONG, p))
2514 self._check_pickling_with_opcode(obj, pickle.APPEND, proto)
2516 self._check_pickling_with_opcode(obj, pickle.APPENDS, proto)
2522 self._check_pickling_with_opcode(obj, pickle.SETITEM, proto)
2524 self._check_pickling_with_opcode(obj, pickle.SETITEMS, proto)
2533 Check the arguments of FRAME opcodes in a protocol 4+ pickle.
2581 for proto in range(4, pickle.HIGHEST_PROTOCOL + 1):
2587 count_opcode(pickle.FRAME, pickled))
2598 for proto in range(4, pickle.HIGHEST_PROTOCOL + 1):
2603 # This covers in-memory pickling with pickle.dumps().
2620 n_frames = count_opcode(pickle.FRAME, pickled)
2627 if pickle.HIGHEST_PROTOCOL < 4:
2631 """Remove frame opcodes from the given pickle."""
2656 for proto in range(4, pickle.HIGHEST_PROTOCOL + 1):
2660 self.assertEqual(count_opcode(pickle.FRAME, frameless_pickle), 0)
2664 self.assertLess(count_opcode(pickle.FRAME, some_frames_pickle),
2665 count_opcode(pickle.FRAME, pickled))
2679 for proto in range(4, pickle.HIGHEST_PROTOCOL + 1):
2741 for proto in range(pickle.HIGHEST_PROTOCOL + 1):
2753 for proto in range(pickle.HIGHEST_PROTOCOL + 1):
2797 for proto in range(pickle.HIGHEST_PROTOCOL + 1):
2812 for proto in range(pickle.HIGHEST_PROTOCOL + 1):
2846 for proto in range(pickle.HIGHEST_PROTOCOL + 1):
2856 for proto in range(pickle.HIGHEST_PROTOCOL + 1):
2885 for proto in range(0, pickle.HIGHEST_PROTOCOL + 1):
2886 with self.assertRaises((AttributeError, pickle.PicklingError)):
2891 for proto in range(0, pickle.HIGHEST_PROTOCOL + 1):
2892 with self.assertRaises((AttributeError, pickle.PicklingError)):
2896 for proto in range(0, pickle.HIGHEST_PROTOCOL + 1):
2897 with self.assertRaises((AttributeError, pickle.PicklingError)):
2927 for proto in range(0, pickle.HIGHEST_PROTOCOL + 1):
2932 self.assertEqual(count_opcode(pickle.NEXT_BUFFER, data), 0)
2934 self.assertEqual(count_opcode(pickle.SHORT_BINBYTES, data),
2936 self.assertEqual(count_opcode(pickle.BYTEARRAY8, data),
2963 for proto in range(5, pickle.HIGHEST_PROTOCOL + 1):
2969 self.assertEqual(count_opcode(pickle.SHORT_BINBYTES, data), 0)
2970 self.assertEqual(count_opcode(pickle.BYTEARRAY8, data), 0)
2971 self.assertEqual(count_opcode(pickle.NEXT_BUFFER, data), 1)
2972 self.assertEqual(count_opcode(pickle.READONLY_BUFFER, data),
2978 with self.assertRaises(pickle.UnpicklingError):
3000 for proto in range(5, pickle.HIGHEST_PROTOCOL + 1):
3012 pb = pickle.PickleBuffer(b"foobar")
3014 with self.assertRaises(pickle.PickleError):
3020 pb = pickle.PickleBuffer(b"foobar")
3025 pb = pickle.PickleBuffer(b"foobar")
3026 for proto in range(5, pickle.HIGHEST_PROTOCOL + 1):
3032 with self.assertRaises(pickle.UnpicklingError):
3036 for proto in range(5, pickle.HIGHEST_PROTOCOL + 1):
3052 for proto in range(0, pickle.HIGHEST_PROTOCOL + 1):
3056 for proto in range(5, pickle.HIGHEST_PROTOCOL + 1):
3062 for proto in range(5, pickle.HIGHEST_PROTOCOL + 1):
3178 header = (pickle.BINBYTES +
3205 header = (pickle.BINBYTES8 +
3229 header = (pickle.BINUNICODE +
3260 header = (pickle.BINUNICODE8 +
3448 self.assertEqual(pickle.HIGHEST_PROTOCOL, 5)
3471 self.assertRaises((EOFError, struct.error, pickle.UnpicklingError), self.load, s)
3474 # Test issue3664 (pickle can segfault from a badly initialized Pickler).
3482 self.assertRaises(pickle.PicklingError, BadPickler().dump, 0)
3483 self.assertRaises(pickle.UnpicklingError, BadUnpickler().load)
3496 for proto in range(5, pickle.HIGHEST_PROTOCOL + 1):
3504 with self.assertRaises(pickle.UnpicklingError):
3591 self.assertRaises(pickle.PicklingError, self.dumps, non_ascii_str, 0)
3592 pickled = pickle.PERSID + non_ascii_str.encode('utf-8') + b'\n.'
3593 self.assertRaises(pickle.UnpicklingError, self.loads, pickled)
3606 # To test whether clear_memo() has any effect, we pickle an object,
3607 # then pickle it again without clearing the memo; the two serialized
3608 # forms should be different. If we clear_memo() and then pickle the
3828 for proto in range(0, pickle.HIGHEST_PROTOCOL + 1):
3834 new_f, some_str, math_log = pickle.loads(bio.getvalue())
3844 with self.assertRaises(pickle.PicklingError):
3857 for proto in range(0, pickle.HIGHEST_PROTOCOL + 1):
3867 new_f = pickle.loads(bio.getvalue())
3918 return pickle.loads(dumps(obj, 0))
3921 return pickle.loads(pickle.dumps(obj, 0))
3987 for i in range(pickle.HIGHEST_PROTOCOL+1):
3988 p = pickle.dumps(x, i)