o ­=?hv4ã @sddlZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddl Z ddlZddlZddlZddlmZddlmZzddlZWn eyadZYnwddlmZddlmZddlmZmZmZmZmZm Z ddl!m"Z"ddl#m$Z$dd lm%Z%dd l&m'Z'dd lm(Z(ze'ƒ ddl)Z*Wdƒn1s¯wYWn eyÀdZ*Ynwe +e j,d kd ¡Z-e.ej/dƒZ0dd„Z1dd„Z2dd„Z3Gdd„dej4ƒZ5Gdd„de6ƒZ7Gdd„dƒZ8Gdd„dƒZ9Gdd„de9ƒZ:Gdd „d e9ƒZ;Gd!d"„d"ƒZZ>e9e>_9d%e9_?e:e>_:d%e:_?e;e>_;d%e;_?Gd&d'„d'e@ƒZAGd(d)„d)e9ƒZBGd*d+„d+eCƒZDGd,d-„d-e6eDd.ZEGd/d0„d0eCƒZFd1d2„ZGGd3d4„d4eHƒZIGd5d6„d6eJƒZKedurzGd7d8„d8ƒZLd9ZMd:ZNd;ZOdZRd?ZSd@ZTdAZUdBZVdCZWdDZXdEZYdFZZge[‘e\‘e]‘e^‘e_‘e`‘ea‘eb‘ec‘ed‘ee‘ef‘eg‘eh‘e‘ei‘ej‘ek‘el‘em‘en‘eo‘ep‘eq‘er‘es‘et‘eu‘ev‘ew‘ex‘ey‘ez‘e{‘e|‘e}‘e~‘e‘e€‘e‘e‚‘eƒ‘e„‘e…‘RZ†dGZ‡dHZˆdIdJ„Z‰GdKdL„dLƒZŠGdMdN„dNƒZ‹GdOdP„dPƒZŒGdQdR„dRe6ƒZGdSdT„dTe6ƒZŽGdUdV„dVe6ƒZGdWdX„dXe6ƒZGdYdZ„dZe6ƒZ‘Gd[d\„d\e6ƒZ’Gd]d^„d^e6ƒZ“Gd_d`„d`e6ƒZ”Gdadb„dbe@ƒZ•Gdcdd„dde–ƒZ—Gdedf„dfe˜ƒZ™Gdgdh„dhešƒZ›Gdidj„dješƒZœGdkdl„dleƒZžGdmdn„dneŸƒZ Gdodp„dpe¡ƒZ¢Gdqdr„dre£ƒZ¤Gdsdt„dte¥ƒZ¦e•e—e™e›eœeže e¢e¤e¦g Z§Gdudv„dve@ƒZ¨Gdwdx„dxe¨ƒZ©Gdydz„dze ƒZªGd{d|„d|e@ƒa«Gd}d~„d~t«ƒZ¬Gdd€„d€t«ƒZ­Gdd‚„d‚ƒZ®Gdƒd„„d„ƒZ¯Gd…d†„d†ƒZ°Gd‡dˆ„dˆƒZ±Gd‰dŠ„dŠƒZ²d‹Z³GdŒd„de6ƒZ´GdŽd„de6ƒZµdd‘„Z¶Gd’d“„d“ƒZ·Gd”d•„d•ƒZ¸Gd–d—„d—ƒZ¹eºd%kr‹dd˜l m»Z»e‰ƒZ¼e.ej/dƒD]OZ½e ¾e¼e½¡Z¿eÀd™ Áe½¡ƒe.deÂe¿ƒdšƒD]ZÃeHe¿eÃeÃdš…ƒZÄeÀd› ÁeÄ¡ƒqTeÀdœƒeÀƒeÀd Áe½¡ƒeÀdž Áe½¡ƒe»e¿ƒeÀdŸƒeÀƒq=dSdS) éN)Údedent)Ú SimpleCookie)Úsupport)Ú os_helper)Ú TestFailedÚrun_with_localeÚ no_tracingÚ_2GÚ_4GÚ bigmemtest)Úforget)ÚTESTFN)Úthreading_helper)Úsave_restore_warnings_filters)Ú bytes_typeslz(test is only meaningful on 32-bit buildsécCs0t |¡D]\}}}|j| d¡krdSqdS)Núlatin-1TF©Ú pickletoolsÚgenopsÚcodeÚdecode)rÚpickleÚopÚdummy©rú8/opt/alt/python310/lib64/python3.10/test/pickletester.pyÚopcode_in_pickle;s ÿrcCs6d}t |¡D]\}}}|j| d¡kr|d7}q|S)Nrrrr)rrÚnrrrrrÚ count_opcodeBs €rcCs|S©Nr©ÚxrrrÚidentityJór#c@ó,eZdZdd„Zdd„Zdd„Zdd„Zd S) Ú UnseekableIOcGót‚r )ÚNotImplementedError©ÚselfÚargsrrrÚpeekOr$zUnseekableIO.peekcCódS)NFr©r*rrrÚseekableRr$zUnseekableIO.seekablecGótj‚r ©ÚioÚUnsupportedOperationr)rrrÚseekUózUnseekableIO.seekcCr0r r1r.rrrÚtellXr5zUnseekableIO.tellN)Ú__name__Ú __module__Ú __qualname__r,r/r4r6rrrrr&Ns  r&c@óeZdZdZdd„ZdS)Ú MinimalIOz= A file-like object that doesn't support readinto(). cGs8tj|Ž|_|jj|_|jj|_|jj|_|jj|_dSr )r2ÚBytesIOZ_bioÚgetvalueÚreadÚreadlineÚwriter)rrrÚ__init__`s    zMinimalIO.__init__N)r7r8r9Ú__doc__rArrrrr;\s r;c@óeZdZdd„Zdd„ZdS)ÚExtensionSavercCsD||_|tjvrtj||_t |jd|jd|¡dSd|_dS©Nrr)rÚcopyregÚ_inverted_registryÚpairÚremove_extension)r*rrrrrAus    zExtensionSaver.__init__cCs\|j}tj |¡}|durt |d|d|¡|j}|dur,t |d|d|¡dSdSrE)rrFrGÚgetrIrHÚ add_extension)r*rZcurpairrHrrrÚrestore~s ÿzExtensionSaver.restoreN)r7r8r9rArLrrrrrDrs rDc@óeZdZdd„ZdS)ÚCcCs |j|jkSr )Ú__dict__©r*ÚotherrrrÚ__eq__ˆó zC.__eq__N)r7r8r9rRrrrrrN‡ó rNc@rM)ÚDcCódSr r)r*ÚargrrrrAŒr$z D.__init__N©r7r8r9rArrrrrU‹rTrUc@rM)ÚEcCr-©Nrrr.rrrÚ__getinitargs__r$zE.__getinitargs__N)r7r8r9r[rrrrrYrTrYc@ó eZdZdS)ÚObjectN©r7r8r9rrrrr]”ór]c@rC)ÚKcCó ||_dSr )Úvalue)r*rbrrrrA™ó z K.__init__cCs t|jffSr )r`rbr.rrrÚ __reduce__œs z K.__reduce__N)r7r8r9rArdrrrrr`˜ó r`Ú__main__c@rM)ÚmyintcCst|ƒ|_dSr ©Ústr)r*r"rrrrA©ózmyint.__init__NrXrrrrrg¨rTrgc@rC)ÚinitargcCs||_||_dSr ©ÚaÚb)r*rmrnrrrrA®ó zinitarg.__init__cCs |j|jfSr rlr.rrrr[²rSzinitarg.__getinitargs__N)r7r8r9rAr[rrrrrk¬s rkc@r\)Ú metaclassNr^rrrrrpµr_rpc@r\)Ú use_metaclassNr^rrrrrq¸r_rq)rpc@rC)Úpickling_metaclasscCót|ƒt|ƒko |j|jkSr )ÚtypeÚ reduce_argsrPrrrrR¼s ÿzpickling_metaclass.__eq__cCs t|jfSr )Úcreate_dynamic_classrur.rrrrdÀrczpickling_metaclass.__reduce__N)r7r8r9rRrdrrrrrr»s rrcCst||tƒƒ}||f|_|Sr )rrÚdictru)ÚnameÚbasesÚresultrrrrvÃs rvc@s<eZdZdZdZdZdZdd„Zdd„ZeZ e dd„ƒZ dS) Ú ZeroCopyBytesTcCó4|dkrt|ƒjt |¡fdfSt|ƒjt|ƒffS©Né©rtÚ _reconstructrÚ PickleBufferÚbytes©r*ÚprotocolrrrÚ __reduce_ex__ÏózZeroCopyBytes.__reduce_ex__cCód |jjt|ƒ¡S©Nz{}({!r})©ÚformatÚ __class__r7r‚r.rrrÚ__repr__ÕózZeroCopyBytes.__repr__cCóXt|ƒ}|j}t|ƒ|ur|WdƒS||ƒWdƒS1s%wYdSr ©Ú memoryviewÚobjrt©Úclsr‘Úmrrrr€Úó  ü$úzZeroCopyBytes._reconstructN© r7r8r9ÚreadonlyÚ c_contiguousÚ f_contiguousÚzero_copy_reconstructr…rŒÚ__str__Ú classmethodr€rrrrr{Éór{c@s<eZdZdZdZdZdZdd„Zdd„ZeZ e dd„ƒZ d S) ÚZeroCopyBytearrayFTcCr|r}rrƒrrrr…ër†zZeroCopyBytearray.__reduce_ex__cCr‡rˆr‰r.rrrrŒñrzZeroCopyBytearray.__repr__cCrŽr rr’rrrr€ör•zZeroCopyBytearray._reconstructNr–rrrrržårržc@speZdZdZdd„Zdd„Zedd„ƒZedd „ƒZed d „ƒZ d d „Z dd„Z dd„Z dd„Z edd„ƒZdS)ÚPicklableNDArrayFcOstj|i|¤Ž|_dSr )Ú _testbufferZndarrayÚarray©r*r+ÚkwargsrrrrA ózPicklableNDArray.__init__cCs"t|ƒ}| |¡}|j||_|Sr )rtÚ__new__r¡)r*Úidxr“ÚnewrrrÚ __getitem__ s  zPicklableNDArray.__getitem__cCó|jjSr )r¡r—r.rrrr—ózPicklableNDArray.readonlycCr©r )r¡r˜r.rrrr˜rªzPicklableNDArray.c_contiguouscCr©r )r¡r™r.rrrr™rªzPicklableNDArray.f_contiguouscCsbt|tƒstS|jj|jjko0|jj|jjko0|jj|jjko0|jj|jjko0|j ¡|j ¡kSr ) Ú isinstancerŸÚNotImplementedr¡rŠÚshapeÚstridesr—ÚtobytesrPrrrrRs ÿþýüzPicklableNDArray.__eq__cCst|tƒstS||k Sr )r«rŸr¬rPrrrÚ__ne__'s  zPicklableNDArray.__ne__cCs.t|ƒ›d|jj›d|jj›d|j ¡›dS)Nz(shape=z ,strides=z, bytes=ú))rtr¡r­r®r¯r.rrrrŒ,s ÿþzPicklableNDArray.__repr__cCsž|jjstdƒ‚|jj|jj|jj|jrdntjdœ}t   |j¡}|dkr.t |ƒj ||ffS|  ¡}t |ƒj | ¡|ffWdƒS1sHwYdS)Nz>Reconstructing a non-contiguous ndarray does not seem possibler)r­r®rŠÚflagsr~)r¡Ú contiguousr(r­r®rŠr—r Ú ND_WRITABLErrrtr€Úrawr¯)r*r„Zndarray_kwargsÚpbr”rrrr…1s$ ü ÿ  ÿ$ÿzPicklableNDArray.__reduce_ex__cCsDt|ƒ}t| ¡ƒ}Wdƒn1swY||fi|¤ŽSr )rÚlistr¯)r“r‘r£r”Úitemsrrrr€Ds ýzPicklableNDArray._reconstructN)r7r8r9ršrAr¨Úpropertyr—r˜r™rRr°rŒr…rœr€rrrrrŸs     rŸs;(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@GtqRqKJÿÿÿÿKÿJÿÿÿJÿÿÿMÿÿJÿÿJÿÿJÿÿÿJ€J€(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@G†qRqKJÿÿÿÿKÿJÿÿÿJÿÿÿMÿÿJÿÿJÿÿJÿÿÿJ€J€(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@G†qRqKJÿÿÿÿKÿJÿÿÿJÿÿÿMÿÿJÿÿJÿÿJÿÿÿJ€J€(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@Œbuiltins”Œcomplex”“”G@G†”R”KJÿÿÿÿKÿJÿÿÿJÿÿÿMÿÿJÿÿJÿÿJÿÿÿJ€J€(Œabc”hŒ__main__”ŒC”“”)”}”(Œbar”KŒfoo”Kubh t”hKe.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(KKe…qRq.s%€c__builtin__ xrange qKKK‡qRq.sÍ€cCookie SimpleCookie q)qUkeyqcCookie Morsel q)q(UcommentqUqUdomainqhUsecureqhUexpiresq hUmax-ageq hUversionq hUpathq hUhttponlyq hu}q(U coded_valueqUvalueqhhhhubs}qb.s"€c__builtin__ set q]qKa…qRq.s€cexceptions ? q)Rq.sI€cexceptions UnicodeEncodeError q(UasciiqXfooqKKUbadqtqRq.cCsŒtƒ}d|_d|_gd¢}d}d}d}| dd|| | d|| | d|| | dg ¡dd||f}| |¡| |¡| d ¡|S) Nré)rrg@y@éÿéÿÿéÿÿÿéÿÿÿÿÚabcr~)rNÚfooÚbarÚextendÚappend)Úcr"Zuint1maxZuint2maxZint4maxÚyrrrÚ create_data,s"ý    rÆc@sšeZdZeƒZd\dd„Zdd„Zdd„Zdd „Zd d „Z d d „Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd„Zdd„Zd d!„Zd"d#„Zed$d%„ƒZed&d'„ƒZd(d)„Zd*d+„Zd,d-„Zd.d/„Zd0d1„Zed2d3„ƒZed4d5„ƒZed6d7„ƒZ d8d9„Z!d:d;„Z"dd?„Z$d@dA„Z%edBdC„ƒZ&dDdE„Z'dFdG„Z(dHdI„Z)dJdK„Z*dLdM„Z+dNdO„Z,dPdQ„Z-dRdS„Z.dTdU„Z/dVdW„Z0dXdY„Z1e2j3dZd[„ƒZ4dS)]ÚAbstractUnpickleTestsNcCsÜ|dur d ||¡}|j|||d|jt|ƒt|ƒ|dt|dƒr7|j|j|j|d|j|j|j|dt|dƒrj|j|j |j |d|j D]"}|jt||ƒt||ƒ|d|jt ||dƒt ||dƒ|dqIdSdS)zKUtility method to verify if two objects are copies of each others. Nz{!r} is not a copy of {!r})ÚmsgrOÚ __slots__) rŠÚ assertEqualÚassertIsrtÚhasattrZassertDictEqualrOÚ assertIsNotZassertListEqualrÉÚgetattr)r*r‘ZobjcopyrÈZslotrrrÚassert_is_copyFs$    ÿ ÿûz$AbstractUnpickleTests.assert_is_copyc Cs¶|j|dK| |¡-z| |¡Wnty1}ztjdkr,td||jj|fƒ‚d}~wwWdƒn1s.t)Útarget)Ú ToBeUnpickledcSóg|]}t|ƒ‘qSr)rt©Ú.0r"rrrÚ ¡ózCAbstractUnpickleTests.test_unpickle_module_race..rº)rÚosÚmkdirr Z addCleanupÚshutilZrmtreeÚsysÚpathÚinsertÚremoveÚopenÚjoinr@rér r”Ú threadingZBarrierZThreadrr–r˜r•r›rÊ) r*Z locker_moduleZlocking_import_moduleÚfr”r™Út1Út2r›rr—rÚtest_unpickle_module_racehsB ÿÿ  ÿ      þz/AbstractUnpickleTests.test_unpickle_module_racer )5r7r8r9rÆrÛrÏrÙrÝràrârärærìrñrr r rrrrrÚ requires_32br#r%r'r)r*r+r-r.r0r1r7r9r:r;r>r?r@rDrGrIrTrVrZr[rurvr‘rZ reap_threadsr®rrrrrÇAsl  9         2'_rÇc@sLeZdZdZejZdd„ZejZdd„Zdd„Z dd „Z e d fd d „Z d d„Z dd„Zdd„Ze d fdd„Zdd„Zdd„Zdd„Ze d fdd„Zdd„Zdd „Zd!d"„Ze d fd#d$„Zd%d&„Zd'd(„Zd)d*„Ze d fd+d,„Zd-d.„Zd/d0„Zd1d2„Ze d fd3d4„Z d5d6„Z!d7d8„Z"d9d:„Z#d;d<„Z$d=d>„Z%d?d@„Z&dAdB„Z'dCdD„Z(dEdF„Z)dGdH„Z*dIdJ„Z+dKdL„Z,dMdN„Z-dOdP„Z.dQdR„Z/dSdT„Z0dUdV„Z1dWdX„Z2dYdZ„Z3d[d\„Z4d]d^„Z5d_d`„Z6dadb„Z7dcdd„Z8dedf„Z9dgdh„Z:didj„Z;edrds„Z?dtdu„Z@dvdw„ZAdxdy„ZBdzd{„ZCd|d}„ZDd~d„ZEd€d„ZFd‚dƒ„ZGd„d…„ZHd†d‡„ZIdˆd‰„ZJdŠd‹„ZKdŒd„ZLdŽd„ZMdd‘„ZNd’d“„ZOd”d•„ZPd–d—„ZQd˜d™„ZRdšd›„ZSdœd„ZTdždŸ„ZUd d¡„ZVd¢d£„ZWd¤d¥„ZXd¦d§„ZYd¨d©„ZZdªd«„Z[d¬d­„Z\d®d¯„Z]d°d±„Z^d²d³„Z_d´dµ„Z`d¶d·„Zad¸d¹„Zbdºd»„Zcedd¼d½„ƒZed¾d¿„ZfdÀdÁ„ZgdÂdÄZhdÄdÅ„ZidÆdÇ„ZjdÈdÉ„ZkdÊdË„ZldÌdÍ„ZmdÎdÏ„ZndÐZodÑZpdÒdÓ„ZqerjsdÔdÕ„ƒZtdÖdׄZudØdÙ„ZverjsdÚdÛ„ƒZwdÜdÝ„ZxdÞdß„Zydàdá„Zzdâdã„Z{dädå„Z|dædç„Z}dèdé„Z~dêdë„Zdìdí„Z€dîdï„Zdðdñ„Z‚dòdó„Zƒdôdõ„Z„död÷„Z…e† ‡eˆdøudù¡dúdû„ƒZ‰düdý„ZŠdþdÿ„Z‹døS(ÚAbstractPickleTestsFcCrVr rr.rrrÚsetUp­r$zAbstractPickleTests.setUpcCsŠtD]@}tdƒ}| ||¡}| |¡}| ||¡d}| ||¡}| |¡}| ||¡td|ƒ}| ||¡}| |¡}| ||¡qdS)NrL)rrr)Ú protocolsrgÚdumpsrÓrÏrk©r*Úprotor"ÚsrÅrrrÚ test_misc²s         òzAbstractPickleTests.test_misccCs6|j}tD]}| ||¡}| |¡}| ||¡qdSr )rÛr²r³rÓrÏ)r*rFrµr¶rðrrrÚtest_roundtrip_equalityÆs   ýz+AbstractPickleTests.test_roundtrip_equalitycCsjddlm}ddlm}dtfdtffD]\}}| |j|¡}|ƒ}|||d| ¡}|  ||¡qdS)Nr)ÚStringIO©Údisr)Úout) r2r¹rr»Ú DATA0_DISÚ DATA1_DISr³rÛr=rÊ)r*r¹r»rµrFr¶ZfilelikerðrrrÚdont_test_disassemblyÓs   ûz)AbstractPickleTests.dont_test_disassemblyrc Cst|ƒ}| |¡t|tjdƒD]'}| ||¡}| |¡}| ||¡||ƒ}| t|ƒd¡|  |d|¡qdS©Nrr) rÃrùrÚHIGHEST_PROTOCOLr³rÓÚassertIsInstancerÊÚlenrË) r*r“ÚaslistÚ minprotocolÚlrµr¶r"rÅrrrÚ_test_recursive_listÞs    úz(AbstractPickleTests._test_recursive_listcCó| t¡dSr )rÇr·r.rrrÚtest_recursive_listêrjz'AbstractPickleTests.test_recursive_listcCó|jtdddS©Nrº)rÅ)rÇÚMyListr.rrrÚtest_recursive_list_subclassíóz0AbstractPickleTests.test_recursive_list_subclasscCó|jtdd„ddS)NcSó|jSr ©r¸r!rrrÚñóz>AbstractPickleTests.test_recursive_list_like..©rÄ)rÇÚREX_sixr.rrrÚtest_recursive_list_likeðr¤z,AbstractPickleTests.test_recursive_list_likec Cs,|ƒf}|d |¡t|tjdƒD]9}| ||¡}| |¡}| |t¡| t |ƒd¡| |d|¡||dƒ}| t |ƒd¡|  |d|¡q|\}t|tjdƒD];}| ||¡}| |¡}| ||¡||ƒ}| t |ƒd¡| |dt¡| t |dƒd¡|  |dd|¡qXdSrE) rÃrùrrÁr³rÓrÂÚtuplerÊrÃrË) r*r“rÄrÅr™rµr¶r"rÅrrrÚ_test_recursive_tuple_and_listós,       øz2AbstractPickleTests._test_recursive_tuple_and_listcCrÈr )rØr·r.rrrÚtest_recursive_tuple_and_list rjz1AbstractPickleTests.test_recursive_tuple_and_listcCrÊrË)rØrÌr.rrrÚ&test_recursive_tuple_and_list_subclassrÎz:AbstractPickleTests.test_recursive_tuple_and_list_subclasscCrÏ)NcSrÐr rÑr!rrrrÒrÓzHAbstractPickleTests.test_recursive_tuple_and_list_like..rÔ)rØrÕr.rrrÚ"test_recursive_tuple_and_list_liker¤z6AbstractPickleTests.test_recursive_tuple_and_list_likec Csx|ƒ}||d<t|tjdƒD]*}| ||¡}| |¡}| ||¡||ƒ}| t| ¡ƒdg¡|  |d|¡qdS©Nr) rùrrÁr³rÓrÂrÊr·rûrË© r*r“ÚasdictrÅÚdrµr¶r"rÅrrrÚ_test_recursive_dicts   úz(AbstractPickleTests._test_recursive_dictcCrÈr )ràrwr.rrrÚtest_recursive_dict"rjz'AbstractPickleTests.test_recursive_dictcCrÊrË)ràÚMyDictr.rrrÚtest_recursive_dict_subclass%rÎz0AbstractPickleTests.test_recursive_dict_subclasscCrÏ)NcSrÐr ©Útabler!rrrrÒ)rÓz>AbstractPickleTests.test_recursive_dict_like..©rÞ)ràÚ REX_sevenr.rrrÚtest_recursive_dict_like(r¤z,AbstractPickleTests.test_recursive_dict_likec Cs.|ƒf}||dd<t|tjdƒD]:}| ||¡}| |¡}| |t¡| t|ƒd¡| |d|¡||dƒ}| t |ƒdg¡|  |d|¡q|\}t|tjdƒD]<}| ||¡}| |¡}| ||¡||ƒ}| t |ƒdg¡| |dt¡| t|dƒd¡|  |dd|¡qXdSrE) rùrrÁr³rÓrÂr×rÊrÃr·rË© r*r“rÞrÅr™rµr¶r"rÅrrrÚ_test_recursive_tuple_and_dict+s,        øz2AbstractPickleTests._test_recursive_tuple_and_dictcCrÈr )rêrwr.rrrÚtest_recursive_tuple_and_dictErjz1AbstractPickleTests.test_recursive_tuple_and_dictcCrÊrË)rêrâr.rrrÚ&test_recursive_tuple_and_dict_subclassHrÎz:AbstractPickleTests.test_recursive_tuple_and_dict_subclasscCrÏ)NcSrÐr rär!rrrrÒLrÓzHAbstractPickleTests.test_recursive_tuple_and_dict_like..ræ)rêrçr.rrrÚ"test_recursive_tuple_and_dict_likeKr¤z6AbstractPickleTests.test_recursive_tuple_and_dict_likec Csœ|ƒ}d|t|ƒ<t|tjdƒD]:}| ||¡}| |¡}| ||¡||ƒ}| t|  ¡ƒd¡| t |  ¡ƒdt¡|  t |  ¡ƒdj |¡qdSrÀ) r`rùrrÁr³rÓrÂrÊrÃrûr·rËrbrÝrrrÚ_test_recursive_dict_keyNs    ùz,AbstractPickleTests._test_recursive_dict_keycCrÈr )rîrwr.rrrÚtest_recursive_dict_key\rjz+AbstractPickleTests.test_recursive_dict_keycCrÊrË)rîrâr.rrrÚ test_recursive_dict_subclass_key_rÎz4AbstractPickleTests.test_recursive_dict_subclass_keycCrÏ)NcSrÐr rär!rrrrÒcrÓzBAbstractPickleTests.test_recursive_dict_like_key..ræ)rîrçr.rrrÚtest_recursive_dict_like_keybr¤z0AbstractPickleTests.test_recursive_dict_like_keyc CsN|ƒf}d|dt|ƒ<t|tjdƒD]J}| ||¡}| |¡}| |t¡| t |ƒd¡| |d|¡||dƒ}| t |ƒd¡| t |  ¡ƒdt¡|  t |  ¡ƒdj |¡q|\}t|tjdƒD]:}| ||¡}| |¡}| ||¡||ƒ}| t |ƒd¡| t |  ¡ƒdt¡|  t |  ¡ƒdj d|¡qjdSrÀ)r`rùrrÁr³rÓrÂr×rÊrÃr·rûrËrbrérrrÚ"_test_recursive_tuple_and_dict_keyes,        ùz6AbstractPickleTests._test_recursive_tuple_and_dict_keycCrÈr )ròrwr.rrrÚ!test_recursive_tuple_and_dict_keyrjz5AbstractPickleTests.test_recursive_tuple_and_dict_keycCrÊrË)ròrâr.rrrÚ*test_recursive_tuple_and_dict_subclass_key„rÎz>AbstractPickleTests.test_recursive_tuple_and_dict_subclass_keycCrÏ)NcSrÐr rär!rrrrÒˆrÓzLAbstractPickleTests.test_recursive_tuple_and_dict_like_key..ræ)ròrçr.rrrÚ&test_recursive_tuple_and_dict_like_key‡r¤z:AbstractPickleTests.test_recursive_tuple_and_dict_like_keycCsþtƒ}| t|ƒ¡tdtjdƒD]0}| ||¡}| |¡}| |t¡|  t |ƒd¡| t |ƒdt¡|  t |ƒdj |¡q|\}tdtjdƒD].}| ||¡}| |¡}| |t¡| |j t¡|  t |j ƒd¡|  t |j ƒd|¡qNdS)NrLrr)r÷Úaddr`rùrrÁr³rÓrÂrÊrÃr·rËrb©r*rÅrµr¶r"rrrÚtest_recursive_setŠs$      úz&AbstractPickleTests.test_recursive_setcCs^tƒ}||_tD]$}| ||¡}| |¡}| |t¡| t|ƒt|ƒ¡| |j|¡qdSr ) r]Úattrr²r³rÓrÂrÊÚdirrË)r*Úirµr¶r"rrrÚtest_recursive_inst s   ûz'AbstractPickleTests.test_recursive_instcCs¬g}d|i}tƒ}||_| |¡tD]@}| ||¡}| |¡}| |t¡| t |ƒd¡| t |dƒt |ƒ¡| t|dj  ¡ƒdg¡|  |djd|¡qdSrÀ) r]rùrÃr²r³rÓrÂr·rÊrÃrúrûrË)r*rÆrßrûrµr¶r"rrrÚtest_recursive_multi«s    ùz(AbstractPickleTests.test_recursive_multicCsøtƒ}||gƒ|_t|jƒ}tD]3}| ||¡}| |¡}| |j|¡| t|jƒd¡| t |jƒdt¡|  t |jƒd|¡q|j}tD]0}| ||¡}| |¡}| ||¡| t|ƒd¡| t |ƒdt¡|  t |ƒdj|¡qIdSrÀ) r]rùrtr²r³rÓrÂrÊrÃr·rË)r*ÚfactoryÚor™rµr¶r"rrrÚ#_test_recursive_collection_and_instºs&       úz7AbstractPickleTests._test_recursive_collection_and_instcCrÈr )rr·r.rrrÚtest_recursive_list_and_instÓrjz0AbstractPickleTests.test_recursive_list_and_instcCrÈr )rr×r.rrrÚtest_recursive_tuple_and_instÖrjz1AbstractPickleTests.test_recursive_tuple_and_instcCó| tj¡dSr )rrwÚfromkeysr.rrrÚtest_recursive_dict_and_instÙrAz0AbstractPickleTests.test_recursive_dict_and_instcCrÈr )rr÷r.rrrÚtest_recursive_set_and_instÜrjz/AbstractPickleTests.test_recursive_set_and_instcCrÈr )rÚ frozensetr.rrrÚ!test_recursive_frozenset_and_instßrjz5AbstractPickleTests.test_recursive_frozenset_and_instcCrÈr )rrÌr.rrrÚ%test_recursive_list_subclass_and_instârjz9AbstractPickleTests.test_recursive_list_subclass_and_instcCrÈr )rÚMyTupler.rrrÚ&test_recursive_tuple_subclass_and_instårjz:AbstractPickleTests.test_recursive_tuple_subclass_and_instcCrr )rrârr.rrrÚ%test_recursive_dict_subclass_and_instèrAz9AbstractPickleTests.test_recursive_dict_subclass_and_instcCrÈr )rÚMySetr.rrrÚ$test_recursive_set_subclass_and_instërjz8AbstractPickleTests.test_recursive_set_subclass_and_instcCrÈr )rÚ MyFrozenSetr.rrrÚ*test_recursive_frozenset_subclass_and_instîrjz>AbstractPickleTests.test_recursive_frozenset_subclass_and_instcCsJtƒ}||_tD]}| ||¡}| |¡}| |t¡| |j|¡qdSr )Ú REX_stateÚstater²r³rÓrÂrËr÷rrrÚtest_recursive_inst_stateñs   üz-AbstractPickleTests.test_recursive_inst_statecCsØtƒf}||d_tD],}| ||¡}| |¡}| |t¡| t|ƒd¡| |dt¡|  |dj|¡q |\}tD],}| ||¡}| |¡}| |t¡| |jt¡| t|jƒd¡|  |jd|¡q=dSrE) rrr²r³rÓrÂr×rÊrÃrË)r*r™rµr¶r"rrrÚ#test_recursive_tuple_and_inst_stateûs$       úz7AbstractPickleTests.test_recursive_tuple_and_inst_statecCsBgd¢}tD]}|D]}| ||¡}| |¡}| ||¡q qdS)N)rz<\u>u<\ሴ>z< >z<\>u<\ð’…>u<í²€>©r²r³rÓrÏ)r*ZendcasesrµÚurCZu2rrrÚ test_unicodes  ýÿz AbstractPickleTests.test_unicodecCs4d}tD]}| ||¡}| |¡}| ||¡qdS)Nuð’…r)r*r™rµrCr­rrrÚtest_unicode_high_planes   ýz+AbstractPickleTests.test_unicode_high_planecCs¢tD]L}dD]}| ||¡}| || |¡¡qdd„tdƒDƒD]}| ||¡}| || |¡¡q!dd„tdƒDƒD]}| ||¡}| || |¡¡q.écSsg|]}t||gƒ‘qSrrrrrrrŸ+ó)r²r³rÏrÓrù)r*rµr¶rCrrrÚ test_bytes#s   þùzAbstractPickleTests.test_bytescCsÄtD]]}dD]X}t|ƒ}| ||¡}| |¡}| ||¡| ||¡|dkr7| d|¡| tt j |ƒ¡q|dkrK| d|¡| tt j |ƒ¡q|dkr^|  d|¡| tt j |ƒ¡qqdS)NrrKs bytearrayrLr~)r²r,r³rÓrÍrÏÚassertInÚ assertTruerrZGLOBALZ STACK_GLOBALÚ assertNotInÚ BYTEARRAY8)r*rµr¶rnrCZbbrrrÚtest_bytearray/s&       €ñÿz"AbstractPickleTests.test_bytearraycCsJtD] }dD]}t|ƒ}| ||f|¡}| |¡\}}| ||¡qqdS)Nr)r²r,r³rÓrË)r*rµr¶rnrCZb1Zb2rrrÚtest_bytearray_memoization_bugBsüÿz2AbstractPickleTests.test_bytearray_memoization_bugcCsVtD]&}tj}|r(| |fD]}| ||¡}| |¡}| ||¡q|d?}|s qdSrÜ)r²r¤Úmaxsizer³rÓrÏ)r*rµrrFr¶Zn2rrrÚ test_intsJs  û€þzAbstractPickleTests.test_intsc CsÂtD]0}dD]+}d|>}|d||dfD]}|| fD]}| ||¡}| |¡}| ||¡qqqqtddƒ}||d>7}|| fD]}| |d¡}| |¡}| t|ƒt¡| ||¡qCdS)N)réiðiøéirZdeadbeeffeedfaceéi@Brº)r²r³rÓrÏÚintrËrtrÊ) r*rµZnbitsZnbaseZnposrrrðrCrrrÚ test_longTs&  ýÿþ   ùzAbstractPickleTests.test_longcCsTgd¢}|dd„|Dƒ}tD]}|D]}| ||¡}| |¡}| ||¡qqdS)N) ggg+æp‹hgà®Z¤î*)g_DÅø… 9gš™™™™™¹?gà?g…ëQ¸ @g‘mÎ"wp@gêWôTáßDgꌠ9Y>)FcSsg|]}| ‘qSrrrrrrrŸnóz2AbstractPickleTests.test_float..r)r*Z test_valuesrµrbrrðrrrÚ test_floatks  ýÿzAbstractPickleTests.test_floatÚLC_ALLZde_DEZfr_FRcCs | | dd¡dd…d¡dS)Ng333333ó?rrKsF1.)rÊr³r.rrrÚtest_float_formatus z%AbstractPickleTests.test_float_formatcCs6tD]}tƒ}| ||¡}| |¡}| |t¡qdSr )r²ÚAAAr³rÓrÊÚREDUCE_A©r*rµÚinstrrrrrÚ test_reducezs   üzAbstractPickleTests.test_reducecCs:tD]}tddƒ}| ||¡}| |¡}| ||¡qdS)Nrrº)r²rkr³rÓrÏr4rrrÚtest_getinitargss    üz$AbstractPickleTests.test_getinitargscCs:tƒ}tD]}| ||¡}| |¡}| |j|j¡qdSr )rqr²r³rÓrÊr‹©r*rmrµr¶rnrrrÚtest_metaclassˆs   ýz"AbstractPickleTests.test_metaclasscCs^tdtfƒ}t ttj¡tD]}| ||¡}| |¡}|  ||¡|  t |ƒt |ƒ¡qdS)NZmy_dynamic_class) rvrrFrrrrdr²r³rÓrÊrËrtr8rrrÚtest_dynamic_classs    üz&AbstractPickleTests.test_dynamic_classcCs®ddl}ddl}| ¡}tD]F}| ||¡}| |¡}| ||¡| |j¡}| ||¡}| |¡}| ||¡t |dƒrT|  |j¡}| ||¡}| |¡}| ||¡qdS)NrÚstatvfs) Útimer¡Ú localtimer²r³rÓrÏÚstatÚcurdirrÌr;)r*r<r¡r™rµr¶rrrrÚtest_structseq˜s$            €ôz"AbstractPickleTests.test_structseqcCs0tD]}| d|¡}| |¡}| d|¡qdS©N.)r²r³rÓrË©r*rµr¶rrrrÚ test_ellipsis«ó   ýz!AbstractPickleTests.test_ellipsiscCs0tD]}| t|¡}| |¡}| t|¡qdSr )r²r³r¬rÓrËrBrrrÚtest_notimplemented±rDz'AbstractPickleTests.test_notimplementedcCsLddtg}|D]}tD]}| t|ƒ|¡}| |¡}| t|ƒ|¡q qdSrA)r¬r²r³rtrÓrË)r*Z singletonsZ singletonrµr¶rrrrÚtest_singleton_types·s  ýÿz(AbstractPickleTests.test_singleton_typescCsPtj ¡D] }t|tƒr%t|tƒs%tD]}| ||¡}|  |  |¡|¡qqdSr ) ÚbuiltinsrOÚvaluesr«rtÚ issubclassrÔr²r³rËrÓ©r*r™rµr¶rrrÚtest_builtin_typesÀs €üz&AbstractPickleTests.test_builtin_typescCsœtj ¡D]F}t|tƒrKt|tƒrKtD]7}| ||¡}|  |¡}|dkr4t|t ƒr4|t ur4|  |t ¡q|dkrDt|t ƒrD|  |t ¡q|  ||¡qqdS©Nrº)rGrOrHr«rtrIrÔr²r³rÓÚOSErrorÚBlockingIOErrorrËÚ ImportError)r*r™rµr¶rrrrÚtest_builtin_exceptionsÇs  €öz+AbstractPickleTests.test_builtin_exceptionscCsHtj ¡D]}t|tjƒr!tD]}| ||¡}| |  |¡|¡qqdSr ) rGrOrHr«ÚtypesÚBuiltinFunctionTyper²r³rËrÓrJrrrÚtest_builtin_functionsÔs  €üz*AbstractPickleTests.test_builtin_functionsc CsÔtD]'}| d|¡}|dkrtjt|gƒ}| | |¡¡q| ttj|ƒd¡qtdd}tj tj }tjt|gƒ|}z|  |¡Wnt yb}z|  dt|ƒ¡WYd}~dSd}~ww| d¡dS)Nrºrr¾rzunsupported pickle protocolz0expected bad protocol number to raise ValueError)r²r³rÚPROTOr‚r"Ú startswithrÊrÚNONErrÓrïr!riZfail)r*rµr5Z proto_headerZoobZ build_noneZ badpickleÚerrrrrÚ test_protoÝs    €ÿzAbstractPickleTests.test_protocCsLd}tD]}| ||¡}| |¡}| ||¡| ttj|ƒ|dk¡qdS)NìèUJ^w,3ƒ| rº)r²r³rÓrÏrÊrrZLONG1©r*r"rµr¶rÅrrrÚ test_long1ðs   üzAbstractPickleTests.test_long1cCsPdd>}tD]}| ||¡}| |¡}| ||¡| ttj|ƒ|dk¡qdS)NrYr*rº)r²r³rÓrÏrÊrrZLONG4rZrrrÚ test_long4øs   üzAbstractPickleTests.test_long4c Csidtj“dtj“dtj“dtj“dtj“dtj“dtj“dtj“d tj“d tj“d tj“d tj“d tj“dtj“dtj“dtj“dtj“tjtjtjdœ¥}d}d}d}d}d}tD]0}|||||fD]&}| ||¡} | | ¡} |  || ¡|t |dƒt |ƒf} |  t | | ƒ¡qdq[dS)N)rr)rr)rrº)rrK)rrL)rr)rr©rrº)rrK©rrL)rºr©rºr)rºrº)rºrK)rºrL)rKr)rKr))rKrº)rKrK©rKrLr)r©rrºrK)rrºrKrLrK)rZTUPLEZ EMPTY_TUPLEZTUPLE1ZTUPLE2ZTUPLE3r²r³rÓrÏÚminrÃr"r) r*Úexpected_opcodermrnrÄrßÚerµr"r¶rÅrFrrrÚtest_short_tuplessf ÿþýüúùø ÷ ö ô óòñðîíê   ûÿz%AbstractPickleTests.test_short_tuplesc Csžtjtjtjtjtjtjtjtjtjtjtjtjdœ }tD]/}dD]*}| ||¡}| |¡}| ||u||||f¡|t |dƒ|f}| t ||ƒ¡q!qdS)N) )rN)rN)rºN)rKN)rT)rT)rºT)rKT)rF)rF)rºF)rKF)NFTrK) rrVZINTZNEWTRUEZNEWFALSEr²r³rÓr"rbr)r*rcrµr"r¶rÅrFrrrÚtest_singletons's,ó  ûÿz#AbstractPickleTests.test_singletonscCóHtgd¢ƒ}d|_d|_tD]}| ||¡}| |¡}| ||¡qdS©NrarHÚhello)r rÀrÁr²r³rÓrÏrZrrrÚtest_newobj_tuple@ó   ýz%AbstractPickleTests.test_newobj_tuplecCrgrh)rÌrÀrÁr²r³rÓrÏrZrrrÚtest_newobj_listIrkz$AbstractPickleTests.test_newobj_listc CsŒtD]A}tD]<}|j}||jƒ}d|_| ||¡}| |¡}|||||t|ƒf}| ||¡|  ||ƒ||ƒ|¡|  |j |j |¡qqdS©NrH) r²Ú myclassesÚ__base__ÚsamplerÀr³rÓrtrÏrÊrO)r*rµrNÚBr"r¶rÅÚdetailrrrÚtest_newobj_genericRs    ÷ÿz'AbstractPickleTests.test_newobj_genericc CsÂtdd…}ttfD]}| |¡q tD]J}|D]E}|j}||jƒ}d|_t  |¡}|  ||¡}|  |¡} |  t | ƒt |ƒ¡||||| t | ƒf} |  ||ƒ|| ƒ| ¡|  |j| j| ¡qqdSrm)rnÚMyIntr r§r²rorprÀÚweakrefÚproxyr³rÓrÊrtrO) r*ZclassesrÄrµrNrqr"rCr¶rÅrrrrrÚtest_newobj_proxies_s"       öÿz'AbstractPickleTests.test_newobj_proxiescCs`tD]+}tdƒ}d|_| ||¡}| |¡}| t|ƒt¡| t|ƒd¡| |jd¡qdS)NrrH) r²Ú MyIntWithNew2rÀr³rÓrËrtrÊr,r´rrrÚtest_newobj_overridden_newrs  ùz.AbstractPickleTests.test_newobj_overridden_newcCsFt}t t¡}| |d¡}zda| ttjf|j|¡W|adS|aw)NrLrH)Ú SimpleNewObjr¥r³rÒrUrr!rÓ)r*ZsaverÿrnrrrÚtest_newobj_not_class}s  z)AbstractPickleTests.test_newobj_not_classcCsðt|ƒ}znt td|¡tgd¢ƒ}d|_d|_| |d¡}| t  d¡|¡| d|¡|  t ||ƒ¡|  |¡}|  ||¡| |d¡}| t  d¡|¡| d|¡| t ||ƒd t|ƒ¡|  |¡}|  ||¡W| ¡dS| ¡w) NrÌrarHrirr“sMyListrºT)rDrFrKr7rÌrÀrÁr³r!réÚ assertFalserrÓrÏr#rÊÚreprrL)r*ZextcodeÚopcoderdr"Ús1rÅÚs2rrrÚproduce_global_exts&        z&AbstractPickleTests.produce_global_extcCs | dtj¡| dtj¡dS)Nrr»)rrZEXT1r.rrrÚtest_global_ext1©sz$AbstractPickleTests.test_global_ext1cCó.| dtj¡| dtj¡| dtj¡dS)Nrr¼iÍ«)rrZEXT2r.rrrÚtest_global_ext2­óz$AbstractPickleTests.test_global_ext2cCrƒ)Nér½iïÍ«)rrZEXT4r.rrrÚtest_global_ext4²r…z$AbstractPickleTests.test_global_ext4cCsÈd}tt|ƒƒ}tD]!}| ||¡}| |¡}| ||¡ttj|ƒ}|  ||dk¡q d}tt|ƒƒ}tD]+}| ||¡}| |¡}| ||¡ttj|ƒ}|dkrZ|  |d¡q6|  |dk¡q6dS©Né réÄ rº) r·rùr²r³rÓrÏrrÚAPPENDSrÊr")r*rr"rµr¶rÅZ num_appendsrrrÚtest_list_chunking·s&          øz&AbstractPickleTests.test_list_chunkingcCsØd}t t|ƒ¡}tD]'}| ||¡}| |t¡| |¡}| ||¡t t j |ƒ}|  ||dk¡q d}t t|ƒ¡}tD]+}| ||¡}| |¡}| ||¡t t j |ƒ}|dkrb|  |d¡q>|  |dk¡q>dSrˆ)rwrrùr²r³rÂrrÓrÏrrÚSETITEMSrÊr")r*rr"rµr¶rÅZ num_setitemsrrrÚtest_dict_chunkingÍs(         øz&AbstractPickleTests.test_dict_chunkingcCsØd}tt|ƒƒ}tD]*}| ||¡}| |¡}| ||¡ttj|ƒ}|dkr.|  |d¡q |  |d¡q d}tt|ƒƒ}tD]*}| ||¡}| |¡}| ||¡ttj|ƒ}|dkrc|  |d¡q?|  |d¡q?dS)Nr‰rLrrrŠrº) r÷rùr²r³rÓrÏrrZADDITEMSrÊÚassertGreaterEqual)r*rr"rµr¶rÅZ num_additemsrrrÚtest_set_chunkingäs*          øz%AbstractPickleTests.test_set_chunkingc Csºt td¡}d|_tD]O}|j|d?| ||¡}|dkr%| d|¡n| d|¡| tt j |ƒd|k¡|  tt j |ƒ¡|  |¡}| ||¡Wdƒn1sUwYq dS)NéÎúéš©rµró I64206óMÎúrº)rzr¥r¿r²rÑr³r!rÊrrÚNEWOBJr|Ú NEWOBJ_EXrÓrÏrZrrrÚtest_simple_newobjýs"   ÿ ö€ÿz&AbstractPickleTests.test_simple_newobjc Csæt td¡}d|_tD]e}|j|dU| ||¡}|dkr%| d|¡n|dkr0| d|¡n|dkr;| d |¡n| d |¡| tt j |ƒd|k¡|  tt j |ƒ¡|  |¡}| ||¡Wdƒn1skwYq dS© Nr‘r’r“rr”rºr•rLs XFACEsŒFACE)Ú ComplexNewObjr¥r¿r²rÑr³r!rÊrrr–r|r—rÓrÏrZrrrÚtest_complex_newobj s*   ÿ ò€ÿz'AbstractPickleTests.test_complex_newobjc Csæt td¡}d|_tD]e}|j|dU| ||¡}|dkr%| d|¡n|dkr0| d|¡n|dkr;| d |¡n| d |¡| tt j |ƒ¡|  tt j |ƒd|k¡|  |¡}| ||¡Wdƒn1skwYq dSr™)ÚComplexNewObjExr¥r¿r²rÑr³r!r|rrr–rÊr—rÓrÏrZrrrÚtest_complex_newobj_ex! s*   ÿ ò€ÿz*AbstractPickleTests.test_complex_newobj_excCs>tgd¢ƒ}d|_d|_| |d¡}| |¡}| ||¡dS)NrarHrirº)ÚSlotListrÀrÁr³rÓrÏ)r*r"r¶rÅrrrÚtest_newobj_list_slots5 s   z*AbstractPickleTests.test_newobj_list_slotscCsTtD]%}tƒ}| |jd¡| ||¡}| |jd¡| |¡}| |jd¡qdSrE)r²ÚREX_onerÊÚ_reduce_calledr³rÓr´rrrÚ'test_reduce_overrides_default_reduce_ex= ó  úz;AbstractPickleTests.test_reduce_overrides_default_reduce_excCóTtD]%}tƒ}| |jd¡| ||¡}| |j|¡| |¡}| |jd¡qdSr )r²ÚREX_tworÊÚ_protor³rÓr´rrrÚtest_reduce_ex_calledF r£z)AbstractPickleTests.test_reduce_ex_calledcCr¤r )r²Ú REX_threerÊr¦r³rÓr´rrrÚtest_reduce_ex_overrides_reduceO r£z3AbstractPickleTests.test_reduce_ex_overrides_reducecCsTtD]%}tƒ}| |jd¡| ||¡}| |j|¡| |¡}| |j|¡qdSr )r²ÚREX_fourrÊr¦r³rÓr´rrrÚtest_reduce_ex_calls_baseX r£z-AbstractPickleTests.test_reduce_ex_calls_basecCsTtD]%}tƒ}| |jd¡| ||¡}| |jd¡| |¡}| |jd¡qdSrE)r²ÚREX_fiverÊr¡r³rÓr´rrrÚtest_reduce_calls_basea r£z*AbstractPickleTests.test_reduce_calls_basec CsNtƒ}tD]}t ¡| t|j||¡Wdƒn1swYqdSr )Ú BadGetattrr²rZinfinite_recursionrÒÚ RuntimeErrorr³)r*r"rµrrrÚtest_bad_getattrj s ÿ€ÿz$AbstractPickleTests.test_bad_getattrc Cs|Gdd„dtƒ}Gdd„dtƒ}tD])}z | |ƒ|¡Wn tjy'Ynwz | |ƒ|¡Wqtjy;YqwdS)Nc@rM)z7AbstractPickleTests.test_reduce_bad_iterator..CcSstddgdfSrZ)r·r.rrrrdv ózBAbstractPickleTests.test_reduce_bad_iterator..C.__reduce__N©r7r8r9rdrrrrrNu rTrNc@rM)z7AbstractPickleTests.test_reduce_bad_iterator..DcSstdddgfSrZ)rwr.rrrrdz r±zBAbstractPickleTests.test_reduce_bad_iterator..D.__reduce__Nr²rrrrrUy rTrU)rr²r³rÚ PicklingError)r*rNrUrµrrrÚtest_reduce_bad_iteratorr sÿÿùz,AbstractPickleTests.test_reduce_bad_iteratorc Cs–dd„tdƒDƒ}tdd„|Dƒƒ}t|ƒt|ƒt|ƒg}tD])}|j|d| ||¡}| |¡}| ||¡Wdƒn1sCwYqdS)Ncss|] }dt|ƒVqdS)ZaaaNrhrrrrÚ Œ ó€z>AbstractPickleTests.test_many_puts_and_gets..r(css|] }|gd¢fVqdS))rLr~rMNr)ržÚkrrrrµ r¶r“)rùrwr²rÑr³rÓrÏ)r*rûZ large_dictr‘rµrrrrrÚtest_many_puts_and_gets‰ s  ý€ÿz+AbstractPickleTests.test_many_puts_and_getsc CsjtD]0}tƒ}d|_d|_| ||¡}| |¡}t|jƒ}t|jƒ}t||ƒD] \}}|  ||¡q'qdS)NrHri) r²rNrÀrÁr³rÓÚsortedrOÚziprË) r*rµr"r¶rÅZx_keysZy_keysZx_keyZy_keyrrrÚtest_attribute_name_interning– s    ÿøz1AbstractPickleTests.test_attribute_name_interningcCs>| tdƒd¡}| |t¡| tdgƒd¡}| |t¡dS)Nr~rºrK)r³rùrÊrør÷Ú DATA_SET2rrrrÚtest_pickle_to_2x¤ s z%AbstractPickleTests.test_pickle_to_2xcCsTtD]%}dtddtf}| ||¡}| |¡}| t|ƒt|ƒ¡| ||¡qdS)Nrsxyix)r²rbrÃr³rÓrÊ)r*rµrÐrrrrrÚtest_large_pickles® s  ûz&AbstractPickleTests.test_large_picklesc s”tD]E‰ˆjˆd5‡‡fdd„tdƒDƒ}ttt|ƒƒ}ˆ t|ƒ|¡ˆdkr8|D] }ˆ t t j |ƒ¡q,Wdƒn1sBwYqdS)Nr“csg|] }ˆ d|ˆ¡‘qS©rº©r³)ržr©rµr*rrrŸ¼ ózDAbstractPickleTests.test_int_pickling_efficiency..éFrº) r²rÑrùr·ÚmaprÃrÊr¹r|rrZLONG)r*ZpicklesZsizesrCrrÁrÚtest_int_pickling_efficiency¸ s€ù€ÿz0AbstractPickleTests.test_int_pickling_efficiencycCs6| ||¡}| t||ƒ¡| |¡}| ||¡dSr )r³r"rrÓrÊ)r*r‘r~rµr5r6rrrÚ_check_pickling_with_opcodeÄ s  z/AbstractPickleTests._check_pickling_with_opcodecCsDtgd¢ƒ}tD]}|dkr| |tj|¡q| |tj|¡qdS)Nrar)rÕr²rÆrZAPPENDr‹©r*r‘rµrrrÚtest_appends_on_non_listsÊ s üz-AbstractPickleTests.test_appends_on_non_listscCsHtddddœƒ}tD]}|dkr| |tj|¡q | |tj|¡q dS)Nr¾éþÿÿÿéýÿÿÿrar)rçr²rÆrZSETITEMrrÇrrrÚtest_setitems_on_non_dictsÓ s üz.AbstractPickleTests.test_setitems_on_non_dictsrLr†cCs8d}}hd£}t |¡D]m\}}}|dur"| ||¡||kr"d}|dur<| |jd¡|j|vr;| t|ƒ|j¡n,|jdksM|j|vr]t|ƒ|jkr]|dur\| |||j¡d}n |durh|jdkrh|}|jdkrz|  ||j¡|d|}q t|ƒ}|dur‹|  ||¡dS|durš| |||j¡dSdS)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>Ú BINBYTES8Ú BINUNICODEr$ÚBINBYTESÚ BINUNICODE8ÚFRAMErTé ) rrÚassertLessEqualÚassertNotEqualrxrÃÚFRAME_SIZE_TARGETÚ assertLessÚFRAME_SIZE_MINrrÊ)r*r5Z frame_endZframeless_startZframeless_opcodesrrWÚposrrrÚcheck_frame_opcodesà sB  €   ÿ€  €ÿz'AbstractPickleTests.check_frame_opcodesc Cs¶ttdƒƒ}tdtjdƒD]J}|j|d:| ||¡}| |¡}| ||¡t|ƒt tj |ƒ}|  ||j d¡|  ||j d¡| |¡Wdƒn1sSwYqdS)Ni †rLrr“rº)r·rùrrÁrÑr³rÓrÊrÃrrÐÚ assertGreaterrÔrÒrØ)r*r‘rµr5r6Zbytes_per_framerrrÚtest_framing_many_objects s&     ÿÿÿ ö€ÿz-AbstractPickleTests.test_framing_many_objectsc Cs8d}dd„tdƒDƒ}d|g|¢d|‘d|‘}tdtjd ƒD]w}d D]r}|j||d a|s9| ||¡}n$t|d ƒsF Wdƒq&t ¡}|j||d }||_ |  |¡|  ¡}|  |¡} |  dd„|Dƒdd„| Dƒ¡|  || ¡ttj|ƒ} |  | d ¡| |¡Wdƒn1s“wYq&q"dS)NicSsg|]}|g‘qSrrrrrrrŸ! r.zBAbstractPickleTests.test_framing_large_objects..r‰óxóyÚzrLr)FT)rµÚfastÚpickler©r„cSrœr©rÃrrrrrŸ5 r cSrœrrárrrrrŸ6 r )rùrrÁrÑr³rÌr2r<rßrÞÚdumpr=rÓrÊrrÐrØ) r*ÚNZ small_itemsr‘rµrÞr5Zbufrßr6Ún_framesrrrÚtest_framing_large_objects s8 ø    ÿ    è€ÿÿz.AbstractPickleTests.test_framing_large_objectscsØtjdkrdSd dd„}|j‰d}ttfD]T‰‡‡fdd„t|ƒDƒ}tdtjdƒD]=}| ||¡}||ƒ}| ttj |ƒd¡| ||  |¡¡||d d „ƒ}|  ttj |ƒttj |ƒ¡| ||  |¡¡q+qdS) NrLc Ssˆg}d}t |¡D]\}}}|jdkr| |¡q tƒ}d}t|ƒD]\} }|r-|| ƒr-q"||||…7}||}q"|||d…7}|S)z+Remove frame opcodes from the given pickle.rÑrÐrN)rrrxrÃr,Ú enumerate) r5Z keep_frameZ frame_startsZframe_opcode_sizer~Ú_r×Z newpickleZlast_frame_endrûrrrÚ remove_framesC s  €  z?AbstractPickleTests.test_optional_frames..remove_framesécsi|] }|ˆ|gƒˆ“qSrrr©Z bytes_typeZ frame_sizerrÚ [ rÂz.rrcSs|dSrLr)rûrrrrÒd sz:AbstractPickleTests.test_optional_frames..r ) rrÁrÔr‚r,rùr³rÊrrÐrÓrÕ)r*rèZ num_framesr‘rµr5Zframeless_pickleZsome_frames_picklerrêrÚtest_optional_frames? s&     ÿöýz(AbstractPickleTests.test_optional_framesc s|Gdd„dƒ}tdtjdƒD]¬}dd„ttdƒƒDƒ}| dˆjd d¡|ƒ}ˆ ||¡ |¡| ¡}ˆ  |¡}ˆ  ||¡ˆ  t |j ƒd¡~t ¡ˆ  | ¡|¡t |ƒdˆjd}ˆ 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(eZdZdZdd„Zdd„Zdd„ZdS) zYAbstractPickleTests.test_framed_write_sizes_with_delayed_writer..ChunkAccumulatorz2Accumulate pickler output in a list of raw chunks.cSs g|_dSr )Úchunksr.rrrrAm rczbAbstractPickleTests.test_framed_write_sizes_with_delayed_writer..ChunkAccumulator.__init__cSó|j |¡dSr )rírÃ)r*Úchunkrrrr@o rAz_AbstractPickleTests.test_framed_write_sizes_with_delayed_writer..ChunkAccumulator.writecSs d |j¡S)Nrw)r©rír.rrrÚconcatenate_chunksq rSzlAbstractPickleTests.test_framed_write_sizes_with_delayed_writer..ChunkAccumulator.concatenate_chunksN)r7r8r9rBrAr@rðrrrrÚChunkAccumulatork s  rñrLrcSs,g|]}t|ƒ d¡|ddt|ƒif‘qS)rçrHrû)rirérrrrrŸu s$ÿzSAbstractPickleTests.test_framed_write_sizes_with_delayed_writer..gˆÃ@Z0123456789abcdefr+rºrKcSrœrrá)ržrÄrrrrŸ™ r csg|] }|ˆjkr|‘qSr©rÔ©ržr¶r.rrrŸš s ÿcs*g|]}d|krˆjkrnn|‘qS©rÑròrór.rrrŸœ sÿcSsg|]}|dkr|‘qSrôrrórrrrŸž r)rùrrÁr,rÃrÔrßrârðrÓrÊrÙrÃrírZ gc_collectrrÒrÕ) r*rñrµZobjectsÚwriterr5Z reconstructedräZ chunk_sizesZ large_sizesZ medium_sizesZ small_sizesZ chunk_sizerr.rÚ+test_framed_write_sizes_with_delayed_writeri sB  ÿ ÿ  ÿ þÍz?AbstractPickleTests.test_framed_write_sizes_with_delayed_writerc CsŽGdd„dƒattjdƒD]6}tjtjjtjjjfD](}|j||d| |  ||¡¡}|  ||¡Wdƒn1s>wYqqdS)Nc@óeZdZGdd„dƒZdS)ÚNestedc@r÷)zNested.Ac@r÷)z Nested.A.Bc@r\)z Nested.A.B.CNr^rrrrrN° r_rNN)r7r8r9rNrrrrrq¯ órqN)r7r8r9rqrrrrÚA® rùrúN)r7r8r9rúrrrrrø­ rùrør)rµr‘) rørùrrÁrúrqrNrÑrÓr³rË)r*rµr‘r6rrrÚtest_nested_names« sþ€ÿÿz%AbstractPickleTests.test_nested_namesc CsˆGdd„dƒatjtjt_dt_ttjdƒD]'}|j |d|  |  t|¡¡}|  |t¡Wdƒn1s:wYqt`dS)Nc@r\)Ú RecursiveNr^rrrrrüº r_rüzRecursive.mod.Recursiverr“) rür¤Úmodulesr8Úmodr9rùrrÁrÑrÓr³rË)r*rµr6rrrÚtest_recursive_nested_names¸ sþ€z/AbstractPickleTests.test_recursive_nested_namesc Cs˜Gdd„dƒatjtjtƒjtjjtjjt ¡jf}tjtftjjtjff}tt j dƒD]c}|D]*}|j ||d|  |  ||¡¡}| |ƒ|ƒ¡Wdƒn1sVwYq1|D]1\}}|ƒ}|j ||d|  |  ||¡¡}| ||ƒ||ƒ¡Wdƒn1sŠwYq^q-tjdtjdf}tt j dƒD]'}|D]"} |j || d| t|j | |¡Wdƒn1sÃwYq¦q¢dS)Nc@s:eZdZedd„ƒZedd„ƒZdd„ZGdd„dƒZd S) Ú PyMethodsTestcSr-)NÚcheeserrrrrrÇ ózPyMethodsTest.cheesecSs|tusJ‚dS)NÚwine)r©r“rrrrÊ s zPyMethodsTest.winecSst|tƒsJ‚dS)NÚbiscuits)r«rr.rrrrÎ szPyMethodsTest.biscuitsc@s0eZdZdZedd„ƒZedd„ƒZdd„ZdS) zPyMethodsTest.Nestedz Nested classcSr-)NÚketchuprrrrrrÓ rzPyMethodsTest.Nested.ketchupcSs|tjusJ‚dS)NÚmaple)rrørrrrrÖ szPyMethodsTest.Nested.maplecSst|tjƒsJ‚dS)NÚpie)r«rrør.rrrrÚ szPyMethodsTest.Nested.pieN) r7r8r9rBÚ staticmethodrrœrrrrrrrøÑ s   røN) r7r8r9r rrœrrrørrrrrÆ s  rr©rµÚmethodrr©rµÚdescr)rrrrrørrrrùrrÁrÑrÓr³rÊrOrÒrU) r*Z py_methodsZpy_unbound_methodsrµr r6r“r‘Ú descriptorsr rrrÚtest_py_methodsÄ sJú þþ€ þ€þþÿ€ÿÿz#AbstractPickleTests.test_py_methodscCsœGdd„dtƒadjdftjdfgd¢jdftjgd¢ffdd hjd ftjdd hd fftj d ft j d ftgd ¢ƒj d ftj tgd ¢ƒd fft  d¡j dftj j t  d¡dfff }ttjdƒD]3}|D].\}}|j||d| | ||¡¡}| ||Ž||Ž¡Wdƒn1sŒwYqcq_t jdtjdf}ttjdƒD]'}|D]"}|j||d| t|j||¡Wdƒn1sÅwYq¨q¤dS)Nc@seZdZGdd„deƒZdS)ÚSubclassc@r\)zSubclass.NestedNr^rrrrrø r_røN)r7r8r9rirørrrrr srÚabcd)rÄ)rrÄrarrrºr¿))rmr)rnrº)sabcr)rrºrºZsweet)rdrdr Ú maketransrr )r×rÚindexriÚ__len__r·Ú __contains__r÷rwrr,rÚcountrørùrrÁrÑrÓr³rÊrOrÒrU)r*Z c_methodsrµr r+r6rr rrrÚtest_c_methodsþ sB  ë þ€ÿþÿ€ÿÿz"AbstractPickleTests.test_c_methodsc Csôtddƒddfttdƒddftjddftjd d ftƒd d ft  ¡d d ft  ¡ddft  ¡ddfg}|D]D\}}}tdƒD]:}|j t |ƒ|d'| ||¡}| d||f ¡|¡| t | |¡ƒt |ƒ¡Wdƒn1sqwYq.frr) rùrrÁrÒÚAttributeErrorr³rr»r³r8r9r7©r*r«rµrrrÚtest_local_lookup_error< s&ÿ€ÿ€ÿ€ÿz+AbstractPickleTests.test_local_lookup_errorccsŠd}t|ƒVt|ƒVtdurAt|ƒ}tj|dd}dtjfD]!}t|dd|dVt|ddd |d Vt|ddd |d Vq!dSdS) NóabcdefghÚlittle)Ú byteorderrrq)r))rŠr­r²)rLrºr_)rŠr­r®r²r^)r{ržr r·r,Ú from_bytesr´rŸ)r*Z bytestringr¸rbr²rrrÚbuffer_like_objectsU s(€  ÿÿ þõz'AbstractPickleTests.buffer_like_objectscCs| ¡D]y}tdtjdƒD]n}| ||¡}|jr#|dkr#| d|¡| ttj |ƒd¡|dkra| ttj |ƒ|j r=dnd¡| ttj |ƒ|j rLdnd¡dd„}|j|||d}| ||¡|  |¡}| ||¡| t|ƒt|ƒ¡| ||¡qqdS)Nrrr~r!cSr-©NTr©r‘rrrÚbuffer_callbacky r$zAAbstractPickleTests.test_in_band_buffers..buffer_callback©r()r%rùrrÁr³r˜r!rÊrÚ NEXT_BUFFERÚSHORT_BINBYTESr—r$rÓrÍrËrt)r*r‘rµrÐr(Údata2r§rrrÚtest_in_band_buffersi s0    ÿ ÿÿ   éÿz(AbstractPickleTests.test_in_band_buffersc sÒ| ¡D]â}tddƒD] }| t¡|j||gjdWdƒn1s&wYq tdtjdƒD]±}g‰‡fdd„}|j|||d}| d|¡|  t tj |ƒd¡|  t tj |ƒd¡|  t tj |ƒd¡|  t tj|ƒ|jrvdnd¡|jr†|  tˆdƒd¡| tj¡ | |¡Wdƒn1sœwY|j|ˆd}|jr²| ||¡n| t|ƒt|ƒ¡|  ||¡|j|tˆƒd}|jrÕ| ||¡q4| t|ƒt|ƒ¡|  ||¡q4qdS) Nrr~r)rcsˆ | ¡¡Sr )rÃrµ)r¶©ÚbuffersrrrÒ’ sz6AbstractPickleTests.test_oob_buffers..r!r.)r%rùrÒrïr³rÃrrÁr#rÊrr+r$r*ZREADONLY_BUFFERr—r˜r‚r!rÓršrËrtÚiter)r*r‘rµr(rÐr§rr.rÚtest_oob_buffersˆ sL  ÿÿ€ ÿ  ÿ ÿ àúz$AbstractPickleTests.test_oob_bufferscCsttdƒ}tdtjdƒD]+}g}|j}|j|||d}tt|ƒ}|j||d}|  t |ƒt |ƒ¡|  ||¡q dS©Nófoobarr~rr)r.) r{rùrrÁrÃr³rÄr,rÓrËrtrÊ)r*r‘rµr/r(rÐr§rrrÚ%test_oob_buffers_writable_to_readonly² s øz9AbstractPickleTests.test_oob_buffers_writable_to_readonlyc CsVt d¡}tddƒD]}| tj¡| ||¡Wdƒn1s#wYq dS)Nr3rr~)rrrùrÒZ PickleErrorr³)r*r¶rµrrrÚtest_picklebuffer_error¿ s ÿ€ÿz+AbstractPickleTests.test_picklebuffer_errorcCsRdd„}t d¡}| t¡|j|d|dWdƒdS1s"wYdS)NcSs dddSrÀrr.rrrr(Ç rSzGAbstractPickleTests.test_buffer_callback_error..buffer_callbackr3r~r))rrrÒÚZeroDivisionErrorr³)r*r(r¶rrrÚtest_buffer_callback_errorÆ s   "ÿz.AbstractPickleTests.test_buffer_callback_errorc Csªt d¡}tdtjdƒD]E}|j||gjd}| t¡|j|t ƒdWdƒn1s0wY| tj ¡|j|gdWdƒn1sMwYq dSr2) rrrùrÁr³rÃrÒrUrÓrr!)r*r¶rµrÐrrrÚtest_buffers_errorÍ s  ÿÿ€úz&AbstractPickleTests.test_buffers_errorcCs8tdtjdƒD]}|jd|dd}|j|dd}qdS)Nr~rr)r.)rùrrÁr³rÓ)r*rµZ data_pickledrÐrrrÚ+test_inband_accept_default_buffers_argumentØ sþz?AbstractPickleTests.test_inband_accept_default_buffers_argumentNzTest needs Numpycs„‡fdd„‰‡fdd„‰‡‡‡fdd„}t d¡}||ƒ||ddd…ƒt d ¡ d ¡}||ƒ||jƒ||ddd…ƒdS) Ncó&tj ||¡ˆ |jj|jj¡dSr )ÚnpÚtestingÚ assert_equalrÊÚctypesrЩr"rÅr.rrÚ check_no_copyß óz=AbstractPickleTests.test_buffers_numpy..check_no_copycr:r )r;r<r=rÓr>rÐr?r.rrÚ check_copyã rAz:AbstractPickleTests.test_buffers_numpy..check_copycsàtdtjdƒD]}ˆ ||¡}ˆ |¡}ˆ||ƒqtdtjdƒD]}dd„}ˆj|||d}ˆ |¡}ˆ||ƒq#tdtjdƒD])}g}|j}ˆj|||d}ˆj||d}|jjsb|jjrhˆ||ƒqDˆ||ƒqDdS)Nrrr~cSr-r&r)rçrrrrÒî ózMAbstractPickleTests.test_buffers_numpy..check_array..r)r.) rùrrÁr³rÓrÃr²r˜r™)ÚarrrµrÐr§r(r/©rBr@r*rrÚ check_arrayç s$       øz;AbstractPickleTests.test_buffers_numpy..check_arrayrMrºé r`)r;ZarangeZreshapeÚT)r*rFrDrrErÚtest_buffers_numpyÝ s    z&AbstractPickleTests.test_buffers_numpyc sÀddlm‰G‡‡‡fdd„dƒatD]J}tdƒD]C}d‰dd„tdƒDƒ‰ˆD]}||_ˆ|_q(d ‰z | ˆ|¡}| |¡Wqt y\}zd }|  |t |ƒ¡WYd}~qd}~wwqdS) Nr)Ú getrandbitscs.eZdZ‡fdd„Zdd„Z‡‡fdd„ZdS)ÚBadcsˆSr rrP)ÚENABLEDrrrR r$z Bad.__eq__cSr-rmrr.rrrÚ__hash__ r$z Bad.__hash__csˆdƒdkr ˆ ¡tdfS)NrMrr)ÚclearrKr.)Ú collectionrJrrrd s zBad.__reduce__N)r7r8r9rRrMrdr©rLrOrJrrrK s rKréFcSsi|]}tƒtƒ“qSr)rK)ržrçrrrrë rzEAbstractPickleTests.test_evil_class_mutating_dict..Túchanged size during iteration) ZrandomrJrKr²rùrõrOr³rÓr¯r!ri)r*rµrçrõrÐrdrFrrPrÚtest_evil_class_mutating_dict s(   €þöÿz1AbstractPickleTests.test_evil_class_mutating_dictcs´tˆdƒsˆ tˆƒ›d¡‚Gdd„dƒa‡‡fdd„}tD]8‰|tƒgƒ|tƒtƒgƒ|tƒhƒ|tƒtƒhƒ|tƒdiƒ|tƒdtƒdiƒ|tƒtƒd œƒqdS) Nrßz has no associated pickler typec@r\)ÚClearerNr^rrrrrS. r_rSc spG‡fdd„dˆjƒ}|t ¡ˆƒ}z| ˆ¡WdSty7}zd}ˆ |t|ƒ¡WYd}~dSd}~ww)NcseZdZ‡fdd„ZdS)z]AbstractPickleTests.test_evil_pickler_mutating_collection..check..EvilPicklercst|tƒr ˆ ¡dSr )r«rSrN©r*r‘©rOrrÚ persistent_id3 s zkAbstractPickleTests.test_evil_pickler_mutating_collection..check..EvilPickler.persistent_idN)r7r8r9rVrrUrrÚ EvilPickler2 órWrQ)rßr2r<râr¯r!ri)rOrWrßrdrFrÁrUrÚcheck1 s€þzHAbstractPickleTests.test_evil_pickler_mutating_collection..checkrrºr])rÌZskipTestrtrSr²)r*rYrrÁrÚ%test_evil_pickler_mutating_collection( s   ùz9AbstractPickleTests.test_evil_pickler_mutating_collection)Œr7r8r9Z optimizedrÇrÛr±rÏr·r¸r¿r#rÇrÉrÍrÖrØrÙrÚrÛràrárãrèrêrërìrírîrïrðrñròrórôrõrørürýrrrrrrr r r rrrrrrr r%r&r(r-r/rr1r6r7r9r:r@rCrErFrKrPrSrXr[r\rerfrjrlrsrwryr{rr‚r„r‡rŒrŽrr˜r›rrŸr¢r§r©r«r­rr°r´r¸r»r½r¾rÅrÆrÈrËrÖrÔrØrZskip_if_pgo_taskrÚrårìrörûrÿrrrr r%r-r1r4r5r7r8r9ÚunittestZskipIfr;rIrRrZrrrrr°¦s               '               /  * A  :,*   , r°c@szeZdZeeddddd„ƒZeeddddd„ƒZeedddd d „ƒZeed ddd d „ƒZ eed dddd„ƒZ dS)ÚBigmemPickleTestsgÍÌÌÌÌÌ @F)ÚsizeZmemuseZdry_runc Csšdd|>}zCtD];}|dkrq |j|d&| ttf¡|j||dWdƒn1s0wYWdƒn1s?wYq Wd}dSd}w)Nrr)rºr“rà)r²rÑrÒrïr"r³)r*r]rÐrµrrrÚtest_huge_long_32bL s ÿ€ÿ€ýz$BigmemPickleTests.test_huge_long_32bg@c Cs¸d|d}zRtD]J}|dkrq |j|d5z)|j||d}tjt dt|ƒ¡}| |¡}|  |||t|ƒ|…¡Wd}nd}wWdƒn1sNwYq Wd}dSd}w)NóabcdrLrKr“ràr) r²rÑr³rrÎrrrÃrrÊ©r*r]rÐrµr5ÚheaderZ data_startrrrÚtest_huge_bytes_32b] s* ÿ þö€ýz%BigmemPickleTests.test_huge_bytes_32bc Cs d|d}z|tD]t}|dkrq |j|d_|dkrA| ttf¡|j||dWdƒn1s4wY Wdƒq z)|j||d}tjt  dt |ƒ¡}|  |¡}|  |||t |ƒ|…¡Wd}nd}wWdƒn1sxwYq Wd}dSd}w)NsacbdrLrKr“ràú ó rxc@seZdZdgZdS)ržrÀN)r7r8r9rÉrrrrržB r…ržc@rC)rzcOrq)Nz3SimpleNewObj.__init__() didn't expect to get called)rUr¢rrrrAF rªzSimpleNewObj.__init__cCrsr )r,rOrPrrrrRI rszSimpleNewObj.__eq__N)r7r8r9rArRrrrrrzE rerzc@rM)ršcCs d|dfS)Nú%Xr+rr.rrrÚ__getnewargs__M rSzComplexNewObj.__getnewargs__N)r7r8r9r‡rrrrršL rTršc@rM)rœcCsd|fddifS)Nr†Úbaser+rr.rrrÚ__getnewargs_ex__Q rÎz!ComplexNewObjEx.__getnewargs_ex__N)r7r8r9r‰rrrrrœP rTrœc@rM)r®cCs |jdSr )rÀ)r*ròrrrÚ __getattr__U rczBadGetattr.__getattr__N)r7r8r9rŠrrrrr®T rTr®c@sdeZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dd„Z dd„Z dS)ÚAbstractPickleModuleTestsc CóBttdƒ}z| ¡| t|jd|¡Wt t¡dSt t¡w©Nr’é{©r¨r ÚcloserÒrïrârÚunlink©r*r«rrrÚtest_dump_closed_file[ ó z/AbstractPickleModuleTests.test_dump_closed_filec CrŒrrr’rrrÚtest_load_closed_filec r”z/AbstractPickleModuleTests.test_load_closed_filecCsBt ¡}didg}| ||¡| d¡| |¡}| ||¡dS)NrŽé|r)r2r<râr4ÚloadrÊ)r*ÚstreamrÐr6rrrÚtest_load_from_and_dump_to_filek s     z9AbstractPickleModuleTests.test_load_from_and_dump_to_filecCs| tjd¡dSr})rÊrrÁr.rrrÚtest_highest_protocols sz/AbstractPickleModuleTests.test_highest_protocolcCs^t ¡}| d|d¡|jd|dd| dd¡|jddd| |d¡|j|dddS)NrŽr¾)Úfiler„rà)r2r<râr³ÚPicklerr’rrrÚ test_callapiw s  z&AbstractPickleModuleTests.test_callapic CsVttdƒ}ztD] }| t|jd||¡qW| ¡t t¡dS| ¡t t¡w)NÚwrŽ) r¨r r²rÒrUrârrr‘rrrrÚtest_dump_text_file s ÿÿ z-AbstractPickleModuleTests.test_dump_text_filecCs(t d¡}| ttjtjf|j|¡dS)NsX''.) r2r<rÒrrrYrr!r—)r*r¶rrrÚtest_incomplete_inputŠ s z/AbstractPickleModuleTests.test_incomplete_inputcCsNGdd„d|jƒ}Gdd„d|jƒ}| tj|ƒjd¡| tj|ƒj¡dS)Nc@rM)z;AbstractPickleModuleTests.test_bad_init..BadPicklercSrVr rr.rrrrA’ rCzDAbstractPickleModuleTests.test_bad_init..BadPickler.__init__NrXrrrrÚ BadPickler‘ rTr¡c@rM)z=AbstractPickleModuleTests.test_bad_init..BadUnpicklercSrVr rr.rrrrA• rCzFAbstractPickleModuleTests.test_bad_init..BadUnpickler.__init__NrXrrrrÚ BadUnpickler” rTr¢r)rœZ UnpicklerrÒrr³râr!r—)r*r¡r¢rrrÚ test_bad_initŽ sz'AbstractPickleModuleTests.test_bad_initc Csðtdƒ}tddƒD]}| t¡|||gjdWdƒn1s#wYq tdtjdƒD]D}g}|j}||||d}| d|¡| t |dƒd¡| tj ¡ ||ƒWdƒn1sdwY|||d}|  ||¡q1dS)Nsfoorr~)r„r(rr.) r{rùrÒrïrÃrrÁr#rÊr‚r!rË) r*r³rÓr‘rµr/r(rÐr§rrrÚcheck_dumps_loads_oob_buffersš s, ÿÿ€ÿ  ÿ õz7AbstractPickleModuleTests.check_dumps_loads_oob_bufferscCs| |j|j¡dSr )r¤r³rÓr.rrrÚtest_dumps_loads_oob_buffers² sz6AbstractPickleModuleTests.test_dumps_loads_oob_bufferscs(‡fdd„}‡fdd„}ˆ ||¡dS)Ncs$t ¡}ˆj||fi|¤Ž| ¡Sr )r2r<râr=)r‘r£r«r.rrr³¸ szCAbstractPickleModuleTests.test_dump_load_oob_buffers..dumpscst |¡}ˆj|fi|¤ŽSr )r2r<r—)rÐr£r«r.rrrÓ½ s zCAbstractPickleModuleTests.test_dump_load_oob_buffers..loads)r¤)r*r³rÓrr.rÚtest_dump_load_oob_buffers¶ s  z4AbstractPickleModuleTests.test_dump_load_oob_buffersN)r7r8r9r“r•r™ršrrŸr r£r¤r¥r¦rrrrr‹Y s    r‹c@s$eZdZdd„Zdd„Zdd„ZdS)ÚAbstractPersistentPicklerTestscCsJt|tƒr|ddkr|jd7_t|ƒS|dkr#|jd7_dSdS)NrºrrÚtest_false_valuer)r«r,Úid_countriÚ false_count)r*rrrrrVÊ sz,AbstractPersistentPicklerTests.persistent_idcCs@|s |jd7_dS|jd7_t|ƒ}|ddksJ‚|S)Nrr¨rºr)Úload_false_countÚ load_countr,)r*ZoidrrrrÚpersistent_loadÔ sz.AbstractPersistentPicklerTests.persistent_loadc CsŠttdƒƒdg}tD]7}d|_d|_d|_d|_| | |  ||¡¡|¡| |jd¡| |jd¡| |jd¡| |jd¡q dS)Nr‰r¨rr~r) r·rùr²r©rªr«r¬rÊrÓr³)r*ÚLrµrrrÚtest_persistenceÞ s÷z/AbstractPersistentPicklerTests.test_persistenceN)r7r8r9rVr­r¯rrrrr§Ä s r§c@s4eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd S) Ú&AbstractIdentityPersistentPicklerTestscCó|Sr rrTrrrrVî r$z4AbstractIdentityPersistentPicklerTests.persistent_idcCr±r r)r*Úpidrrrr­ñ r$z6AbstractIdentityPersistentPicklerTests.persistent_loadcCs2| | ||¡¡}| |t|ƒ¡| ||¡dSr )rÓr³rÂrtrÊ)r*r‘rµr6rrrÚ_check_return_correct_typeô szAAbstractIdentityPersistentPicklerTests._check_return_correct_typecCsDtD]}|dkr| dd¡qddddtfD]}| ||¡qqdS)Nrr¿sabc zabc r¾g*\Âõ(¼¿)r²r³ri)r*rµr‘rrrÚtest_return_correct_typeù sÿûz?AbstractIdentityPersistentPicklerTests.test_return_correct_typecCsBd}| tj|j|d¡tj| d¡d}| tj|j|¡dS)Nu∅rr“rî)rÒrr³r³ZPERSIDrér!rÓ)r*Z non_ascii_strr5rrrÚtest_protocol0_is_ascii_onlyszCAbstractIdentityPersistentPicklerTests.test_protocol0_is_ascii_onlyN)r7r8r9rVr­r³r´rµrrrrr°ì s  r°c@sjeZdZdZdZdd„Zdd„Zdd„Zdd „Zd d „Z d d œdd„Z dd„Z dd„Z dd„Z dd„ZdS)Ú#AbstractPicklerUnpicklerObjectTestsNcCs|jsJ‚|js J‚dSr )Ú pickler_classÚunpickler_classr.rrrr±s z)AbstractPicklerUnpicklerObjectTests.setUpcCs¤gd¢}tD]I}t ¡}| ||¡}| |¡| ¡}| d¡| ¡| |¡| ¡}| ¡| d¡| ¡| |¡| ¡}|  ||¡|  ||¡qdS)N©Úabcdefgrºé,r) r²r2r<r·râr=r4ÚtruncateZ clear_memorÓrÊ)r*rÐrµr«rßÚ first_pickledZsecond_pickledZ third_pickledrrrÚtest_clear_pickler_memos$       éz;AbstractPicklerUnpicklerObjectTests.test_clear_pickler_memocCshgd¢}t ¡}| |¡}| |¡| ¡}t ¡}| |¡}|j|_| |¡| ¡}| ||¡dS©Nr¹)r2r<r·râr=ÚmemorÓ)r*rÐr«rßr½ÚprimedÚprimed_pickledrrrÚtest_priming_pickler_memo2s    z=AbstractPicklerUnpicklerObjectTests.test_priming_pickler_memoc CsÄgd¢}t ¡}| |¡}| |¡| ¡}t ¡}| |¡}|j|_| |¡| ¡}| t |¡¡}| ¡}| ||¡| t |¡¡}|j|_| ¡} |j  ¡| | |¡|  | |u¡dSr¿) r2r<r·râr=rÀr¸r—rÊrNr") r*rÐr«rßr½rÁrÂÚ unpicklerZunpickled_data1Zunpickled_data2rrrÚtest_priming_unpickler_memoDs&       z?AbstractPicklerUnpicklerObjectTests.test_priming_unpickler_memocCsÈgd¢}t ¡}| |¡}| |¡| ¡}gd¢}t ¡}| |¡}| |¡| ¡}t ¡}| |¡| d¡| |¡}| |  ¡|¡| d¡|  ¡| |¡| d¡| |  ¡|¡dS)Nr¹)rºr»r»r) r2r<r·râr=r@r4r¸rÊr—r¼)r*Údata1r«rßZpickled1r,Zpickled2rÄrrrÚtest_reusing_unpickler_objectsbs(          zBAbstractPicklerUnpicklerObjectTests.test_reusing_unpickler_objectsT©r/c CsètD]o}|j|d_dd„tdƒDƒdtg}|ƒ}|j||d}| |¡| ¡}d}|||ƒ}| |¡} t|ƒD]} |rD| ¡} |  |   ¡|¡|rZ|  | ¡| t|ƒ¡q<|  t | j ¡Wdƒn1slwYqdS)Nr“cSsg|]}|t|ƒf‘qSrrhrrrrrŸ~rzSAbstractPicklerUnpicklerObjectTests._check_multiple_unpicklings..iÐsabcderàr~) r²rÑrùrÃr·râr=r¸r6rÊr—rÒr) r*Zioclassr/rµrÆr«rßr5rãrÄrûr×rrrÚ_check_multiple_unpicklings{s*    €ð€ÿz?AbstractPicklerUnpicklerObjectTests._check_multiple_unpicklingscCrr )rÉr2r<r.rrrÚ"test_multiple_unpicklings_seekablerAzFAbstractPicklerUnpicklerObjectTests.test_multiple_unpicklings_seekablecCrÊ©NFrÈ)rÉr&r.rrrÚ$test_multiple_unpicklings_unseekable’rÎzHAbstractPicklerUnpicklerObjectTests.test_multiple_unpicklings_unseekablecCrÊrË)rÉr;r.rrrÚ!test_multiple_unpicklings_minimal•szEAbstractPicklerUnpicklerObjectTests.test_multiple_unpicklings_minimalcCsxttdƒƒ}tD]1}tddƒD])}tjt ¡|d}|j||d}| |¡| d¡|  |¡}|  |  ¡|¡qqdS)Nr‰ré )Z buffer_sizeràr) r·rùr²r2ÚBufferedRandomr<r·râr4r¸rÊr—)r*rÐrµZbuf_sizer«rßrÄrrrÚ"test_unpickling_buffering_readlinešs    úÿzFAbstractPicklerUnpicklerObjectTests.test_unpickling_buffering_readline)r7r8r9r·r¸r±r¾rÃrÅrÇrÉrÊrÌrÍrÐrrrrr¶ s  r¶Zreduce_Ac@rM)r2cCs ttffSr )rir3r.rrrrd­rczAAA.__reduce__Nr²rrrrr2¬rTr2c@rC)ÚBBBcCó d|_dS)Nzsome attribute©rmr.rrrrA±s z BBB.__init__cCrÒ)NúBBB.__setstate__rÓryrrrr{¶rcrÔN)r7r8r9rAr{rrrrrѰs rÑcCs 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_setterNrÓ)r‘rrrrÚ setstate_bbbºs rÖc@r:)ÚAbstractCustomPicklerClassz.fcSrVr rrrrrrÚèr$z.AbstractHookTests.test_pickler_hook..gcSrVr rrrrrrÛër$z.AbstractHookTests.test_pickler_hook..hc@r\)z4AbstractHookTests.test_pickler_hook..MyClassNr^rrrrrØîr_rØrrr“r~rÙrÜ)rùrrÁrÑr2r<r·râÚmathÚlogrÓr=rÊrËrÒr³ZassertRaisesRegexrï) r*r«rÚrÛrØrµÚbiorCÚnew_fZsome_strZmath_logrrrÚtest_pickler_hookàs2    ÿÿ þ€î€ÿz#AbstractHookTests.test_pickler_hookc Cs tdtjdƒD]E}|j|d5dd„}t |¡}t ¡}| ||¡}|  |¡t  |  ¡¡}|dks6J‚~~|  |ƒ¡Wdƒn1sHwYqdS)Nrrr“cSrVr rrrrrr«r$zEAbstractHookTests.test_reducer_override_no_reference_cycle..fr~) rùrrÁrÑruÚrefr2r<r·rârÓr=r)r*rµr«ZwrrárCrârrrÚ(test_reducer_override_no_reference_cycles    ñ€ÿz:AbstractHookTests.test_reducer_override_no_reference_cycleN)r7r8r9rãrZ cpython_onlyrårrrrrÞßs(rÞc@r%) ÚAbstractDispatchTableTestscCsXt ¡}| |d¡}| t¡ |jWdƒn1swY| t|dƒ¡dS)NrÚdispatch_table)r2r<r·rÒrrçr|rÌ)r*r«rCrrrÚtest_default_dispatch_table#s   ÿz6AbstractDispatchTableTests.test_default_dispatch_tablecs@ˆ ¡‰G‡fdd„dˆjƒ‰d‡‡‡fdd„ }ˆ |ˆ¡dS)NcseZdZ”ZdS)zGAbstractDispatchTableTests.test_class_dispatch_table..MyPicklerN)r7r8r9rçr)ÚdtrrÚ MyPickler/r~rêcs2t ¡}ˆ||ƒ}ˆ |jˆ¡| |¡| ¡Sr )r2r<rÊrçrâr=©r‘r„r«rC©rêrér*rrr³2s   zCAbstractDispatchTableTests.test_class_dispatch_table..dumpsr )Úget_dispatch_tabler·Ú_test_dispatch_table©r*r³rrìrÚtest_class_dispatch_table+sz4AbstractDispatchTableTests.test_class_dispatch_tablecs(ˆ ¡‰d‡‡fdd„ }ˆ |ˆ¡dS)Ncs:t ¡}ˆ ||¡}ˆ|_ˆ |jˆ¡| |¡| ¡Sr )r2r<r·rçrÊrâr=rë©rér*rrr³?s   zFAbstractDispatchTableTests.test_instance_dispatch_table..dumpsr )rírîrïrrñrÚtest_instance_dispatch_table;sz7AbstractDispatchTableTests.test_instance_dispatch_tablec sš‡fdd„}dd„}d}| ||ƒ|¡| ||ƒ|¡d‰‡fdd„}||t<| ||ƒˆ¡| ||ƒ|¡tƒ}tƒ}| ||ƒt¡| ||ƒt¡| ||ƒt¡| ||ƒt¡||t<| ||ƒt¡| ||ƒˆ¡| ||ƒt¡| ||ƒt¡d ‰‡fd d „} | |t<|t=| ||ƒˆ¡| ||ƒt¡| ||ƒt¡| ||ƒt¡| ||ƒjd ¡d d„} | |t<| ||ƒjd¡dS)Ncst ˆ|dƒ¡S©Nr)rrÓr'rÀrrÚcustom_load_dumpJrAzIAbstractDispatchTableTests._test_dispatch_table..custom_load_dumpcSst t |d¡¡Sró)rrÓr³r'rrrÚdefault_load_dumpMrÎzJAbstractDispatchTableTests._test_dispatch_table..default_load_dumpyð?@Úreduce_1có tˆffSr rhr')ÚREDUCE_1rrröXrczAAbstractDispatchTableTests._test_dispatch_table..reduce_1Úreduce_2cr÷r rhr')ÚREDUCE_2rrrùorczAAbstractDispatchTableTests._test_dispatch_table..reduce_2rÔcSstd|jddtfSrZ)rÑrOrÖr'rrrÚ reduce_bbb‚rÎzCAbstractDispatchTableTests._test_dispatch_table..reduce_bbbrÕ)rÊÚcomplexr2rÑr3rÂrm) r*r³rçrôrõrÝrörmrnrùrûr)rørúr³rrîIsB    z/AbstractDispatchTableTests._test_dispatch_tableN)r7r8r9rèrðròrîrrrrræ!s  rærºz DATA{0} = (réz {0!r}r±z# Disassembly of DATA{0}zDATA{0}_DIS = """\z""")ÅrGrRrFrPr2rNr¡rßrrr£rr¤rªrQr[ruÚtextwraprZ http.cookiesrr rOÚtestrZ test.supportrrrrr r r Ztest.support.import_helperr Ztest.support.os_helperr rZtest.support.warnings_helperrrZnumpyr;Z skipUnlessr'r¯rùrÁr²rrr#r<r&rr;rDrNrUrYr]r`rfr8r,rgrkrtrprqrrrvr‚r{r,ržrŸrÜr½rßr¾ráZ DATA2_DISrãZ DATA3_DISråZ DATA4_DISrörørúr¼ÚArithmeticErrorr„rrÔÚ BufferErrorÚ BytesWarningÚDeprecationWarningrÚEnvironmentErrorrþÚFloatingPointErrorÚ FutureWarningÚ GeneratorExitÚIOErrorÚ ImportWarningÚIndentationErrorÚ IndexErrorÚKeyErrorÚKeyboardInterruptÚ LookupErrorÚ MemoryErrorÚ NameErrorr(rMr"ÚPendingDeprecationWarningÚReferenceErrorr¯ÚRuntimeWarningÚ StopIterationÚ SyntaxErrorÚ SyntaxWarningÚ SystemErrorÚ SystemExitÚTabErrorrUÚUnboundLocalErrorÚ UnicodeErrorÚUnicodeWarningÚ UserWarningrïÚWarningr6rürýrÿrÆrÇr°r\r r¥r¨rªr¬rÕrçrrtÚfloatrrür€rirr‚r×r r·rÌrwrâr÷r rrrnrƒrxržrzršrœr®r‹r§r°r¶r3r2rÑrÖr×rÞrær7r»r"rûr³rCrÖrŠrÃÚjrnrrrrÚs    ÿ         ÿ€ ÿ ÿ  NÿSÿAÿ:ÿ:ÿ Cÿþýüûúùø ÷ ö õ ô óòñðïîíìëêéèçæåäãâ à!ß"Þ#Ý$Ü%Û&Ú'Ù(Ø)×*Ö+Õ,Ô-Ó0i/   ýk("  B k   ð