,A ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddl Z ddlZddlZddlZddlmZddlmZ ddlZddlmZddlmZddlmZmZmZmZmZm Z ddl!m"Z"ddl#m$Z$dd lm%Z%dd l&m'Z'dd lm(Z( e'5ddl)Z*dddejVe jXd kd Z-e.ej^dzZ0dZ1dZ2dZ3GddejhZ5Gdde6Z7GddZ8GddZ9Gdde9Z:Gdde9Z;ddlGd!d"Z?Gd#d$e@ZAGd%d&e9ZBGd'd(eCZDGd)d*e6eD+ZEGd,d-eCZFd.ZGGd/d0eHZIGd1d2eJZKe Gd3d4ZLd5ZMd6ZNd7ZOd8ZPd9ZQd:ZRd;ZSdZVd?ZWd@ZXdAZYdBZZge[e\e]e^e_e`eaebecedeeefegeheeiejekelemeneoepeqereseteuevewexeyeze{e|e}e~eeeeeeeZdCZdDZdEZGdFdGZGdHdIZGdJdKZGdLdMZGdNdOZGdPdQZGdRdSe6ZGdTdUe6ZGdVdWe6ZGdXdYe6ZGdZd[e6ZGd\d]e6ZGd^d_e6ZGd`dae6ZGdbdcZGdddeZGdfdgZGdhdiedZGdjdkZeZGdldmeZGdndoe@ZGdpdqeZGdrdseZGdtdueZGdvdweZGdxdyeZGdzd{eZGd|d}eZGd~deZGddeZeeeeeeeeeeg ZGdde@ZGddeZGddeZGdde@aGddtjZGddtjZGddZGddZGddZGddZGddZGddZdZGdde6ZGdde6ZdZGddZGddZGddZedk(rddl mZeZe.ej^dzD]ZejeeȫZedjeȫe.deeʫdD](ZeHeeedzZedjeϫ*ede˫edjeȫedjeȫeeʫede˫yy#e$rdZYwxYw#1swYxYw#e$rdZ*YwxYw)N)dedent) SimpleCookie)support) os_helper) TestFailedrun_with_locales no_tracing_2G_4G bigmemtest)forget)TESTFN)threading_helper)save_restore_warnings_filters) bytes_typeslz(test is only meaningful on 32-bit buildsctj|D]&\}}}|j|jdk(s&yy)Nlatin-1TF pickletoolsgenopscodedecode)rpickleopdummys 8/opt/alt/python312/lib64/python3.12/test/pickletester.pyopcode_in_pickler;s;'..v6E5 77dkk), ,7 cd}tj|D]*\}}}|j|jdk(s&|dz },|S)Nrrrr)rrnrrs r count_opcoder"BsH A'..v6E5 77dkk), , FA7 Hrc|SNxs ridentityr(Js Hrc$eZdZdZdZdZdZy) UnseekableIOctr$)NotImplementedErrorselfargss rpeekzUnseekableIO.peekOs!!rcy)NFr%r.s rseekablezUnseekableIO.seekableRsrc"tjr$ioUnsupportedOperationr-s rseekzUnseekableIO.seekU%%%rc"tjr$r5r2s rtellzUnseekableIO.tellXr9rN)__name__ __module__ __qualname__r0r3r8r;r%rrr*r*Ns"&&rr*ceZdZdZdZy) MinimalIOz= A file-like object that doesn't support readinto(). c tj||_|jj|_|jj|_|jj |_|jj |_yr$)r6BytesIO_biogetvaluereadreadlinewriter-s r__init__zMinimalIO.__init__`sRJJ%  ** IINN  ** YY__ rN)r<r=r>__doc__rHr%rrr@r@\s %rr@ceZdZdZdZy)ExtensionSaverc||_|tjvrJtj||_tj|jd|jd|yd|_yNrr)rcopyreg_inverted_registrypairremove_extension)r.rs rrHzExtensionSaver.__init__usR 7-- -2248DI  $ $TYYq\499Q< FDIrc|j}tjj|}|tj|d|d||j }|tj |d|d|yyrM)rrNrOgetrQrP add_extension)r.rcurpairrPs rrestorezExtensionSaver.restore~soyy,,006    $ $WQZT Byy    ! !$q'47D 9 rN)r<r=r>rHrVr%rrrKrKrs :rrKceZdZdZy)Cc4|j|jk(Sr$)__dict__r.others r__eq__zC.__eq__s}}..rN)r<r=r>r]r%rrrXrXs/rrXceZdZdZy)Dcyr$r%)r.args rrHz D.__init__ rNr<r=r>rHr%rrr_r_ rr_ceZdZdZy)EcyNr%r%r2s r__getinitargs__zE.__getinitargs__srN)r<r=r>rir%rrrfrfsrrf__main__c eZdZy)ObjectNr<r=r>r%rrrlrlrrlceZdZdZdZy)Kc||_yr$)value)r.rrs rrHz K.__init__  rc(t|jffSr$)rprrr2s r __reduce__z K.__reduce__s4::-rNr<r=r>rHrur%rrrprps  rrpceZdZdZy)myintc$t||_yr$str)r.r's rrHzmyint.__init__s q6rNrcr%rrrxrxrrxceZdZdZdZy)initargc ||_||_yr$ab)r.rrs rrHzinitarg.__init__src2|j|jfSr$rr2s rrizinitarg.__getinitargs__svvtvv~rN)r<r=r>rHrir%rrr~r~s rr~c eZdZy) metaclassNrmr%rrrrrnrrc eZdZy) use_metaclassNrmr%rrrrrnrr)rceZdZdZdZy)pickling_metaclasscft|t|k(xr|j|jk(Sr$)type reduce_argsr[s rr]zpickling_metaclass.__eq__s0T d5k)6  E$5$55 7rc&t|jfSr$)create_dynamic_classrr2s rruzpickling_metaclass.__reduce__s$d&6&677rN)r<r=r>r]rur%rrrrs 78rrcBt||t}||f|_|Sr$)rdictr)namebasesresults rrrs# eTV 4FF Mrc<eZdZdZdZdZdZdZdZeZ e dZ y) ZeroCopyBytesTc|dk\r,t|jtj|fdfSt|jt |ffSNr _reconstructr PickleBufferbytesr.protocols r __reduce_ex__zZeroCopyBytes.__reduce_ex__I q=:**V-@-@-F,H$N N:**U4[N: :rc`dj|jjt|SNz{}({!r})format __class__r<rr2s r__repr__zZeroCopyBytes.__repr__#  !8!8%+FFrct|5}|j}t||ur |cdddS||cdddS#1swYyxYwr$ memoryviewobjrclsrms rrzZeroCopyBytes._reconstruct= _%%CCyC _ 3x __AAA N r<r=r>readonly c_contiguous f_contiguouszero_copy_reconstructrr__str__ classmethodrr%rrrrs;HLL ; GG  rrc<eZdZdZdZdZdZdZdZeZ e dZ y)ZeroCopyBytearrayFTc|dk\r,t|jtj|fdfSt|jt |ffSrrrs rrzZeroCopyBytearray.__reduce_ex__rrc`dj|jjt|Srrr2s rrzZeroCopyBytearray.__repr__rrct|5}|j}t||ur |cdddS||cdddS#1swYyxYwr$rrs rrzZeroCopyBytearray._reconstructrrNrr%rrrrs;HLL ; GG  rrcteZdZdZdZdZedZedZedZ dZ dZ d Z d Z ed Zy ) PicklableNDArrayFc8tj|i||_yr$) _testbufferndarrayarrayr.r/kwargss rrHzPicklableNDArray.__init__ s$,,d=f=DJrcft|}|j|}|j||_|Sr$)r__new__r)r.idxrnews r __getitem__zPicklableNDArray.__getitem__ s-t*C++c"C 3CIJrc.|jjSr$)rrr2s rrzPicklableNDArray.readonlys::&& &rc.|jjSr$)rrr2s rrzPicklableNDArray.c_contiguous::** *rc.|jjSr$)rrr2s rrzPicklableNDArray.f_contiguousrrct|tstS|jj|jjk(xr|jj |jj k(xr|jj |jj k(xrd|jj|jjk(xr5|jj|jjk(Sr$) isinstancerNotImplementedrrshapestridesrtobytesr[s rr]zPicklableNDArray.__eq__se%56%%KK&&$***;*;;BKK%%)9)99BKK''4::+=+==BKK((DJJ,?,??BKK'')TZZ-?-?-AA  Crc:t|tstS||k( Sr$)rrrr[s r__ne__zPicklableNDArray.__ne__'s e%56%% & &rct|d|jjd|jjd|jj dS)Nz(shape=z ,strides=z, bytes=))rrrrrr2s rrzPicklableNDArray.__repr__,sUDzl'$***:*:);<#zz1123!ZZ//12!5 6rc|jjs td|jj|jj|jj |j rdntjd}tj|j}|dk\rt|j||ffS|j5}t|j|j|ffcdddS#1swYyxYw)Nz>Reconstructing a non-contiguous ndarray does not seem possibler)rrrflagsr)r contiguousr,rrrrr ND_WRITABLErrrrrawr)r.rndarray_kwargspbrs rrzPicklableNDArray.__reduce_ex__1s::(()+KLL'+zz'7'7)-););(, (9(9-1]]-8-D-D GN $$TZZ0B1}T //^,..VVX J33YY[.9;XXs 'C??Dct|5}t|j}ddd|fi|S#1swYxYwr$)rlistr)rrrritemss rrzPicklableNDArray._reconstructDs<CAQYY[)!u'' ' !s 7AN)r<r=r>rrHrpropertyrrrr]rrrrrr%rrrrsy!& >   '  '  +  +  +  + C '  6  ;&  (  (rrs;(lp0 L0L aL1L aF2.0 ac__builtin__ complex p1 (F3.0 F0.0 tp2 Rp3 aL1L aL-1L aL255L aL-255L aL-256L aL65535L aL-65535L aL-65536L aL2147483647L aL-2147483647L aL-2147483648L a(Vabc p4 g4 ccopy_reg _reconstructor p5 (c__main__ C p6 c__builtin__ object p7 Ntp8 Rp9 (dp10 Vfoo p11 L1L sVbar p12 L2L sbg9 tp13 ag13 aL5L a.an 0: ( MARK 1: l LIST (MARK at 0) 2: p PUT 0 5: L LONG 0 9: a APPEND 10: L LONG 1 14: a APPEND 15: F FLOAT 2.0 20: a APPEND 21: c GLOBAL '__builtin__ complex' 42: p PUT 1 45: ( MARK 46: F FLOAT 3.0 51: F FLOAT 0.0 56: t TUPLE (MARK at 45) 57: p PUT 2 60: R REDUCE 61: p PUT 3 64: a APPEND 65: L LONG 1 69: a APPEND 70: L LONG -1 75: a APPEND 76: L LONG 255 82: a APPEND 83: L LONG -255 90: a APPEND 91: L LONG -256 98: a APPEND 99: L LONG 65535 107: a APPEND 108: L LONG -65535 117: a APPEND 118: L LONG -65536 127: a APPEND 128: L LONG 2147483647 141: a APPEND 142: L LONG -2147483647 156: a APPEND 157: L LONG -2147483648 171: a APPEND 172: ( MARK 173: V UNICODE 'abc' 178: p PUT 4 181: g GET 4 184: c GLOBAL 'copy_reg _reconstructor' 209: p PUT 5 212: ( MARK 213: c GLOBAL '__main__ C' 225: p PUT 6 228: c GLOBAL '__builtin__ object' 248: p PUT 7 251: N NONE 252: t TUPLE (MARK at 212) 253: p PUT 8 256: R REDUCE 257: p PUT 9 260: ( MARK 261: d DICT (MARK at 260) 262: p PUT 10 266: V UNICODE 'foo' 271: p PUT 11 275: L LONG 1 279: s SETITEM 280: V UNICODE 'bar' 285: p PUT 12 289: L LONG 2 293: s SETITEM 294: b BUILD 295: g GET 9 298: t TUPLE (MARK at 172) 299: p PUT 13 303: a APPEND 304: g GET 13 308: a APPEND 309: L LONG 5 313: a APPEND 314: . STOP highest protocol among opcodes = 0 s]q(KKG@c__builtin__ complex q(G@GtqRqKJKJJMJJJJJ(Xabcqhccopy_reg _reconstructor q(c__main__ C qc__builtin__ object qNtqRq }q (Xfooq KXbarq Kubh tq h Ke.a 0: ] EMPTY_LIST 1: q BINPUT 0 3: ( MARK 4: K BININT1 0 6: K BININT1 1 8: G BINFLOAT 2.0 17: c GLOBAL '__builtin__ complex' 38: q BINPUT 1 40: ( MARK 41: G BINFLOAT 3.0 50: G BINFLOAT 0.0 59: t TUPLE (MARK at 40) 60: q BINPUT 2 62: R REDUCE 63: q BINPUT 3 65: K BININT1 1 67: J BININT -1 72: K BININT1 255 74: J BININT -255 79: J BININT -256 84: M BININT2 65535 87: J BININT -65535 92: J BININT -65536 97: J BININT 2147483647 102: J BININT -2147483647 107: J BININT -2147483648 112: ( MARK 113: X BINUNICODE 'abc' 121: q BINPUT 4 123: h BINGET 4 125: c GLOBAL 'copy_reg _reconstructor' 150: q BINPUT 5 152: ( MARK 153: c GLOBAL '__main__ C' 165: q BINPUT 6 167: c GLOBAL '__builtin__ object' 187: q BINPUT 7 189: N NONE 190: t TUPLE (MARK at 152) 191: q BINPUT 8 193: R REDUCE 194: q BINPUT 9 196: } EMPTY_DICT 197: q BINPUT 10 199: ( MARK 200: X BINUNICODE 'foo' 208: q BINPUT 11 210: K BININT1 1 212: X BINUNICODE 'bar' 220: q BINPUT 12 222: K BININT1 2 224: u SETITEMS (MARK at 199) 225: b BUILD 226: h BINGET 9 228: t TUPLE (MARK at 112) 229: q BINPUT 13 231: h BINGET 13 233: K BININT1 5 235: e APPENDS (MARK at 3) 236: . STOP highest protocol among opcodes = 1 s]q(KKG@c__builtin__ complex qG@GqRqKJKJJMJJJJJ(Xabcqhc__main__ C q)q}q(XfooqKXbarq Kubhtq h Ke.u 0: € PROTO 2 2: ] EMPTY_LIST 3: q BINPUT 0 5: ( MARK 6: K BININT1 0 8: K BININT1 1 10: G BINFLOAT 2.0 19: c GLOBAL '__builtin__ complex' 40: q BINPUT 1 42: G BINFLOAT 3.0 51: G BINFLOAT 0.0 60: † TUPLE2 61: q BINPUT 2 63: R REDUCE 64: q BINPUT 3 66: K BININT1 1 68: J BININT -1 73: K BININT1 255 75: J BININT -255 80: J BININT -256 85: M BININT2 65535 88: J BININT -65535 93: J BININT -65536 98: J BININT 2147483647 103: J BININT -2147483647 108: J BININT -2147483648 113: ( MARK 114: X BINUNICODE 'abc' 122: q BINPUT 4 124: h BINGET 4 126: c GLOBAL '__main__ C' 138: q BINPUT 5 140: ) EMPTY_TUPLE 141:  NEWOBJ 142: q BINPUT 6 144: } EMPTY_DICT 145: q BINPUT 7 147: ( MARK 148: X BINUNICODE 'foo' 156: q BINPUT 8 158: K BININT1 1 160: X BINUNICODE 'bar' 168: q BINPUT 9 170: K BININT1 2 172: u SETITEMS (MARK at 147) 173: b BUILD 174: h BINGET 6 176: t TUPLE (MARK at 113) 177: q BINPUT 10 179: h BINGET 10 181: K BININT1 5 183: e APPENDS (MARK at 5) 184: . STOP highest protocol among opcodes = 2 s]q(KKG@cbuiltins complex qG@GqRqKJKJJMJJJJJ(Xabcqhc__main__ C q)q}q(XbarqKXfooq Kubhtq h Ke.u 0: € PROTO 3 2: ] EMPTY_LIST 3: q BINPUT 0 5: ( MARK 6: K BININT1 0 8: K BININT1 1 10: G BINFLOAT 2.0 19: c GLOBAL 'builtins complex' 37: q BINPUT 1 39: G BINFLOAT 3.0 48: G BINFLOAT 0.0 57: † TUPLE2 58: q BINPUT 2 60: R REDUCE 61: q BINPUT 3 63: K BININT1 1 65: J BININT -1 70: K BININT1 255 72: J BININT -255 77: J BININT -256 82: M BININT2 65535 85: J BININT -65535 90: J BININT -65536 95: J BININT 2147483647 100: J BININT -2147483647 105: J BININT -2147483648 110: ( MARK 111: X BINUNICODE 'abc' 119: q BINPUT 4 121: h BINGET 4 123: c GLOBAL '__main__ C' 135: q BINPUT 5 137: ) EMPTY_TUPLE 138:  NEWOBJ 139: q BINPUT 6 141: } EMPTY_DICT 142: q BINPUT 7 144: ( MARK 145: X BINUNICODE 'bar' 153: q BINPUT 8 155: K BININT1 2 157: X BINUNICODE 'foo' 165: q BINPUT 9 167: K BININT1 1 169: u SETITEMS (MARK at 144) 170: b BUILD 171: h BINGET 6 173: t TUPLE (MARK at 110) 174: q BINPUT 10 176: h BINGET 10 178: K BININT1 5 180: e APPENDS (MARK at 5) 181: . STOP highest protocol among opcodes = 2 s](KKG@builtinscomplexG@GRKJKJJMJJJJJ(abch__main__C)}(barKfooKubh thKe.u 0: € PROTO 4 2: • FRAME 168 11: ] EMPTY_LIST 12: ” MEMOIZE 13: ( MARK 14: K BININT1 0 16: K BININT1 1 18: G BINFLOAT 2.0 27: Œ SHORT_BINUNICODE 'builtins' 37: ” MEMOIZE 38: Œ SHORT_BINUNICODE 'complex' 47: ” MEMOIZE 48: “ STACK_GLOBAL 49: ” MEMOIZE 50: G BINFLOAT 3.0 59: G BINFLOAT 0.0 68: † TUPLE2 69: ” MEMOIZE 70: R REDUCE 71: ” MEMOIZE 72: K BININT1 1 74: J BININT -1 79: K BININT1 255 81: J BININT -255 86: J BININT -256 91: M BININT2 65535 94: J BININT -65535 99: J BININT -65536 104: J BININT 2147483647 109: J BININT -2147483647 114: J BININT -2147483648 119: ( MARK 120: Œ SHORT_BINUNICODE 'abc' 125: ” MEMOIZE 126: h BINGET 6 128: Œ SHORT_BINUNICODE '__main__' 138: ” MEMOIZE 139: Œ SHORT_BINUNICODE 'C' 142: ” MEMOIZE 143: “ STACK_GLOBAL 144: ” MEMOIZE 145: ) EMPTY_TUPLE 146:  NEWOBJ 147: ” MEMOIZE 148: } EMPTY_DICT 149: ” MEMOIZE 150: ( MARK 151: Œ SHORT_BINUNICODE 'bar' 156: ” MEMOIZE 157: K BININT1 2 159: Œ SHORT_BINUNICODE 'foo' 164: ” MEMOIZE 165: K BININT1 1 167: u SETITEMS (MARK at 150) 168: b BUILD 169: h BINGET 10 171: t TUPLE (MARK at 119) 172: ” MEMOIZE 173: h BINGET 14 175: K BININT1 5 177: e APPENDS (MARK at 13) 178: . STOP highest protocol among opcodes = 4 s%c__builtin__ set q]q(KKeqRq.s%c__builtin__ xrange qKKKqRq.scCookie SimpleCookie q)qUkeyqcCookie Morsel q)q(UcommentqUqUdomainqhUsecureqhUexpiresq hUmax-ageq hUversionq hUpathq hUhttponlyq hu}q(U coded_valueqUvalueqhhhhubs}qb.s"c__builtin__ set q]qKaqRq.scexceptions ? q)Rq.sIcexceptions UnicodeEncodeError q(UasciiqXfooqKKUbadqtqRq.ct}d|_d|_gd}d}d}d}|jdd|| | dz || | dz || | dz g dd||f}|j ||j ||j d |S) Nr)rrg@y@abcr)rXfoobarextendappend)cr'uint1maxuint2maxint4maxys r create_datar,s A AE AEAHHGHHa H9Q; H9Q;'WHQJ01 q!AHHQKHHQKHHQK HrceZdZeZd6dZdZdZdZdZ dZ dZ d Z d Z d Zd Zd ZdZdZdZdZdZedZedZdZdZdZdZdZedZedZedZ dZ!dZ"dZ#d Z$d!Z%ed"Z&d#Z'd$Z(d%Z)d&Z*d'Z+d(Z,d)Z-d*Z.d+Z/d,Z0e1jdd-Z3d.Z4d/Z5d0Z6d1Z7d2Z8d3Z9d4Z:e;jxe;jzd5Z>y)7AbstractUnpickleTestsNc |dj||}|j||||jt|t||t |drP|j |j |j ||j|j |j |t |dr|j|j|j||jD]T}|jt ||t ||||jt||dt||d|Vyy)zKUtility method to verify if two objects are copies of each others. Nz{!r} is not a copy of {!r})msgrZ __slots__) r assertEqualassertIsrhasattrassertDictEqualrZ assertIsNotassertListEqualrgetattr)r.robjcopyrslots rassert_is_copyz$AbstractUnpickleTests.assert_is_copyFs$ ;.55c7CC g3/ d3igC 8 3 #  w/?/?S I   S\\7+;+;  E 3 $  0A0As K   C&(>C!I  dD!9!($!=3!H& %rc ^|j|5|j|5 |j| ddddddy#t$rA}tj dkDr(t |dd|jjd|d}~wwxYw#1swY_xYw#1swYyxYw)N)datar32z - z: ) subTest assertRaisesloads BaseExceptionrverboseprintrr<)r.errorsrexcs rcheck_unpickling_errorz,AbstractUnpickleTests.check_unpickling_errorXs \\t\ $   v &  4 '% $! ??Q&!7!7>?  ' &% $s>B#BA B# Brcb|j|j|jtyr$)rrrDATA1r2s rtest_load_from_data1z*AbstractUnpickleTests.test_load_from_data1frrcb|j|j|jtyr$)rrrDATA2r2s rtest_load_from_data2z*AbstractUnpickleTests.test_load_from_data2irrcb|j|j|jtyr$)rrrDATA3r2s rtest_load_from_data3z*AbstractUnpickleTests.test_load_from_data3lrrcb|j|j|jtyr$)rrrDATA4r2s rtest_load_from_data4z*AbstractUnpickleTests.test_load_from_data4orrctdftdftdffD]\}}|jj d} dj d|}|j |||j| dj d|}|j |||j| dj d|}|j |||j|y)Nr%r&asciis(i__main__ X p0 (dp1 b.Xs(c__main__ X qoq}qb.s(c__main__ X qoq}qb.)rXr_rfr<encodereplacerr)r.Xr/xnamepickle0pickle1pickle2s rtest_load_classic_instancez0AbstractUnpickleTests.test_load_classic_instancersB!Vq"g6GAtJJ%%g.E #%,GD%$8    4$**W*= > ./6wtU/C    4$**W*= > ./6wtU/C    4$**W*= >i7rcd}dt|jdzdz}|j|}|j||dt|jdzdz}|j t |y)NlIr! .sJUNK .)r{r#rrr ValueError)r.maxint64rgots r test_maxint64z#AbstractUnpickleTests.test_maxint64ss c(m**733f<jj Hc*c(m**733j@ ##J5rc|jt}|j|tddg|jt}|jt |t t d|jt|tt d|jt}|jt |t|jt|jdg|j|djdtD]]}tjd|jj!d}|j|}|j#t ||_|jtjdd }|j#t |t$|jt&}|j#t |t(|j|j*d |j|j,d|j|j.d|j|j0d|j|j2d y) Nrrrrkeyrr?r! StandardErrorrbad)rDATA_SETrset DATA_XRANGErranger DATA_COOKIErkeysrrpython2_exceptions_without_argsexception_pickler$r<r#r Exception DATA_UEERRUnicodeEncodeErrorobjectencodingstartendreason)r.loadedr rs rtest_unpickle_from_2xz+AbstractUnpickleTests.test_unpickle_from_2xsH% aV-K( ftE!H~6 ftE!H~6K( f|4 fkkm,ug6 ,,g63C#++D#,,2E2Eg2NODZZ%F MM$v, ,3 ,44T;KLM d6lI.J' d6l$67 . '2 q) Q' .rc|j|jddd|j|jddd|j|jdddy)NsS'a\x00\xa0' .rrCsasUa.sUa.rrr2s rtest_load_python2_str_as_bytesz4AbstractUnpickleTests.test_load_python2_str_as_bytess~ $8-4$67C E $6-4$67C E $>-4$67C Erc|j|jddd|j|jddd|j|jdddy)Ns V\u03c0 .rrJuπsXπ.s Xπ.rKr2s r test_load_python2_unicode_as_strz6AbstractUnpickleTests.test_load_python2_unicode_as_strsz N-4$67; = $A-4$67; = $I-4$67; =rc |j|jtjt j ddzdztj zddy)N F+-@ArcTd}|jtjtf|y)Ns Bxyzq.rrUnpicklingError OverflowErrorr_s rtest_negative_32b_binbytesz0AbstractUnpickleTests.test_negative_32b_binbytes'7 ##V%;%;]$K$* ,rcTd}|jtjtf|y)Ns Xxyzq.rer_s rtest_negative_32b_binunicodez2AbstractUnpickleTests.test_negative_32b_binunicode rircJd}|j|j|dy)Ns €.€rKr_s rtest_short_binunicodez+AbstractUnpickleTests.test_short_binunicodes 5 F+\:rc |jtjd|jtjd|jtjd|jddg|j dy)Nsg0 p0sjens:shens:)ds((Kdtp0 hl.)))rrrfrrr2s r test_misc_getz#AbstractUnpickleTests.test_misc_getsf ##F$:$:IF ##F$:$:HE ##F$:$:HE VV, JJ'<= ?rcJd}|j|j|dy)Ns€.r^rKr_s rtest_binbytes8z$AbstractUnpickleTests.test_binbytes8s!A F+-@ArcJd}|j|j|dy)Ns€.rmrKr_s rtest_binunicode8z&AbstractUnpickleTests.test_binunicode8!s A F+\:rc\d}|j|j|tdy)Nsxxx.sxxx)rr bytearrayr_s rtest_bytearray8z%AbstractUnpickleTests.test_bytearray8%s%D F+Yv->?rcTd}|jtjtf|y)Ns€.rer_s rtest_large_32b_binbytes8z.AbstractUnpickleTests.test_large_32b_binbytes8)%A ##V%;%;]$K$* ,rcTd}|jtjtf|y)Ns€.rer_s rtest_large_32b_bytearray8z/AbstractUnpickleTests.test_large_32b_bytearray8/r{rcTd}|jtjtf|y)Ns€.rer_s rtest_large_32b_binunicode8z0AbstractUnpickleTests.test_large_32b_binunicode85r{rcd}|j|}|j|gfdz|j|d|dy)Ns((lp100000 g100000 t.rrrrrrr.pickled unpickleds rtest_getzAbstractUnpickleTests.test_get;sA,JJw'  RE!G, ilIaL1rcd}|j|}|j|gfdz|j|d|dy)Ns(]qht.rrrrrs r test_bingetz!AbstractUnpickleTests.test_bingetAsA#JJw'  RE!G, ilIaL1rcd}|j|}|j|gfdz|j|d|dy)Ns(]rjt.rrrrrs rtest_long_bingetz&AbstractUnpickleTests.test_long_bingetGsA;JJw'  RE!G, ilIaL1rcd}|j|}|j|gfdz|j|d|dy)Ns((l2t.rrrrrs rtest_dupzAbstractUnpickleTests.test_dupMsAJJw'  RE!G, ilIaL1rc4d}|jt|y)NsVa p-1 .rr.r_s rtest_negative_putz'AbstractUnpickleTests.test_negative_putSs ##J7rc4d}|jt|y)NsXar.rr_s rtest_negative_32b_binputz.AbstractUnpickleTests.test_negative_32b_binputXsA ##J7rc0|jtdy)NsS'\' .rr2s rtest_badly_escaped_stringz/AbstractUnpickleTests.test_badly_escaped_string^s ##J (> Brcbgd}|D]&\}}|j|j||(y)N))sS'' .rZ)sS"" .rZ)sS"\n" . )sS'\n' .rrK)r. goodpicklesrexpecteds rtest_correctly_quoted_stringz2AbstractUnpickleTests.test_correctly_quoted_stringss1- 'KAx   TZZ]H 5'rcJd}|j|j|dy)NsI42 .*rK)r.rs rtest_frame_readlinez)AbstractUnpickleTests.test_frame_readline{s"G G,b1rc2d}|j|}|jt|t|j |tdd|j t |gdd}|j|j|t jd}|j|j|tjdD]U}d|zd z}|j|}|jt|t|j t|d Wd D]k}d |zd z}|j|}|jt|tj|j |tjddimy)Nsc__builtin__ xrange KKKR.r)rrrsc__builtin__ reduce .scwhichdb whichdb .)s Exceptionr5scexceptions s UughR.ugh)sUserDictsIterableUserDicts (cUserDict s o}Udata}KKssb.r)rrrr:rr functoolsreducedbmwhichdbr?r{ collectionsUserDict)r.rrrs rtest_compat_unpicklez*AbstractUnpickleTests.test_compat_unpicklesEHJJw'  d9ou- E!QK0 i*<=4 djj)9+;+;<1 djj)3;;74D/$69LLG 7+I MM$y/9 5   S^U 3 5 7D.567G 7+I MM$y/;+?+? @   Y (<(RS &00$**>ST &00$**>[\Z Ys 6"IIcv |jtj}|jtjd}|jtjd}|j|j |j ddt |jt|j dd|j |j ddt |j |j ddt |j |j ddtj|j |j d d tjj|j |j d d tjj|j |j dd t j|jt5|j dd ddd|jt5|j dd ddd|jt5|j dd ddd|jt5|j dd ddd|jt5|j dd ddd|jt5|j ddddd|jt5|j ddddd|jt5|j ddddd|jt5|j ddddd|jt|j d d|jt |j dd|jt"|j dd|jt"|j dd|jt"tf|j ddy#1swY;xYw#1swYxYw#1swYxYw#1swYxYw#1swYxYw#1swYxYw#1swYixYw#1swYFxYw#1swY#xYw)NF) fix_importssN. __builtin__r{builtinsrrzos.pathrz str.upperspamzlog.spamzlog..spamrZ) unpicklerr6rBloadr find_classr{rModuleNotFoundErrorrrrrrrrr. TypeError)r.runpickler_nofix unpickler4s rtest_find_classz%AbstractUnpickleTests.test_find_classsNNN2::<0 ..5.I^^BJJ}$=>  i**=%@#F -)44mU L i**:u=sC o00UCSI i**659488D i**9f=rww||L i**9f=rww||L j++J DciiP   ~ .  [ 9/  ~ .   0/   ~ .  ! !&& 1/   ~ .   4/   ~ .  ! !&* 5/   ~ .  )< =/   ~ .  ! !&*= >/   ~ .   ,/   ~ .  ! !&" -/ -y/C/CVUS *i&:&:BF )Y%9%94G )Y%9%964H 9n5z7L7LfVZ[1/ ./ . . . . . . . . . . . . . . .sl:Q*QQ  Q-:Q:*RR R!:R.QQ Q*-Q7:RRR!R+.R8cfd}j|ddj|ddfd}j|ddj|ddfd}j|ddj|ddfd}j|ddj|ddy)NcGddj}|tj|jS)NceZdZdZy)NAbstractUnpickleTests.test_custom_find_class..loads..Unpicklerc ||fSr$r%)r. module_name global_names rrzYAbstractUnpickleTests.test_custom_find_class..loads..Unpickler.find_classs '55rN)r<r=r>rr%rr Unpicklerrs6rrrr6rBrrrr.s rrz;AbstractUnpickleTests.test_custom_find_class..loadss2 6DNN 6RZZ-.335 5rr)rrrcGddj}|tj|jS)NceZdZedZy)rc ||fSr$r%rrs rrzYAbstractUnpickleTests.test_custom_find_class..loads..Unpickler.find_class '55rN)r<r=r> staticmethodrr%rrrzNAbstractUnpickleTests.test_custom_find_class..loads..Unpicklers66rrrrs rrz;AbstractUnpickleTests.test_custom_find_class..loads2 6DNN 6RZZ-.335 5rcGddj}|tj|jS)NceZdZedZy)rc ||fSr$r%)rrrs rrzYAbstractUnpickleTests.test_custom_find_class..loads..Unpickler.find_classrrN)r<r=r>rrr%rrrzNAbstractUnpickleTests.test_custom_find_class..loads..Unpicklers66rrrrs rrz;AbstractUnpickleTests.test_custom_find_class..loadsrrcGddj}d}|tj|}||_|j S)Nc eZdZy)rNrmr%rrrzNAbstractUnpickleTests.test_custom_find_class..loads..Unpickler rrc ||fSr$r%rs rrzOAbstractUnpickleTests.test_custom_find_class..loads..find_class s #[11r)rr6rBrr)rrrrr.s rrz;AbstractUnpickleTests.test_custom_find_class..loadss@ DNN  2!"**T"23I#-I >># #r)r)r.rs` rtest_custom_find_classz,AbstractUnpickleTests.test_custom_find_classs 6 /0/B >?Q 6 /0/B >?Q 6 /0/B >?Q $ /0/B >?QrcL|jtd|jtd|jtd|jtd|jtd|jtd|jtjd|jtjd|jtjd |jtjd |jtjd y) N.s.s.s.s.s.s.s.s.s.s.)rr.rrfr2s rtest_bad_ext_codez'AbstractUnpickleTests.test_bad_ext_codes ##J = ##J = ##J0@A ##J0@A ##J0HI ##J0HI ##F$:$:LI ##F$:$:.check&sT""7#=#=tSI&&s+JJ|,,JI++JIs"A(A A(A% !A((A1r%MyListr')Nr)r.r<r)r.rrs` @rtest_bad_ext_inverted_registryz4AbstractUnpickleTests.test_bad_ext_inverted_registry#sn - dJ b* xkIz23 x3')Z)@A xJ 78 J 78rc|j|jdd|jtd|jtdy)Nscbuiltins int )R.rsN)R.scbuiltins int NR.)rrrrr2s rtest_bad_reducez%AbstractUnpickleTests.test_bad_reduce1s= $:;Q? ##Iw7 ##I/EFrctjtf}|j|j dd|j |d|j |dy)Nscbuiltins int ).rscbuiltins len ).scbuiltins int N.rrfrrrrr.errors rtest_bad_newobjz%AbstractUnpickleTests.test_bad_newobj6sN''3 $=>B ##E+DE ##E+DErctjtf}|j|j dd|j |d|j |d|j |dy)Nscbuiltins int )}.rscbuiltins len )}.scbuiltins int N}.scbuiltins int )N.rrs rtest_bad_newobj_exz(AbstractUnpickleTests.test_bad_newobj_ex<s_''3 $>?C ##E+EF ##E+EF ##E+EFrct}d|_d}|j|j|dz||j|j|dz||j t |dzt jtf}|j ||dz|j ||dz|j ||dz|j t |dz|j t |d z|j ||d z|j ||d zGd d }|t_ |j t|dzy)Nsc__main__ C )s }XxNsb.s N}XxNsb.s}]Nsb.s](}}eb.s}b.s}}}b.s}}]Nsb.s}}NNsb.s}b.s}b.ceZdZdZdZy)5AbstractUnpickleTests.test_bad_state..BadKey1rcR|jst|xjdzc_yNrr)count CustomErrorr2s r__hash__z>AbstractUnpickleTests.test_bad_state..BadKey1.__hash__]szz%% a rN)r<r=r>rrr%rrBadKey1r[s E rrs}c__main__ BadKey1 )Nsb.) rXr'rrrrrrfrrjrr)r.rbaserrs rtest_bad_statez$AbstractUnpickleTests.test_bad_stateCs5 C% D+E$EFJ D+J$JKQO ##Iti/?@''8 ##E4*+<= ##E4*+<= ##E4,+>? ##Itn/DE ##Itn/DE ##E4.+@A ##E4.+@A  # ##K8Y1YZrcRgd}|D]}|j|j| y)N),.012s(2Rs)RasNabsNbdes(esibuiltins list los(osp1 sqsrssNssNNstus(us}(Nus)sNsNsNNs(s)}sVlist rbad_stack_errorsrs rtest_bad_stackz$AbstractUnpickleTests.test_bad_stackfs,- \A  ' '(=(=q ArcRgd}|D]}|j|j| y)N)sN(.sN(2scbuiltins list )(Rscbuiltins list ()Rs]N(ascbuiltins ValueError )R}(bscbuiltins ValueError )R(}bs(NdsN(p1 sN(qsN(rs}NN(ss}N(Nss}(NNss}((uscbuiltins list )(scbuiltins list ()sN(sNN(sN(NsNNN(sNN(NsN(NNs]((scbuiltins list )}(scbuiltins list )(}scbuiltins list ()}sVbuiltins (Vlist sVbuiltins Vlist (sN(rrs r test_bad_markz#AbstractUnpickleTests.test_bad_marks," FA  ' '(=(=q Arc|jtd|jtdgd}|D]}|j|j| y)NrN)UBsBsBsBabCsCsCabFsF0.0sF0.00GsGr,sI0JsJKLsL0sL10sL0LsL10LMsMSsS'abc'TsTsTsTabUsUsUabVsVabcr"sXsXsXabs(cs (cbuiltinss (cbuiltins s(cbuiltins listsNgsNg0s(is (ibuiltinss (ibuiltins s(ibuiltins listsNhsNjsNjsNpsNp0sNqsNrsNrsssssabss s abss s abss s abss s N)rEOFErrorrrs rtest_truncated_dataz)AbstractUnpickleTests.test_truncated_datasM ##Hc2 ##Hd3X rA  ' '(=(=q Arc  td}td}tjt|j t j ttjjdt|j tjjtttjjtdd5}|j|jddddttjjtdd5}|j|jdddd|j td|j td ddl}d g t#j$d  fd }t#j&| }t#j&| }|j)|j) j+|j,j+|j|jddlm}|j3 D cgc] } t5| c} |gdzy#1swY{xYw#1swY1xYwcc} w)NzI import threading barrier = threading.Barrier(2) zs import locker locker.barrier.wait() class ToBeUnpickled(object): pass rz locker.pywbutf-8zlocking_import.pylockerlocking_imports'clocking_import ToBeUnpickled q)q.rcnjjtjyr$)waitrrr)barrier pickle_bytesresultssrtz:AbstractUnpickleTests.test_unpickle_module_race..tDs# LLN NN6<< 5 6r)target) ToBeUnpickledr)rrmkdirr addCleanupshutilrmtreerrinsertremoveopenrrGr#r rA threadingBarrierThreadrDrDrErBrJrr) r. locker_modulelocking_import_modulefrArHt1t2rJr'rErFrGs @@@rtest_unpickle_module_racez/AbstractUnpickleTests.test_unpickle_module_races  !'( !    v. 6" 0 "'',,v{3T :a GGM((1 2; "'',,v':;T Ba GG)009 :C )  01 H ##A& 7   Q '   Q '         0 % &gT!Wg & Oa  !M; : B BJ 's!I1.!I>J 1I;>Jr$)?r<r=r>rrrrrrrrrr*r1rHrLrNrUrXr\rarc requires_32brhrkrnrqrsrurxrzr}rrrrrrrrrrrrrrrrrr cpython_onlyrrrrrr r"r=r reap_threadsrequires_working_threadingrZr%rrrrAs IH$ ?????7?r6/< E =C4$ BB,, ,, ;?B;@,, ,, ,, 2 2 2 2 8 88 =C$62F6 T]((\T(RT V  9 9G F G![F0Bd%BN]B~""00029!3#9!rrc6eZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#Z%d$Z&d%Z'e(d&Z)d'Z*d(Z+d)Z,d*Z-e.j^d+Z0y,)-AbstractPicklingErrorTestsc Dttdg}tD]W}|j|5|j t j 5|j||ddddddYttf}tD]W}|j|5|j t j 5|j||ddddddYttddddddf}tD]W}|j|5|j t j 5|j||ddddddYy#1swYxYw#1swYWxYw#1swYxYw#1swYxYw#1swYExYw#1swYxYwNr%protoREXr  protocolsrrr PicklingErrordumpsr.rrds rtest_bad_reduce_resultz1AbstractPicklingErrorTests.test_bad_reduce_result_sC5"+EE*&&v';';<JJsE*=+* 5(mEE*&&v';';<JJsE*=+* 5"dD$d;<EE*&&v';';<JJsE*=+*=<+*=<+*=<+*sk E% E E% E>=E2E> F3F FE" E%%E/ 2E; 7E>>F F FF c td}tD]W}|j|5|jtj 5|j ||ddddddYy#1swYxYw#1swYpxYw)N)rr%rc)rfrgrrrrhrirjs rtest_bad_reconstructorz1AbstractPicklingErrorTests.test_bad_reconstructorrsb(mEE*&&v';';<JJsE*=+*<<+*s# A9A-A9-A6 2A99B c ttdf}tD]M}|j|5|j t 5|j ||ddddddOy#1swYxYw#1swYfxYwrb)rfUnpickleableCallablergrrrrirjs rtest_unpickleable_reconstructorz:AbstractPicklingErrorTests.test_unpickleable_reconstructorysf')2./EE*&&{3JJsE*4+*33+*s#A9A-A9-A6 2A99B cttgf}tD]W}|j|5|j t j 5|j||ddddddYy#1swYxYw#1swYpxYwNrcrerjs rtest_bad_reconstructor_argsz6AbstractPicklingErrorTests.test_bad_reconstructor_argssg5"+EE*&&v';';<JJsE*=+*<<+*s# A? A3 A?3A< 8A??B cttddtff}tD]M}|j |5|j t 5|j||ddddddOy#1swYxYw#1swYfxYwNrrrcrfr  UNPICKLEABLErgrrrrirjs r$test_unpickleable_reconstructor_argsz?AbstractPicklingErrorTests.test_unpickleable_reconstructor_argssi51a./0EE*&&{3JJsE*4+*33+*s#A< A0A<0A9 5A<<B c~ttjdf}tddD]]}|j |5|j t tjf5}|j||dddddd_ttjtgf}tddD]]}|j |5|j t tjf5|j||dddddd_y#1swYxYw#1swYxYw#1swY,xYw#1swYxYwNr%rrc) rfrN __newobj__rgrr IndexErrorrrhri)r.rrdcms rtest_bad_newobj_argsz/AbstractPicklingErrorTests.test_bad_newobj_argss7%%r*+qr]EE*&& F4H4H'IJbJJsE*K+*# 7%%u-.qr]EE*&& F4H4H'IJJJsE*K+*# KJ+*KJ+*sG&D D3D&D3)D'<D3D DD$ 'D0 ,D33D< cBttjtff}tddD]W}|j |5|j tj5|j||ddddddYy#1swYxYw#1swYpxYwNrrc) rfrNr{NoNewrgrrrrhrirjs rtest_bad_newobj_classz0AbstractPicklingErrorTests.test_bad_newobj_classsx7%%z23qr]EE*&&v';';<JJsE*=+*#<<+*s$ B#B 6B B BB c:ttjtff}tddD]W}|j |5|j tj5|j||ddddddYy#1swYxYw#1swYpxYwr) rfrNr{r{rgrrrrhrirjs rtest_wrong_newobj_classz2AbstractPicklingErrorTests.test_wrong_newobj_classsv7%%v./qr]EE*&&v';';<JJsE*=+*#<<+*s# BB2BB BB cPGddt}|tj|ff}tD]]}|j |5|j t jtf5|j||dddddd_y#1swYxYw#1swYvxYw)Nc eZdZy)KAbstractPicklingErrorTests.test_unpickleable_newobj_class..LocalREXNrmr%rrLocalREXrrrrc) rfrNr{rgrrrrhrrir.rrrds rtest_unpickleable_newobj_classz9AbstractPicklingErrorTests.test_unpickleable_newobj_classs~!s!**XK89EE*&&(<(xYw#1swYwxYw#1swYxYw#1swYxYw#1swYAxYw#1swYaxYw#1swYxYw)Nr%rrcrr) rfrN __newobj_ex__rgrrr.rrhripickler_Picklerr)r.rrdis_pys rtest_bad_newobj_ex_argsz2AbstractPicklingErrorTests.test_bad_newobj_ex_argss'7(("-.qr]EE*&& F4H4H'IJJJsE*K+*# 7(("-.qr]EE*&&v';';<JJsE*=+*# 7((3B-89 /',Yq^)AB-?EE*&& 63G3G'HIJJsE*J+*@ 7((3B-89',Yq^)AB-?EE*&& 63G3G'HIJJsE*J+*@#KJ+*=<+*JI+*JI+*s&I I 3I> I3I&1I3*&J J#J &J%&J9J% I II# &I0 +I33I= J J  J J" J%%J. cFttjtdiff}tddD]W}|j |5|j tj5|j||ddddddYy#1swYxYw#1swYpxYwrz) rfrNrrrgrrrrhrirjs rtest_bad_newobj_ex__classz4AbstractPicklingErrorTests.test_bad_newobj_ex__classs}7((57B*;<=qr]EE*&&v';';<JJsE*=+*#<<+*s$ B%B 8B B BB c|jtjur|jdt t j tdiff}tddD]W}|j|5|jtj5|j||ddddddYy#1swYxYw#1swYpxYw)Nz*only verified in the Python implementationr%rrc) rrrskipTestrfrNrr{rgrrrhrirjs rtest_wrong_newobj_ex_classz5AbstractPicklingErrorTests.test_wrong_newobj_ex_classs <.LocalREXNrmr%rrrrrrrr%rc) rfrNrrgrrrrhrrirs r!test_unpickleable_newobj_ex_classzB$B0$B- )B00B9 c ttddddtf}tD]M}|j |5|j t 5|j||ddddddOy#1swYxYw#1swYfxYw)Nr%rrc)rfr rorgrrrrirjs rtest_unpickleable_state_setterz9AbstractPicklingErrorTests.test_unpickleable_state_settersn5"gtT3G3IJKEE*&&{3JJsE*4+*33+*#BA5"B5A> :BB cttdtddtf}tD]M}|j |5|j t 5|j||ddddddOy#1swYxYw#1swYfxYwrbrvrjs r)test_unpickleable_state_with_state_setterzDAbstractPicklingErrorTests.test_unpickleable_state_with_state_settersj5"lD$>?EE*&&{3JJsE*4+*33+*rcttdddf}tD]]}|j|5|j t t jf5|j||dddddd_|jt jurzttddgf}tD]]}|j|5|j t t jf5|j||dddddd_yy#1swYxYw#1swY xYw#1swY.xYw#1swYxYw)Nr%rrc) rfrrgrrrrrhrirrrjs rtest_bad_object_list_itemsz5AbstractPicklingErrorTests.test_bad_object_list_itemss4T2&'EE*&& 63G3G'HIJJsE*J+* <AbstractPicklingErrorTests.test_unpickleable_object_list_items'sdq!\*+EE*&&{3JJsE*4+*33+*s#A6A*A6*A3 /A66A? c ttddddf}tD]]}|j|5|j t t jf5|j||dddddd_tD]q}ttdddtdgf}|j|5|j tt f5|j||dddddds|jt jur{ttdddgf}tD]]}|j|5|j t t jf5|j||dddddd_yy#1swY&xYw#1swYxYw#1swYxYw#1swY?JJsE*@+* <AbstractPicklingErrorTests.test_unpickleable_object_dict_itemsEsbl+,EE*&&{3JJsE*4+*33+*s#A5A)A5)A2 .A55A> c dddtgg}tD]M}|j|5|jt5|j ||ddddddOdD]k}gt |t}tD]M}|j|5|jt5|j ||ddddddOmy#1swYxYw#1swYxYw#1swY.xYw#1swYxYw)Nrrrrcrrirwrgrrrrir:r.rrdr!s rtest_unpickleable_list_itemsz7AbstractPicklingErrorTests.test_unpickleable_list_itemsLs1a&'EE*&&{3JJsE*4+*$A+E!H+l+C"\\\.**;7 3.8/.#$43+*87/.sFCCCC7+C+ >C7C CC( +C4 0C77D cdddtff}tD]M}|j|5|jt5|j ||ddddddOgt dt}tD]M}|j|5|jt5|j ||ddddddOy#1swY~xYw#1swYxYw#1swY,xYw#1swY~xYw)Nrrrrc rrjs rtest_unpickleable_tuple_itemsz8AbstractPicklingErrorTests.test_unpickleable_tuple_itemsYs1a&'EE*&&{3JJsE*4+*)b (<(EE*&&{3JJsE*4+*43+* 43+*sFCC CC1'C%:C1 C CC" %C. *C11C: c .ddtii}tD]M}|j|5|jt5|j ||ddddddOdD]}t jt|}t|d<tD]N}|j||5|jt5|j ||ddddddPy#1swYxYw#1swYxYw#1swY.xYw#1swYxYw)Nrrrcr)rdr!) rwrgrrrrirfromkeysr:rs rtest_unpickleable_dict_itemsz7AbstractPicklingErrorTests.test_unpickleable_dict_itemsesS,'(EE*&&{3JJsE*4+*$A--a)C#CH"\\\3**;7 3.843#$43+*8743sFC3C'C3)D ?C? D 'C0 ,C33C< ?D D  D cth}tD]M}|j|5|jt5|j ||ddddddOy#1swYxYw#1swYfxYwrr)rwrgrrrrirjs rtest_unpickleable_set_itemsz6AbstractPicklingErrorTests.test_unpickleable_set_itemsssZnEE*&&{3JJsE*4+*33+*s"A+A A+A( $A++A4 cttthh}tD]M}|j|5|j t 5|j ||ddddddOy#1swYxYw#1swYfxYwrr) frozensetrwrgrrrrirjs r!test_unpickleable_frozenset_itemsz234EE*&&{3JJsE*4+*33+*s#A> A2A>2A; 7A>>B c0td}t|_tD]W}|j |5|j t j5|j||ddddddYd|_tD]W}|j |5|j t j5|j||ddddddYd|_tD]]}|j |5|j tt jf5|j||dddddd_d|_tD]W}|j |5|j t j5|j||ddddddYy#1swYPxYw#1swYxYw#1swYxYw#1swY`xYw#1swYxYw#1swYxYw#1swYaxYw#1swYxYw)Nrrc nonexistingrZ) rfr<r=rgrrrrhrir.rjs rtest_global_lookup_errorz3AbstractPicklingErrorTests.test_global_lookup_errors&k!EE*&&v';';<JJsE*=+* 'EE*&&v';';<JJsE*=+* EE*&& F4H4H'IJJJsE*K+* EE*&&v';';<JJsE*=+*!=<+*=<+*KJ+*=<+*s GF3%G G9G  G&G3&G'9G3- H  H H 3F= 8GG G GG$ 'G0 ,G33G= H H  H c tddD]}|j|5|dkrdnd}t|}t|_t j t||5|jttjf5|j||dddddddddy#1swYxYw#1swY xYw#1swYxYw)Nrrcr nonasciiÿnonencodable) rgrrfr<r=rrglobalsrrArrhri)r.rdrrs r#test_nonencodable_global_name_errorz>AbstractPicklingErrorTests.test_nonencodable_global_name_errorsr]EE*).~8L$i!)&&wy$<**,>@T@T+UV 3.W= +*# WV=< +*s;?C &B>B2 B>C 2B; 7B>>C C  C c tddD]}|j|5|dkrdnd}td}||_t j |}t jtj||5|jttjf5|j||dddddddddy#1swYxYw#1swY xYw#1swYxYw)Nrrcrrrtest)r)rgrrfr=rrrrrrrrArrhri)r.rdrrmods r#test_nonencodable_module_name_errorz>AbstractPicklingErrorTests.test_nonencodable_module_name_errorsr]EE*).~8L&k!%++5&&s{{D#>**,>@T@T+UV 3.W? +*#WV?> +*s<AC"6&CC /C7C" C CC C""C+ ctd}t|_tD]W}|j |5|j t j5|j||ddddddYd|_tD]W}|j |5|j t j5|j||ddddddYy#1swY{xYw#1swYxYw#1swY,xYw#1swYxYw)NzAbstractPickleTests.spamrc) rfr<r=rgrrrrhrirjs rtest_nested_lookup_errorz3AbstractPicklingErrorTests.test_nested_lookup_errors,-!EE*&&v';';<JJsE*=+* EE*&&v';';<JJsE*=+* =<+*=<+*sG C+C%C+ D9C7 DC( $C++C4 7D <DD c4td}t|_gt_t D]W}|j |5|jtj5|j||ddddddYd|_t D]W}|j |5|jtj5|j||ddddddYy#1swY{xYw#1swYxYw#1swY,xYw#1swYxYw)NAbstractPickleTestsrc) rfr<r=rhamrgrrrrhrirjs rtest_wrong_object_lookup_errorz9AbstractPicklingErrorTests.test_wrong_object_lookup_errors'(!"$EE*&&v';';<JJsE*=+* EE*&&v';';<JJsE*=+* =<+*=<+*sG C6C*0C6$ DDD*C3 /C66C? D DD c(d}tD]]}|j|5|jttj f5|j ||dddddd_|`tD]]}|j|5|jttj f5|j ||dddddd_|j|_ tD]]}|j|5|jttj f5|j ||dddddd_y#1swYxYw#1swYVxYw#1swYxYw#1swYxYw#1swYFxYw#1swYxYw)Ncyr$r%r%rrrWz=AbstractPicklingErrorTests.test_local_lookup_error..f rrc) rgrrrrrhrir=r>r<r.rWrds rtest_local_lookup_errorz2AbstractPicklingErrorTests.test_local_lookup_errors= EE*&&8L8L'MNJJq%(O+* LEE*&&8L8L'MNJJq%(O+* ^^ EE*&&8L8L'MNJJq%(O+*ON+*ON+*ON+*sk&EE E&E/-E#E/>&F$E<7F E EE #E, (E//E9 <F FF c|jtjur|jdt }|j t 5|j|dddy#1swYyxYw)Nr)rrrrREX_Nonerrrir.rs rtest_reduce_ex_Nonez.AbstractPicklingErrorTests.test_reduce_ex_NonesK <<6?? * MMA B J   y ) JJqM* ) )s A((A1ct}|jt5|j|dddy#1swYyxYwr$)R_Nonerrrirs rtest_reduce_Nonez+AbstractPicklingErrorTests.test_reduce_Nones. H   y ) JJqM* ) )s ;Ac8t}tdD]B}tjd5|j t |j ||dddDtdtjdzD]}|j ||}y#1swYxYw)Nrr) BadGetattrr:rinfinite_recursionr RuntimeErrorrirHIGHEST_PROTOCOL)r.r'rdss rtest_bad_getattrz+AbstractPicklingErrorTests.test_bad_getattrs~ L1XE++B/!!, AuE0/1f559:E 1e$A;0/s #BB cttjd}tddD]|}|j|5|j tj 5}|j ||ddd|jtjdddd~y#1swY9xYw#1swYxYw)Nfoobarrrrcz3PickleBuffer can only be pickled with protocol >= 5) rrr:rr PickleErrorrirr{ exception)r.rrdr}s rtest_picklebuffer_errorz2AbstractPicklingErrorTests.test_picklebuffer_errors   +1a[EE*&&v'9'9:bJJr5);  R\\!2IK+*!::+*s# B.B"*-B."B+ 'B..B7 cNtddD]}|j|5tjt dddd}|j tj tf5|j||ddddddy#1swYxYw#1swYxYw)Nrrcrr) rgrrrrrrh BufferErrorri)r.rdrs rtest_non_continuous_bufferz5AbstractPicklingErrorTests.test_non_continuous_buffersqr]EE*((I)>ss)CD&&(<(.buffer_callbacks rrrr)rrrrri)r.rrs rtest_buffer_callback_errorz5AbstractPicklingErrorTests.test_buffer_callback_errorsC    +   { + JJr1oJ >, + +s A  Ac|Gddafd}tD]|tg|ttg|th|tth|tdi|tdtdi|ttdy)Nc eZdZy)ClearerNrmr%rrrr rrcGfddj}|tj} |jy#t$r'}d}j |t |Yd}~yd}~wwxYw)NceZdZfdZy)dAbstractPicklingErrorTests.test_evil_pickler_mutating_collection..check..EvilPicklercFt|trjyr$)rrclear)r.r collections r persistent_idzrAbstractPicklingErrorTests.test_evil_pickler_mutating_collection..check..EvilPickler.persistent_ids!#w/"((*rN)r<r=r>r )r sr EvilPicklerrs rr changed size during iteration)rr6rBdumprassertInr{)r r rerrdr.s` rrzOAbstractPicklingErrorTests.test_evil_pickler_mutating_collection..checksb dll ""**,6G 0 Z( 0: hA// 0sA A8A33A8rrrr)rrg)r.rrds` @r%test_evil_pickler_mutating_collectionz@AbstractPicklingErrorTests.test_evil_pickler_mutating_collections   0E 79+  79gi( ) 79+  79gi( ) 79a. ! 79aA. / giGI. /rctdffd}|tt|dt|dttj f|dt|dtt tj f|ddzt tj f|ddz t tj fy)Nrc tjvsJ|tjvsJtjtj|5tjtj|5t ddD]2}j |5jt|ddd4 ddddddy#1swYPxYw#1swYxYw#1swYyxYwNr) rN_extension_registryrOrrrgrrir)rr rdr3r.s rrz;AbstractPicklingErrorTests.test_bad_ext_code..check7sg999 99w999 99##G$?$?dK##G$>$>cJ&qr]E**3/ 6510/+KLK0/KJLKs<&C5CC * C5CC CC CC'rrlrr)r<rBrrrRrrg)r.rr3s` @rrz,AbstractPicklingErrorTests.test_bad_ext_code2s" 2 fh " dI b<./ a elM6<<@A ag v||45 q$wh 56rN)1r<r=r>rkrmrprsrxr~rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr rrrrrrr\rr%rrr`r`\s+&++++ ++++++4+++++++++/"+/.+ / + /+++6/ / ++ )0 %%K*?08 77rr`ceZdZdZej ZdZejZdZdZ dZ e dfdZ dZ d Zd Ze dfd Zd Zd ZdZe dfdZdZdZdZe dfdZdZdZdZe dfdZdZdZdZe dfdZ dZ!dZ"dZ#dZ$d Z%d!Z&d"Z'd#Z(d$Z)d%Z*d&Z+d'Z,d(Z-d)Z.d*Z/d+Z0d,Z1d-Z2d.Z3d/Z4d0Z5d1Z6d2Z7d3Z8d4Z9d5Z:d6Z;d7Zd9d:d;d<d=Z?d>Z@d?ZAd@ZBdAZCdBZDdCZEdDZFdEZGdFZHdGZIdHZJdIZKdJZLdKZMdLZNdMZOdNZPdOZQdPZRdQZSdRZTdSZUdTZVdUZWdVZXdWZYdXZZdYZ[dZZ\d[Z]d\Z^d]Z_d^Z`d_Zad`ZbdaZcdbZddcZeddZfdeZgdfZhdgZidhZjdiZkdjZldkZmdlZndmZodnZpdoZqerjerjdpdqZudrZvdsZwerjdtZxduZydvZzdwZ{dxZ|dyZ}dzZ~d{Zd|Zd}Zd~ZdZdZej eduddZdZy)rFcyr$r%r2s rsetUpzAbstractPickleTests.setUpPrbrctD]}td}|j||}|j|}|j ||d}|j||}|j|}|j ||t d|}|j||}|j|}|j ||y)Nr)rr%r)rgrxrirrr~r.rdr'rrs r test_misczAbstractPickleTests.test_miscUsEaA 1e$A 1 A   1 %A 1e$A 1 A   1 %1 A 1e$A 1 A   1 %rc|j}tD]7}|j||}|j|}|j ||9yr$)rrgrirr)r.rrdrr0s rtest_roundtrip_equalityz+AbstractPickleTests.test_roundtrip_equalityisB>>E 8U+A**Q-C   # .rcddlm}ddlm}dtfdt ffD]T\}}|j |j|}|}||||j}|j||Vy)Nr)StringIOdisr)out) r6r rr" DATA0_DIS DATA1_DISrirrDr)r.r r"rdrrfileliker0s rdont_test_disassemblyz)AbstractPickleTests.dont_test_disassemblyvsf# !9~9~=OE8 4>>51AzH x ##%C   Xs + >rrcR|}|j|t|tjdzD]o}|j ||}|j |}|j ||||}|jt|d|j|d|qyNrr) rr:rrrirassertIsInstancerlenr) r.raslist minprotocollrdrr'rs r_test_recursive_listz(AbstractPickleTests._test_recursive_lists E  ;(?(?!(CDE 1e$A 1 A  ! !!S )q A   SVQ ' MM!A$ " Erc.|jtyr$)r/rr2s rtest_recursive_listz'AbstractPickleTests.test_recursive_list !!$'rc2|jtdyNr)r-)r/rr2s rtest_recursive_list_subclassz0AbstractPickleTests.test_recursive_list_subclass !!&a!8rc4|jtdy)Nc|jSr$rr&s rz>AbstractPickleTests.test_recursive_list_like..sAGGrr,)r/rr2s rtest_recursive_list_likez,AbstractPickleTests.test_recursive_list_likes !!'2C!Drcb|f}|dj|t|tjdzD]}|j ||}|j |}|j |t|jt|d|j |d|||d}|jt|d|j|d||\}t|tjdzD]}|j ||}|j |}|j ||||}|jt|d|j |dt|jt|dd|j|dd|yrM) rr:rrrirr*tuplerr+r) r.rr,r-rHrdrr'rs r_test_recursive_tuple_and_listz2AbstractPickleTests._test_recursive_tuple_and_listsq UH ! A;(?(?!(CDE 1e$A 1 A  ! !!U +   SVQ '  ! !!A$ ,qt A   SVQ ' MM!A$ "E;(?(?!(CDE 1e$A 1 A  ! !!S )q A   SVQ '  ! !!A$ .   S1Y * MM!A$q'1 %Erc.|jtyr$)r?rr2s rtest_recursive_tuple_and_listz1AbstractPickleTests.test_recursive_tuple_and_list ++D1rc2|jtdyr4)r?rr2s r&test_recursive_tuple_and_list_subclassz:AbstractPickleTests.test_recursive_tuple_and_list_subclass ++F+Brc4|jtdy)Nc|jSr$r9r&s rr:zHAbstractPickleTests.test_recursive_tuple_and_list_like..saggrr;)r?rr2s r"test_recursive_tuple_and_list_likez6AbstractPickleTests.test_recursive_tuple_and_list_likes ++GAbstractPickleTests.test_recursive_dict_like..saggrrL)rNrr2s rtest_recursive_dict_likez,AbstractPickleTests.test_recursive_dict_likes !!)4E!FrcN|f}||dd<t|tjdzD]}|j||}|j |}|j |t |jt|d|j |d|||d}|jt|dg|j|d||\}t|tjdzD]}|j||}|j |}|j ||||}|jt|dg|j |dt |jt|dd|j|dd|yrM) r:rrrirr*r>rr+rr r.rrLr-rHrdrr'rs r_test_recursive_tuple_and_dictz2AbstractPickleTests._test_recursive_tuple_and_dictss UH!Q;(?(?!(CDE 1e$A 1 A  ! !!U +   SVQ '  ! !!A$ ,qt A   T!Wqc * MM!A$ "E;(?(?!(CDE 1e$A 1 A  ! !!S )q A   T!Wqc *  ! !!A$ .   S1Y * MM!A$q'1 %Erc.|jtyr$)r\rr2s rtest_recursive_tuple_and_dictz1AbstractPickleTests.test_recursive_tuple_and_dictrBrc2|jtdyr4)r\rRr2s r&test_recursive_tuple_and_dict_subclassz:AbstractPickleTests.test_recursive_tuple_and_dict_subclassrErc4|jtdy)Nc|jSr$rVr&s rr:zHAbstractPickleTests.test_recursive_tuple_and_dict_like..srrX)r\rr2s r"test_recursive_tuple_and_dict_likez6AbstractPickleTests.test_recursive_tuple_and_dict_likes ++I>O+Prc |}d|t|<t|tjdzD]}|j ||}|j |}|j ||||}|jt|jd|j t|jdt|jt|jdj|yr)) rpr:rrrirr*rr+r<rrrrrKs r_test_recursive_dict_keyz,AbstractPickleTests._test_recursive_dict_keys E!A$;(?(?!(CDE 1e$A 1 A  ! !!S )q A   S]A .  ! !$qvvx."3Q 7 MM$qvvx.+111 5Erc.|jtyr$)rerr2s rtest_recursive_dict_keyz+AbstractPickleTests.test_recursive_dict_keys %%d+rc2|jtdyr4)rerRr2s r test_recursive_dict_subclass_keyz4AbstractPickleTests.test_recursive_dict_subclass_key s %%f!%. s!''rrX)rerr2s rtest_recursive_dict_like_keyz0AbstractPickleTests.test_recursive_dict_like_key s %%i8I%Jrc2|f}d|dt|<t|tjdzD]}|j ||}|j |}|j |t|jt|d|j |d|||d}|jt|d|j t|jdt|jt|jdj||\}t|tjdzD]}|j ||}|j |}|j ||||}|jt|d|j t|jdt|jt|jdjd|yr))rpr:rrrirr*r>rr+rr<rrrr[s r"_test_recursive_tuple_and_dict_keyz6AbstractPickleTests._test_recursive_tuple_and_dict_key sUH!QqT ;(?(?!(CDE 1e$A 1 A  ! !!U +   SVQ '  ! !!A$ ,qt A   SVQ '  ! !$qvvx."3Q 7 MM$qvvx.+111 5E;(?(?!(CDE 1e$A 1 A  ! !!S )q A   SVQ '  ! !$qvvx."3Q 7 MM$qvvx.+11!4a 8Erc.|jtyr$)rnrr2s r!test_recursive_tuple_and_dict_keyz5AbstractPickleTests.test_recursive_tuple_and_dict_key$ s //5rc2|jtdyr4)rnrRr2s r*test_recursive_tuple_and_dict_subclass_keyz>AbstractPickleTests.test_recursive_tuple_and_dict_subclass_key' s //A/Frc4|jtdy)Nc|jSr$rVr&s rr:zLAbstractPickleTests.test_recursive_tuple_and_dict_like_key..+ sAGGrrX)rnrr2s r&test_recursive_tuple_and_dict_like_keyz:AbstractPickleTests.test_recursive_tuple_and_dict_like_key* s // BS/Trcdt}|jt|tdtj dzD]}|j ||}|j|}|j|t|jt|d|jt|dt|jt|dj||\}tdtj dzD]}|j ||}|j|}|j|t|j|jt|jt|jd|jt|jd|y)Nrrr)r8addrpr:rrrirr*rr+rrrrr.rrdrr's rtest_recursive_setz&AbstractPickleTests.test_recursive_set- sB E ad 1f559:E 1e$A 1 A  ! !!S )   SVQ '  ! !$q'!*a 0 MM$q'!***A . ;1f559:E 1e$A 1 A  ! !!Q '  ! !!''3 /   S\1 - MM$qww-*A . ;rc.t}||_tD]{}|j||}|j |}|j |t|j t|t||j|j|}yr$) rlattrrgrirr*rdirr)r.irdrr's rtest_recursive_instz'AbstractPickleTests.test_recursive_instC sq HE 1e$A 1 A  ! !!V ,   SVSV , MM!&&! $ rcg}d|i}t}||_|j|tD]}|j ||}|j |}|j |t|jt|d|jt|dt||jt|djjdg|j|djd|yr)) rlr{rrgrirr*rrr+r|r<r)r.r.rMr}rdrr's rtest_recursive_multiz(AbstractPickleTests.test_recursive_multiN s  qE H  E 1e$A 1 A  ! !!T *   SVQ '   S1YA /   T!A$)).."23aS 9 MM!A$))A, *rcFt}||g|_t|j}tD]}|j ||}|j |}|j |j||jt|jd|j t|jdt|jt|jd||j}tD]}|j ||}|j |}|j |||jt|d|j t|dt|jt|dj|yr)) rlr{rrgrirr*rr+rr)r.factoryorHrdrr's r#_test_recursive_collection_and_instz7AbstractPickleTests._test_recursive_collection_and_inst] s6 H! LE 1e$A 1 A  ! !!&&! ,   S[! ,  ! !$qvv,q/6 : MM$qvv,q/1 -  FFE 1e$A 1 A  ! !!Q '   SVQ '  ! !$q'!*f 5 MM$q'!*//1 - rc.|jtyr$)rrr2s rtest_recursive_list_and_instz0AbstractPickleTests.test_recursive_list_and_instv s 006rc.|jtyr$)rr>r2s rtest_recursive_tuple_and_instz1AbstractPickleTests.test_recursive_tuple_and_insty  007rcB|jtjyr$)rrrr2s rtest_recursive_dict_and_instz0AbstractPickleTests.test_recursive_dict_and_inst| s 00?rc.|jtyr$)rr8r2s rtest_recursive_set_and_instz/AbstractPickleTests.test_recursive_set_and_inst s 005rc.|jtyr$)rrr2s r!test_recursive_frozenset_and_instz5AbstractPickleTests.test_recursive_frozenset_and_inst s 00;rc.|jtyr$)rrr2s r%test_recursive_list_subclass_and_instz9AbstractPickleTests.test_recursive_list_subclass_and_inst s 008rc.|jtyr$)rMyTupler2s r&test_recursive_tuple_subclass_and_instz:AbstractPickleTests.test_recursive_tuple_subclass_and_inst s 009rcB|jtjyr$)rrRrr2s r%test_recursive_dict_subclass_and_instz9AbstractPickleTests.test_recursive_dict_subclass_and_inst s 00Arc.|jtyr$)rMySetr2s r$test_recursive_set_subclass_and_instz8AbstractPickleTests.test_recursive_set_subclass_and_inst rrc.|jtyr$)r MyFrozenSetr2s r*test_recursive_frozenset_subclass_and_instz>AbstractPickleTests.test_recursive_frozenset_subclass_and_inst s 00=rct}||_tD]W}|j||}|j |}|j |t|j |j|Yyr$)rrrgrirr*rrxs rtest_recursive_inst_statez-AbstractPickleTests.test_recursive_inst_state sY KE 1e$A 1 A  ! !!Y / MM!''1 % rctf}||d_tD]}|j||}|j |}|j |t |jt|d|j |dt|j|dj||\}tD]}|j||}|j |}|j |t|j |jt |jt|jd|j|jd|yrM) rrrgrirr*r>rr+r)r.rHrdrr's r#test_recursive_tuple_and_inst_statez7AbstractPickleTests.test_recursive_tuple_and_inst_state s  [N! E 1e$A 1 A  ! !!U +   SVQ '  ! !!A$ 2 MM!A$**a ( E 1e$A 1 A  ! !!Y /  ! !!''5 1   S\1 - MM!''!*a ( rcgd}tD]>}|D]7}|j||}|j|}|j||9@y)N)rZz<\u>u<\ሴ>z< >z<\>u<\𒍅>u<>rgrirr)r.endcasesrduru2s r test_unicodez AbstractPickleTests.test_unicode sL EJJq%(ZZ]##Ar*rcd}tD]7}|j||}|j|}|j||9y)Nu𒍅r)r.rHrdrrYs rtest_unicode_high_planez+AbstractPickleTests.test_unicode_high_plane s> E 1e$AAB   2 &rctD]C}dD]<}|j||f|}|j|\}}|j||>Ey)N)rZxyzzxyz zx\yzux¡yz rgrirr)r.rdrrs1s2s rtest_unicode_memoizationz,AbstractPickleTests.test_unicode_memoization sIE=JJ1vu-AB b"%>rctD]}dD]5}|j||}|j||j|7t dDcgc]}t |gc}D]5}|j||}|j||j|7t dDcgc]}t ||gc}D]5}|j||}|j||j|7ycc}wcc}w)Nrxyzs,xyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyz)rgrirrr:r)r.rdrrr}s r test_byteszAbstractPickleTests.test_bytes sE,JJq%(##Atzz!}5-+0*5*QeQCj*5JJq%(##Atzz!}56.33Z8ZeQFmZ8JJq%(##Atzz!}5969s C>,Dc 0tD]}ttfD]}dD]}|j|||d5||}|j ||f|}|j |\}}|j |||j||f||fddd|j|||d5||||} }|j || f|}|j|| f|j |dddy#1swYuxYw#1swYxYwNrF)rd array_typer independentT)rgrrrrirrr) r.rdrrrrr'rb1b2s rtest_bytes_memoizationz*AbstractPickleTests.test_bytes_memoization s E$m4 0AEjA[`a&qM JJ1vu5#zz!}1 a+++QFQF; bEjA[_`!+A 1 B JJBx7++RHdjjmD a`15baa`sAD )AD D D cZtD]!}dD]}t|}|j||}|j|}|j |||j |||dkr<|j d||jttj||dk(r<|j d||jttj||dk(s|jd||jttj|$y)Nrrs bytearrayrr)rgrwrirrrr assertTruerrGLOBAL STACK_GLOBAL assertNotIn BYTEARRAY8)r.rdrrrbbs rtest_bytearrayz"AbstractPickleTests.test_bytearray sYE,aLJJq%(ZZ]  Q'##Ar*A:MM,2OO$4V]]A$FGaZMM,2OO$4V5H5H!$LMaZ$$\15OO$4V5F5F$JK-rc tD]A}ttfD].}dD]%}|j|||d5||}|j ||f|}|j |\}}|j ||ddd|j|||d5||||} }|j|| |j || f|}|j |\} } |j| | |j|| |j|| |j| | |j| | ddd(1Dy#1swYxYw#1swYFxYwr) rgrwrrrirrrr) r.rdrrrrrrb1ab2ab1bb2bs rtest_bytearray_memoizationz.AbstractPickleTests.test_bytearray_memoization sKYE(*;< 0AEjA[`a&qM JJ1vu5!%AB b"- b EjA[_`#-a=*Q-S((c2 JJSz59#'::a=S((c2((c2++C5((c2++C5a`1=ba a`sAE B%E E E# ctD]\}tj}|s| |fD]7}|j||}|j |}|j ||9|dz }|rG^yrJ)rgrmaxsizerirr)r.rdr!rrn2s r test_intszAbstractPickleTests.test_ints seE A"#QH 8U3AAB''"5!(F rctD]]}dD]V}d|z}|dz ||dzfD]A}|| fD]7}|j||}|j|}|j||9CX_t dd}||dzz }|| fD]V}|j|d}|j|}|j t |t|j||Xy)N)riiirdeadbeeffeedfacei@Br)rgrirrintrrr) r.rdnbitsnbasenposr!rr0rs r test_longzAbstractPickleTests.test_long$ sE9U !!GUE!G3D!D5[!%Au!5"jj0++As3)4:&+ '!!A 1a A**Q-C MM$s)S )   Q $rcgd}||Dcgc]}| c}z}tD]>}|D]7}|j||}|j|}|j||9@ycc}w)N) ggg+phgZ*)g_D 9g?g?gQ @gm"wp@gWTDgꌠ9Y>)Fr)r. test_valuesr'rdrrrr0s r test_floatzAbstractPickleTests.test_float; slA !$=AaR$== E$E51jj(##E3/%%>s A!LC_ALLde_DEfr_FRrZcN|j|jdddddy)Ng333333?rrsF1.)rrir2s rtest_float_formatz%AbstractPickleTests.test_float_formatE s& C+Aa0&9rctD]E}t}|j||}|j|}|j |t Gyr$)rgAAArirrREDUCE_Ar.rdinstr`rGs r test_reducezAbstractPickleTests.test_reduceJ sAE5DZZe,FZZ'F   VX . rctD]C}tdd}|j||}|j|}|j ||Ey)Nrr)rgr~rirrrs rtest_getinitargsz$AbstractPickleTests.test_getinitargsQ sEE1a=DZZe,FZZ'F   f - rct}tD]K}|j||}|j|}|j |j |j Myr$)rrgrirrrr.rrdrrs rtest_metaclassz"AbstractPickleTests.test_metaclassX sH OE 1e$A 1 A   Q[[!++ 6rc>tdtf}tjttj t D][}|j||}|j|}|j|||jt|t|]y)Nmy_dynamic_class) rrBrNrrrurgrirrrrrs rtest_dynamic_classz&AbstractPickleTests.test_dynamic_class_ st !3fY ?)+=+H+HIE 1e$A 1 A   Q " MM$q'47 + rcddl}ddl}|j}tD]}|j ||}|j |}|j |||j|j}|j ||}|j |}|j ||t|ds|j|j}|j ||}|j |}|j ||y)Nrstatvfs) timer localtimergrirrstatcurdirrr)r.rrrHrdrrs rtest_structseqz"AbstractPickleTests.test_structseqh s NN E 1e$A 1 A   1 % "A 1e$A 1 A   1 %r9%BJJryy)JJq%(JJqM##Aq)rctD]7}|jd|}|j|}|jd|9yN.rr.rdrrs r test_ellipsisz!AbstractPickleTests.test_ellipsis{ s7E 3&A 1 A MM#q !rctD]?}|jt|}|j|}|j t|Ayr$)rgrirrrrs rtest_notimplementedz'AbstractPickleTests.test_notimplemented s7E >51A 1 A MM.! ,rcddtg}|D]T}tD]I}|jt||}|j |}|j t||KVyr)rrgrirrr)r. singletons singletonrdrrs rtest_singleton_typesz(AbstractPickleTests.test_singleton_types sUC0 #I"JJtI6JJqM d9oq1#$rc tjjD]b}t|tst |t r%tD]5}|j||}|j|j||7dyr$) rrZvaluesrr issubclassr rgrirrr.rHrdrs rtest_builtin_typesz&AbstractPickleTests.test_builtin_types s^""))+A!T":a+G&E 1e,AMM$**Q-3',rctjjD]}t|tst |t s%tD]}|j||}|j|}|dkr/t |tr|tur|j|tZ|dkr't |tr|j|t|j||yr)rrZrrrrr rgrirOSErrorBlockingIOErrorr ImportError)r.rHrdrrs rtest_builtin_exceptionsz+AbstractPickleTests.test_builtin_exceptions s""))+A!T"z!]'C&E 1e,A 1 AzjG&</AY a1! 1k(B a5 a+',rctjjD][}t|tj st D]5}|j||}|j|j||7]yr$) rrZrrrBuiltinFunctionTypergrirrrs rtest_builtin_functionsz*AbstractPickleTests.test_builtin_functions s[""))+A!U667&E 1e,AMM$**Q-3',rcZtD]}|jd|}|dk\r>tjt |gz}|j |j |X|jttj|dtddz}tjtjz}tjt |gz|z} |j||jdy#t$r%}|jdt|Yd}~yd}~wwxYw)Nrrrrz0expected bad protocol number to raise ValueErrorzunsupported pickle protocol)rgrirPROTOrr startswithrr"NONErTrfailr.rr{)r.rdr proto_headeroob build_none badpickleerrs r test_protozAbstractPickleTests.test_proto sEjju-Gz%||eUGn<  2 2< @A  fllG!DaH ma[[6;;. LL5#</*<  J JJy ! IIH I C MM7S B B CsC<< D*D%%D*cd}tD]d}|j||}|j|}|j|||j t t j||dk\fy)NUJ^w,3| r)rgrirrrrrLONG1r.r'rdrrs r test_long1zAbstractPickleTests.test_long1 s^ )E 1e$A 1 A   1 %   -fllA> K rcddz}tD]d}|j||}|j|}|j|||j t t j||dk\fy)Nrrr)rgrirrrrrLONG4rs r test_long4zAbstractPickleTests.test_long4 sc )e 4E 1e$A 1 A   1 %   -fllA> K rcidtjdtjdtjdtjdtjdtjdtjdtjd tjd tjd tjd tjd tjdtj dtjdtjdtjtjtj tjd}d}d}d}d}d}t D]x}|||||fD]l}|j||} |j| } |j|| |t|dt|f} |jt| | nzy)N)rr)rr)rr)rr)rr)rr)rrr)rrrr)rrrr)rr)rr)rr)rr)rr))rr)rrrrr%)rrrr)rrrrr)rTUPLE EMPTY_TUPLETUPLE1TUPLE2TUPLE3rgrirrminr+rr) r.expected_opcoderrrrMrrdr'rrrs rtest_short_tuplesz%AbstractPickleTests.test_short_tuples s66<<!6<<!6<<"6<<"6<<  "6#5#5 "6<<"6<<"6<<"6<<"6#5#5"6=="6=="6== "6< #rc dtjtjtjtjtjtjtjtjtjtjtjtjd }t D]p}dD]i}|j ||}|j|}|j||u||||f|t|d|f}|jt||kry)N) )rN)rN)rN)rN)rT)rT)rT)rT)rF)rF)rF)rF)NFTr) rrINTNEWTRUENEWFALSErgrirrr(r)r.r)rdr'rrrs rtest_singletonsz#AbstractPickleTests.test_singletons s&,kk&,kk&,kk&,kk&,jj&,jj&,nn&,nn'-zz'-zz'-'-E&JJq%(JJqMQ1a(89*3ua=!+;< 01 => 'rctgd}d|_d|_tD]7}|j ||}|j |}|j ||9yNr"rhello)rrrrgrirrrs rtest_newobj_tuplez%AbstractPickleTests.test_newobj_tuple sQ I E 1e$A 1 A   1 %rctgd}d|_d|_tD]7}|j ||}|j |}|j ||9yr1)rrrrgrirrrs rtest_newobj_listz$AbstractPickleTests.test_newobj_list sQ 9 E 1e$A 1 A   1 %rc tD]}tD]}|j}||j}d|_|j ||}|j |}|||||t|f}|j|||j||||||j|j|j|yNr) rg myclasses__base__samplerrirrrrrZ)r.rdrXBr'rrdetails rtest_newobj_genericz'AbstractPickleTests.test_newobj_generic" sEJJahhKJJq%(JJqMAq!T!W5##Aq)  1qtV4  QZZ@rc .tdd}ttfD]}|j|tD]}|D]}|j }||j }d|_tj|}|j||}|j|} |jt| t|||||| t| f} |j|||| | |j|j| j| yr7)r8MyIntrrPrgr9r:rweakrefproxyrirrrrZ) r.classesrrdrXr;r'rrrr<s rtest_newobj_proxiesz'AbstractPickleTests.test_newobj_proxies/ sA,!A NN1 "EJJahhKMM!$JJq%(JJqM  a$q'2Aq!T!W5  1qtV4  QZZ@rc0tD]}td}d|_|j||}|j |}|j t |t|jt|d|j|jdyr) rg MyIntWithNew2rrirrrrrrs rtest_newobj_overridden_newz.AbstractPickleTests.test_newobj_overridden_newB stEa AAE 1e$A 1 A MM$q'= 1   SVQ '   QUUB 'rct}tjt}|j|d} da|jtt j f|j||ay#|awxYw)Nrr) SimpleNewObjrrirrrrfr)r.saverrs rtest_newobj_not_classz)AbstractPickleTests.test_newobj_not_classM s_   . JJq!  L   y&*@*@A4::q QL4Ls 3A))A-ct|} tjtd|t gd}d|_d|_|j|d}|jtjd||jd||jt|||j|}|j|||j|d}|jtjd||jd||jt||d t!||j|}|j|||j#y#|j#wxYw) Nrr"rr2rr@sMyListrT)rKrNrTr<rrrrirr# assertFalserrrrrreprrV)r.extcodeopcoderr'rrrs rproduce_global_extz&AbstractPickleTests.produce_global_ext] s. 7 #   ! !(Hg >y!AAEAEAq!B MM(//'2B 7 MM)R (   -fb9 : 2A   1 %Aq!B   X__W5r :   Y +   -fb94b J 2A   1 % IIKAIIKs EE--E?c|jdtj|jdtjy)Nrr)rPrEXT1r2s rtest_global_ext1z$AbstractPickleTests.test_global_ext1y s*  FKK8  FKK8rc|jdtj|jdtj|jdtjy)Nrriͫ)rPrEXT2r2s rtest_global_ext2z$AbstractPickleTests.test_global_ext2} >  FKK8  FKK8  FKK8rc|jdtj|jdtj|jdtjy)Nriͫ)rPrEXT4r2s rtest_global_ext4z$AbstractPickleTests.test_global_ext4 rWrcFd}tt|}tD]f}|j||}|j |}|j ||t tj|}|j||dkDhd}tt|}tD]}}|j||}|j |}|j ||t tj|}|dk(r|j|dj|j|dk\yNrr r) rr:rgrirrr"rAPPENDSrr)r.r!r'rdrr num_appendss rtest_list_chunkingz&AbstractPickleTests.test_list_chunking s  qNE 1e$A 1 A   1 %&v~~q9K   [%!) 4   qNE 1e$A 1 A   1 %&v~~q9Kz  a0 q 01rcd}tjt|}tD]|}|j ||}|j |t |j|}|j||ttj|}|j||dkD~d}tjt|}tD]}}|j ||}|j|}|j||ttj|}|dk(r|j|dj|j|dk\yr])rrr:rgrir*rrrr"rSETITEMSrr)r.r!r'rdrr num_setitemss rtest_dict_chunkingz&AbstractPickleTests.test_dict_chunking s   MM%( #E 1e$A  ! !![ 1 1 A   1 %';L   \519 5   MM%( #E 1e$A 1 A   1 %';Lz  q1  12rcld}tt|}tD]{}|j||}|j |}|j ||t tj|}|dkr|j|dj|j|d}d}tt|}tD]{}|j||}|j |}|j ||t tj|}|dkr|j|dj|j|d}y)Nrrrrr^r) r8r:rgrirrr"rADDITEMSrassertGreaterEqual)r.r!r'rdrr num_additemss rtest_set_chunkingz%AbstractPickleTests.test_set_chunking s  aME 1e$A 1 A   1 %';Lqy  q1  q1  aME 1e$A 1 A   1 %';Lqy  q1'' a8rctjtd}d|_tD]}|j |5|j ||}|dkr|j d|n|j d||jttj|d|k|jttj||j|}|j||dddy#1swYxYw)Nrcr I64206Mr)rHrrrgrrirrrrNEWOBJrL NEWOBJ_EXrrrs rtest_simple_newobjz&AbstractPickleTests.test_simple_newobj s  v 6EE*JJq%(19MM+q1MM,2  !1&--!C!"e-  !1&2B2BA!FGJJqM##Aq)+***s B6C>>D cztjtd}d|_tD]}|j |5|j ||}|dkr|j d|nB|dkr|j d|n*|dkr|j d |n|j d ||jttj|d|k|jttj||j|}|j||dddy#1swYxYw Nrlrmrcrrnrrors XFACEsFACE) ComplexNewObjrrrgrrirrrrrprLrqrrrs rtest_complex_newobjz'AbstractPickleTests.test_complex_newobj s  ! !- 8YEE*JJq%(19MM+q1QYMM,2QYMM":A>MM/15  !1&--!C!"e-  !1&2B2BA!FGJJqM##Aq)+*** C&D00D: cztjtd}d|_tD]}|j |5|j ||}|dkr|j d|nB|dkr|j d|n*|dkr|j d |n|j d ||jttj||jttj|d|k|j|}|j||dddy#1swYxYwrt)ComplexNewObjExrrrgrrirrLrrrprrqrrrs rtest_complex_newobj_exz*AbstractPickleTests.test_complex_newobj_ex s  # #OV <YEE*JJq%(19MM+q1QYMM,2QYMM":A>MM/15  !1&--!CD  !1&2B2BA!F!"e-JJqM##Aq)+***rwctgd}d|_d|_|j|d}|j |}|j ||y)Nr"rr2r)SlotListrrrirr)r.r'rrs rtest_newobj_list_slotsz*AbstractPickleTests.test_newobj_list_slots sG Y  JJq!  JJqM Aq!rctD]}t}|j|jd|j ||}|j|jd|j |}|j|jdyrM)rgREX_oner_reduce_calledrirrs r'test_reduce_overrides_default_reduce_exz;AbstractPickleTests.test_reduce_overrides_default_reduce_ex srE A   Q--q 1 1e$A   Q--q 1 1 A   Q--q 1 rctD]}t}|j|jd|j ||}|j|j||j |}|j|jdyr$)rgREX_twor_protorirrs rtest_reduce_ex_calledz)AbstractPickleTests.test_reduce_ex_called slE A   QXXt , 1e$A   QXXu - 1 A   QXXt , rctD]}t}|j|jd|j ||}|j|j||j |}|j|jdyr$)rg REX_threerrrirrs rtest_reduce_ex_overrides_reducez3AbstractPickleTests.test_reduce_ex_overrides_reduce slE A   QXXt , 1e$A   QXXu - 1 A   QXXt , rctD]}t}|j|jd|j ||}|j|j||j |}|j|j|yr$)rgREX_fourrrrirrs rtest_reduce_ex_calls_basez-AbstractPickleTests.test_reduce_ex_calls_base( slE A   QXXt , 1e$A   QXXu - 1 A   QXXu - rctD]}t}|j|jd|j ||}|j|jd|j |}|j|jdyrM)rgREX_fiverrrirrs rtest_reduce_calls_basez*AbstractPickleTests.test_reduce_calls_base1 srE A   Q--q 1 1e$A   Q--q 1 1 A   Q--q 1 rct}|j|}|jttf5|j |dddy#1swYyxYwr$)C_None_setstaterirrrr)r.rrs rtest_pickle_setstate_Nonez-AbstractPickleTests.test_pickle_setstate_None: sA   JJqM    : ; JJqM< ; ;s AAcZdtdD}td|D}t|t|t|g}tD]R}|j|5|j ||}|j |}|j ||dddTy#1swY_xYw)Nc38K|]}dt|zyw)aaaNrz).0r}s r z>AbstractPickleTests.test_many_puts_and_gets..C s3 1A srpc3(K|] }|gdf yw))rrrNr%)rks rrz>AbstractPickleTests.test_many_puts_and_gets..D s7$Q1i.$src)r:rrgrrirr)r.r< large_dictrrdr`rGs rtest_many_puts_and_getsz+AbstractPickleTests.test_many_puts_and_gets@ s4c 37$77 Jj!14 3CDEE*C/F+##C0+***s 6B!!B* c0tD]}t}d|_d|_|j ||}|j |}t |j}t |j}t||D]\}}|j||y)Nrr2) rgrXrrrirsortedrZzipr) r.rdr'rrx_keysy_keysx_keyy_keys rtest_attribute_name_interningz1AbstractPickleTests.test_attribute_name_interningM sEAAEAE 1e$A 1 AAJJ'FAJJ'F #FF 3 u eU+!4rc|jtdd}|j|t|jt dgd}|j|t y)Nrrr)rir:rr9r8 DATA_SET2r_s rtest_pickle_to_2xz%AbstractPickleTests.test_pickle_to_2x[ sN E!Ha( -CHa( +rctD]l}dtddztf}|j||}|j |}|j t|t||j ||ny)Nrsxyix)rgr(r+rirr)r.rdrr`rGs rtest_large_picklesz&AbstractPickleTests.test_large_picklese sgEsEY/5DZZe,FZZ'F   S[#d) 4   VT * rc tD]}|j|5tdDcgc]}|jd|z|}}t t t |}|jt|||dk\r0|D]+}|jttj|-dddycc}w#1swYxYw)NrcFr) rgrr:rirmapr+rrrLrrLONG)r.rdr!picklessizesrs rtest_int_pickling_efficiencyz0AbstractPickleTests.test_int_pickling_efficiencyo sEE*BINBYTES BINBYTES8 BINUNICODEr BINUNICODE8FRAMEr  ) rrassertLessEqualassertNotEqualrr+FRAME_SIZE_TARGET assertLessFRAME_SIZE_MINrhr)r.r frame_endframeless_startframeless_opcodesrraposs rcheck_frame_opcodesz'AbstractPickleTests.check_frame_opcodes su'+* O:'..w7LBS$$$S)4)# $I$##BGGW577//((S43I3IJGGw&WW 11X 6 66&2o(=(,(;(;=*.$,G1C&)Oww'!''T-@-@A!GcM 98<'l    Y ,  ( OOC/143F3F G)rcpucttd}tdtjdzD]}|j |5|j ||}|j |}|j||t|ttj|z }|j||jdz |j||jdz|j|dddy#1swYxYw)Nirrrcr)rr:rrrrirrr+r"r assertGreaterrrr)r.rrdrrbytes_per_frames rtest_framing_many_objectsz-AbstractPickleTests.test_framing_many_objects s5< 1f559:EE***S%0 JJw/   i0#&w<#/ g#F$G""?#'#9#9A#=?$$_%)%;%;a%?A((1+*;**s B+C==D c \d}tdDcgc]}|g}}d|zg|d|zd|z}tdtjdzD]B}dD]9}|j|| 5|s|j ||}net |d s dddCt j}|j|| } || _ | j||j}|j|} |j|D cgc] } t| c} | D cgc] } t| c} |j|| ttj |} |j| d|j#|ddd<Eycc}wcc} wcc} w#1swYZxYw) Nirxyzrr)FT)rdfastrr)r:rrrrirr6rBrrrrDrrr+r"rr) r.Nr} small_itemsrrdrrbufrrr'n_framess rtest_framing_large_objectsz.AbstractPickleTests.test_framing_large_objects s $)"I.IqsI .ax9+9tax9q91f559:E%\\D\9#'**S%"8 'tY7$:9!jjl"&,,sU,"C'+  S)"%,,. $ 7 3I$$c%:cc!fc%:6?%@ic!fi%@B$$S)4+FLL'BH$$Xq1,,W51:9&;/(&;%@#:9s7 F(#F!A/F!FF!F-AF! F!!F+ c tjdkrydd}|j}d}ttfD]}t |Dcic]}|||g|z}}t dtjdzD]}|j ||}||} |jttj| d|j||j| ||d} |jttj| ttj||j||j| ycc}w)Nrc g}d}tj|D]'\}}}|jdk(s|j|)t }d}t |D]\} }|r || r||||z }||z}|||dz }|S)z+Remove frame opcodes from the given pickle.rrrN)rrrrrw enumerate) r keep_frame frame_startsframe_opcode_sizerO_r newpicklelast_frame_endr}s r remove_framesz?AbstractPickleTests.test_optional_frames..remove_frames sL ! "-"4"4W"=3;;') '',#>" IN#L13*Q-W^C88 !$'8!8 2 1 1I rrrc |dzSrr%)r}s rr:z:AbstractPickleTests.test_optional_frames.. sa!err$) rrrrrwr:rirr"rrr) r.r frame_size num_frames bytes_typer}rrdrframeless_picklesome_frames_pickles rtest_optional_framesz(AbstractPickleTests.test_optional_frames s&  " "Q &  &++  !),J**S%0#0#9   fll.ChunkAccumulatorz2Accumulate pickler output in a list of raw chunks.cg|_yr$)chunksr2s rrHzbAbstractPickleTests.test_framed_write_sizes_with_delayed_writer..ChunkAccumulator.__init__% s   rc:|jj|yr$)rr)r.chunks rrGz_AbstractPickleTests.test_framed_write_sizes_with_delayed_writer..ChunkAccumulator.write' s ""5)rc8dj|jS)Nr)rrr2s rconcatenate_chunkszlAbstractPickleTests.test_framed_write_sizes_with_delayed_writer..ChunkAccumulator.concatenate_chunks) sxx ,,rN)r<r=r>rIrHrGrr%rrChunkAccumulatorr# s D ! * -rrrrg@r!rr}0123456789abcdefrrrr)r:rrrr{r#rrrrrrrrr+rr gc_collectrhrr)r.rrdr}objectswriterr reconstructedrr chunk_sizesr large_sizes medium_sizes small_sizes chunk_sizes r+test_framed_write_sizes_with_delayed_writerz?AbstractPickleTests.test_framed_write_sizes_with_delayed_writer! s - -1f559:E %c#h1 /1A g.Bc!f F / 1 NN- 22b81<> ?&'F LL ' , ,W 5 //1G JJw/M   ]G 4   s6==11 5      V668' BG q(T-C-CCaGH  # #C $6 A  V]]!3Q\A5E F+1==9=a3q6=K9&1;k4#9#99kK;'2>{!!&1rXr%rrr;rg s rr;N)r<r=r>r;r%rrArf s rr N)r<r=r>r r%rrrre s   rrr)rdr) rr:rrr r;rXrrrir)r.rdrrs rtest_nested_namesz%AbstractPickleTests.test_nested_namesc s   622Q67E&((**fhhjjll;\\3\7 $ 4::c5+A BIMM#y187<877s 4CC cGddatjtjt_dt_t tjdzD]X}|j|5|j|jt|}|j|tdddZt`y#1swYkxYw)Nc eZdZy RecursiveNrmr%rrrrr rrrzRecursive.mod.Recursiverrc) rrrr=rr>r:rrrrrirr.rdrs rtest_recursive_nested_namesz/AbstractPickleTests.test_recursive_nested_namesp s   I$8$89 !: 622Q67EE* JJtzz)U'CD  i3+*8 M+*s 1>C c^Gddatt_dt_ttj dzD]X}|j |5|j|jt|}|j|tdddZt`y#1swYkxYw)Nc eZdZyrrmr%rrrr~ rrrz Recursive.refrrc) rrefr>r:rrrrrirrs rtest_recursive_nested_names2z0AbstractPickleTests.test_recursive_nested_names2| s  ! !0 622Q67EE* JJtzz)U'CD  i3+*8 M+*s rIrr#rr%r'r%rrrr! s.%%##!rrN) r<r=r>rrrrrrr%rrrr s5      " ! !rrrrdmethodrrrddescr)rrrrrr#r%r'r:rrrrrirrZrr) r. py_methodspy_unbound_methodsrdr)rrr descriptorsr+s rtest_py_methodsz#AbstractPickleTests.test_py_methods s ! !2     O $ $  ( (  & &  " & &   # #] 3  ! ! % %}';'; < 622Q67E$\\f\= $ 4::fe+D EI$$VXy{;>=% 2 e\\f\= $ 4::fe+D EI$$VC[)C.A>= 2 8  " "8 ,  " "6 * 622Q67E$\\U\;%%iUEJ<;%8>= >=<;s%>I.AI#I!I I !I* cGddtadjdftjdfgdjdft jgdffdd hj d ftj dd hd fftjd ftjd ftgd jd ftjtgd d fftjdjdftjjtjddfff }ttj dzD]a}|D]Z\}}|j#||5|j%|j'||}|j)||||ddd\ctj*dtj*df}ttj dzD]G}|D]@}|j#||5|j-t.|j&||dddBIy#1swYxYw#1swY[xYw)Nc"eZdZGddeZy)Subclassc eZdZy)Subclass.NestedNrmr%rrrr4 rrrN)r<r=r>r{rr%rrr2r2 s  rr2abcd)r)r5rr"r%rr)r))rr)rr)sabcr)rrrsweet)rrr( maketransrr*)r>r2indexr{__len__r __contains__r8rrrwr7rrr:rrrrrirrZrr)r. c_methodsrdr)r/rr.r+s rtest_c_methodsz"AbstractPickleTests.test_c_methods s u  \\6 " YY &    # \\I< (V $ '   A{ + ]]0 1  "2 3 g  $ $d + ^^hw/3 4 __W % + +V 4 __ " "X__W%=s$C D+ .622Q67E ) \\f\= $ 4::fe+D EI$$VT]It4DE>=!*8   { + MM* % 622Q67E$\\U\;%%iUEJ<;%8>=<;s:H,<#H8,H5 8I c tddddfttdddftjddft j d d ftd d ftjd d ftjddftjddfg}|D]\}}}tdD]}|jt||5|j||}|jd|d|j!||j#t|j%|t|dddy#1swYxYw)Nrrrxrange123 itertoolsimaprr exceptionsr?rIterableUserDictUserListr defaultdictr)rrdrr)r:rrrrrrr?rrrDrErrrirr#rr)r.testsvalrrrdrs rtest_compat_picklez&AbstractPickleTests.test_compat_pickle s 1a[- 2 e_k6 2   }h 7 [[)Y / [, 4  ! ! #Z1C D  ! ! #Z <  $ $ & } E  $NCdq\\tCy\>"jje4GMMT#:"B"B"DgNMM$tzz'':";T#YG?>"$>>s A,EE c#.Kd}t|t|tot|}tj |d}dtj fD]7}t|dd|t|ddd | t|ddd | 9yyw) Nabcdefghlittle) byteorderrr;)r)rrr)rrr )rrrrr)rrrrr from_bytesrr)r. bytestringrrrrs rbuffer_like_objectsz'AbstractPickleTests.buffer_like_objectss J'' ++  "$ENN:NBE[445&uS-244'uS/5UDD'uS-3V-2446 #sBBc&|jD]}}tdtjdzD]Y}|j ||}|j r|dk\r|j d||jttj|d|dk\r|jttj||jrdnd|jttj||jrdndd}|j |||}|j|||j|}|j|||jt!|t!||j||\y)NrrrrJcyNTr%rs rrzAAbstractPickleTests.test_in_band_buffers..buffer_callback(s#rr)rOr:rrrirrrr" NEXT_BUFFERSHORT_BINBYTESrrrrrr)r.rrdrrdata2rs rtest_in_band_buffersz(AbstractPickleTests.test_in_band_bufferssF++-Cq&"9"9A"=>zz#u-## MM+t4  f.@.@$!GKA:$$\&2G2G%N*-,,QA?$$\&2C2CT%J*-,,QA?$ JJsE7F'HE$$UD1jj&  c* d3ic3  c*/?.rc|jD]}tddD]>}|jt5|j ||gj ddd@tdt jdzD]#}gfd}|j |||}|jd||jtt j|d|jtt j|d|jtt j|d|jtt j||jrdnd|j r|jt#dd|jt j$5|j'|ddd|j'|}|j(r|j+||n6|j+t-|t-||j|||j'|t/}|j(r|j+|||j+t-|t-||j||&y#1swYxYw#1swYxYw)NrrrrcBj|jSr$)rr)rrs rr:z6AbstractPickleTests.test_oob_buffers..AsW^^BFFH-ErrJr)rOr:rr.rirrrrrr"rUrrTREADONLY_BUFFERrrrrfrrrrr)r.rrdrrrrs @rtest_oob_buffersz$AbstractPickleTests.test_oob_buffers7s*++-Cq!&&z2JJsE/1yy:32% q&"9"9A"=>"Ezz#u2A"C  d3  f.C.CT!JAN  f.?.?!FJ  f.@.@$!GK  f.D.Dd!K&)ll;##$$U71:%6 D&&v'='=>JJt$?jjwj7,,MM#s+MM$s)T#Y7$$S#.jjtG}j=,,MM#s+MM$s)T#Y7$$S#.A? .32$?>sJ+0J8+J5 8K cTtd}tdtjdzD]}}g}|j}|j |||}t t|}|j||}|jt|t||j||yNrrrrr) rr:rrrrirrwrrrr)r.rrdrrrrs r%test_oob_buffers_writable_to_readonlyz9AbstractPickleTests.test_oob_buffers_writable_to_readonlyasI&1f559:EG%nnO::c5/:JD)W-G**T7*3C MM$s)T#Y /   S# &;rctjd}tdtjdzD]}|j ||gj }|j t5|j|tddd|j tj5|j|gdddy#1swYGxYw#1swYxYwr]) rrr:rrirrrrrBrf)r.rrdrs rtest_buffers_errorz&AbstractPickleTests.test_buffers_errorns   +1f559:E::b%:CD""9- 4 2.""6#9#9: 4 ,;: ;.-;:s)C ,C C C ctdtjdzD])}|jd|d}|j |d}+y)Nrrrr)r:rrrir)r.rd data_pickledrs r+test_inband_accept_default_buffers_argumentz?AbstractPickleTests.test_inband_accept_default_buffers_argumentysD1f559:E::a:EL::lD:9D;rNzTest needs Numpycfdfdfd}tjd}||||dddtjdjd}||||j||dddy)Nctjj||j|jj |jj yr$)nptesting assert_equalrctypesrr'rr.s r check_no_copyz=AbstractPickleTests.test_buffers_numpy..check_no_copys7 JJ # #Aq )   QXX]]AHHMM :rctjj||j|jj |jj yr$)rfrgrhrrirrjs r check_copyz:AbstractPickleTests.test_buffers_numpy..check_copys7 JJ # #Aq )    qxx}} =rcttdtjdzD].}j||}j |}||0tdtjdzD]3}d}j|||}j |}||5tdtjdzD]v}g}|j }j|||}j ||}|j js|j jr ||n||xy)NrrrcyrRr%)rs rr:zMAbstractPickleTests.test_buffers_numpy..check_array..sDrrr) r:rrrirrrrr) arrrdrrrrrmrkr.s r check_arrayz;AbstractPickleTests.test_buffers_numpy..check_arraysq&"9"9A"=>zz#u-jj&3$?q&"9"9A"=>"0zz#uozNjj&3$ ? q&"9"9A"=>")..zz#uozNjjwj799))SYY-C-C!#s+sC(?rrr r!)rfarangereshapeT)r.rqrprmrks` @@rtest_buffers_numpyz&AbstractPickleTests.test_buffers_numpy~su ; > ).iilCC!Hiim##F+CCEEC!Hrc  ddlm G fddatD]y}t dD]i}dt dDcic]}ttc}D]}||_|_d |j|}|j|k{ycc}w#t$r'}d}|j|t|Yd}~d}~wwxYw) Nr) getrandbitsc*eZdZfdZdZfdZy)BadcSr$r%)r.r\ENABLEDs rr]z Bad.__eq__srcyr7r%r2s rrz Bad.__hash__srcJddk(rjtdfS)Nrrr%)r rz)r.r rxs rruzBad.__reduce__s%q>Q&$$&Ry rN)r<r=r>r]rru)r|r rxsrrzrzs   !rrzrFTr ) randomrxrzrgr:r6r rirrrr{) r.rdrr6rrrr|r rxs @@@rtest_evil_class_mutating_dictz1AbstractPickleTests.test_evil_class_mutating_dicts& ! !E2Y49"I>IqceSUlI> %C!CG%/CN&4::j%8DJJt$?$4>HMM(CF334sB3#B  C)C  C)r<r=r> optimizedrrrrrrr'r(r/r1r5r<r?rArDrHrNrPrSrYr\r^r`rcrergrirlrnrprrruryr~rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr rrrr*r/r3r5r=rCrFrJrPrSrVr[rarerjrrrvrzr}rrrrrrrrrrrrrrrrrrskip_if_pgo_taskrequires_resourcerrrrr rrr/r<rHrOrWr[r^r`rcunittestskipIfrfrvrr%rrrrIsVI%//I +99N&(/ ,08Q #(9E:Bq&42CO08Q #(9G:Bq&42CQ4< 6,=K>FST986GU/, % +.278@6<9:B8>&), +'& 6E&L&64%.0h"5:6:/.7,*&" - 24 ,4J&LL%?N?2&& AA& (  899 9 2,3.92* *(*("2--.2 1 ,,+ K) MNN!-H^ Wu% 2& 26@(FT ?.?.B 2  8Kt*KXH,4(+>(/T ' -: X__R4Z!34*5*X4rrceZdZeedddZeedddZeedddZeeddd Z eeddd Z y ) BigmemPickleTestsg @F)sizememusedry_runc dd|zz} tD]Z}|dkr |j|5|jttf5|j ||dddddd\ d}y#1swYxYw#1swYvxYw#d}wxYw)Nrrrrcr)rgrrr.rgri)r.rrrds rtest_huge_long_32bz$BigmemPickleTests.test_huge_long_32bsQX "19\\\.**J +FG 4% 8H/.#DHG/.Ds:!B A=A1A=# B 1A: 6A==B B B g@c d|dzz} tD]}|dkr |j|5 |j||}tjt j dt|z}|j|}|j|||t|z |d} ddd d}y#d}wxYw#1swYxYw#d}wxYw)NabcdrrrcrrP) rgrrirrrRrSr+r8rr.rrrdrheader data_starts rtest_huge_bytes_32bz%BigmemPickleTests.test_huge_bytes_32bs$!)$ "19\\\. '"&**TE*"B"(//"(++dCI">#?%,]]4%8 (("#Js6{$::FH#'/.#D#'/.Ds:!CB:A5B3"B:% C3B77B::C ?CC c @d|dzz} tD]}|dkr |j|5|dk(rA|jttf5|j ||ddd dddb |j ||}t jtjdt|z}|j|}|j|||t|z |d} ddd d}y#1swYxYw#d}wxYw#1swYxYw#d}wxYw)Nsacbdrrrcr#?%,]]4%8 (("#Js6{$::FH#'!/.#*DLK#'!/.$DsY!D!D  C9 D ) D3A5D(D + D9D >D D  D  D DDrc *d|dzz} tD]}|dk(r |j|5 |j||}tjt j dt|z}|jd}|j|||t|z ||j|jdtdz|jdz t|d} ddd d}y#d}wxYw#1swYxYw#d}wxYw)Nr5rrrcrrPr) rgrrirrrRrSr+r8rrindexrs rtest_huge_str_32bz#BigmemPickleTests.test_huge_str_32bs# "A:\\\. '"&**TE*"B"("3"3"(++dCI">#?%,]]7%; (("#Js6{$::FH(('..*ACL*P*1--*@+ACFt9N#'/.#"D#'/.Ds:!DDB=C;*D- D;C??DD DDc d|dzz} tD]+}|dk(r |j|5|dkrA|jttf5|j ||ddd dddc |j ||}t jtjdt|z}|jd}|j|||t|z ||j|jdtdz|jdz t|d} ddd. d}y#1swYxYw#d}wxYw#1swYPxYw#d}wxYw)Nr5rrrcrrr)rgrrr.rgrirrrRrSr+r8rrrs rtest_huge_str_64bz#BigmemPickleTests.test_huge_str_64b-sW# "A:\\\.qy!.. M/JK JJteJ<L /. '"&**TE*"B"("4"4"(++dCI">#?%,]]7%; (("#Js6{$::FH(('..*ACL*P*1--*@+ACFt9N#'!/.#*D!LK#'!/.$DsY"E#!E E! E* E#4B=E1E4 E#E EEEE E##E'N) r<r=r>r r rrr rrrr%rrrrsSe4 5  Se45(Se45:SE234SE23rrceZdZddZdZy)RNc||_yr$r)r.rs rrHz R.__init__Ls  rc|jSr$rr.rds rruz R.__reduce__Ns {{rr$rvr%rrrrKs rrceZdZddZdZy)rfNc||_yr$ reduce_ex)r.rs rrHz REX.__init__Rs "rc|jSr$rrs rrzREX.__reduce_ex__Ts ~~rr$)r<r=r>rHrr%rrrfrfQs #rrfceZdZdZdZdZy)rz4No __reduce_ex__ here, but inheriting it from objectrc d|_tdfS)Nrr%)rrr2s rruzREX_one.__reduce__Zs{rNr<r=r>rIrrur%rrrrWs>NrrceZdZdZdZdZy)rz1No __reduce__ here, but inheriting it from objectNc ||_tdfSrhrrrs rrzREX_two.__reduce_ex__a {rr<r=r>rIrrr%rrrr^s; FrrceZdZdZdZdZy)rNc ||_tdfSrhrrs rrzREX_three.__reduce_ex__grrctd)Nz#This __reduce__ shouldn't be called)rr2s rruzREX_three.__reduce__js>??r)r<r=r>rrrur%rrrres F@rrceZdZdZdZdZy)rz(Calling base class method should succeedNc<||_tj||Sr$)rrBrrs rrzREX_four.__reduce_ex__ps ##D%00rrr%rrrrms2 F1rrceZdZdZdZdZy)rz-This one used to fail with infinite recursionrc:d|_tj|SrJ)rrBrur2s rruzREX_five.__reduce__ws  &&rNrr%rrrrts7N'rrc*eZdZdZddZdZdZdZy)rz]This class is used to check the 4th argument (list iterator) of the reduce protocol. Nc&|||_yg|_yr$r9)r.rs rrHzREX_six.__init__#/U R rcdt|t|uxr|j|jk(Sr$)rrr[s rr]zREX_six.__eq__'DzT%[(FTZZ5;;-FFrc:|jj|yr$)rr)r.items rrzREX_six.appends $rcHt|ddt|jdfSrh)rrrr2s rruzREX_six.__reduce__s Dz2tT$**%5t;;rr$)r<r=r>rIrHr]rrur%rrrr{s8G rIrHr]rrur%rrrrs8G Drrc*eZdZdZddZdZdZdZy)rzUThis class is used to check the 3th argument (state) of the reduce protocol. Nc||_yr$rr.rs rrHzREX_state.__init__rsrcdt|t|uxr|j|jk(Sr$rrr[s rr]zREX_state.__eq__rrc||_yr$rrs r __setstate__zREX_state.__setstate__rsrc2t|d|jfSrhrr2s rruzREX_state.__reduce__sDz2tzz))rr$)r<r=r>rIrHr]rrur%rrrrsG*rrceZdZdZdZy)rz+ Setting __reduce_ex__ to None should fail N)r<r=r>rIrr%rrrrs 5MrrceZdZdZdZy)rz( Setting __reduce__ to None should fail N)r<r=r>rIrur%rrrrs 2JrrceZdZdZdZdZy)rz+ Setting __setstate__ to None should fail cyrJr%r2s r __getstate__zC_None_setstate.__getstate__srN)r<r=r>rIrrr%rrrrs5Lrrc eZdZy)rNrmr%rrrrrnrrceZdZdZy) Unpickleablectr$rr2s rruzUnpickleable.__reduce__srNr<r=r>rur%rrrrr|rrceZdZdZy)rocyr$r%rs r__call__zUnpickleableCallable.__call__rbrN)r<r=r>rr%rrrorordrroceZdZdZy)r?rNr<r=r>r:r%rrr?r?s Frr?ceZdZdZy)MyFloatg?Nrr%rrrrs FrrceZdZdZy) MyComplexy?Nrr%rrrrs FrrceZdZdZy)MyStrr2Nrr%rrrrs FrrceZdZdZy) MyUnicodeu hello ሴNrr%rrrrs FrrceZdZdZy)rr"Nrr%rrrrs FrrceZdZgdZy)rr"Nrr%rrrrs FrrceZdZdddZy)rRrrrNrr%rrrRrRs 1 FrrRceZdZddhZy)rrrNrr%rrrrs 3ZFrrc eZdZeddhZy)rrrN)r<r=r>rr:r%rrrrs Sz "FrrceZdZdZy) MyIntWithNewctr$)AssertionError)rrrs rrzMyIntWithNew.__new__srN)r<r=r>rr%rrrrsrrc$eZdZejZy)rEN)r<r=r>rrr%rrrErEs kkGrrEceZdZdgZy)r|rN)r<r=r>rr%rrr|r|s Irr|ceZdZdZdZy)rHctd)Nz3SimpleNewObj.__init__() didn't expect to get called)rrs rrHzSimpleNewObj.__init__sMNNrcft|t|k(xr|j|jk(Sr$)rrZr[s rr]zSimpleNewObj.__eq__s'4yCJ&J4==ENN+JJrN)r<r=r>rHr]r%rrrHrHsOKrrHceZdZdZy)rucd|zdfS)N%Xrr%r2s r__getnewargs__zComplexNewObj.__getnewargs__st R  rN)r<r=r>rr%rrrurus!rruceZdZdZy)rycd|zfddifS)Nrrrr%r2s r__getnewargs_ex__z!ComplexNewObjEx.__getnewargs_ex__st ~|++rN)r<r=r>rr%rrryrys,rryceZdZdZy)rc|jyr$)r)r.r3s r __getattr__zBadGetattr.__getattr__s  rN)r<r=r>rr%rrrrsrrceZdZfdZxZS)rc8|dk(rtt| |S)Nr)rsuper__getattribute__)r.rrs rrzNoNew.__getattribute__s! 9  w'--r)r<r=r>r __classcell__)rs@rrrs ..rrcZeZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd Zy)AbstractPickleModuleTestscttd} |j|jt|j d|t jty#t jtwxYwNr?{rQrcloserr.rrunlinkr.rWs rtest_dump_closed_filez/AbstractPickleModuleTests.test_dump_closed_file Q   % GGI   j$))S! <   V $I  V $ 2AA9cttd} |j|jt|j d|t jty#t jtwxYwrrrs rtest_load_closed_filez/AbstractPickleModuleTests.test_load_closed_filer r ctj}didg}|j|||jd|j |}|j ||y)Nr|r)r6rBrr8rr)r.streamrrs rtest_load_from_and_dump_to_filez9AbstractPickleModuleTests.test_load_from_and_dump_to_filesOR~ $ AIIf%  D)rcD|jtjdyr)rrrr2s rtest_highest_protocolz/AbstractPickleModuleTests.test_highest_protocol%s 00!4rctj}|jd|d|jd|d|jdd|jdd|j |d|j |dy)Nrr)filerr)r6rBrriPicklerrs r test_callapiz&AbstractPickleModuleTests.test_callapi)sk JJL #q" #A + 3 3 $ Q Q $rc2ttd} tD]%}|jt|j d||' |j tjty#|j tjtwxYw)Nwr) rQrrgrrrrrrrs rtest_dump_text_filez-AbstractPickleModuleTests.test_dump_text_file3sk   %"!!)TYYQF# GGI   V $ GGI   V $s .A+++Bctjd}|jttj t jf|j|y)NsX''.) r6rBrr<rRrrrfr)r.rs rtest_incomplete_inputz/AbstractPickleModuleTests.test_incomplete_input<s8 JJw  8V\\63I3IJDIIWXYrcGdd|j}Gdd|j}|jtj|j d|jtj |jy)NceZdZdZy);AbstractPickleModuleTests.test_bad_init..BadPicklercyr$r%r2s rrHzDAbstractPickleModuleTests.test_bad_init..BadPickler.__init__DrNrcr%rr BadPicklerrC $rr"ceZdZdZy)=AbstractPickleModuleTests.test_bad_init..BadUnpicklercyr$r%r2s rrHzFAbstractPickleModuleTests.test_bad_init..BadUnpickler.__init__Gr!rNrcr%rr BadUnpicklerr%Fr#rr'r)rrrrrhrrfr)r.r"r's r test_bad_initz'AbstractPickleModuleTests.test_bad_init@sb % % %4>> % &.. 0A0A1E &00,.2E2EFrcdtdGdd}|jttf|j|Gfdd}|jttf|j|Gfdd}|jttf|j|Gfdd}|jt |j|Gfdd}|jt |j|Gfd d}|jt |j|Gfd d}|jtt f|j|Gfd d} |j |Gfd d} |j |y#t $rY0wxYw#t $rYywxYw) Nctr$)rrs rraises_oserrorzIAbstractPickleModuleTests.test_unpickler_bad_file..raises_oserrorNsMrctr$rr2s r bad_propertyzGAbstractPickleModuleTests.test_unpickler_bad_file..bad_propertyPs rc eZdZy.FNrmr%rrFr0Urrr1ceZdZWZyr/r<r=r>rFr+srr1z.FZs%HrceZdZWZyr/r<r=r>rEr4srr1z.F_s!DrceZdZWZWZyr/)r<r=r>rErFr-r+srr1z.Fds D%HrceZdZWZWZyr/)r<r=r>rFrEr8srr1z.Fjs #H!DrceZdZWZyr/r3r-srr1z.Fps#HrceZdZWZyr/r6r;srr1z.FusDrc eZdZWZWZWZyr/)r<r=r>r0rErFr8srr1z.FzsD!D%Hrc eZdZWZWZWZyr/)r<r=r>readintorErFr8srr1z.Fs#H!D%Hr)rrrrrr)r.r1r-r+s @@rtest_unpickler_bad_filez1AbstractPickleModuleTests.test_unpickler_bad_fileLs        >95t~~qsK & & >95t~~qsK " " >95t~~qsK & & +t~~qs; " " +t~~qs; $ $ +t~~qs;   >;7M & &  NN13   & &  NN13       s$G:G  GG G,+G,cGdd}|jt|j|Gdd}|jt|j|y)Nc eZdZy):AbstractPickleModuleTests.test_pickler_bad_file..FNrmr%rrr1rCrrr1ceZdZedZy)rCctr$rr2s rrGz@AbstractPickleModuleTests.test_pickler_bad_file..F.writes!!rN)r<r=r>rrGr%rrr1z:AbstractPickleModuleTests.test_pickler_bad_file..Fs  " "r)rrrr)r.r1s rtest_pickler_bad_filez/AbstractPickleModuleTests.test_pickler_bad_filesH   )T\\137 " " +t||QS9rc@td}tddD]5}|jt5|||gjddd7tdt j dzD]}g}|j}||||}|jd||jt|dd|jt j5||ddd|||}|j||y#1swYxYw#1swY4xYw)Nsfoorr)rrrr) rr:rr.rrrrrrrfr) r.rirrrdrrrrs rcheck_dumps_loads_oob_buffersz7AbstractPickleModuleTests.check_dumps_loads_oob_bufferssF#1a[E"":.cE&(ii1/.! 1f559:EG%nnOu)8:D   VT *   U71:. 7""6#9#9:d ;g.C MM#s #;/.;:sD DD D cP|j|j|jyr$)rHrirr2s rtest_dumps_loads_oob_buffersz6AbstractPickleModuleTests.test_dumps_loads_oob_bufferss **4::tzzBrc>fd}fd}j||y)Ncttj}j||fi||jSr$)r6rBrrD)rrrWr.s rrizCAbstractPickleModuleTests.test_dump_load_oob_buffers..dumpss/ A DIIc1 ' '::< rcTtj|}j|fi|Sr$)r6rBr)rrrWr.s rrzCAbstractPickleModuleTests.test_dump_load_oob_buffers..loadss' 4 A499Q)&) )r)rH)r.rirs` rtest_dump_load_oob_buffersz4AbstractPickleModuleTests.test_dump_load_oob_bufferss  * **5%8rN)r<r=r>r r rrrrrr(r@rFrHrJrNr%rrrr sG%%*5%%Z G?B :$0C 9rrceZdZdZdZdZy)AbstractPersistentPicklerTestsct|tr(|dzdk(r |xjdz c_t|S|dk(r|xjdz c_yy)Nrrrtest_false_valuerZ)rrid_countr{ false_count)r.rBs rr z,AbstractPersistentPicklerTests.persistent_idsN fc "vzQ MMQ Mv;  ) )    ! rc|s|xjdz c_y|xjdz c_t|}|dzdk(sJ|S)NrrRrr)load_false_count load_countr)r.oidrBs rpersistent_loadz.AbstractPersistentPicklerTests.persistent_loadsE  ! !Q & !% OOq OXFA:? "?Mrc ttddgz}tD]}d|_d|_d|_d|_|j|j|j||||j|jd|j|jd|j|j d|j|j dy)NrrRrrr) rr:rgrSrTrVrWrrri)r.Lrds rtest_persistencez/AbstractPersistentPicklerTests.test_persistences rO12 2EDM D $%D !DO   TZZ 1e(<=q A   T]]A .   T--q 1   T__a 0   T22A 6rN)r<r=r>r rYr\r%rrrPrPs  7rrPc*eZdZdZdZdZdZdZy)&AbstractIdentityPersistentPicklerTestsc|Sr$r%)r.rs rr z4AbstractIdentityPersistentPicklerTests.persistent_id rc|Sr$r%)r.pids rrYz6AbstractIdentityPersistentPicklerTests.persistent_loadr`rc|j|j||}|j|t||j ||yr$)rrir*rr)r.rrdrs r_check_return_correct_typezAAbstractIdentityPersistentPicklerTests._check_return_correct_types?JJtzz#u56  ic3 C(rctD]<}|dk(r|jddddddtfD]}|j||>y)Nrrsabc zabc rg*\()rgrdr{)r.rdrs rtest_return_correct_typez?AbstractIdentityPersistentPicklerTests.test_return_correct_typesIEz//q9$gr:sCC33C?D rcd}|jtj5}|j|dddd|j t j dtj|jdzdz}|jtj5}|j|ddd|j t |j dy#1swYxYw#1swY;xYw)Nu∅rz2persistent IDs in protocol 0 must be ASCII stringsr@r-) rrrhrirr{rPERSIDr#rfr)r. non_ascii_strr}rs rtest_protocol0_is_ascii_onlyzCAbstractIdentityPersistentPicklerTests.test_protocol0_is_ascii_onlys'   v33 4 JJ}a (5 R\\*M O---"6"6w"??&H   v55 6" JJw 7 R\\*M O5 4 7 6sC&&C2&C/2C;N)r<r=r>r rYrdrfrjr%rrr^r^s) @ Orr^cVeZdZdZdZdZdZdZdZdZ ddd Z d Z d Z d Z d Zy)#AbstractPicklerUnpicklerObjectTestsNc<|jsJ|jsJyr$) pickler_classunpickler_classr2s rrz)AbstractPicklerUnpicklerObjectTests.setUps !!!!####rc$gd}tD]}tj}|j||}|j ||j }|j d|j|j ||j }|j|j d|j|j ||j }|j|||j||y)Nabcdefgrr,r) rgr6rBrnrrDr8truncate clear_memorr)r.rrdrWr first_pickledsecond_pickled third_pickleds rtest_clear_pickler_memoz;AbstractPicklerUnpicklerObjectTests.test_clear_pickler_memos *YE A((E2G LL JJLM FF1I JJL LL ZZ\N    FF1I JJL LL JJLM    ~ >   ]M :/rcjgd}tj}|j|}|j||j }tj}|j|}|j |_|j||j }|j ||yNrq)r6rBrnrrDmemor)r.rrWrrvprimedprimed_pickleds rtest_priming_pickler_memoz=AbstractPicklerUnpicklerObjectTests.test_priming_pickler_memo8s) JJL$$Q' T JJL##A&ll  D M>:rcgd}tj}|j|}|j||j }tj}|j|}|j |_|j||j }|j tj|}|j}|j|||j tj|}|j |_|j} |j j|j| ||j| |uyr{) r6rBrnrrDr|rorrr r) r.rrWrrvr}r~runpickled_data1unpickled_data2s rtest_priming_unpickler_memoz?AbstractPicklerUnpicklerObjectTests.test_priming_unpickler_memoJs ) JJL$$Q' T JJL##A&ll  D((M)BC #..* $/%%bjj&@Ann  ++-  $/ ?:;rcgd}tj}|j|}|j||j }gd}tj}|j|}|j||j }tj}|j ||j d|j|}|j|j||j d|j|j ||j d|j|j|y)Nrq)rrrsrsr) r6rBrnrrDrGr8rorrrt)r.data1rWrpickled1rVpickled2rs rtest_reusing_unpickler_objectszBAbstractPicklerUnpicklerObjectTests.test_reusing_unpickler_objectshs* JJL$$Q' U::<# JJL$$Q' U::< JJL  q ((+  )51 q    q  )51rTr3c tD]5}|j|5tdDcgc]}|t|fc}dtgz}|}|j ||}|j ||j}d} ||| z}|j|} t| D]c} |r|j} |j| j||s8|j|j t |ze|jt| jddd8ycc}w#1swYIxYw)Nrcisabcderr)rgrr:r{r+rnrrDror;rrrr<) r.ioclassr3rdr'rrWrrrrr}rs r_check_multiple_unpicklingsz?AbstractPicklerUnpicklerObjectTests._check_multiple_unpicklingssYEE*.3Dk:k!SVk:h_LI,,Q,? U#**,GaK( 003 qAffh$$Y^^%5u=((3W3EF " !!(INN;!+*:+*s#EEB'E'AEEE cB|jtjyr$)rr6rBr2s r"test_multiple_unpicklings_seekablezFAbstractPicklerUnpicklerObjectTests.test_multiple_unpicklings_seekables ((4rc2|jtdyNFr)rr*r2s r$test_multiple_unpicklings_unseekablezHAbstractPicklerUnpicklerObjectTests.test_multiple_unpicklings_unseekables (((Frc2|jtdyr)rr@r2s r!test_multiple_unpicklings_minimalzEAbstractPicklerUnpicklerObjectTests.test_multiple_unpicklings_minimals ((U(Crcttd}tD]}tddD]}tjtj |}|j ||}|j||jd|j|}|j|j|y)Nrr ) buffer_sizerr) rr:rgr6BufferedRandomrBrnrr8rorr)r.rrdbuf_sizerWrrs r"test_unpickling_buffering_readlinezFAbstractPicklerUnpicklerObjectTests.test_unpickling_buffering_readlinesE"IE!!RL%%bjjlI,,Q,? T"q  003   !148 )r)r<r=r>rnrorryrrrrrrrrr%rrrlrlsHMO$;@;$<<22@D<(5GD 9rrlreduce_AceZdZdZy)rcttffSr$)r{rr2s rruzAAA.__reduce__sXKrNrr%rrrrs rrceZdZdZdZy)BBBcd|_y)Nzsome attributerr2s rrHz BBB.__init__s "rcd|_y)NBBB.__setstate__rrs rrzBBB.__setstate__s #rN)r<r=r>rHrr%rrrrs " $rrcd|_y)atCustom state setter for BBB objects Such callable may be created by other persons than the ones who created the BBB class. If passed as the state_setter item of a custom reducer, this allows for custom state setting behavior of BBB objects. One can think of it as the analogous of list_setitems or dict_setitems but for foreign classes/functions. custom state_setterNr)rrs r setstate_bbbrs  "CErceZdZdZdZy)AbstractCustomPicklerClasszrIrr%rrrrs Frrc6eZdZdZej dZy)AbstractHookTestsc*d}d}d}Gdd}tdtjdzD]:}|j|5t j }|j ||}|j||tjgtj|j\}} } |j|d |j| d |j| tj|jtj5|j|ddd|j!t"d 5|j|dddddd=y#1swYExYw#1swY!xYw#1swYaxYw) Ncyr$r%r%rrrWz.AbstractHookTests.test_pickler_hook..frrcyr$r%r%rrrz.AbstractHookTests.test_pickler_hook..grrcyr$r%r%rrrz.AbstractHookTests.test_pickler_hook..hrrc eZdZy)4AbstractHookTests.test_pickler_hook..MyClassNrmr%rrrrrrrrrrcrrr)r:rrrr6rBrnrrrrrDrrrrhassertRaisesRegexr.) r.rWrrrrdbiornew_fsome_strmath_logs rtest_pickler_hookz#AbstractHookTests.test_pickler_hooks9      1f559:EE*jjl&&sE27DHH-.,2LL,H)x  *  :6  h1&&v';';<FF1I=++"$=?FF1I?%+*; =<??%+*s=CFE0,F E<F0E9 5F<F FF ctdtjdzD]}|j|5d}t j |}t j}|j||}|j|tj|j}|dk(sJ~~|j|dddy#1swYxYw)Nrrrccyr$r%r%rrrWzEAbstractHookTests.test_reducer_override_no_reference_cycle..fsrr) r:rrrr@rr6rBrnrrrDrW)r.rdrWwrrrrs r(test_reducer_override_no_reference_cyclez:AbstractHookTests.test_reducer_override_no_reference_cycles 1f559:EE*[[^jjl&&sE2q  S\\^4z!z!!"$'+*;**s BCC N)r<r=r>rrr\rr%rrrrs"&P ((rrc$eZdZdZdZdZdZy)AbstractDispatchTableTestsctj}|j|d}|jt5|j ddd|j t|dy#1swY%xYw)Nrdispatch_table)r6rBrnrrrrLr)r.rWrs rtest_default_dispatch_tablez6AbstractDispatchTableTests.test_default_dispatch_table)sZ JJL   q! $   ~ .  / $456/ .s A--A6cjGfddjdfd }j|y)NceZdZWZy)GAbstractDispatchTableTests.test_class_dispatch_table..MyPicklerN)r<r=r>r)dtsr MyPicklerr5sNrrctj}||}j|j|j ||j Sr$)r6rBrrrrD)rrrWrrrr.s rrizCAbstractDispatchTableTests.test_class_dispatch_table..dumps8sG A!X&A   Q--r 2 FF3K::< rr$)get_dispatch_tablern_test_dispatch_table)r.rirrs` @@rtest_class_dispatch_tablez4AbstractDispatchTableTests.test_class_dispatch_table1s:  $ $ & **   !!%,rcZjdfd }j|y)Nctj}j||}|_j |j|j ||j Sr$)r6rBrnrrrrD)rrrWrrr.s rrizFAbstractDispatchTableTests.test_instance_dispatch_table..dumpsEsU A""1h/A!A    Q--r 2 FF3K::< rr$)rr)r.rirs` @rtest_instance_dispatch_tablez7AbstractDispatchTableTests.test_instance_dispatch_tableAs(  $ $ &  !!%,rc fd}d}d}|j||||j|||d fd}||t<|j|| |j|||t}t}|j||t|j ||t|j||t|j ||t||t<|j||t|j|| |j||t|j ||td fd} | |t<|t=|j|| |j ||t|j||t|j ||t|j||j dd } | |t<|j||j d y) Nc<tj|dSNr)rr)rris rcustom_load_dumpzIAbstractDispatchTableTests._test_dispatch_table..custom_load_dumpPs<<c1 . .rcTtjtj|dSr)rrrirSs rdefault_load_dumpzJAbstractDispatchTableTests._test_dispatch_table..default_load_dumpSs<< S! 45 5ry?@reduce_1ctffSr$rz)rREDUCE_1s rrzAAbstractDispatchTableTests._test_dispatch_table..reduce_1^ # #rreduce_2ctffSr$rz)rREDUCE_2s rrzAAbstractDispatchTableTests._test_dispatch_table..reduce_2urrrc6td|jddtfSrh)rrZrrSs r reduce_bbbzCAbstractDispatchTableTests._test_dispatch_table..reduce_bbbsCLL$lB Brr)rcomplexrrrr*r) r.rirrrrrrrrrrrs ` @@rrz/AbstractDispatchTableTests._test_dispatch_tableOs / 6  )!,a0 *1-q1 $"*w )!,h7 *1-q1 E E )!,h7 .q137 *1-x8 /2C8's )!,h7 )!,h7 *1-x8 /2C8 $&s 3  )!,h7 .q137 *1-x8 /2C8 *1-//1CD C)s )!,..0EFrN)r<r=r>rrrrr%rrrr's7- -@Grrr!z DATA{0} = (rz {0!r}rz# Disassembly of DATA{0}zDATA{0}_DIS = """\z""")rrrNrr6rrrrrrMrRrrRrrr@textwrapr http.cookiesrrrrr test.supportrrrr r r r test.support.import_helperr test.support.os_helperrrtest.support.warnings_helperrrnumpyrf skipUnlessrr[r:rrgrr"r(rBr*rBr@rKrXr_rfrjr=rlrprrxr~rrrrrrrrwrrrr$rr%r DATA2_DISr DATA3_DISr DATA4_DISr7r9r;rArithmeticErrorrrr r BytesWarningDeprecationWarningr<EnvironmentErrorr?FloatingPointError FutureWarning GeneratorExitIOError ImportWarningIndentationErrorr|KeyErrorKeyboardInterrupt LookupError MemoryError NameErrorr,rrgPendingDeprecationWarningReferenceErrorrRuntimeWarning StopIteration SyntaxError SyntaxWarning SystemError SystemExitTabErrorrUnboundLocalError UnicodeErrorUnicodeWarning UserWarningr.WarningZeroDivisionErrorr=r>r@rrr`rrrrfrrrrrrrrrrrrrrwror?floatrrrr{rrr>rrrrrRr8rrrr8rrEr|rHruryrrrrPr^rlrrrrrrrr<r"r'r}rirr rr+jrr%rrr s    %".))F  & ( ) #x""3;;#6#MO &))A- .    &2:: & % %,::*//             Ca   Fi 88  E 8  8G(G(\(P  f % >  B 7  t  7  t.@  F QT Q  L .#.#.#.# .#  .#  .#.# .#.#.#.#.#.# .#.# !.#"#.#$%.#& '.#().#*+.#,-.#./.#01.#2 3.#45.#67.#89.#:;.#<=.#@A.#BC.#DE.#FG.#HI.#J K.#LM.#NO.#PQ.#RS.#TU.#VW.#X Y.#Z[.#`<,  *X !X !vj7j7Z~4~4B4||B  ff@@1v1'v'