a XC?h?",@sddlZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddl Z ddlZddlmZddlmZz ddlZWneydZYn0ddlmZddlmZmZmZmZmZmZmZmZm Z m!Z!ddlm"Z"z4e!ddl#Z$Wdn1s$0YWneyHdZ$Yn0e %e j&dkdZ'e(ej)d Z*d d Z+d d Z,ddZ-Gdddej.Z/Gddde0Z1GdddZ2GdddZ3Gddde3Z4Gddde3Z5GdddZ6GdddZ7ddl8Z8e3e8_3d e3_9e4e8_4d e4_9e5e8_5d e5_9Gd!d"d"e:Z;Gd#d$d$e3ZGd'd(d(e0e>d)Z?Gd*d+d+e=Z@d,d-ZAGd.d/d/eBZCGd0d1d1eDZEedurGd2d3d3ZFd4ZGd5ZHd6ZId7ZJd8ZKd9ZLd:ZMd;ZNdZQd?ZRd@ZSdAZTeUeVeWeXeYeZe[e\e]e^e_e`eaebeecedeeefegeheiejekelemeneoepeqereseteuevewexeyeze{e|e}e~ef,ZdBZdCZdDdEZGdFdGdGZGdHdIdIZGdJdKdKZGdLdMdMe0ZGdNdOdOe0ZGdPdQdQe0ZGdRdSdSe0ZGdTdUdUe0ZGdVdWdWe0ZGdXdYdYe0ZGdZd[d[e0ZGd\d]d]e:ZGd^d_d_eZGd`dadaeZGdbdcdceZGdddedeeZGdfdgdgeZGdhdidieZGdjdkdkeZGdldmdmeZGdndodoeZeeeeeeeeeeg ZGdpdqdqe:ZGdrdsdseZGdtdudueZGdvdwdwe:aGdxdydytZGdzd{d{tZGd|d}d}ZGd~ddZGdddZGdddZGdddZdZGddde0ZGddde0ZddZGdddZGdddZGdddZed krddlmZeZe(ej)d D]ZeeeZedee(deedD](ZeBeeedZedeqedeedeedeeeedeqdS)N)dedent) SimpleCookie)support) TestFailedTESTFNrun_with_locale no_tracing_2G_4G bigmemtest reap_threadsforgetsave_restore_warnings_filters) bytes_typeslz(test is only meaningful on 32-bit buildscCs0t|D] \}}}|j|dkr dSq dS)Nlatin-1TF pickletoolsgenopscodedecode)rpickleopdummyr6/opt/alt/python39/lib64/python3.9/test/pickletester.pyopcode_in_pickle5srcCs6d}t|D]"\}}}|j|dkr|d7}q|S)Nrrrr)rrnrrrrr count_opcode<s  rcCs|SNrxrrridentityDsr"c@s,eZdZddZddZddZddZd S) UnseekableIOcGstdSr)NotImplementedErrorselfargsrrrpeekIszUnseekableIO.peekcCsdS)NFrr&rrrseekableLszUnseekableIO.seekablecGs tjdSrioUnsupportedOperationr%rrrseekOszUnseekableIO.seekcCs tjdSrr+r)rrrtellRszUnseekableIO.tellN)__name__ __module__ __qualname__r(r*r.r/rrrrr#Hsr#c@seZdZdZddZdS) MinimalIOz= A file-like object that doesn't support readinto(). cGs8tj||_|jj|_|jj|_|jj|_|jj|_dSr)r,BytesIOZ_biogetvaluereadreadlinewriter%rrr__init__Zs     zMinimalIO.__init__N)r0r1r2__doc__r9rrrrr3Vsr3c@seZdZddZddZdS)ExtensionSavercCsB||_|tjvr8tj||_t|jd|jd|nd|_dSNrr)rcopyreg_inverted_registrypairremove_extension)r&rrrrr9os   zExtensionSaver.__init__cCsX|j}tj|}|dur0t|d|d||j}|durTt|d|d|dSr<)rr=r>getr@r? add_extension)r&rZcurpairr?rrrrestorexs zExtensionSaver.restoreN)r0r1r2r9rCrrrrr;ls r;c@seZdZddZdS)CcCs |j|jkSr)__dict__r&otherrrr__eq__szC.__eq__N)r0r1r2rHrrrrrDsrDc@seZdZddZdS)DcCsdSrr)r&argrrrr9sz D.__init__Nr0r1r2r9rrrrrIsrIc@seZdZddZdS)EcCsdSNrrr)rrr__getinitargs__szE.__getinitargs__N)r0r1r2rNrrrrrLsrLc@s eZdZdS)ObjectNr0r1r2rrrrrOsrOc@seZdZddZddZdS)KcCs ||_dSr)value)r&rRrrrr9sz K.__init__cCs t|jffSr)rQrRr)rrr __reduce__sz K.__reduce__N)r0r1r2r9rSrrrrrQsrQ__main__c@seZdZddZdS)myintcCst||_dSrstr)r&r!rrrr9szmyint.__init__NrKrrrrrUsrUc@seZdZddZddZdS)initargcCs||_||_dSrab)r&rZr[rrrr9szinitarg.__init__cCs |j|jfSrrYr)rrrrNszinitarg.__getinitargs__N)r0r1r2r9rNrrrrrXsrXc@s eZdZdS) metaclassNrPrrrrr\sr\c@s eZdZdS) use_metaclassNrPrrrrr]sr])r\c@seZdZddZddZdS)pickling_metaclasscCst|t|ko|j|jkSr)type reduce_argsrFrrrrHs zpickling_metaclass.__eq__cCs t|jfSr)create_dynamic_classr`r)rrrrSszpickling_metaclass.__reduce__N)r0r1r2rHrSrrrrr^sr^cCst||t}||f|_|Sr)r^dictr`)namebasesresultrrrras rac@s<eZdZdZdZdZdZddZddZeZ e ddZ dS) ZeroCopyBytesTcCs8|dkr t|jt|fdfSt|jt|ffSdSNr_ _reconstructr PickleBufferbytesr&protocolrrr __reduce_ex__szZeroCopyBytes.__reduce_ex__cCsd|jjt|SNz{}({!r})format __class__r0rlr)rrr__repr__szZeroCopyBytes.__repr__cCsft|J}|j}t||ur.|WdS||WdSWdn1sX0YdSr memoryviewobjr_clsrwmrrrrjs   zZeroCopyBytes._reconstructN r0r1r2readonly c_contiguous f_contiguouszero_copy_reconstructrort__str__ classmethodrjrrrrrfsrfc@s<eZdZdZdZdZdZddZddZeZ e ddZ d S) ZeroCopyBytearrayFTcCs8|dkr t|jt|fdfSt|jt|ffSdSrgrirmrrrroszZeroCopyBytearray.__reduce_ex__cCsd|jjt|Srprqr)rrrrtszZeroCopyBytearray.__repr__cCsft|J}|j}t||ur.|WdS||WdSWdn1sX0YdSrrurxrrrrjs   zZeroCopyBytearray._reconstructNr{rrrrrsrc@speZdZdZddZddZeddZedd Zed d Z d d Z ddZ ddZ ddZ eddZdS)PicklableNDArrayFcOstj|i||_dSr) _testbufferZndarrayarrayr&r'kwargsrrrr9szPicklableNDArray.__init__cCs"t|}||}|j||_|Sr)r___new__r)r&idxrynewrrr __getitem__s  zPicklableNDArray.__getitem__cCs|jjSr)rr|r)rrrr| szPicklableNDArray.readonlycCs|jjSr)rr}r)rrrr}szPicklableNDArray.c_contiguouscCs|jjSr)rr~r)rrrr~szPicklableNDArray.f_contiguouscCsbt|tstS|jj|jjko`|jj|jjko`|jj|jjko`|jj|jjko`|j|jkSr) isinstancerNotImplementedrrrshapestridesr|tobytesrFrrrrHs zPicklableNDArray.__eq__cCst|tstS||k Sr)rrrrFrrr__ne__!s zPicklableNDArray.__ne__cCs.t|d|jjd|jjd|jdS)Nz(shape=z ,strides=z, bytes=))r_rrrrr)rrrrt&s zPicklableNDArray.__repr__cCs|jjstd|jj|jj|jj|jr,dntjd}t |j}|dkr\t |j ||ffS| &}t |j ||ffWdS1s0YdS)Nz>Reconstructing a non-contiguous ndarray does not seem possibler)rrrrflagsrh)r contiguousr$rrrrr|r ND_WRITABLErrkr_rjrawr)r&rnZndarray_kwargspbrzrrrro+s"    zPicklableNDArray.__reduce_ex__cCsDt|}t|}Wdn1s*0Y||fi|Sr)rvlistr)ryrwrrzitemsrrrrj>s *zPicklableNDArray._reconstructN)r0r1r2rr9rpropertyr|r}r~rHrrtrorrjrrrrrs    rs;(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.cCst}d|_d|_gd}d}d}d}|dd|| | d|| | d|| | dg dd||f}|||||d |S) Nr)rrg@y@abcrh)rDfoobarextendappend)cr!Zuint1maxZuint2maxZint4maxyrrr create_data&s"    rc@seZdZeZd\ddZddZddZdd Zd d Z d d Z ddZ ddZ ddZ ddZddZddZddZddZddZd d!Zd"d#Zed$d%Zed&d'Zd(d)Zd*d+Zd,d-Zd.d/Zd0d1Zed2d3Zed4d5Zed6d7Z d8d9Z!d:d;Z"dd?Z$d@dAZ%edBdCZ&dDdEZ'dFdGZ(dHdIZ)dJdKZ*dLdMZ+dNdOZ,dPdQZ-dRdSZ.dTdUZ/dVdWZ0dXdYZ1e2dZd[Z3dS)]AbstractUnpickleTestsNcCs|durd||}|j|||d|jt|t||dt|drn|j|j|j|d|j|j|j|dt|dr|j|j |j |d|j D]@}|jt||t|||d|jt ||dt ||d|dqdS)zKUtility method to verify if two objects are copies of each others. Nz{!r} is not a copy of {!r})msgrE __slots__) rr assertEqualassertIsr_hasattrZassertDictEqualrE assertIsNotZassertListEqualrgetattr)r&rwZobjcopyrZslotrrrassert_is_copy@s      z$AbstractUnpickleTests.assert_is_copyc Cs|j|d||fz||WnFtyn}z.tjdkrXtd||jj|fWYd}~n d}~00Wdn1s0YWdn1s0YdS)N)datarz%-32r - %s: %s) subTest assertRaisesloads BaseExceptionrverboseprintrsr0)r&errorsrexcrrrcheck_unpickling_errorRs  z,AbstractUnpickleTests.check_unpickling_errorcCs||j|tdSr)r _testdatarDATA0r)rrrtest_load_from_data0]sz*AbstractUnpickleTests.test_load_from_data0cCs||j|tdSr)rrrDATA1r)rrrtest_load_from_data1`sz*AbstractUnpickleTests.test_load_from_data1cCs||j|tdSr)rrrDATA2r)rrrtest_load_from_data2csz*AbstractUnpickleTests.test_load_from_data2cCs||j|tdSr)rrrDATA3r)rrrtest_load_from_data3fsz*AbstractUnpickleTests.test_load_from_data3cCs||j|tdSr)rrrDATA4r)rrrtest_load_from_data4isz*AbstractUnpickleTests.test_load_from_data4cCstdftdftdffD]z\}}|jd}dd|}|||||dd|}|||||dd|}|||||qdS)Nrr asciis(i__main__ X p0 (dp1 b.Xs(c__main__ X qoq}qb.s(c__main__ X qoq}qb.)rDrIrLr0encodereplacerr)r&Xr'ZxnameZpickle0Zpickle1Zpickle2rrrtest_load_classic_instancels z0AbstractUnpickleTests.test_load_classic_instancecCsVd}dt|dd}||}|||dt|dd}|t|dS)NlIr .sJUNK .)rWrrrr ValueError)r&Zmaxint64rgotrrr test_maxint64s   z#AbstractUnpickleTests.test_maxint64cCsX|t}||tddg|t}|t|ttd|t|ttd|t}|t|t |t| dg||dj dt D]2}t d|jd}||}|t||q|t dd }|t|t|t}|t|t||jd ||jd||jd||jd||jd dS) NrrrrhkeyrR?r StandardErrorrZbad)rDATA_SETrset DATA_XRANGEr_ranger DATA_COOKIErkeysrRpython2_exceptions_without_argsexception_picklerr0rr Exception DATA_UEERRUnicodeEncodeErrorobjectencodingstartendreason)r&loadedrrrrrtest_unpickle_from_2xs,     z+AbstractUnpickleTests.test_unpickle_from_2xcCsF||jdddd||jdddd||jdddddS)NsS'a\x00\xa0' .rlrsasUa.sUa.rrr)rrrtest_load_python2_str_as_bytess   z4AbstractUnpickleTests.test_load_python2_str_as_bytescCsF||jdddd||jdddd||jdddddS)Ns V\u03c0 .rlruπsXπ.s Xπ.rr)rrr test_load_python2_unicode_as_strs   z6AbstractUnpickleTests.test_load_python2_unicode_as_strcCs2||jtjtdddtjddddS)N.t)target) ToBeUnpickledcSsg|] }t|qSr)r_.0r!rrr rIzCAbstractUnpickleTests.test_unpickle_module_race..r)rosmkdirrZ addCleanupshutilZrmtreesyspathinsertremoveopenjoinr8rr rf threadingZBarrierZThreadrrhrjrgrmr) r&Z locker_moduleZlocking_import_modulefrfrkt1t2rmrrirtest_unpickle_module_racebs> ..        z/AbstractUnpickleTests.test_unpickle_module_race)N)4r0r1r2rrrrrrrrrrrrrrrrrrr requires_32brrrrrrrrrrr rrrrrrrrrr'r)r-r.rGrHrcr r~rrrrr;sj  9         2'_rc@seZdZdZejZddZejZddZddZ dd Z e d fd d Z d dZ ddZddZe d fddZddZddZddZe d fddZddZdd Zd!d"Ze d fd#d$Zd%d&Zd'd(Zd)d*Ze d fd+d,Zd-d.Zd/d0Zd1d2Ze d fd3d4Z d5d6Z!d7d8Z"d9d:Z#d;d<Z$d=d>Z%d?d@Z&dAdBZ'dCdDZ(dEdFZ)dGdHZ*dIdJZ+dKdLZ,dMdNZ-dOdPZ.dQdRZ/dSdTZ0dUdVZ1dWdXZ2dYdZZ3d[d\Z4d]d^Z5d_d`Z6dadbZ7dcddZ8dedfZ9dgdhZ:e;didjdkdldmZdrdsZ?dtduZ@dvdwZAdxdyZBdzd{ZCd|d}ZDd~dZEddZFddZGddZHddZIddZJddZKddZLddZMddZNddZOddZPddZQddZRddZSddZTddZUddZVddZWddZXddZYddZZddZ[ddZ\ddZ]ddZ^ddZ_e`ddZaddZbddZcddZdddZeddZfddZgddÄZhddńZiddDŽZjdZkdZldd˄Zmenjodd̈́ZpddτZqddфZrenjoddӄZsddՄZtddׄZuddلZvddۄZwdd݄Zxdd߄ZyddZzddZ{ddZ|ddZ}ddZ~ddZddZddZeedudddZdS)AbstractPickleTestsFcCsdSrrr)rrrsetUpszAbstractPickleTests.setUpcCstD]}td}|||}||}|||d}|||}||}|||td|}|||}||}|||qdS)Nr)rrr) protocolsrUdumpsrrrXr&protor!srrrr test_miscs         zAbstractPickleTests.test_misccCs6|j}tD]&}|||}||}|||q dSr)rrrrr)r&rrrrrrrtest_roundtrip_equalitys   z+AbstractPickleTests.test_roundtrip_equalitycCsjddlm}ddlm}dtfdtffD]<\}}||j|}|}|||d|}| ||q(dS)Nr)StringIOdisr)out) r,rrr DATA0_DIS DATA1_DISrrr5r)r&rrrrrZfilelikerrrrdont_test_disassemblys   z)AbstractPickleTests.dont_test_disassemblyrc Cst|}||t|tjdD]N}|||}||}|||||}|t|d| |d|q dSNrr) rrrHIGHEST_PROTOCOLrrassertIsInstancerlenr) r&ryaslist minprotocollrrr!rrrr_test_recursive_lists    z(AbstractPickleTests._test_recursive_listcCs|tdSr)rrr)rrrtest_recursive_listsz'AbstractPickleTests.test_recursive_listcCs|jtdddSNr)r)rMyListr)rrrtest_recursive_list_subclasssz0AbstractPickleTests.test_recursive_list_subclasscCs|jtddddS)NcSs|jSrrr rrrrIz>AbstractPickleTests.test_recursive_list_like..r)rREX_sixr)rrrtest_recursive_list_likesz,AbstractPickleTests.test_recursive_list_likec Cs,|f}|d|t|tjdD]r}|||}||}||t|t |d||d|||d}|t |d| |d|q&|\}t|tjdD]v}|||}||}|||||}|t |d||dt|t |dd| |dd|qdSr<) rrrrrrrtuplerrr) r&ryrrrkrrr!rrrr_test_recursive_tuple_and_lists*       z2AbstractPickleTests._test_recursive_tuple_and_listcCs|tdSr)rrr)rrrtest_recursive_tuple_and_listsz1AbstractPickleTests.test_recursive_tuple_and_listcCs|jtdddSr)rrr)rrr&test_recursive_tuple_and_list_subclass sz:AbstractPickleTests.test_recursive_tuple_and_list_subclasscCs|jtddddS)NcSs|jSrrr rrrrrIzHAbstractPickleTests.test_recursive_tuple_and_list_like..r)rrr)rrr"test_recursive_tuple_and_list_like sz6AbstractPickleTests.test_recursive_tuple_and_list_likec Csx|}||d<t|tjdD]T}|||}||}|||||}|t|dg| |d|qdSNr) rrrrrrrrrr r&ryasdictrdrrr!rrrr_test_recursive_dicts   z(AbstractPickleTests._test_recursive_dictcCs|tdSr)rrbr)rrrtest_recursive_dictsz'AbstractPickleTests.test_recursive_dictcCs|jtdddSr)rMyDictr)rrrtest_recursive_dict_subclasssz0AbstractPickleTests.test_recursive_dict_subclasscCs|jtddddS)NcSs|jSrtabler rrrr#rIz>AbstractPickleTests.test_recursive_dict_like..r)r REX_sevenr)rrrtest_recursive_dict_like"sz,AbstractPickleTests.test_recursive_dict_likec Cs.|f}||dd<t|tjdD]t}|||}||}||t|t|d||d|||d}|t |dg| |d|q$|\}t|tjdD]x}|||}||}|||||}|t |dg||dt|t|dd| |dd|qdSr<) rrrrrrrrrrr r&ryrrrkrrr!rrrr_test_recursive_tuple_and_dict%s*        z2AbstractPickleTests._test_recursive_tuple_and_dictcCs|tdSr)rrbr)rrrtest_recursive_tuple_and_dict?sz1AbstractPickleTests.test_recursive_tuple_and_dictcCs|jtdddSr)rrr)rrr&test_recursive_tuple_and_dict_subclassBsz:AbstractPickleTests.test_recursive_tuple_and_dict_subclasscCs|jtddddS)NcSs|jSrrr rrrrFrIzHAbstractPickleTests.test_recursive_tuple_and_dict_like..r)rrr)rrr"test_recursive_tuple_and_dict_likeEsz6AbstractPickleTests.test_recursive_tuple_and_dict_likec Cs|}d|t|<t|tjdD]t}|||}||}|||||}|t| d|t | dt| t | dj |q"dSr) rQrrrrrrrrrrrrRrrrr_test_recursive_dict_keyHs    z,AbstractPickleTests._test_recursive_dict_keycCs|tdSr)rrbr)rrrtest_recursive_dict_keyVsz+AbstractPickleTests.test_recursive_dict_keycCs|jtdddSr)rrr)rrr test_recursive_dict_subclass_keyYsz4AbstractPickleTests.test_recursive_dict_subclass_keycCs|jtddddS)NcSs|jSrrr rrrr]rIzBAbstractPickleTests.test_recursive_dict_like_key..r)rrr)rrrtest_recursive_dict_like_key\sz0AbstractPickleTests.test_recursive_dict_like_keyc CsN|f}d|dt|<t|tjdD]}|||}||}||t|t |d||d|||d}|t |d|t | dt| t | dj |q(|\}t|tjdD]t}|||}||}|||||}|t |d|t | dt| t | dj d|qdSr)rQrrrrrrrrrrrrrRrrrr"_test_recursive_tuple_and_dict_key_s*       z6AbstractPickleTests._test_recursive_tuple_and_dict_keycCs|tdSr)rrbr)rrr!test_recursive_tuple_and_dict_key{sz5AbstractPickleTests.test_recursive_tuple_and_dict_keycCs|jtdddSr)rrr)rrr*test_recursive_tuple_and_dict_subclass_key~sz>AbstractPickleTests.test_recursive_tuple_and_dict_subclass_keycCs|jtddddS)NcSs|jSrrr rrrrrIzLAbstractPickleTests.test_recursive_tuple_and_dict_like_key..r)rrr)rrr&test_recursive_tuple_and_dict_like_keysz:AbstractPickleTests.test_recursive_tuple_and_dict_like_keycCst}|t|tdtjdD]`}|||}||}||t| t |d|t |dt| t |dj |q$|\}tdtjdD]\}|||}||}||t||j t| t |j d| t |j d|qdS)Nrrr)raddrQrrrrrrrrrrrRr&rrrr!rrrtest_recursive_sets"      z&AbstractPickleTests.test_recursive_setcCs^t}||_tD]H}|||}||}||t|t|t|||j|qdSr) rOattrrrrrrdirr)r&irrr!rrrtest_recursive_insts   z'AbstractPickleTests.test_recursive_instcCsg}d|i}t}||_||tD]}|||}||}||t|t |d|t |dt ||t|dj dg| |djd|q&dSr) rOrrrrrrrrrrrr)r&rrrrrr!rrrtest_recursive_multis    z(AbstractPickleTests.test_recursive_multicCst}||g|_t|j}tD]f}|||}||}||j||t|jd|t |jdt| t |jd|q |j}tD]`}|||}||}||||t|d|t |dt| t |dj|qdSr) rOrr_rrrrrrrr)r&factoryorkrrr!rrr#_test_recursive_collection_and_insts$       z7AbstractPickleTests._test_recursive_collection_and_instcCs|tdSr)rrr)rrrtest_recursive_list_and_instsz0AbstractPickleTests.test_recursive_list_and_instcCs|tdSr)rrr)rrrtest_recursive_tuple_and_instsz1AbstractPickleTests.test_recursive_tuple_and_instcCs|tjdSr)rrbfromkeysr)rrrtest_recursive_dict_and_instsz0AbstractPickleTests.test_recursive_dict_and_instcCs|tdSr)rrr)rrrtest_recursive_set_and_instsz/AbstractPickleTests.test_recursive_set_and_instcCs|tdSr)r frozensetr)rrr!test_recursive_frozenset_and_instsz5AbstractPickleTests.test_recursive_frozenset_and_instcCs|tdSr)rrr)rrr%test_recursive_list_subclass_and_instsz9AbstractPickleTests.test_recursive_list_subclass_and_instcCs|tdSr)rMyTupler)rrr&test_recursive_tuple_subclass_and_instsz:AbstractPickleTests.test_recursive_tuple_subclass_and_instcCs|tjdSr)rrrr)rrr%test_recursive_dict_subclass_and_instsz9AbstractPickleTests.test_recursive_dict_subclass_and_instcCs|tdSr)rMySetr)rrr$test_recursive_set_subclass_and_instsz8AbstractPickleTests.test_recursive_set_subclass_and_instcCs|tdSr)r MyFrozenSetr)rrr*test_recursive_frozenset_subclass_and_instsz>AbstractPickleTests.test_recursive_frozenset_subclass_and_instcCsJt}||_tD]4}|||}||}||t||j|qdSr) REX_statestaterrrrrrrrrtest_recursive_inst_states   z-AbstractPickleTests.test_recursive_inst_statecCstf}||d_tD]X}|||}||}||t|t|d||dt| |dj|q|\}tD]X}|||}||}||t||jt|t|jd| |jd|qzdSr<) rrrrrrrrrr)r&rkrrr!rrr#test_recursive_tuple_and_inst_states"       z7AbstractPickleTests.test_recursive_tuple_and_inst_statecCsBgd}tD]0}|D]&}|||}||}|||qq dS)N)rz<\u>u<\ሴ>z< >z<\>u<\𒍅>u<>rrrr)r&ZendcasesrurZu2rrr test_unicode s   z AbstractPickleTests.test_unicodecCs4d}tD]&}|||}||}|||qdS)Nu𒍅r)r&rkrrr}rrrtest_unicode_high_planes   z+AbstractPickleTests.test_unicode_high_planecCstD]}dD]"}|||}||||q ddtdDD]"}|||}||||qBddtdDD]"}|||}||||qxqdS)NrIxyzs,xyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzcSsg|]}t|gqSrrlrorrrrrp"rIz2AbstractPickleTests.test_bytes..cSsg|]}t||gqSrrrrrrrp%rI)rrrrr)r&rrrrrr test_bytess   zAbstractPickleTests.test_bytescCstD]}dD]}t|}|||}||}|||||||dkrn|d||tt j |q |dkr|d||tt j |q |dkr | d||tt j |q qdS)Nrrs bytearrayrrh)rrrrrrassertIn assertTruerrZGLOBALZ STACK_GLOBAL assertNotIn BYTEARRAY8)r&rrr[rZbbrrrtest_bytearray)s        z"AbstractPickleTests.test_bytearraycCsTtD]J}tj}|r| |fD]&}|||}||}|||q|d?}qqdSr)rrtmaxsizerrr)r&rrrrZn2rrr test_ints<s  zAbstractPickleTests.test_intsc CstD]`}dD]V}d|>}|d||dfD]6}|| fD]&}|||}||}|||q8q*q qtdd}||d>7}|| fD]6}||d}||}|t|t|||qdS)N)riiirZdeadbeeffeedfacei@Br)rrrrintrr_r) r&rZnbitsZnbaseZnposrrrrrrr test_longFs      zAbstractPickleTests.test_longcCsTgd}|dd|D}tD]0}|D]&}|||}||}|||q&qdS)N) ggg+phgZ*)g_D 9g?g?gQ @gm"wp@gWTDgꌠ9Y>)FcSsg|] }| qSrrrnrrrrp`rIz2AbstractPickleTests.test_float..r)r&Z test_valuesrrRrrrrr test_float]s  zAbstractPickleTests.test_floatLC_ALLZde_DEZfr_FRcCs ||ddddddS)Ng333333?rrsF1.)rrr)rrrtest_float_formatgsz%AbstractPickleTests.test_float_formatcCs6tD],}t}|||}||}||tqdSr)rAAArrrREDUCE_Ar&rinstrrrrr test_reducels   zAbstractPickleTests.test_reducecCs:tD]0}tdd}|||}||}|||qdS)Nrr)rrXrrrrrrrtest_getinitargsss    z$AbstractPickleTests.test_getinitargscCs:t}tD]*}|||}||}||j|jq dSr)r]rrrrrsr&rZrrr[rrrtest_metaclasszs   z"AbstractPickleTests.test_metaclasscCs^tdtf}tttjtD]:}|||}||}| ||| t |t |qdS)NZmy_dynamic_class) rarr=rr^rSrrrrrr_rrrrtest_dynamic_classs    z&AbstractPickleTests.test_dynamic_classcCsddl}ddl}|}tD]}|||}||}|||||j}|||}||}|||t |dr| |j}|||}||}|||qdS)Nrstatvfs) timerq localtimerrrrstatcurdirrr)r&rrqrkrrrrrrtest_structseqs            z"AbstractPickleTests.test_structseqcCs0tD]&}|d|}||}|d|qdSN.)rrrrr&rrrrrr test_ellipsiss  z!AbstractPickleTests.test_ellipsiscCs0tD]&}|t|}||}|t|qdSr)rrrrrrrrrtest_notimplementeds  z'AbstractPickleTests.test_notimplementedcCsLddtg}|D]8}tD].}|t||}||}|t||qqdSr)rrrr_rr)r&Z singletonsZ singletonrrrrrrtest_singleton_typess   z(AbstractPickleTests.test_singleton_typesc CstD]N}|d|}|dkr>tjt|g}|||q|ttj|dqtdd}tj tj }tjt|g|}z| |Wn4t y}z| dt|WYd}~nd}~00|ddS)Nrrrrzunsupported pickle protocolz0expected bad protocol number to raise ValueError)rrrPROTOrlr startswithrrNONErrrrrWZfail)r&rr Z proto_headerZoobZ build_noneZ badpickleerrrrr test_protos   &zAbstractPickleTests.test_protocCsLd}tD]>}|||}||}||||ttj||dkqdS)NUJ^w,3| r)rrrrrrrZLONG1r&r!rrrrrr test_long1s    zAbstractPickleTests.test_long1cCsPdd>}tD]>}|||}||}||||ttj||dkq dS)Nrrr)rrrrrrrZLONG4rrrr test_long4s    zAbstractPickleTests.test_long4c Cstjtjtjtjtjtjtjtjtjtjtjtjtjtjtjtjtjtjtjtjd}d}d}d}d}d}tD]`}|||||fD]L}|||} || } | || |t |dt |f} | t | | qqndS)N))rr)rr)rr)rr)rr)rr)rrrr)rrrr)rrrr)rr)rr)rr)rr)rr)rr)rrrrr)rrrrr)rrrrr)rZTUPLEZ EMPTY_TUPLEZTUPLE1ZTUPLE2ZTUPLE3rrrrminrrr) r&expected_opcoderZr[rrerr!rrrrrrtest_short_tuplessB   z%AbstractPickleTests.test_short_tuplesc Cstjtjtjtjtjtjtjtjtjtjtjtjd }tD]^}dD]T}|||}||}|||u||||f|t |d|f}|t ||qBq:dS)N) )rN)rN)rN)rN)rT)rT)rT)rT)rF)rF)rF)rF)NFTr) rr ZINTZNEWTRUEZNEWFALSErrrrrr)r&rrr!rrrrrrtest_singletonss(  z#AbstractPickleTests.test_singletonscCsHtgd}d|_d|_tD]&}|||}||}|||qdSNrrhello)rrrrrrrrrrrtest_newobj_tuples   z%AbstractPickleTests.test_newobj_tuplecCsHtgd}d|_d|_tD]&}|||}||}|||qdSr)rrrrrrrrrrrtest_newobj_list s   z$AbstractPickleTests.test_newobj_listc CstD]}tD]x}|j}||j}d|_|||}||}|||||t|f}|||| |||||| |j |j |q qdSNr) r myclasses__base__samplerrrr_rrrE)r&rrDBr!rrdetailrrrtest_newobj_generic)s    z'AbstractPickleTests.test_newobj_genericc Cstdd}ttfD]}||qtD]}|D]}|j}||j}d|_t |}| ||}| |} | t | t |||||| t | f} | |||| | | |j| j| q0q(dSr")r#MyIntrrwrr$r%rweakrefproxyrrrr_rE) r&classesrrrDr&r!rrrr'rrrtest_newobj_proxies6s       z'AbstractPickleTests.test_newobj_proxiescCs`tD]V}td}d|_|||}||}|t|t|t|d||jdqdS)Nrr) r MyIntWithNew2rrrrr_rrrrrrtest_newobj_overridden_newIs  z.AbstractPickleTests.test_newobj_overridden_newcCsHt}tt}||d}z"da|ttjf|j|W|an|a0dS)Nrr) SimpleNewObjrrrr(rrr)r&Zsaverr[rrrtest_newobj_not_classTs  z)AbstractPickleTests.test_newobj_not_classcCst|}zttd|tgd}d|_d|_||d}|t d||d|| t ||| |}| ||||d}|t d||d||t ||d t|| |}| ||W|n |0dS) NrrrrrresMyListrT)r;r=rBr0rrrrrr assertFalserrrrrreprrC)r&Zextcodeopcoderr!s1rs2rrrproduce_global_extds&        z&AbstractPickleTests.produce_global_extcCs |dtj|dtjdS)Nrr)r7rZEXT1r)rrrtest_global_ext1sz$AbstractPickleTests.test_global_ext1cCs.|dtj|dtj|dtjdS)Nrriͫ)r7rZEXT2r)rrrtest_global_ext2sz$AbstractPickleTests.test_global_ext2cCs.|dtj|dtj|dtjdS)Nriͫ)r7rZEXT4r)rrrtest_global_ext4sz$AbstractPickleTests.test_global_ext4cCsd}tt|}tD]B}|||}||}|||ttj|}| ||dkqd}tt|}tD]V}|||}||}|||ttj|}|dkr| |dql| |dkqldSN r r) rrrrrrrrAPPENDSrr)r&rr!rrrZ num_appendsrrrtest_list_chunkings$          z&AbstractPickleTests.test_list_chunkingcCsd}tt|}tD]N}|||}||t||}|||t t j |}| ||dkqd}tt|}tD]V}|||}||}|||t t j |}|dkr| |dq|| |dkq|dSr<)rbrrrrrrrrrrSETITEMSrr)r&rr!rrrZ num_setitemsrrrtest_dict_chunkings&         z&AbstractPickleTests.test_dict_chunkingcCsd}tt|}tD]T}|||}||}|||ttj|}|dkr\| |dq| |dqd}tt|}tD]T}|||}||}|||ttj|}|dkr| |dq~| |dq~dS)Nr=rrrr>r) rrrrrrrrZADDITEMSrassertGreaterEqual)r&rr!rrrZ num_additemsrrrtest_set_chunkings(          z%AbstractPickleTests.test_set_chunkingc Csttd}d|_tD]}|j|d~|||}|dkrJ|d|n |d||tt j |d|k| tt j || |}|||Wdq1s0YqdS)Nrr I64206Mr)r0rrrrrrrrrNEWOBJr2 NEWOBJ_EXrrrrrrtest_simple_newobjs    z&AbstractPickleTests.test_simple_newobjc Csttd}d|_tD]}|j|d|||}|dkrJ|d|n8|dkr`|d|n"|dkrv|d |n |d ||tt j |d|k| tt j || |}|||Wdq1s0YqdS NrErFrGrrHrrIrs XFACEsFACE) ComplexNewObjrrrrrrrrrrJr2rKrrrrrrtest_complex_newobjs$    z'AbstractPickleTests.test_complex_newobjc Csttd}d|_tD]}|j|d|||}|dkrJ|d|n8|dkr`|d|n"|dkrv|d |n |d ||tt j || tt j |d|k| |}|||Wdq1s0YqdSrM)ComplexNewObjExrrrrrrr2rrrJrrKrrrrrrtest_complex_newobj_exs$    z*AbstractPickleTests.test_complex_newobj_excCs>tgd}d|_d|_||d}||}|||dS)Nrrrr)SlotListrrrrr)r&r!rrrrrtest_newobj_list_slots s    z*AbstractPickleTests.test_newobj_list_slotscCsTtD]J}t}||jd|||}||jd||}||jdqdSr<)rREX_oner_reduce_calledrrrrrr'test_reduce_overrides_default_reduce_ex s  z;AbstractPickleTests.test_reduce_overrides_default_reduce_excCsTtD]J}t}||jd|||}||j|||}||jdqdSr)rREX_twor_protorrrrrrtest_reduce_ex_called s  z)AbstractPickleTests.test_reduce_ex_calledcCsTtD]J}t}||jd|||}||j|||}||jdqdSr)r REX_threerrXrrrrrrtest_reduce_ex_overrides_reduce& s  z3AbstractPickleTests.test_reduce_ex_overrides_reducecCsTtD]J}t}||jd|||}||j|||}||j|qdSr)rREX_fourrrXrrrrrrtest_reduce_ex_calls_base/ s  z-AbstractPickleTests.test_reduce_ex_calls_basecCsTtD]J}t}||jd|||}||jd||}||jdqdSr<)rREX_fiverrUrrrrrrtest_reduce_calls_base8 s  z*AbstractPickleTests.test_reduce_calls_basec CsNt}tD]>}t"|t|j||Wdq 1s>0Yq dSr) BadGetattrrrZinfinite_recursionr RuntimeErrorr)r&r!rrrrtest_bad_getattrA s z$AbstractPickleTests.test_bad_getattrc Cs~Gdddt}Gdddt}tD]T}z|||WntjyNYn0z|||Wq$tjyvYq$0q$dS)Nc@seZdZddZdS)z7AbstractPickleTests.test_reduce_bad_iterator..CcSstddgdfSrM)rr)rrrrSM szBAbstractPickleTests.test_reduce_bad_iterator..C.__reduce__Nr0r1r2rSrrrrrDL srDc@seZdZddZdS)z7AbstractPickleTests.test_reduce_bad_iterator..DcSstdddgfSrM)rbr)rrrrSQ szBAbstractPickleTests.test_reduce_bad_iterator..D.__reduce__NrcrrrrrIP srI)rrrr PicklingError)r&rDrIrrrrtest_reduce_bad_iteratorI sz,AbstractPickleTests.test_reduce_bad_iteratorc CsddtdD}tdd|D}t|t|t|g}tD]R}|j|d2|||}||}|||Wdq>1s0Yq>dS)Ncss|]}dt|VqdS)ZaaaNrVrrrr c rIz>AbstractPickleTests.test_many_puts_and_gets..rcss|]}|gdfVqdS))rrhr Nr)rokrrrrfd rIrG)rrbrrrrr)r&rZ large_dictrwrrrrrrtest_many_puts_and_gets` s  z+AbstractPickleTests.test_many_puts_and_getsc CsjtD]`}t}d|_d|_|||}||}t|j}t|j}t||D]\}}| ||qNqdS)Nrr) rrDrrrrsortedrEzipr) r&rr!rrZx_keysZy_keysZx_keyZy_keyrrrtest_attribute_name_interningm s    z1AbstractPickleTests.test_attribute_name_interningcCs>|tdd}||t|tdgd}||tdS)Nrhrr)rrrrr DATA_SET2rrrrtest_pickle_to_2x{ s z%AbstractPickleTests.test_pickle_to_2xcCsTtD]J}dtddtf}|||}||}|t|t||||qdS)Nrsxyix)rrrrrr)r&rrrrrrrtest_large_pickles s   z&AbstractPickleTests.test_large_picklesc stD]jdjfddtdD}ttt|}t||dkrp|D]}t t j |qXWdq1s0YqdS)NrGcsg|]}d|qSrr)rorrr&rrrp rIzDAbstractPickleTests.test_int_pickling_efficiency..Fr) rrrrmaprrrir2rrZLONG)r&ZpicklesZsizesrrrqrtest_int_pickling_efficiency sz0AbstractPickleTests.test_int_pickling_efficiencycCs6|||}|t||||}|||dSr)rrrrr)r&rwr4rr r rrr_check_pickling_with_opcode s  z/AbstractPickleTests._check_pickling_with_opcodecCsDtgd}tD].}|dkr.||tj|q||tj|qdS)Nrr)rrrurZAPPENDr?r&rwrrrrtest_appends_on_non_lists s  z-AbstractPickleTests.test_appends_on_non_listscCsHtdddd}tD].}|dkr2||tj|q||tj|qdS)Nrrr)rrrurZSETITEMrArvrrrtest_setitems_on_non_dicts s z.AbstractPickleTests.test_setitems_on_non_dictsrr:cCs6d}}hd}t|D]\}}}|durD|||||krDd}|durx||jd|j|vr|t||jnX|jdks|j|vrt||jkr|dur||||jd}n|dur|jdkr|}|jdkr| ||j|d|}qt|}|dur| ||n|dur2||||jdS)a Check the arguments of FRAME opcodes in a protocol 4+ pickle. Note that binary objects that are larger than FRAME_SIZE_TARGET are not framed by default and are therefore considered a frame by themselves in the following consistency check. N> BINUNICODE BINUNICODE8rBINBYTES BINBYTES8FRAMEr  ) rrassertLessEqualassertNotEqualrcrFRAME_SIZE_TARGET assertLessFRAME_SIZE_MINrCr)r&r Z frame_endZframeless_startZframeless_opcodesrrJposrrrcheck_frame_opcodes s>        z'AbstractPickleTests.check_frame_opcodesc Csttd}tdtjdD]}|j|dt|||}||}|||t|t tj |}| ||j d| ||j d||Wdq1s0YqdS)NirrrGr)rrrrrrrrrrr assertGreaterrrr)r&rwrr r Zbytes_per_framerrrtest_framing_many_objects s      z-AbstractPickleTests.test_framing_many_objectsc Cs8d}ddtdD}d|g|d|d|}tdtjd D]}d D]}|j||d |sr|||}nFt|d sWdqLt}|j||d }||_ | || }| |} | dd|Ddd| D| || ttj|} | | d ||WdqL1s&0YqLqDdS)NicSsg|] }|gqSrrrrrrrp rIzBAbstractPickleTests.test_framing_large_objects..r=xyzrr)FT)rfastpicklerrncSsg|] }t|qSrrrnrrrrp rIcSsg|] }t|qSrrrnrrrrp rI)rrrrrrr,r4rrdumpr5rrrrr) r&NZ small_itemsrwrrr Zbufrr n_framesrrrtest_framing_large_objects s.       z.AbstractPickleTests.test_framing_large_objectscstjdkrdSd dd}|jd}ttfD]fddt|D}tdtjdD]z}|||}||}|ttj |d||| |||d d }| ttj |ttj |||| |qVq*dS) Nrc Ssg}d}t|D]\}}}|jdkr||qt}d}t|D].\} }|rZ|| rZqD||||7}||}qD|||d7}|S)z+Remove frame opcodes from the given pickle.rrrN)rrrcrr enumerate) r Z keep_frameZ frame_startsZframe_opcode_sizer4_rZ newpickleZlast_frame_endrrrr remove_frames s    z?AbstractPickleTests.test_optional_frames..remove_framescsi|]}||gqSrrrZ bytes_typeZ frame_sizerr 2 rIz.rrcSs|dS)Nrr)rrrrr; rIz:AbstractPickleTests.test_optional_frames..)N) rrrrlrrrrrrrr)r&rZ num_framesrwrr Zframeless_pickleZsome_frames_picklerrrtest_optional_frames s"     z(AbstractPickleTests.test_optional_framesc sGddd}tdtjdD]Z}ddttdD}|djd d|}||||} |} || t |j d~t ||t |djd}t |j |t |j d |d d d|j D}fd d|D} fdd|D} dd|D} | D]} | d j|q<t | t | t | d |qdS)Nc@s(eZdZdZddZddZddZdS) zYAbstractPickleTests.test_framed_write_sizes_with_delayed_writer..ChunkAccumulatorz2Accumulate pickler output in a list of raw chunks.cSs g|_dSr)chunksr)rrrr9D szbAbstractPickleTests.test_framed_write_sizes_with_delayed_writer..ChunkAccumulator.__init__cSs|j|dSr)rr)r&chunkrrrr8F sz_AbstractPickleTests.test_framed_write_sizes_with_delayed_writer..ChunkAccumulator.writecSs d|jS)NrI)ryrr)rrrconcatenate_chunksH szlAbstractPickleTests.test_framed_write_sizes_with_delayed_writer..ChunkAccumulator.concatenate_chunksN)r0r1r2r:r9r8rrrrrChunkAccumulatorB srrrcSs,g|]$}t|d|ddt|ifqS)rrr)rWrrrrrrpL szSAbstractPickleTests.test_framed_write_sizes_with_delayed_writer..g@Z0123456789abcdefrrrcSsg|] }t|qSrr)rorrrrrpp rIcsg|]}|jkr|qSrrrorr)rrrpq s cs*g|]"}d|krjkrnq|qSrrrr)rrrps scSsg|]}|dkr|qSrrrrrrrpu rI)rrrrrrrrrrrrrrrZ gc_collectrCrr) r&rrZobjectswriterr Z reconstructedrZ chunk_sizesZ large_sizesZ medium_sizesZ small_sizesZ chunk_sizerr)r+test_framed_write_sizes_with_delayed_writer@ s@      z?AbstractPickleTests.test_framed_write_sizes_with_delayed_writerc CsGdddattjdD]l}tjtjjtjjjfD]P}|j||d.|| ||}| ||Wdq61s|0Yq6qdS)Nc@seZdZGdddZdS)Nestedc@seZdZGdddZdS)zNested.Ac@seZdZGdddZdS)z Nested.A.Bc@s eZdZdS)z Nested.A.B.CNrPrrrrrD srDN)r0r1r2rDrrrrr& sr&N)r0r1r2r&rrrrA srN)r0r1r2rrrrrr srr)rrw) rrrrrr&rDrrrr)r&rrwr rrrtest_nested_names s z%AbstractPickleTests.test_nested_namesc CsGdddatjtjt_dt_ttjdD]N}|j |d.| | t|}| |tWdq01st0Yq0t`dS)Nc@s eZdZdS) RecursiveNrPrrrrr srzRecursive.mod.RecursiverrG) rrtmodulesr1modr2rrrrrrr)r&rr rrrtest_recursive_nested_names s,z/AbstractPickleTests.test_recursive_nested_namesc Cs(Gdddatjtjtjtjjtjjtjf}tjtftjjtjff}tt j dD]}|D]T}|j ||d2| | ||}|||Wdqb1s0Yqb|D]d\}}|}|j ||d6| | ||}|||||Wdq1s0YqqZdS)Nc@s:eZdZeddZeddZddZGdddZd S) PyMethodsTestcSsdS)Ncheeserrrrrr szPyMethodsTest.cheesecSs|tus JdS)Nwine)rryrrrr s zPyMethodsTest.winecSst|tsJdS)Nbiscuits)rrr)rrrr szPyMethodsTest.biscuitsc@s0eZdZdZeddZeddZddZdS) zPyMethodsTest.Nestedz Nested classcSsdS)Nketchuprrrrrr szPyMethodsTest.Nested.ketchupcSs|tjusJdS)Nmaple)rrrrrrr szPyMethodsTest.Nested.maplecSst|tjsJdS)Npie)rrrr)rrrr szPyMethodsTest.Nested.pieN) r0r1r2r: staticmethodrrrrrrrrr s   rN) r0r1r2rrrrrrrrrrr s   rrrmethod)rrrrrrrrrrrrrrr)r&Z py_methodsZpy_unbound_methodsrrr ryrwrrrtest_py_methods s*  0 z#AbstractPickleTests.test_py_methodscCs,Gdddtadjdftjdfgdjdftjgdffdd hjd ftjdd hd fftj d ft j d ftgd j d ftj tgd d fft dj dftj j t ddfff }ttjdD]h}|D]^\}}|j||d6||||}|||||Wdq1s0YqqdS)Nc@seZdZGdddeZdS)Subclassc@s eZdZdS)zSubclass.NestedNrPrrrrr srN)r0r1r2rWrrrrrr srabcd)r)rrrrrrro))rZr)r[r)sabcr)rrrZsweet)rrr)rrindexrW__len__r __contains__rrbrr maketranscountrrrrrrrr)r&Z c_methodsrrr'r rrrtest_c_methods s&   z"AbstractPickleTests.test_c_methodsc Cstddddfttdddftjddftjd d ftd d ft d d ft ddft ddfg}|D]\}}}tdD]t}|j t ||dN|||}|d||f||t ||t |Wdqx1s0YqxqfdS)NrrZ __builtin__ZxrangeZ123 itertoolsZimapr"r$ exceptionsrr&ZIterableUserDictUserListr% defaultdictr)r_rzc%s %s)rrsrr!r"r#r$rr%r&rrrr_rrrrr)r&Ztestsvalrrcrr rrrtest_compat_pickle s         z&AbstractPickleTests.test_compat_picklec Cs"dd}tdtjdD]F}|ttjf"t|||Wdq1sT0Yq|` tdtjdD]F}|ttjf"t|||Wdqt1s0Yqt|j |_ tdtjdD]H}|ttjf"t|||Wdq1s0YqdS)NcSsdSrrrrrrr{ sz6AbstractPickleTests.test_local_lookup_error..frr) rrrrAttributeErrorrdrrrr1r2r0r&r{rrrrtest_local_lookup_error s22z+AbstractPickleTests.test_local_lookup_errorccsd}t|Vt|Vtdurt|}tj|dd}dtjfD]>}t|dd|dVt|ddd |d Vt|ddd |d Vq@dS) Nabcdefghlittle) byteorderrr&)r)rrrr)rrr)rrrrrr)rfrrrr from_bytesrr)r&Z bytestringrrRrrrrbuffer_like_objects s"  z'AbstractPickleTests.buffer_like_objectscCs|D]}tdtjdD]}|||}|jrF|dkrF|d||ttj |d|dkr|ttj ||j rzdnd|ttj ||j rdnddd}|j|||d}|||| |}||||t|t||||qqdS)NrrrhrcSsdSNTrrwrrrbuffer_callback> szAAbstractPickleTests.test_in_band_buffers..buffer_callbackr)rrrrrr}rrr NEXT_BUFFERSHORT_BINBYTESr|rrrrr_)r&rwrrrdata2rrrrtest_in_band_buffers. s,        z(AbstractPickleTests.test_in_band_buffersc s|D]}tddD]@}|t"|j||gjdWdq1sN0YqtdtjdD]j}gfdd}|j|||d}|d|| t tj |d| t tj |d| t tj |d| t tj||jrdnd|jr| tdd|tj||Wdn1s@0Y|j|d}|jrn|||n |t|t|| |||j|td}|jr|||qj|t|t|| ||qjqdS) Nrrhrrcs|Sr)rr)rbuffersrrrW rIz6AbstractPickleTests.test_oob_buffers..rr)rrrrrrrrrrrrrrZREADONLY_BUFFERr|r}rlrrrrr_iter)r&rwrrrrrrrtest_oob_buffersM sB &   * z$AbstractPickleTests.test_oob_bufferscCsttd}tdtjdD]V}g}|j}|j|||d}tt|}|j||d}| t |t || ||qdSNfoobarrhrrr) rfrrrrrrsrrrr_r)r&rwrrrrrrrr%test_oob_buffers_writable_to_readonlyw s z9AbstractPickleTests.test_oob_buffers_writable_to_readonlyc CsVtd}tddD]<}|tj|||Wdq1sF0YqdS)Nrrrh)rrkrrZ PickleErrorr)r&rrrrrtest_picklebuffer_error s z+AbstractPickleTests.test_picklebuffer_errorcCsPdd}td}|t |j|d|dWdn1sB0YdS)NcSs dddSrrrrrrr szGAbstractPickleTests.test_buffer_callback_error..buffer_callbackrrhr)rrkrZeroDivisionErrorr)r&rrrrrtest_buffer_callback_error s  z.AbstractPickleTests.test_buffer_callback_errorc Cstd}tdtjdD]}|j||gjd}|t |j|t dWdn1s`0Y|tj |j|gdWdq1s0YqdSr) rrkrrrrrr(rrr)r&rrrrrrtest_buffers_error s  .z&AbstractPickleTests.test_buffers_errorcCs8tdtjdD]"}|jd|dd}|j|dd}qdS)Nrhrrr)rrrrr)r&rZ data_pickledrrrr+test_inband_accept_default_buffers_argument sz?AbstractPickleTests.test_inband_accept_default_buffers_argumentNzTest needs Numpycsfddfddfdd}td}||||dddtd d }||||j||ddddS) Ncs&tj|||jj|jjdSr)nptesting assert_equalrctypesrr!rr)rr check_no_copy sz=AbstractPickleTests.test_buffers_numpy..check_no_copycs&tj|||jj|jjdSr)rrrrrrrr)rr check_copy sz:AbstractPickleTests.test_buffers_numpy..check_copycstdtjdD]$}||}|}||qtdtjdD]0}dd}j|||d}|}||qFtdtjdD]R}g}|j}j|||d}j||d}|jjs|jjrЈ||q||qdS)NrrrhcSsdSrr)rrrrr rIzMAbstractPickleTests.test_buffers_numpy..check_array..rr) rrrrrrrr}r~)arrrrrrrrrr&rr check_array s"      z;AbstractPickleTests.test_buffers_numpy..check_arrayr r r)rZarangeZreshapeT)r&rrrrrtest_buffers_numpy s    z&AbstractPickleTests.test_buffers_numpy)r0r1r2Z optimizedrrrrrrrr"rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr r rrrrrr r!r(r-r/r1r7r8r9r;r@rBrDrLrOrQrSrVrYr[r]r_rrbrerhrkrmrnrtrurwrzrrrrZskip_if_pgo_taskrrrrrrrrrrrrrrrrrrunittestZskipIfrrrrrrrs             '                /  * A  1#*  rc@szeZdZeedddddZeedddddZeedddd d Zeed ddd d Z eed ddddZ dS)BigmemPickleTestsg @F)sizeZmemuseZdry_runc Csdd|>}ztD]v}|dkr q|j|dL|ttf|j||dWdn1s`0YWdq1s~0YqWd}nd}0dS)NrrrrGr)rrrrrr)r&rrrrrrtest_huge_long_32b s Nz$BigmemPickleTests.test_huge_long_32bg@c Csd|d}ztD]}|dkr q|j|djzR|j||d}tjtdt|}||}| |||t||Wd}nd}0Wdq1s0YqWd}nd}0dS)NabcdrrrGrr) rrrrr}rrrrrr&rrrr headerZ data_startrrrtest_huge_bytes_32b s$  .z%BigmemPickleTests.test_huge_bytes_32bc Cs d|d}ztD]}|dkr q|j|d|dkr|ttf|j||dWdn1sh0YWdqzR|j||d}tjt dt |}| |}| |||t ||Wd}nd}0Wdq1s0YqWd}nd}0dS)NsacbdrrrGr.BadPicklercSsdSrrr)rrrr9 rIzDAbstractPickleModuleTests.test_bad_init..BadPickler.__init__NrKrrrr BadPickler sr&c@seZdZddZdS)z=AbstractPickleModuleTests.test_bad_init..BadUnpicklercSsdSrrr)rrrr9 rIzFAbstractPickleModuleTests.test_bad_init..BadUnpickler.__init__NrKrrrr BadUnpickler sr'r)r!Z Unpicklerrrrdrrr)r&r&r'rrr test_bad_init sz'AbstractPickleModuleTests.test_bad_initc Cstd}tddD]>}|t |||gjdWdq1sF0YqtdtjdD]}g}|j}||||d}|d||t |dd|tj ||Wdn1s0Y|||d}| ||qbdS)Nsfoorrh)rnrrr) rfrrrrrrrrrlrr) r&rrrwrrrrrrrrcheck_dumps_loads_oob_buffers" s$ & & z7AbstractPickleModuleTests.check_dumps_loads_oob_bufferscCs||j|jdSr)r)rrr)rrrtest_dumps_loads_oob_buffers: sz6AbstractPickleModuleTests.test_dumps_loads_oob_bufferscs(fdd}fdd}||dS)Ncs$t}j||fi||Sr)r,r4rr5)rwrr{r)rrr@ szCAbstractPickleModuleTests.test_dump_load_oob_buffers..dumpscst|}j|fi|Sr)r,r4r)rrr{r)rrrE s zCAbstractPickleModuleTests.test_dump_load_oob_buffers..loads)r))r&rrrr)rtest_dump_load_oob_buffers> s  z4AbstractPickleModuleTests.test_dump_load_oob_buffersN)r0r1r2rrrrr"r$r%r(r)r*r+rrrrr s   rc@s$eZdZddZddZddZdS)AbstractPersistentPicklerTestscCsNt|tr,|ddkr,|jd7_t|S|dkrF|jd7_dSdSdS)Nrrrtest_false_valuer)rrid_countrW false_count)r&rrrr persistent_idR sz,AbstractPersistentPicklerTests.persistent_idcCsD|s|jd7_dS|jd7_t|}|ddks)r,r4r<rr5memor)r&rr{rrBprimedprimed_pickledrrrtest_priming_pickler_memo s    z=AbstractPicklerUnpicklerObjectTests.test_priming_pickler_memoc Csgd}t}||}|||}t}||}|j|_|||}|t|}|}||||t|}|j|_|} |j || || | |udSrD) r,r4r<rr5rEr=rrclearr) r&rr{rrBrFrG unpicklerZunpickled_data1Zunpickled_data2rrrtest_priming_unpickler_memo s&       z?AbstractPicklerUnpicklerObjectTests.test_priming_unpickler_memocCsgd}t}||}|||}gd}t}||}|||}t}|||d||}|| ||d| |||d|| |dS)Nr>)r?r@r@r) r,r4r<rr5r8r.r=rrrA)r&data1r{rZpickled1rZpickled2rJrrrtest_reusing_unpickler_objects s(          zBAbstractPicklerUnpicklerObjectTests.test_reusing_unpickler_objectsTr*c CstD]}|j|dddtdDdtg}|}|j||d}|||}d}|||}||} t|D]<} |r|} | | ||rx| || t|qx| t | j Wdq1s0YqdS)NrGcSsg|]}|t|fqSrrVrnrrrrprIzSAbstractPicklerUnpicklerObjectTests._check_multiple_unpicklings..isabcderrh) rrrrr<rr5r=r/rrrrb) r&Zioclassr*rrLr{rr rrJrrrrr_check_multiple_unpicklingss"    z?AbstractPicklerUnpicklerObjectTests._check_multiple_unpicklingscCs|tjdSr)rOr,r4r)rrr"test_multiple_unpicklings_seekableszFAbstractPicklerUnpicklerObjectTests.test_multiple_unpicklings_seekablecCs|jtdddSNFrN)rOr#r)rrr$test_multiple_unpicklings_unseekableszHAbstractPicklerUnpicklerObjectTests.test_multiple_unpicklings_unseekablecCs|jtdddSrQ)rOr3r)rrr!test_multiple_unpicklings_minimalszEAbstractPicklerUnpicklerObjectTests.test_multiple_unpicklings_minimalcCsxttd}tD]b}tddD]R}tjt|d}|j||d}|||d| |}| | |qqdS)Nr=r )Z buffer_sizerr) rrrr,BufferedRandomr4r<rr.r=rr)r&rrZbuf_sizer{rrJrrr"test_unpickling_buffering_readline"s    zFAbstractPicklerUnpicklerObjectTests.test_unpickling_buffering_readline)r0r1r2r<r=rrCrHrKrMrOrPrRrSrVrrrrr; s r;Zreduce_Ac@seZdZddZdS)rcCs ttffSr)rWrr)rrrrS5szAAA.__reduce__Nrcrrrrr4src@seZdZddZddZdS)BBBcCs d|_dS)Nzsome attributerZr)rrrr99sz BBB.__init__cCs d|_dS)NBBB.__setstate__rXrrrrr>srYN)r0r1r2r9rrrrrrW8srWcCs d|_dS)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_setterNrX)rwrrrr setstate_bbbBs r[c@seZdZdZddZdS)AbstractCustomPicklerClasszdd}dd}dd}Gddd}td tjd D]}|j|d t}|||}|||tj gt | \}} } | |d | | d | | tj |tj||Wdn1s0Y|td||Wdn1s0YWdq61s.0Yq6dS)NcSsdSrrrrrrr{msz.AbstractHookTests.test_pickler_hook..fcSsdSrrrrrrr_psz.AbstractHookTests.test_pickler_hook..gcSsdSrrrrrrr`ssz.AbstractHookTests.test_pickler_hook..hc@s eZdZdS)z4AbstractHookTests.test_pickler_hook..MyClassNrPrrrrr]vsr]rrrGrhr^ra)rrrrr,r4r<rmathlogrr5rrrrdZassertRaisesRegexr) r&r{r_r`r]rbiornew_fZsome_strZmath_logrrrtest_pickler_hookhs&   (z#AbstractHookTests.test_pickler_hookc CstdtjdD]}|j|djdd}t|}t}|||}| |t | }|dkslJ~~| |Wdq1s0YqdS)NrrrGcSsdSrrrrrrr{szEAbstractHookTests.test_reducer_override_no_reference_cycle..frh) rrrrr*refr,r4r<rrr5r)r&rr{Zwrrfrrgrrr(test_reducer_override_no_reference_cycles    z:AbstractHookTests.test_reducer_override_no_reference_cycleN)r0r1r2rhrZ cpython_onlyrjrrrrrcgs(rcc@s,eZdZddZddZddZddZd S) AbstractDispatchTableTestscCsXt}||d}|t|jWdn1s:0Y|t|ddS)Nrdispatch_table)r,r4r<rrrlr2r)r&r{rrrrtest_default_dispatch_tables   $z6AbstractDispatchTableTests.test_default_dispatch_tablecs@Gfdddjdfdd }|dS)NcseZdZZdS)zGAbstractDispatchTableTests.test_class_dispatch_table..MyPicklerN)r0r1r2rlr)dtrr MyPicklersrocs2t}||}|j|||Sr)r,r4rrlrr5rwrnr{rrornr&rrrs   zCAbstractDispatchTableTests.test_class_dispatch_table..dumps)N)get_dispatch_tabler<_test_dispatch_tabler&rrrqrtest_class_dispatch_tablesz4AbstractDispatchTableTests.test_class_dispatch_tablecs(dfdd }|dS)Ncs:t}||}|_|j|||Sr)r,r4r<rlrrr5rprnr&rrrs   zFAbstractDispatchTableTests.test_instance_dispatch_table..dumps)N)rrrsrtrrvrtest_instance_dispatch_tablesz7AbstractDispatchTableTests.test_instance_dispatch_tablec sfdd}dd}d}||||||||dfdd}||t<|||||||t}t}|||t|||t|||t|||t||t<|||t||||||t|||td fd d } | |t<|t=||||||t|||t|||t|||jd d d} | |t<|||jddS)Ncst|dSNr)rrrrprrcustom_load_dumpszIAbstractDispatchTableTests._test_dispatch_table..custom_load_dumpcSstt|dSrx)rrrrrrrdefault_load_dumpszJAbstractDispatchTableTests._test_dispatch_table..default_load_dumpy?@reduce_1cs tffSrrVr)REDUCE_1rrr{szAAbstractDispatchTableTests._test_dispatch_table..reduce_1reduce_2cs tffSrrVr)REDUCE_2rrr}szAAbstractDispatchTableTests._test_dispatch_table..reduce_2rYcSstd|jddtfSrM)rWrEr[rrrr reduce_bbb szCAbstractDispatchTableTests._test_dispatch_table..reduce_bbbrZ)rcomplexrrWrrrZ) r&rrlryrzrr{rZr[r}rr)r|r~rrrssB    z/AbstractDispatchTableTests._test_dispatch_tableN)r0r1r2rmrurwrsrrrrrksrkrz DATA{0} = (rz {0!r}rz# Disassembly of DATA{0}zDATA{0}_DIS = """\z""")r%r=r#r,r!rqrdrrrsrrtrzrr*textwraprZ http.cookiesrr ImportErrortestrZ test.supportrrrrr r r r r rrZnumpyrZ skipUnlessrrrrrrrr"r4r#rr3r;rDrIrLrOrQrTr1rrUrXr_r\r]r^rarlrfrrrrrrrrZ DATA2_DISrZ DATA3_DISrZ DATA4_DISrrrrlArithmeticErrorr rr BufferError BytesWarningDeprecationWarningrbEnvironmentErrorrFloatingPointError FutureWarning GeneratorExitIOError ImportWarningIndentationError IndexErrorKeyErrorKeyboardInterrupt LookupError MemoryError NameErrorr$OSErrorrPendingDeprecationWarningReferenceErrorraRuntimeWarning StopIteration SyntaxError SyntaxWarning SystemError SystemExitTabErrorr(UnboundLocalError UnicodeErrorUnicodeWarning UserWarningrWarningrrrrrrrrrTrWrZr\r^rrrr)floatrrrrWr r rrrrrbrrrrrr#r r.rRr0rNrPr`rr,r6r;rrrWr[r\rcrkr0rr!rrrrrrrjr[rrrrs      0 ,    NSA:: C0i<   k("  Bk