U .c,@szddlZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddl Z ddlZddlmZddlmZz ddlZWnek rdZYnXddlmZddlmZmZmZmZmZmZmZmZm Z m!Z!ddlm"Z"ze!ddl#Z$W5QRXWnek r6dZ$YnXe %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/eBZCGd0d1d1eDZEedk rGd2d3d3ZFd4ZGd5ZHd6ZId7ZJd8ZKd9ZLd:ZMd;ZNdZQd?ZRd@ZSdAZTeUeVeWeXeYeZe[e\e]e^e_e`eaebeecedeeefegeheiejekelemeneoepeqereseteuevewexeyeze{e|e}e~ef,ZdBZdCZdDdEZGdFdGdGe jZGdHdIdIe jZGdJdKdKe jZGdLdMdMe0ZGdNdOdOe0ZGdPdQdQe0ZGdRdSdSe0ZGdTdUdUe0ZGdVdWdWe0ZGdXdYdYe0ZGdZd[d[e0ZGd\d]d]e:ZGd^d_d_eZGd`dadaeZGdbdcdceZGdddedeeZGdfdgdgeZGdhdidieZGdjdkdkeZGdldmdmeZGdndodoeZeeeeeeeeeeg ZGdpdqdqeZGdrdsdse:aGdtdudutZGdvdwdwtZGdxdydyZGdzd{d{e jZGd|d}d}e jZGd~dde jZGddde jZdZGddde0ZGddde0ZddZGdddZGddde jZGddde jZed krvddlmZeZe(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/python38/lib64/python3.8/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||_|tjkr8tj||_t|jd|jd|nd|_dSNrr)rcopyreg_inverted_registrypairremove_extension)r&rrrrr9os   zExtensionSaver.__init__cCsX|j}tj|}|dk r0t|d|d||j}|dk rTt|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__c CsNt|<}|j}t||kr,|W5QRS||W5QRSW5QRXdSr 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__c CsNt|<}|j}t||kr,|W5QRS||W5QRSW5QRXdSrrurxrrrrjs   zZeroCopyBytearray._reconstructNr{rrrrrsrc@speZdZdZddZddZeddZedd Zed d Z d d Z ddZ ddZ ddZ eddZdS)PicklableNDArrayFcOstj|||_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&szPicklableNDArray.__repr__c Cs|jjstd|jj|jj|jj|jr,dntjd}t |j}|dkr\t |j ||ffS| $}t |j ||ffW5QRSQRXdS)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__c Cs,t|}t|}W5QRX||f|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|_ddddg}d}d}d}|dd || | d|| | d|| | dg d d ||f}|||||d |S) Nrrg@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|dkrd||}|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|dp||Zz||WnDtk rl}z&tjdkrZtd||jj|fW5d}~XYnXW5QRXW5QRXdS)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)Nd?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWgU}|D]}||j|qdS)XNNBsBsBsBabCsCsCabFsF0.0sF0.00GsGrsI0JsJKLsL0sL10sL0LsL10LMsMSsS'abc'TsTsTsTabUsUsUabVsVabcrsXsXsXabs(cs (cbuiltinss (cbuiltins s(cbuiltins listsNgsNg0s(is (ibuiltinss (ibuiltins s(ibuiltins listsNhsNjsNjsNpsNp0sNqsNrsNrsssssabss s abss s abss s abss s N)rEOFErrorZtruncated_errorsrrrrtest_truncated_datas  Yz)AbstractUnpickleTests.test_truncated_datac s^td}td}tt|tjttj dt|tjj tt tj tdd}| |dW5QRXt tj tdd}| |dW5QRX|td|td ddl}d gtd fd d }tj|d}tj|d}|||j| | ddlm}|ddD|gddS)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.rcstdSr)waitrrrrbarrierZ pickle_bytesZresultsrrtsz:AbstractUnpickleTests.test_unpickle_module_race..t)target) ToBeUnpickledcSsg|] }t|qSr)r_.0r!rrr szCAbstractUnpickleTests.test_unpickle_module_race..r)rosmkdirrZ addCleanupshutilZrmtreesyspathinsertremoveopenjoinr8rr rg threadingZBarrierZThreadrrirkrhrnr) r&Z locker_moduleZlocking_import_modulefrgrlt1t2rnrrjrtest_unpickle_module_race`s>         z/AbstractUnpickleTests.test_unpickle_module_race)N)4r0r1r2rrrrrrrrrrrrrrrrrrr requires_32brrrrrrrrrr rrrrrrrrrrr(r*r.r/rHrIrdr rrrrrr;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^e_ddZ`ddZaddZbddZcddZdddZeddZfddZgddÄZhddńZidZjdZkddɄZlemjndd˄Zodd̈́ZpddτZqemjnddфZrddӄZsddՄZtddׄZuddلZvddۄZwdd݄Zxdd߄ZyddZzddZ{ddZ|ddZ}ddZ~ddZddZeedkdddZdS)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 rrrrJz>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&ryrrrlrrr!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_subclasssz:AbstractPickleTests.test_recursive_tuple_and_list_subclasscCs|jtddddS)NcSs|jSrrr rrrr rJzHAbstractPickleTests.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!rJz>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&ryrrrlrrr!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_subclass@sz:AbstractPickleTests.test_recursive_tuple_and_dict_subclasscCs|jtddddS)NcSs|jSrrr rrrrDrJzHAbstractPickleTests.test_recursive_tuple_and_dict_like..r)rrr)rrr"test_recursive_tuple_and_dict_likeCsz6AbstractPickleTests.test_recursive_tuple_and_dict_likec Cs|}d|t|<t|tjdD]t}|||}||}|||||}|t| d|t | dt| t | dj |q"dSr) rQrrrrrrrrrrrrRrrrr_test_recursive_dict_keyFs    z,AbstractPickleTests._test_recursive_dict_keycCs|tdSr)rrbr)rrrtest_recursive_dict_keyTsz+AbstractPickleTests.test_recursive_dict_keycCs|jtdddSr)rrr)rrr test_recursive_dict_subclass_keyWsz4AbstractPickleTests.test_recursive_dict_subclass_keycCs|jtddddS)NcSs|jSrrr rrrr[rJzBAbstractPickleTests.test_recursive_dict_like_key..r)rrr)rrrtest_recursive_dict_like_keyZsz0AbstractPickleTests.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_keyysz5AbstractPickleTests.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 rrrrrJzLAbstractPickleTests.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)Nr rr)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&factoryorlrrr!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&rlrrr!rrr#test_recursive_tuple_and_inst_states"       z7AbstractPickleTests.test_recursive_tuple_and_inst_statecCsLdddddddg}tD]0}|D]&}|||}||}|||qqdS)Nrz<\u>u<\ሴ>z< >z<\>u<\𒍅>u<>rrrr)r&ZendcasesrurZu2rrr test_unicode s  z AbstractPickleTests.test_unicodecCs4d}tD]&}|||}||}|||qdS)Nu𒍅r)r&rlrrr~rrrtest_unicode_high_planes   z+AbstractPickleTests.test_unicode_high_planecCstD]}dD]"}|||}||||q ddtdDD]"}|||}||||qBddtdDD]"}|||}||||qxqdS)NrJxyzs,xyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzcSsg|]}t|gqSrrlrprrrrrq sz2AbstractPickleTests.test_bytes..cSsg|]}t||gqSrrrrrrrq#s)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 bytearrayr rh)rrrrrrassertIn assertTruerrZGLOBALZ STACK_GLOBAL assertNotIn BYTEARRAY8)r&rrr[rZbbrrrtest_bytearray's        z"AbstractPickleTests.test_bytearraycCsTtD]J}tj}|r| |fD]&}|||}||}|||q|d?}qqdSr)rrumaxsizerrr)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_longDs      zAbstractPickleTests.test_longc Csfddddddddd d d g }|d d |D}tD]0}|D]&}|||}||}|||q8q0dS)Nggg+phgZ*)g_D 9g?g?gQ @gm"wp@gWTDgꌠ9Y>)FcSsg|] }| qSrrrorrrrq^sz2AbstractPickleTests.test_float..r)r&Z test_valuesrrRrrrrr test_float[s  zAbstractPickleTests.test_floatLC_ALLZde_DEZfr_FRcCs ||ddddddS)Ng333333?rrsF1.)rrr)rrrtest_float_formatesz%AbstractPickleTests.test_float_formatcCs6tD],}t}|||}||}||tqdSr)rAAArrrREDUCE_Ar&rinstrrrrr test_reducejs   zAbstractPickleTests.test_reducecCs:tD]0}tdd}|||}||}|||qdS)Nrr)rrXrrrrrrrtest_getinitargsqs    z$AbstractPickleTests.test_getinitargscCs:t}tD]*}|||}||}||j|jq dSr)r]rrrrrsr&rZrrr[rrrtest_metaclassxs   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) timerr localtimerrrrstatcurdirrr)r&rrrrlrrrrrrtest_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| |Wn2t k r}z| dt|W5d}~XYn X|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)rrrr r)rrrrr)rrrr r)rZTUPLEZ EMPTY_TUPLEZTUPLE1ZTUPLE2ZTUPLE3rrrrminrrr) r&expected_opcoderZr[rrerr!rrrrrrtest_short_tuplessB   z%AbstractPickleTests.test_short_tuplesc Cstjtjtjtjtjtjtjtjtjtjtjtjd }tD]^}dD]T}|||}||}|||k||||f|t |d|f}|t ||qBq:dS)N) )rN)rN)rN)rN)rT)rT)rT)rT)rF)rF)rF)rF)NFTr) rrZINTZNEWTRUEZNEWFALSErrrrrr)r&rrr!rrrrrrtest_singletonss(  z#AbstractPickleTests.test_singletonscCsJtdddg}d|_d|_tD]&}|||}||}|||qdSNrrrrhello)rrrrrrrrrrrtest_newobj_tuples  z%AbstractPickleTests.test_newobj_tuplecCsJtdddg}d|_d|_tD]&}|||}||}|||qdSr)rrrrrrrrrrrtest_newobj_lists  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$MyIntrrxrr%r&rweakrefproxyrrrr_rE) r&classesrrrDr'r!rrrr(rrrtest_newobj_proxies4s       z'AbstractPickleTests.test_newobj_proxiescCsDt}tt}||d}zda|ttjf|j|W5|aXdS)Nr r) SimpleNewObjrrrr)rrr)r&Zsaverr[rrrtest_newobj_not_classGs  z)AbstractPickleTests.test_newobj_not_classcCst|}zttd|tdddg}d|_d|_||d}| t d|| d|| t ||| |}|||||d}|t d||d||t ||d t|| |}|||W5|XdS) Nrrrrrr rfsMyListT)r;rCr=rBr0rrrrrr assertFalserrrrrrepr)r&Zextcodeopcoderr!s1rs2rrrproduce_global_extWs&       z&AbstractPickleTests.produce_global_extcCs |dtj|dtjdS)Nrr)r6rZEXT1r)rrrtest_global_ext1ssz$AbstractPickleTests.test_global_ext1cCs.|dtj|dtj|dtjdS)Nrriͫ)r6rZEXT2r)rrrtest_global_ext2wsz$AbstractPickleTests.test_global_ext2cCs.|dtj|dtj|dtjdS)Nriͫ)r6rZEXT4r)rrrtest_global_ext4|sz$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<r rrr=r) rrrrrrrrZADDITEMSrassertGreaterEqual)r&rr!rrrZ num_additemsrrrtest_set_chunkings(          z%AbstractPickleTests.test_set_chunkingc Csttd}d|_tD]}|j|dt|||}|dkrJ|d|n |d||tt j |d|k| tt j || |}|||W5QRXqdS)Nrr I64206Mr)r/rrrrrrrrrNEWOBJr1 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 || |}|||W5QRXqdS NrDrErFrrGrrHr s XFACEsFACE) ComplexNewObjrrrrrrrrrrIr1rJrrrrrrtest_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| |}|||W5QRXqdSrL)ComplexNewObjExrrrrrrr1rrrIrrJrrrrrrtest_complex_newobj_exs$    z*AbstractPickleTests.test_complex_newobj_excCs@tdddg}d|_d|_||d}||}|||dSr)SlotListrrrrr)r&r!rrrrrtest_newobj_list_slotss   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_threerrWrrrrrrtest_reduce_ex_overrides_reduce s  z3AbstractPickleTests.test_reduce_ex_overrides_reducecCsTtD]J}t}||jd|||}||j|||}||j|qdSr)rREX_fourrrWrrrrrrtest_reduce_ex_calls_base" s  z-AbstractPickleTests.test_reduce_ex_calls_basecCsTtD]J}t}||jd|||}||jd||}||jdqdSr<)rREX_fiverrTrrrrrrtest_reduce_calls_base+ s  z*AbstractPickleTests.test_reduce_calls_basecCs&t}tD]}|t|j||q dSr) BadGetattrrr RuntimeErrorr)r&r!rrrrtest_bad_getattr4 sz$AbstractPickleTests.test_bad_getattrc CsGdddt}Gdddt}tD]X}z|||Wntjk rPYnXz|||Wq$tjk rzYq$Xq$dS)Nc@seZdZddZdS)z7AbstractPickleTests.test_reduce_bad_iterator..CcSstddgdfSrM)rr)rrrrS? szBAbstractPickleTests.test_reduce_bad_iterator..C.__reduce__Nr0r1r2rSrrrrrD> srDc@seZdZddZdS)z7AbstractPickleTests.test_reduce_bad_iterator..DcSstdddgfSrM)rbr)rrrrSC szBAbstractPickleTests.test_reduce_bad_iterator..D.__reduce__NrbrrrrrIB srI)rrrr PicklingError)r&rDrIrrrrtest_reduce_bad_iterator; sz,AbstractPickleTests.test_reduce_bad_iteratorc CsddtdD}tdd|D}t|t|t|g}tD]>}|j|d(|||}||}|||W5QRXq>dS)Ncss|]}dt|VqdS)ZaaaNrVrrrr U sz>AbstractPickleTests.test_many_puts_and_gets..rcss|]}|dddgfVqdS)r rhr!Nr)rpkrrrreV srF)rrbrrrrr)r&rZ large_dictrwrrrrrrtest_many_puts_and_getsR 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_interning_ s    z1AbstractPickleTests.test_attribute_name_interningcCs>|tdd}||t|tdgd}||tdS)Nrhrr)rrrrr DATA_SET2rrrrtest_pickle_to_2xm s z%AbstractPickleTests.test_pickle_to_2xcCsTtD]J}dtddtf}|||}||}|t|t||||qdS)Nrsxyix)rrrrrr)r&rrrrrrrtest_large_picklesw s   z&AbstractPickleTests.test_large_picklesc stD]vjd`fddtdD}ttt|}t||dkrp|D]}t t j |qXW5QRXqdS)NrFcsg|]}d|qSrr)rprrr&rrrq szDAbstractPickleTests.test_int_pickling_efficiency..Fr) rrrrmaprrrhr1rrZLONG)r&ZpicklesZsizesrrrprtest_int_pickling_efficiency sz0AbstractPickleTests.test_int_pickling_efficiencycCs6|||}|t||||}|||dSr)rrrrr)r&rwr3rr r rrr_check_pickling_with_opcode s  z/AbstractPickleTests._check_pickling_with_opcodecCsFtdddg}tD].}|dkr0||tj|q||tj|qdS)Nrrrr)rrrtrZAPPENDr>r&rwrrrrtest_appends_on_non_lists s z-AbstractPickleTests.test_appends_on_non_listscCsHtdddd}tD].}|dkr2||tj|q||tj|qdS)Nrrr)rrrtrZSETITEMr@rurrrtest_setitems_on_non_dicts s z.AbstractPickleTests.test_setitems_on_non_dictsr r9cCs<d}}dddddh}t|D]\}}}|dk rJ|||||krJd}|dk r~||jd|j|kr|t||jnX|jdks|j|krt||jkr|dk r||||jd}n|dkr|jdkr|}|jdkr | ||j|d |}q t|}|dk r| ||n|dk r8||||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. NBINBYTES BINUNICODE BINBYTES8 BINUNICODE8rFRAMEr  ) rrassertLessEqualassertNotEqualrcrFRAME_SIZE_TARGET assertLessFRAME_SIZE_MINrBr)r&r Z frame_endZframeless_startZframeless_opcodesrrJposrrrcheck_frame_opcodes sD        z'AbstractPickleTests.check_frame_opcodesc Csttd}tdtjdD]}|j|dj|||}||}|||t|t tj |}| ||j d| ||j d||W5QRXqdS)Nir rrFr)rrrrrrrrrrr~ assertGreaterrrr)r&rwrr r Zbytes_per_framerrrtest_framing_many_objects s      z-AbstractPickleTests.test_framing_many_objectsc Csd}ddtdD}d|f|d|d|f}tdtjd D]}d D]}|j||d |sp|||}nDt|d sW5QRqJt}|j||d }||_ | || }| |} | dd|Ddd| D| || ttj|} | | d ||W5QRXqJqBdS)NicSsg|] }|gqSrrrrrrrq szBAbstractPickleTests.test_framing_large_objects..r<xyzr r)FT)rfastpicklerrncSsg|] }t|qSrrrorrrrq scSsg|] }t|qSrrrorrrrq s)rrrrrrr,r4rrdumpr5rrrr~r) 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) Nr c Ssg}d}t|D]\}}}|jdkr||qt}d}t|D].\} }|rZ|| rZqD||||7}||}qD|||d7}|S)z+Remove frame opcodes from the given pickle.rr~rN)rrrcrr enumerate) r Z keep_frameZ frame_startsZframe_opcode_sizer3_rZ newpickleZlast_frame_endrrrr remove_frames s    z?AbstractPickleTests.test_optional_frames..remove_framescsi|]}||gqSrrrZ bytes_typeZ frame_sizerr $ sz.rrcSs|dS)Nrr)rrrrr- rJz:AbstractPickleTests.test_optional_frames..)N) rrrrlrrrrrr~rr)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)rrrr96 szbAbstractPickleTests.test_framed_write_sizes_with_delayed_writer..ChunkAccumulator.__init__cSs|j|dSr)rr)r&chunkrrrr88 sz_AbstractPickleTests.test_framed_write_sizes_with_delayed_writer..ChunkAccumulator.writecSs d|jS)NrJ)rzrr)rrrconcatenate_chunks: szlAbstractPickleTests.test_framed_write_sizes_with_delayed_writer..ChunkAccumulator.concatenate_chunksN)r0r1r2r:r9r8rrrrrChunkAccumulator4 srr rcSs,g|]$}t|d|ddt|ifqS)rrr)rWrrrrrrq> szSAbstractPickleTests.test_framed_write_sizes_with_delayed_writer..g@Z0123456789abcdefrrrcSsg|] }t|qSrr)rprrrrrqb scsg|]}|jkr|qSrrrprr)rrrqc s cs*g|]"}d|krjkrnq|qSrrrr)rrrqe s  cSsg|]}|dkr|qSrrrrrrrqg s)rrrrrrrrrrrrrrrZ gc_collectrBrr) r&rrZobjectswriterr Z reconstructedrZ chunk_sizesZ large_sizesZ medium_sizesZ small_sizesZ chunk_sizerr)r+test_framed_write_sizes_with_delayed_writer2 s@      z?AbstractPickleTests.test_framed_write_sizes_with_delayed_writerc CszGdddattjdD]X}tjtjjtjjjfD]<}|j||d$|| ||}| ||W5QRXq6qdS)Nc@seZdZGdddZdS)Nestedc@seZdZGdddZdS)zNested.Ac@seZdZGdddZdS)z Nested.A.Bc@s eZdZdS)z Nested.A.B.CNrPrrrrrDy srDN)r0r1r2rDrrrrr'x sr'N)r0r1r2r'rrrrAw srN)r0r1r2rrrrrrv srr)rrw) rrrrrr'rDrrrr)r&rrwr rrrtest_nested_namest s z%AbstractPickleTests.test_nested_namesc CstGdddatjtjt_dt_ttjdD]:}|j |d$| | t|}| |tW5QRXq0t`dS)Nc@s eZdZdS) RecursiveNrPrrrrr srzRecursive.mod.RecursiverrF) rrumodulesr1modr2rrrrrrr)r&rr rrrtest_recursive_nested_names sz/AbstractPickleTests.test_recursive_nested_namesc CsGdddatjtjtjtjjtjjtjf}tjtftjjtjff}tt j dD]}|D]@}|j ||d(| | ||}|||W5QRXqb|D]N\}}|}|j ||d,| | ||}|||||W5QRXqqZdS)Nc@s:eZdZeddZeddZddZGdddZd S) PyMethodsTestcSsdS)Ncheeserrrrrr szPyMethodsTest.cheesecSs|tks tdS)Nwine)rAssertionErrorryrrrr s zPyMethodsTest.winecSst|tstdS)Nbiscuits)rrrr)rrrr szPyMethodsTest.biscuitsc@s0eZdZdZeddZeddZddZdS) zPyMethodsTest.Nestedz Nested classcSsdS)Nketchuprrrrrr szPyMethodsTest.Nested.ketchupcSs|tjkstdS)Nmaple)rrrrrrrr szPyMethodsTest.Nested.maplecSst|tjstdS)Npie)rrrrr)rrrr szPyMethodsTest.Nested.pieN) r0r1r2r: staticmethodrrrrrrrrr s   rN) r0r1r2rrrrrrrrrrr s   rrrmethod)rrrrrrrrrrrrrrr)r&Z py_methodsZpy_unbound_methodsrrr ryrwrrrtest_py_methods s*   z#AbstractPickleTests.test_py_methodscCsGdddtadjdftjdfdddgjd ftjdddgffddhjd ftjddhdfftj d ft j d ftdddgj d ftj tdddgdfft d j dftj j t d dfff }ttjdD]R}|D]H\}}|j||d,||||}|||||W5QRXqqdS)Nc@seZdZGdddeZdS)Subclassc@s eZdZdS)zSubclass.NestedNrPrrrrr srN)r0r1r2rWrrrrrr srabcd)r)rrrrrrrn))rZr)r[r)sabcrZsweet)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]t\}}}tdD]`}|j t ||dD|||}|d||f||t ||t |W5QRXqxqfdS)NrrZ __builtin__ZxrangeZ123 itertoolsZimapr#r% exceptionsrr'ZIterableUserDictUserListr& defaultdictr)r_rzc%s %s)rrrrr"r#r$r%rr&r'rrrr_rrrrr)r&Ztestsvalrrcrr rrrtest_compat_pickle s         z&AbstractPickleTests.test_compat_picklec Csdd}tdtjdD]2}|ttjft|||W5QRXq|` tdtjdD]2}|ttjft|||W5QRXq`|j |_ tdtjdD]2}|ttjft|||W5QRXqdS)NcSsdSrrrrrrr| sz6AbstractPickleTests.test_local_lookup_error..frr) rrrrAttributeErrorrcrrrr1r2r0r&r|rrrrtest_local_lookup_error sz+AbstractPickleTests.test_local_lookup_errorccsd}t|Vt|Vtdk rt|}tj|dd}dtjfD]>}t|dd|dVt|ddd |d Vt|ddd |d Vq@dS) Nabcdefghlittle) byteorderrr')r)rrrr)r rr)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_callback0 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||gjdW5QRXqtdtjdD]R}gfdd}|j|||d}|d|| t tj |d| t tj |d| t tj |d| t tj||jrdnd|jr| tdd|tj||W5QRX|j|d}|jrB|||n |t|t|| |||j|td}|jr|||qV|t|t|| ||qVqdS) Nrrhrrcs|Sr)rr)rbuffersrrrI rJz6AbstractPickleTests.test_oob_buffers..rr)rrrrrrrrrrrrrrZREADONLY_BUFFERr|r}rlrrrrr_iter)r&rwrrrrrrrtest_oob_buffers? sB     z$AbstractPickleTests.test_oob_bufferscCsttd}tdtjdD]V}g}|j}|j|||d}tt|}|j||d}| t |t || ||qdSNfoobarrhrrr) rfrrrrrrrrrrr_r)r&rwrrrrrrrr%test_oob_buffers_writable_to_readonlyi s z9AbstractPickleTests.test_oob_buffers_writable_to_readonlyc CsBtd}tddD](}|tj|||W5QRXqdS)Nrrrh)rrkrrZ PickleErrorr)r&rrrrrtest_picklebuffer_errorv s z+AbstractPickleTests.test_picklebuffer_errorc Cs<dd}td}|t|j|d|dW5QRXdS)NcSs dddSrrrrrrr~ szGAbstractPickleTests.test_buffer_callback_error..buffer_callbackrrhr)rrkrZeroDivisionErrorr)r&rrrrrtest_buffer_callback_error} s  z.AbstractPickleTests.test_buffer_callback_errorc Cstd}tdtjdD]b}|j||gjd}|t|j|t dW5QRX|tj |j|gdW5QRXqdSr) 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 rJzMAbstractPickleTests.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"rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr r r rrrrrr!r"r)r.r0r6r7r8r:r?rArCrKrNrPrRrUrXrZr\r^rrardrgrjrlrmrsrtrvryrrrrZskip_if_pgo_taskrrrrrrrrrrrrrrrrrrunittestZskipIfrrrrrrrs             '               /  * A  1#*  rc@szeZdZeedddddZeedddddZeedddd d Zeed ddd d Z eed ddddZ dS)BigmemPickleTestsg @F)sizeZmemuseZdry_runc Cspdd|>}zXtD]N}|dkr q|j|d.|ttf|j||dW5QRXW5QRXqW5d}XdS)NrrrrFr)rrrrrr)r&rrrrrrtest_huge_long_32b s (z$BigmemPickleTests.test_huge_long_32bg@c Csd|d}ztD]|}|dkr q|j|d\zN|j||d}tjtdt|}||}| |||t||W5d}XW5QRXqW5d}XdS)Nabcdr rrFrr) rrrrrzrrrrrr&rrrr headerZ data_startrrrtest_huge_bytes_32b s$  z%BigmemPickleTests.test_huge_bytes_32bc Csd|d}ztD]}|dkr q|j|d|dkrj|ttf|j||dW5QRXW5QRqzN|j||d}tjt dt |}| |}| |||t ||W5d}XW5QRXqW5d}XdS)Nsacbdr rrFr.BadPicklercSsdSrrr)rrrr9 rJzDAbstractPickleModuleTests.test_bad_init..BadPickler.__init__NrKrrrr BadPickler sr$c@seZdZddZdS)z=AbstractPickleModuleTests.test_bad_init..BadUnpicklercSsdSrrr)rrrr9 rJzFAbstractPickleModuleTests.test_bad_init..BadUnpickler.__init__NrKrrrr BadUnpickler sr%r)rZ Unpicklerrrrcrrr)r&r$r%rrr test_bad_init sz'AbstractPickleModuleTests.test_bad_initc Cstd}tddD]*}|t|||gjdW5QRXqtdtjdD]t}g}|j}||||d}|d||t |dd|tj ||W5QRX|||d}| ||qNdS)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||f||Sr)r,r4rr5)rwrr|r)rrr+ szCAbstractPickleModuleTests.test_dump_load_oob_buffers..dumpscst|}j|f|Sr)r,r4r)rrr|r)rrr0 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_id= sz,AbstractPersistentPicklerTests.persistent_idcCsD|s|jd7_dS|jd7_t|}|ddks)r,r4r:rr5memor)r&rr|rr@primedprimed_pickledrrrtest_priming_pickler_memo s     z=AbstractPicklerUnpicklerObjectTests.test_priming_pickler_memoc Csdddg}t}||}|||}t}||}|j|_|||}|t|}|}||||t|}|j|_|} |j || || | |kdSrB) r,r4r:rr5rCr;rrclearr) r&rr|rr@rDrE unpicklerZunpickled_data1Zunpickled_data2rrrtest_priming_unpickler_memo s&        z?AbstractPicklerUnpicklerObjectTests.test_priming_unpickler_memocCsdddg}t}||}|||}dddg}t}||}|||}t}|||d||}|| ||d| |||d|| |dSr<) r,r4r:rr5r8r.r;rrr?)r&data1r|rZpickled1rZpickled2rHrrrtest_reusing_unpickler_objects s(            zBAbstractPicklerUnpicklerObjectTests.test_reusing_unpickler_objectsTr*c CstD]}|j|dddtdDdtg}|}|j||d}|||}d}|||}||} t|D]<} |r|} | | ||rx| || t|qx| t | j W5QRXqdS)NrFcSsg|]}|t|fqSrrVrorrrrq szSAbstractPicklerUnpicklerObjectTests._check_multiple_unpicklings..isabcderrh) rrrrr:rr5r;r/rrrrc) r&Zioclassr*rrJr|rr rrHrrrrr_check_multiple_unpicklings s"    z?AbstractPicklerUnpicklerObjectTests._check_multiple_unpicklingscCs|tjdSr)rMr,r4r)rrr"test_multiple_unpicklings_seekableszFAbstractPicklerUnpicklerObjectTests.test_multiple_unpicklings_seekablecCs|jtdddSNFrL)rMr#r)rrr$test_multiple_unpicklings_unseekableszHAbstractPicklerUnpicklerObjectTests.test_multiple_unpicklings_unseekablecCs|jtdddSrO)rMr3r)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|rrHrrr"test_unpickling_buffering_readline s    zFAbstractPicklerUnpicklerObjectTests.test_unpickling_buffering_readline)r0r1r2r:r;rrArFrIrKrMrNrPrQrTrrrrr9| s r9Zreduce_Ac@seZdZddZdS)rcCs ttffSr)rWrr)rrrrS szAAA.__reduce__Nrbrrrrrsrc@seZdZddZddZdS)BBBcCs d|_dS)Nzsome attributerZr)rrrr9$sz BBB.__init__cCs d|_dS)NBBB.__setstate__rVrrrrr)srWN)r0r1r2r9rrrrrrU#srUcCs 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_setterNrV)rwrrrr setstate_bbb-s rYc@seZdZdZddZdS)AbstractCustomPicklerClassz.fcSsdSrrrrrrr][sz.AbstractHookTests.test_pickler_hook..gcSsdSrrrrrrr^^sz.AbstractHookTests.test_pickler_hook..hc@s eZdZdS)z4AbstractHookTests.test_pickler_hook..MyClassNrPrrrrr[asr[rrrFrhr\r_)rrrrr,r4r:rmathlogrr5rrrrcZassertRaisesRegexr) r&r|r]r^r[rbiornew_fZsome_strZmath_logrrrtest_pickler_hookSs(   z#AbstractHookTests.test_pickler_hookc CstdtjdD]v}|j|d`dd}t|}t}|||}| |t | }|dkslt ~~| |W5QRXqdS)NrrrFcSsdSrrrrrrr|szEAbstractHookTests.test_reducer_override_no_reference_cycle..frh)rrrrr+refr,r4r:rrr5rr)r&rr|Zwrrdrrerrr(test_reducer_override_no_reference_cycle{s    z:AbstractHookTests.test_reducer_override_no_reference_cycleN)r0r1r2rfrZ cpython_onlyrhrrrrraRs(rac@s,eZdZddZddZddZddZd S) AbstractDispatchTableTestsc CsDt}||d}|t |jW5QRX|t|ddS)Nrdispatch_table)r,r4r:rrrjr1r)r&r|rrrrtest_default_dispatch_tables   z6AbstractDispatchTableTests.test_default_dispatch_tablecs@Gfdddjdfdd }|dS)NcseZdZZdS)zGAbstractDispatchTableTests.test_class_dispatch_table..MyPicklerN)r0r1r2rjr)dtrr MyPicklersrmcs2t}||}|j|||Sr)r,r4rrjrr5rwrnr|rrmrlr&rrrs   zCAbstractDispatchTableTests.test_class_dispatch_table..dumps)N)get_dispatch_tabler:_test_dispatch_tabler&rrrortest_class_dispatch_tablesz4AbstractDispatchTableTests.test_class_dispatch_tablecs(dfdd }|dS)Ncs:t}||}|_|j|||Sr)r,r4r:rjrrr5rnrlr&rrrs   zFAbstractDispatchTableTests.test_instance_dispatch_table..dumps)N)rprqrrrrtrtest_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)rrrrorrcustom_load_dumpszIAbstractDispatchTableTests._test_dispatch_table..custom_load_dumpcSstt|dSrv)rrrrrrrdefault_load_dumpszJAbstractDispatchTableTests._test_dispatch_table..default_load_dumpy?@reduce_1cs tffSrrVr)REDUCE_1rrryszAAbstractDispatchTableTests._test_dispatch_table..reduce_1reduce_2cs tffSrrVr)REDUCE_2rrr{szAAbstractDispatchTableTests._test_dispatch_table..reduce_2rWcSstd|jddtfSrM)rUrErYrrrr reduce_bbbszCAbstractDispatchTableTests._test_dispatch_table..reduce_bbbrX)rcomplexrrUrrrZ) r&rrjrwrxrryrZr[r{r}r)rzr|rrrqsB    z/AbstractDispatchTableTests._test_dispatch_tableN)r0r1r2rkrsrurqrrrrrisrirz DATA{0} = (rz {0!r}rz# Disassembly of DATA{0}zDATA{0}_DIS = """\z""")r&r=r$r,r"rrrbrrrtrrur{rr+textwraprZ http.cookiesrr ImportErrorZtestrZ test.supportrrrrr r r r r rrZnumpyrZ skipUnlessrrrrrrrr"r4r#rr3r;rDrIrLrOrQrTr1rrUrXr_r\r]r^rarlrfrrrrrrrrZ DATA2_DISrZ DATA3_DISrZ DATA4_DISrrrrkArithmeticErrorrrr BufferError BytesWarningDeprecationWarningrcEnvironmentErrorrFloatingPointError FutureWarning GeneratorExitIOError ImportWarningIndentationError IndexErrorrKeyboardInterrupt LookupError MemoryError NameErrorr$OSErrorrPendingDeprecationWarningReferenceErrorr`RuntimeWarning StopIteration SyntaxError SyntaxWarning SystemError SystemExitTabErrorr)UnboundLocalError UnicodeErrorUnicodeWarning UserWarningrWarningrrrrrZTestCaserrrrSrVrYr[r]rrrr*floatrr~rrWr r rrrrrbrrrrrr$rQr/rMrOr_rr*r4r9rrrUrYrZrarir0rr!rrrrrrrjr[rrrrs     0     NSA:: C0g0  k("  Bk