%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/local/lib/python3.8/test/__pycache__/
Upload File :
Create Path :
Current File : //usr/local/lib/python3.8/test/__pycache__/pickletester.cpython-38.pyc

U

n©ßa÷ã,@szddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlmZddlmZzddlZWnek
r´dZYnXddlmZddlmZmZmZmZmZmZmZmZm Z m!Z!ddlm"Z"ze!ƒddl#Z$W5QRXWnek
r6dZ$YnXe
 %ej&dkd¡Z'e(ej)d	ƒZ*d
d„Z+dd
„Z,dd„Z-Gdd„dej.ƒZ/Gdd„de0ƒZ1Gdd„dƒZ2Gdd„dƒZ3Gdd„de3ƒZ4Gdd„de3ƒZ5Gdd„dƒZ6Gdd„dƒZ7ddl8Z8e3e8_3d e3_9e4e8_4d e4_9e5e8_5d e5_9Gd!d"„d"e:ƒZ;Gd#d$„d$e3ƒZ<Gd%d&„d&e=ƒZ>Gd'd(„d(e0e>d)Z?Gd*d+„d+e=ƒZ@d,d-„ZAGd.d/„d/eBƒZCGd0d1„d1eDƒZEedk	rªGd2d3„d3ƒZFd4ZGd5ZHd6ZId7ZJd8ZKd9ZLd:ZMd;ZNd<ZOd=ZPd>ZQd?ZRd@ZSdAZTeUeVeWeXeYeZe[e\e]e^e_e`eaebeecedeeefegeheiejekelemeneoepeqereseteuevewexeyeze{e|e}e~ef,Z€dBZdCZ‚dDdE„ZƒGdFdG„dGe
j„ƒZ…GdHdI„dIe
j„ƒZ†GdJdK„dKe
j„ƒZ‡GdLdM„dMe0ƒZˆGdNdO„dOe0ƒZ‰GdPdQ„dQe0ƒZŠGdRdS„dSe0ƒZ‹GdTdU„dUe0ƒZŒGdVdW„dWe0ƒZGdXdY„dYe0ƒZŽGdZd[„d[e0ƒZGd\d]„d]e:ƒZGd^d_„d_e‘ƒZ’Gd`da„dae“ƒZ”Gdbdc„dce•ƒZ–Gddde„dee•ƒZ—Gdfdg„dge˜ƒZ™Gdhdi„diešƒZ›Gdjdk„dkeœƒZGdldm„dmežƒZŸGdndo„doe ƒZ¡ee’e”e–e—e™e›eeŸe¡g
Z¢Gdpdq„dqe›ƒZ£Gdrds„dse:ƒa¤Gdtdu„dut¤ƒZ¥Gdvdw„dwt¤ƒZ¦Gdxdy„dyƒZ§Gdzd{„d{e
j„ƒZ¨Gd|d}„d}e
j„ƒZ©Gd~d„de
j„ƒZªGd€d„de
j„ƒZ«d‚Z¬Gdƒd„„d„e0ƒZ­Gd…d†„d†e0ƒZ®d‡dˆ„Z¯Gd‰dŠ„dŠƒZ°Gd‹dŒ„dŒe
j„ƒZ±GddŽ„dŽe
j„ƒZ²e³d krvddlm´Z´eƒƒZµe(ej)d	ƒD]šZ¶e ·eµe¶¡Z¸e¹d ºe¶¡ƒe(de»e¸ƒd‘ƒD](Z¼eBe¸e¼e¼d‘…ƒZ½e¹d’ ºe½¡ƒqe¹d“ƒe¹ƒe¹d” ºe¶¡ƒe¹d• ºe¶¡ƒe´e¸ƒe¹d–ƒe¹ƒqÚdS)—éN)Údedent)ÚSimpleCookie)Úsupport)
Ú
TestFailedÚTESTFNÚrun_with_localeÚ
no_tracingÚ_2GÚ_4GÚ
bigmemtestÚreap_threadsÚforgetÚsave_restore_warnings_filters)Úbytes_typeslz(test is only meaningful on 32-bit buildsécCs0t |¡D] \}}}|j| d¡kr
dSq
dS)Núlatin-1TF©ÚpickletoolsÚgenopsÚcodeÚdecode)rÚpickleÚopÚdummy©rú-/usr/local/lib/python3.8/test/pickletester.pyÚopcode_in_pickle5srcCs6d}t |¡D]"\}}}|j| d¡kr|d7}q|S)Nrrrr)rrÚnrrrrrÚcount_opcode<s

rcCs|S©Nr©ÚxrrrÚidentityDsr"c@s,eZdZdd„Zdd„Zdd„Zdd„Zd	S)
ÚUnseekableIOcGst‚dSr)ÚNotImplementedError©ÚselfÚargsrrrÚpeekIszUnseekableIO.peekcCsdS)NFr©r&rrrÚseekableLszUnseekableIO.seekablecGs
tj‚dSr©ÚioÚUnsupportedOperationr%rrrÚseekOszUnseekableIO.seekcCs
tj‚dSrr+r)rrrÚtellRszUnseekableIO.tellN)Ú__name__Ú
__module__Ú__qualname__r(r*r.r/rrrrr#Hsr#c@seZdZdZdd„ZdS)Ú	MinimalIOz=
    A file-like object that doesn't support readinto().
    cGs8tj|Ž|_|jj|_|jj|_|jj|_|jj|_dSr)r,ÚBytesIOZ_bioÚgetvalueÚreadÚreadlineÚwriter%rrrÚ__init__Zs



zMinimalIO.__init__N)r0r1r2Ú__doc__r9rrrrr3Vsr3c@seZdZdd„Zdd„ZdS)ÚExtensionSavercCsB||_|tjkr8tj||_t |jd|jd|¡nd|_dS©Nrr)rÚcopyregÚ_inverted_registryÚpairÚremove_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?rrrÚrestorexszExtensionSaver.restoreN)r0r1r2r9rCrrrrr;ls	r;c@seZdZdd„ZdS)ÚCcCs|j|jkSr)Ú__dict__©r&ÚotherrrrÚ__eq__‚szC.__eq__N)r0r1r2rHrrrrrDsrDc@seZdZdd„ZdS)ÚDcCsdSrr)r&Úargrrrr9†sz
D.__init__N©r0r1r2r9rrrrrI…srIc@seZdZdd„ZdS)ÚEcCsdS©Nrrr)rrrÚ__getinitargs__ŠszE.__getinitargs__N)r0r1r2rNrrrrrL‰srLc@seZdZdS)ÚObjectN©r0r1r2rrrrrOŽsrOc@seZdZdd„Zdd„ZdS)ÚKcCs
||_dSr)Úvalue)r&rRrrrr9“sz
K.__init__cCst|jffSr)rQrRr)rrrÚ
__reduce__–szK.__reduce__N)r0r1r2r9rSrrrrrQ’srQÚ__main__c@seZdZdd„ZdS)ÚmyintcCst|ƒ|_dSr©Ústr)r&r!rrrr9£szmyint.__init__NrKrrrrrU¢srUc@seZdZdd„Zdd„ZdS)ÚinitargcCs||_||_dSr©ÚaÚb)r&rZr[rrrr9¨szinitarg.__init__cCs|j|jfSrrYr)rrrrN¬szinitarg.__getinitargs__N)r0r1r2r9rNrrrrrX¦srXc@seZdZdS)Ú	metaclassNrPrrrrr\¯sr\c@seZdZdS)Ú
use_metaclassNrPrrrrr]²sr])r\c@seZdZdd„Zdd„ZdS)Úpickling_metaclasscCst|ƒt|ƒko|j|jkSr)ÚtypeÚreduce_argsrFrrrrH¶s
ÿzpickling_metaclass.__eq__cCs
t|jfSr)Úcreate_dynamic_classr`r)rrrrSºszpickling_metaclass.__reduce__N)r0r1r2rHrSrrrrr^µsr^cCst||tƒƒ}||f|_|Sr)r^Údictr`)ÚnameÚbasesÚresultrrrra½s
rac@s<eZdZdZdZdZdZdd„Zdd„ZeZ	e
dd„ƒZdS)	Ú
ZeroCopyBytesTcCs8|dkr t|ƒjt |¡fdfSt|ƒjt|ƒffSdS©Né©r_Ú_reconstructrÚPickleBufferÚbytes©r&ÚprotocolrrrÚ
__reduce_ex__ÉszZeroCopyBytes.__reduce_ex__cCsd |jjt|ƒ¡S©Nz{}({!r})©ÚformatÚ	__class__r0rlr)rrrÚ__repr__ÏszZeroCopyBytes.__repr__c
CsNt|ƒ<}|j}t|ƒ|kr,|W5QR£S||ƒW5QR£SW5QRXdSr©Ú
memoryviewÚobjr_©ÚclsrwÚmrrrrjÔs

zZeroCopyBytes._reconstructN©r0r1r2ÚreadonlyÚc_contiguousÚf_contiguousÚzero_copy_reconstructrortÚ__str__ÚclassmethodrjrrrrrfÃsrfc@s<eZdZdZdZdZdZdd„Zdd„ZeZ	e
dd„ƒZd	S)
ÚZeroCopyBytearrayFTcCs8|dkr t|ƒjt |¡fdfSt|ƒjt|ƒffSdSrgrirmrrrroåszZeroCopyBytearray.__reduce_ex__cCsd |jjt|ƒ¡Srprqr)rrrrtëszZeroCopyBytearray.__repr__c
CsNt|ƒ<}|j}t|ƒ|kr,|W5QR£S||ƒW5QR£SW5QRXdSrrurxrrrrjðs

zZeroCopyBytearray._reconstructNr{rrrrr‚ßsr‚c@speZdZdZdd„Zdd„Zedd„ƒZedd	„ƒZed
d„ƒZ	dd
„Z
dd„Zdd„Zdd„Z
edd„ƒZdS)ÚPicklableNDArrayFcOstj||Ž|_dSr)Ú_testbufferZndarrayÚarray©r&r'Úkwargsrrrr9szPicklableNDArray.__init__cCs"t|ƒ}| |¡}|j||_|Sr)r_Ú__new__r…)r&ÚidxryÚnewrrrÚ__getitem__s
zPicklableNDArray.__getitem__cCs|jjSr)r…r|r)rrrr|szPicklableNDArray.readonlycCs|jjSr)r…r}r)rrrr}szPicklableNDArray.c_contiguouscCs|jjSr)r…r~r)rrrr~szPicklableNDArray.f_contiguouscCsbt|tƒstS|jj|jjko`|jj|jjko`|jj|jjko`|jj|jjko`|j ¡|j ¡kSr)	Ú
isinstancerƒÚNotImplementedr…rrÚshapeÚstridesr|ÚtobytesrFrrrrHs
ÿþýüzPicklableNDArray.__eq__cCst|tƒstS||kSr)rŒrƒrrFrrrÚ__ne__!s
zPicklableNDArray.__ne__cCs.t|ƒ›d|jj›d|jj›d|j ¡›dS)Nz(shape=z	,strides=z, bytes=ú))r_r…rŽrrr)rrrrt&szPicklableNDArray.__repr__c
Cs’|jjstdƒ‚|jj|jj|jj|jr,dntjdœ}t	 
|j¡}|dkr\t|ƒj||ffS| 
¡$}t|ƒj| ¡|ffW5QR£SQRXdS)Nz>Reconstructing a non-contiguous ndarray does not seem possibler)rŽrrrÚflagsrh)r…Ú
contiguousr$rŽrrrr|r„ÚND_WRITABLErrkr_rjÚrawr)r&rnZndarray_kwargsÚpbrzrrrro+s"
üÿ

ÿzPicklableNDArray.__reduce_ex__c	Cs,t|ƒ}t| ¡ƒ}W5QRX||f|ŽSr)rvÚlistr)ryrwr‡rzÚitemsrrrrj>s
zPicklableNDArray._reconstructN)r0r1r2rr9r‹Úpropertyr|r}r~rHr‘rtrorrjrrrrrƒý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
(XfooqKXbarq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
hUversionqhUpathqhUhttponlyq
hu}q(Ucoded_valueqUvalueqhhhhubs}qb.s"€c__builtin__
set
q]qKa…qRq.s€cexceptions
?
q)Rq.sI€cexceptions
UnicodeEncodeError
q(UasciiqXfooqKKUbadqtqRq.cCstƒ}d|_d|_ddddg}d}d}d}| dd	|||d|||d|||dg¡d
d
||f}| |¡| |¡| d¡|S)Nrérg@y@éÿéÿÿéÿÿÿéÿÿÿÿÚabcrh)rDÚ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„Zdd„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"d<d=„Z#d>d?„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„Z1e2dZd[„ƒZ3dS)]ÚAbstractUnpickleTestsNcCsØ|dkrd ||¡}|j|||d|jt|ƒt|ƒ|dt|dƒrn|j|j|j|d|j|j|j|dt|dƒrÔ|j|j	|j	|d|j	D]@}|jt||ƒt||ƒ|d|jt
||dƒt
||dƒ|dq’dS)zKUtility method to verify if two objects are copies of each others.
        Nz{!r} is not a copy of {!r})ÚmsgrEÚ	__slots__)rrÚassertEqualÚassertIsr_ÚhasattrZassertDictEqualrEÚassertIsNotZassertListEqualrªÚgetattr)r&rwZobjcopyr©ZslotrrrÚassert_is_copy@s&


ÿ
ÿz$AbstractUnpickleTests.assert_is_copycCs†|j|dp| |¡Zz| |¡WnDtk
rl}z&tjdkrZtd||jj|fƒ‚W5d}~XYnXW5QRXW5QRXdS)N)Údatarz%-32r - %s: %s)	ÚsubTestÚassertRaisesÚloadsÚ
BaseExceptionrÚverboseÚprintrsr0)r&Úerrorsr±ÚexcrrrÚcheck_unpickling_errorRsÿ
ÿz,AbstractUnpickleTests.check_unpickling_errorcCs| |j| t¡¡dSr)r°Ú	_testdatar´ÚDATA0r)rrrÚtest_load_from_data0]sz*AbstractUnpickleTests.test_load_from_data0cCs| |j| t¡¡dSr)r°r»r´ÚDATA1r)rrrÚtest_load_from_data1`sz*AbstractUnpickleTests.test_load_from_data1cCs| |j| t¡¡dSr)r°r»r´ÚDATA2r)rrrÚtest_load_from_data2csz*AbstractUnpickleTests.test_load_from_data2cCs| |j| t¡¡dSr)r°r»r´ÚDATA3r)rrrÚtest_load_from_data3fsz*AbstractUnpickleTests.test_load_from_data3cCs| |j| t¡¡dSr)r°r»r´ÚDATA4r)rrrÚtest_load_from_data4isz*AbstractUnpickleTests.test_load_from_data4cCs–tdftdftdffD]z\}}|j d¡}d d|¡}| ||Ž| |¡¡d d|¡}| ||Ž| |¡¡d d|¡}| ||Ž| |¡¡qdS)Nrr Úasciis(i__main__
X
p0
(dp1
b.óXs(c__main__
X
qoq}qb.s€(c__main__
X
qoq}qb.)rDrIrLr0ÚencodeÚreplacer°r´)r&ÚXr'ZxnameZpickle0Zpickle1Zpickle2rrrÚtest_load_classic_instancels"ýþþz0AbstractUnpickleTests.test_load_classic_instancecCsVd}dt|ƒ d¡d}| |¡}| ||¡dt|ƒ d¡d}| t|¡dS)NlÿÿÿÿóIrÆó
.sJUNK
.)rWrÈr´r°rºÚ
ValueError)r&Zmaxint64r±ÚgotrrrÚ
test_maxint64¥s
z#AbstractUnpickleTests.test_maxint64cCsX| t¡}| |tddgƒ¡| t¡}| t|ƒttdƒƒ¡| t|ƒttdƒƒ¡| t¡}| t|ƒt	¡| t| 
¡ƒdg¡| |djd¡tD]2}t
 d|j d¡¡}| |¡}| t|ƒ|¡qž| t
 dd	¡¡}| t|ƒt¡| t¡}| t|ƒt¡| |jd
¡| |jd¡| |jd¡| |jd¡| |jd¡dS)Nrr›rrhÚkeyrRó?rÆó
StandardErrorr¡Zbad)r´ÚDATA_SETr«ÚsetÚDATA_XRANGEr_Úranger˜ÚDATA_COOKIErÚkeysrRÚpython2_exceptions_without_argsÚexception_picklerÉr0rÈr¬Ú	ExceptionÚ
DATA_UEERRÚUnicodeEncodeErrorÚobjectÚencodingÚstartÚendÚreason)r&Úloadedr¹r±rrrÚtest_unpickle_from_2x¯s,




z+AbstractUnpickleTests.test_unpickle_from_2xcCsF| |jdddd¡| |jdddd¡| |jdddd¡dS)NsS'a\x00\xa0'
.rl©ràsa sUa .s€Ua .©r«r´r)rrrÚtest_load_python2_str_as_bytesÍs
ÿÿ
ÿÿ
ÿÿz4AbstractUnpickleTests.test_load_python2_str_as_bytescCsF| |jdddd¡| |jdddd¡| |jdddd¡dS)Ns	V\u03c0
.rlræuÏ€sXÏ€.s
€XÏ€.rçr)rrrÚ test_load_python2_unicode_as_strØs
ÿÿ
ÿÿ
ÿÿz6AbstractUnpickleTests.test_load_python2_unicode_as_strcCs2| |jtjt dd¡dtjddd¡dS)Nú<Ii,s,xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxrlræ)r«r´rÚ	BINSTRINGÚstructÚpackÚSTOPr)rrrÚ#test_load_long_python2_str_as_bytesãs
ÿþþýýz9AbstractUnpickleTests.test_load_long_python2_str_as_bytescCs\| | d¡¡| | d¡d¡| | d¡d¡| | d¡d¡| | d¡d¡dS)NsN.sˆ.Ts‰.FsI01
.sI00
.)ÚassertIsNoner´r¬r)rrrÚtest_constantsês
z$AbstractUnpickleTests.test_constantscCs|jddd}| |d¡dS)Ns€Uq.zkoi8-rræÚ)r´r«)r&ÚemptyrrrÚtest_empty_bytestringñsz+AbstractUnpickleTests.test_empty_bytestringcCsd}| | |¡d¡dS)Ns	€C€.ó€rç©r&ÚdumpedrrrÚtest_short_binbytesösz)AbstractUnpickleTests.test_short_binbytescCsd}| | |¡d¡dS)Ns€B€.rõrçrörrrÚ
test_binbytesúsz#AbstractUnpickleTests.test_binbytescCsd}| tjtf|¡dS)Ns
€Bÿÿÿÿxyzq.©rºrÚUnpicklingErrorÚ
OverflowErrorrörrrÚtest_negative_32b_binbytesþsÿz0AbstractUnpickleTests.test_negative_32b_binbytescCsd}| tjtf|¡dS)Ns
€Xÿÿÿÿxyzq.rúrörrrÚtest_negative_32b_binunicodesÿz2AbstractUnpickleTests.test_negative_32b_binunicodecCsd}| | |¡d¡dS)Ns	€Œ€.õ€rçrörrrÚtest_short_binunicodesz+AbstractUnpickleTests.test_short_binunicodecCs&| td¡| ddg| d¡¡dS)Nsg0
p0)éds((Kdtp0
hl.)))rºÚKeyErrorr°r´r)rrrÚ
test_misc_gets
ÿz#AbstractUnpickleTests.test_misc_getcCsd}| | |¡d¡dS)Ns€Ž€.rõrçrörrrÚtest_binbytes8sz$AbstractUnpickleTests.test_binbytes8cCsd}| | |¡d¡dS)Ns€€.rÿrçrörrrÚtest_binunicode8sz&AbstractUnpickleTests.test_binunicode8cCsd}| | |¡tdƒ¡dS)Ns€–xxx.sxxx)r«r´Ú	bytearrayrörrrÚtest_bytearray8sz%AbstractUnpickleTests.test_bytearray8cCsd}| tjtf|¡dS)Ns€Ž€.rúrörrrÚtest_large_32b_binbytes8!sÿz.AbstractUnpickleTests.test_large_32b_binbytes8cCsd}| tjtf|¡dS)Ns€–€.rúrörrrÚtest_large_32b_bytearray8'sÿz/AbstractUnpickleTests.test_large_32b_bytearray8cCsd}| tjtf|¡dS)Ns€€.rúrörrrÚtest_large_32b_binunicode8-sÿz0AbstractUnpickleTests.test_large_32b_binunicode8cCs8d}| |¡}| |gfd¡| |d|d¡dS)Ns((lp100000
g100000
t.r›rr©r´r«r¬©r&ÚpickledÚ	unpickledrrrÚtest_get3s
zAbstractUnpickleTests.test_getcCs8d}| |¡}| |gfd¡| |d|d¡dS)Ns(]qÿhÿt.r›rrrrrrrÚtest_binget9s
z!AbstractUnpickleTests.test_bingetcCs8d}| |¡}| |gfd¡| |d|d¡dS)Ns(]rjt.r›rrrrrrrÚtest_long_binget?s
z&AbstractUnpickleTests.test_long_bingetcCs8d}| |¡}| |gfd¡| |d|d¡dS)Ns((l2t.r›rrrrrrrÚtest_dupEs
zAbstractUnpickleTests.test_dupcCsd}| t|¡dS)NsVa
p-1
.©rºrÎrörrrÚtest_negative_putKsz'AbstractUnpickleTests.test_negative_putcCsd}| t|¡dS)Ns€Xarÿÿÿÿ.rrörrrÚtest_negative_32b_binputPsz.AbstractUnpickleTests.test_negative_32b_binputcCs| td¡dS)NsS'\'
.rr)rrrÚtest_badly_escaped_stringVsz/AbstractUnpickleTests.test_badly_escaped_stringc
Cs:ddddddddd	d
ddd
g
}|D]}| tj|¡q"dS)NsS'
.sS"
.sS' 
.sS" 
.sS'"
.sS"'
.sS' ' 
.sS" " 
.sS ''
.sS ""
.sS 
.sS
.sS.)rºrrû©r&Z
badpicklesÚprrrÚtest_badly_quoted_stringYs ô
z.AbstractUnpickleTests.test_badly_quoted_stringcCs0ddddg}|D]\}}| | |¡|¡qdS)N)sS''
.rò)sS""
.rò)sS"\n"
.Ú
)sS'\n'
.rrç)r&ZgoodpicklesrÚexpectedrrrÚtest_correctly_quoted_stringksýz2AbstractUnpickleTests.test_correctly_quoted_stringcCsd}| | |¡d¡dS)Ns€•I42
.é*rç)r&r
rrrÚtest_frame_readlinessz)AbstractUnpickleTests.test_frame_readlinec	Csd}| |¡}| t|ƒt¡| |tddƒ¡| t|ƒddddddg¡d	}| | |¡tj¡d
}| | |¡tj	¡dD]:}d|d
}| |¡}| t|ƒt
¡| t|ƒd¡q€dD]B}d|d}| |¡}| t|ƒtj
¡| |t 
ddi¡¡qÀdS)Ns€c__builtin__
xrange
KKK‡R.rér›éérhés€c__builtin__
reduce
.s€cwhichdb
whichdb
.)s	ExceptionrÓs€cexceptions
s	
Uugh…R.Zugh)sUserDictsIterableUserDicts
€(cUserDict
s
o}Udata}KKssb.)r´r¬r_r×r«r˜Ú	functoolsÚreduceÚdbmÚwhichdbrÜrWÚcollectionsÚUserDict)r&r
rrcrrrÚtest_compat_unpickle{s*

ÿ
z*AbstractUnpickleTests.test_compat_unpicklecCs.| | d¡d¡| td¡| td¡dS)Nscbuiltins
int
)R.rsN)R.scbuiltins
int
NR.)r«r´rºÚ	TypeErrorr)rrrÚtest_bad_reduce–sz%AbstractUnpickleTests.test_bad_reducecCs8tjtf}| | d¡d¡| |d¡| |d¡dS)Nscbuiltins
int
).rscbuiltins
len
).scbuiltins
int
N.©rrûr*r«r´rº©r&ÚerrorrrrÚtest_bad_newobj›s
z%AbstractUnpickleTests.test_bad_newobjcCsDtjtf}| | d¡d¡| |d¡| |d¡| |d¡dS)Nscbuiltins
int
)}’.rscbuiltins
len
)}’.scbuiltins
int
N}’.scbuiltins
int
)N’.r,r-rrrÚtest_bad_newobj_ex¡s

z(AbstractUnpickleTests.test_bad_newobj_exc,Csxddddddddd	d
ddd
ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,g,}|D]}| |j|¡q`dS)-Nó.ó0ó1ó2s(2óRs)RóasNaóbsNbódóes(esibuiltins
list
ólóos(osp1
sqsróssNssNNsótóus(us}(Nuós)ó…ó†sN†ó‡sN‡sNN‡ós(ó‘ó’s)}’ó“sVlist
“ó”©rºZbad_stack_errorsrrrrÚtest_bad_stack¨s^Ô.z$AbstractUnpickleTests.test_bad_stackcCs\ddddddddd	d
ddd
dddddddddddddddddg}|D]}| |j|¡qDdS)NsN(.sN(2scbuiltins
list
)(Rscbuiltins
list
()Rs]N(ascbuiltins
ValueError
)R}(bscbuiltins
ValueError
)R(}bs(NdsN(p1
sN(qsN(rs}NN(ss}N(Nss}(NNss}((uscbuiltins
list
)(scbuiltins
list
()sN(…sNN(†sN(N†sNNN(‡sNN(N‡sN(NN‡s]((scbuiltins
list
)}(’scbuiltins
list
)(}’scbuiltins
list
()}’sVbuiltins
(Vlist
“sVbuiltins
Vlist
(“sN(”rHrrrrÚ
test_bad_markÚsBß#z#AbstractUnpickleTests.test_bad_markcUCsâ| td¡| td¡ddddddd	d
ddd
ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWgU}|D]}| |j|¡qÊdS)XNóóNóBsBsBsBabóCsCsCabóFsF0.0sF0.00óGsGrÌsI0óJsJóKóLsL0sL10sL0LsL10LóMsMóSsS'abc'óTsTsTsTabóUsUsUabóVsVabcrÇsXsXsXabs(cs
(cbuiltinss(cbuiltins
s(cbuiltins
listsNgsNg0s(is
(ibuiltinss(ibuiltins
s(ibuiltins
listsNhsNjsNjsNpsNp0sNqsNrsNró€ó‚óƒs„ó„s„óŠó‹s‹óŒsŒsŒabóss	sabóŽsŽs	ŽsŽabó–s–s	–s–abó•s•s	•s
•N)rºÚEOFErrorZtruncated_errorsrrrrÚtest_truncated_datas´©Yz)AbstractUnpickleTests.test_truncated_datac		s^tdƒ}tdƒ}t t¡| tjt¡tj 	dt¡| tjj
t¡ttj td¡dƒ}| 
| d¡¡W5QRXttj td¡dƒ}| 
| d¡¡W5QRX| td¡| td	¡ddl}d
‰g‰t d¡‰‡‡‡fdd
„}tj|d}tj|d}| ¡| ¡ˆ ¡|j ¡| ¡| ¡ddlm}| dd„ˆDƒ|gd¡dS)NzI
        import threading
        barrier = threading.Barrier(2)
        zs
        import locker
        locker.barrier.wait()
        class ToBeUnpickled(object):
            pass
        rz	locker.pyÚwbúutf-8zlocking_import.pyÚlockerÚlocking_imports'€clocking_import
ToBeUnpickled
q)q.r csˆ ¡ˆ t ˆ¡¡dSr)Úwaitr¤rr´r©ÚbarrierZpickle_bytesÚresultsrrÚt…sz:AbstractUnpickleTests.test_unpickle_module_race.<locals>.t)Útarget)Ú
ToBeUnpickledcSsg|]}t|ƒ‘qSr)r_©Ú.0r!rrrÚ
<listcomp>™szCAbstractUnpickleTests.test_unpickle_module_race.<locals>.<listcomp>r›)rÚosÚmkdirrZ
addCleanupÚshutilÚrmtreeÚsysÚpathÚinsertÚremoveÚopenÚjoinr8rÈr
rhÚ	threadingÚBarrierÚThreadrárjrlrirpr«)	r&Z
locker_moduleZlocking_import_moduleÚfrhrnÚt1Út2rprrkrÚtest_unpickle_module_race`s>
ÿ

þz/AbstractUnpickleTests.test_unpickle_module_race)N)4r0r1r2r§r»r°rºr½r¿rÁrÃrÅrËrÐrårèrérïrñrôrørùÚrequires_32brýrþrrrrrrr	r
rrrrrrrrrrr)r+r/r0rIrJrerr„rrrrr¨;sj
9






2'_r¨c@seZdZdZejZdd„ZejZdd„Zdd„Z	dd	„Z
ed
fdd„Zd
d„Z
dd„Zdd„Zed
fdd„Zdd„Zdd„Zdd„Zed
fdd„Zdd„Zdd „Zd!d"„Zed
fd#d$„Zd%d&„Zd'd(„Zd)d*„Zed
fd+d,„Zd-d.„Zd/d0„Zd1d2„Zed
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:e;didjdkƒdldm„ƒZ<dndo„Z=dpdq„Z>drds„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^e_d²d³„ƒZ`d´dµ„Zad¶d·„Zbd¸d¹„Zcdºd»„Zdd¼d½„Zed¾d¿„ZfdÀdÁ„ZgdÂdÄZhdÄdÅ„ZidÆZjdÇZkdÈdÉ„ZlemjndÊdË„ƒZodÌdÍ„ZpdÎdÏ„ZqemjndÐ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ë„Zdìdí„Z€e ‚eƒdîkdï¡dðdñ„ƒZ„dîS)òÚAbstractPickleTestsFcCsdSrrr)rrrÚsetUp¥szAbstractPickleTests.setUpcCsŠtD]€}tdƒ}| ||¡}| |¡}| ||¡d}| ||¡}| |¡}| ||¡td|ƒ}| ||¡}| |¡}| ||¡qdS)Nr!)rrr)Ú	protocolsrUÚdumpsr´r°rX©r&Úprotor!Úsr¦rrrÚ	test_miscªs



zAbstractPickleTests.test_misccCs6|j}tD]&}| ||¡}| |¡}| ||¡q
dSr)r»rˆr‰r´r°)r&rr‹rŒrÏrrrÚtest_roundtrip_equality¾s

z+AbstractPickleTests.test_roundtrip_equalitycCsjddlm}ddlm}dtfdtffD]<\}}| |j|¡}|ƒ}|||d| ¡}| 	||¡q(dS)Nr)ÚStringIO©Údisr)Úout)
r,rrr‘Ú	DATA0_DISÚ	DATA1_DISr‰r»r5r«)r&rr‘r‹rrŒZfilelikerÏrrrÚdont_test_disassemblyËsz)AbstractPickleTests.dont_test_disassemblyrc	Cst|ƒ}| |¡t|tjdƒD]N}| ||¡}| |¡}| ||¡||ƒ}| t|ƒd¡| 	|d|¡q dS©Nrr)
r¤r×rÚHIGHEST_PROTOCOLr‰r´ÚassertIsInstancer«Úlenr¬)	r&ryÚaslistÚminprotocolÚlr‹rŒr!r¦rrrÚ_test_recursive_listÖs

z(AbstractPickleTests._test_recursive_listcCs| t¡dSr)rr˜r)rrrÚtest_recursive_listâsz'AbstractPickleTests.test_recursive_listcCs|jtdddS©Nr›)r›)rÚMyListr)rrrÚtest_recursive_list_subclassåsz0AbstractPickleTests.test_recursive_list_subclasscCs|jtdd„ddS)NcSs|jSr©r™r rrrÚ<lambda>érKz>AbstractPickleTests.test_recursive_list_like.<locals>.<lambda>©rš)rÚREX_sixr)rrrÚtest_recursive_list_likeèsz,AbstractPickleTests.test_recursive_list_likec	Cs,|ƒf}|d |¡t|tjdƒD]r}| ||¡}| |¡}| |t¡| t	|ƒd¡| |d|¡||dƒ}| t	|ƒd¡| 
|d|¡q&|\}t|tjdƒD]v}| ||¡}| |¡}| ||¡||ƒ}| t	|ƒd¡| |dt¡| t	|dƒd¡| 
|dd|¡q°dSr<)r¤r×rr—r‰r´r˜Útupler«r™r¬)	r&ryršr›rnr‹rŒr!r¦rrrÚ_test_recursive_tuple_and_listës*

z2AbstractPickleTests._test_recursive_tuple_and_listcCs| t¡dSr)r¨r˜r)rrrÚtest_recursive_tuple_and_listsz1AbstractPickleTests.test_recursive_tuple_and_listcCs|jtdddSrŸ)r¨r r)rrrÚ&test_recursive_tuple_and_list_subclasssz:AbstractPickleTests.test_recursive_tuple_and_list_subclasscCs|jtdd„ddS)NcSs|jSrr¢r rrrr£rKzHAbstractPickleTests.test_recursive_tuple_and_list_like.<locals>.<lambda>r¤)r¨r¥r)rrrÚ"test_recursive_tuple_and_list_likesz6AbstractPickleTests.test_recursive_tuple_and_list_likec	Csx|ƒ}||d<t|tjdƒD]T}| ||¡}| |¡}| ||¡||ƒ}| t| ¡ƒdg¡| 	|d|¡qdS©Nr)
r×rr—r‰r´r˜r«r˜rÙr¬©	r&ryÚasdictr›Údr‹rŒr!r¦rrrÚ_test_recursive_dicts
z(AbstractPickleTests._test_recursive_dictcCs| t¡dSr)r°rbr)rrrÚtest_recursive_dictsz'AbstractPickleTests.test_recursive_dictcCs|jtdddSrŸ)r°ÚMyDictr)rrrÚtest_recursive_dict_subclasssz0AbstractPickleTests.test_recursive_dict_subclasscCs|jtdd„ddS)NcSs|jSr©Útabler rrrr£!rKz>AbstractPickleTests.test_recursive_dict_like.<locals>.<lambda>©r®)r°Ú	REX_sevenr)rrrÚtest_recursive_dict_like sz,AbstractPickleTests.test_recursive_dict_likec	Cs.|ƒf}||dd<t|tjdƒD]t}| ||¡}| |¡}| |t¡| t|ƒd¡| |d|¡||dƒ}| t	|ƒdg¡| 
|d|¡q$|\}t|tjdƒD]x}| ||¡}| |¡}| ||¡||ƒ}| t	|ƒdg¡| |dt¡| t|dƒd¡| 
|dd|¡q°dSr<)r×rr—r‰r´r˜r§r«r™r˜r¬©	r&ryr®r›rnr‹rŒr!r¦rrrÚ_test_recursive_tuple_and_dict#s*

z2AbstractPickleTests._test_recursive_tuple_and_dictcCs| t¡dSr)rºrbr)rrrÚtest_recursive_tuple_and_dict=sz1AbstractPickleTests.test_recursive_tuple_and_dictcCs|jtdddSrŸ)rºr²r)rrrÚ&test_recursive_tuple_and_dict_subclass@sz:AbstractPickleTests.test_recursive_tuple_and_dict_subclasscCs|jtdd„ddS)NcSs|jSrr´r rrrr£DrKzHAbstractPickleTests.test_recursive_tuple_and_dict_like.<locals>.<lambda>r¶)rºr·r)rrrÚ"test_recursive_tuple_and_dict_likeCsz6AbstractPickleTests.test_recursive_tuple_and_dict_likec	Csœ|ƒ}d|t|ƒ<t|tjdƒD]t}| ||¡}| |¡}| ||¡||ƒ}| t| 	¡ƒd¡| t
| 	¡ƒdt¡| t
| 	¡ƒdj|¡q"dSr–)
rQr×rr—r‰r´r˜r«r™rÙr˜r¬rRr­rrrÚ_test_recursive_dict_keyFs
z,AbstractPickleTests._test_recursive_dict_keycCs| t¡dSr)r¾rbr)rrrÚtest_recursive_dict_keyTsz+AbstractPickleTests.test_recursive_dict_keycCs|jtdddSrŸ)r¾r²r)rrrÚ test_recursive_dict_subclass_keyWsz4AbstractPickleTests.test_recursive_dict_subclass_keycCs|jtdd„ddS)NcSs|jSrr´r rrrr£[rKzBAbstractPickleTests.test_recursive_dict_like_key.<locals>.<lambda>r¶)r¾r·r)rrrÚtest_recursive_dict_like_keyZsz0AbstractPickleTests.test_recursive_dict_like_keyc	CsN|ƒf}d|dt|ƒ<t|tjdƒD]”}| ||¡}| |¡}| |t¡| t	|ƒd¡| |d|¡||dƒ}| t	|ƒd¡| t
| ¡ƒdt¡| t
| ¡ƒdj
|¡q(|\}t|tjdƒD]t}| ||¡}| |¡}| ||¡||ƒ}| t	|ƒd¡| t
| ¡ƒdt¡| t
| ¡ƒdj
d|¡qÔdSr–)rQr×rr—r‰r´r˜r§r«r™r˜rÙr¬rRr¹rrrÚ"_test_recursive_tuple_and_dict_key]s*

z6AbstractPickleTests._test_recursive_tuple_and_dict_keycCs| t¡dSr)rÂrbr)rrrÚ!test_recursive_tuple_and_dict_keyysz5AbstractPickleTests.test_recursive_tuple_and_dict_keycCs|jtdddSrŸ)rÂr²r)rrrÚ*test_recursive_tuple_and_dict_subclass_key|sz>AbstractPickleTests.test_recursive_tuple_and_dict_subclass_keycCs|jtdd„ddS)NcSs|jSrr´r rrrr£€rKzLAbstractPickleTests.test_recursive_tuple_and_dict_like_key.<locals>.<lambda>r¶)rÂr·r)rrrÚ&test_recursive_tuple_and_dict_like_keysz:AbstractPickleTests.test_recursive_tuple_and_dict_like_keycCsþtƒ}| t|ƒ¡tdtjdƒD]`}| ||¡}| |¡}| |t¡| 	t
|ƒd¡| t|ƒdt¡| t|ƒdj
|¡q$|\}tdtjdƒD]\}| ||¡}| |¡}| |t¡| |j
t¡| 	t
|j
ƒd¡| t|j
ƒd|¡qœdS)Nr!rr)rÕÚaddrQr×rr—r‰r´r˜r«r™r˜r¬rR©r&r¦r‹rŒr!rrrÚtest_recursive_set‚s"

z&AbstractPickleTests.test_recursive_setcCs^tƒ}||_tD]H}| ||¡}| |¡}| |t¡| t|ƒt|ƒ¡| |j|¡qdSr)	rOÚ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|¡q&dSr–)
rOrÉ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]f}| ||¡}| |¡}| |j|¡| t|jƒd¡| t	|jƒdt¡| 
t	|jƒd|¡q |j}tD]`}| ||¡}| |¡}| ||¡| t|ƒd¡| t	|ƒdt¡| 
t	|ƒdj|¡q’dSr–)rOrÉr_rˆr‰r´r˜r«r™r˜r¬)r&ÚfactoryÚornr‹rŒr!rrrÚ#_test_recursive_collection_and_inst²s$


z7AbstractPickleTests._test_recursive_collection_and_instcCs| t¡dSr)rÐr˜r)rrrÚtest_recursive_list_and_instËsz0AbstractPickleTests.test_recursive_list_and_instcCs| t¡dSr)rÐr§r)rrrÚtest_recursive_tuple_and_instÎsz1AbstractPickleTests.test_recursive_tuple_and_instcCs| tj¡dSr)rÐrbÚfromkeysr)rrrÚtest_recursive_dict_and_instÑsz0AbstractPickleTests.test_recursive_dict_and_instcCs| t¡dSr)rÐrÕr)rrrÚtest_recursive_set_and_instÔsz/AbstractPickleTests.test_recursive_set_and_instcCs| t¡dSr)rÐÚ	frozensetr)rrrÚ!test_recursive_frozenset_and_inst×sz5AbstractPickleTests.test_recursive_frozenset_and_instcCs| t¡dSr)rÐr r)rrrÚ%test_recursive_list_subclass_and_instÚsz9AbstractPickleTests.test_recursive_list_subclass_and_instcCs| t¡dSr)rÐÚMyTupler)rrrÚ&test_recursive_tuple_subclass_and_instÝsz:AbstractPickleTests.test_recursive_tuple_subclass_and_instcCs| tj¡dSr)rÐr²rÓr)rrrÚ%test_recursive_dict_subclass_and_instàsz9AbstractPickleTests.test_recursive_dict_subclass_and_instcCs| t¡dSr)rÐÚMySetr)rrrÚ$test_recursive_set_subclass_and_instãsz8AbstractPickleTests.test_recursive_set_subclass_and_instcCs| t¡dSr)rÐÚMyFrozenSetr)rrrÚ*test_recursive_frozenset_subclass_and_instæsz>AbstractPickleTests.test_recursive_frozenset_subclass_and_instcCsJtƒ}||_tD]4}| ||¡}| |¡}| |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]X}| ||¡}| |¡}| |t¡| t|ƒd¡| |dt¡| 	|dj|¡q|\}tD]X}| ||¡}| |¡}| |t¡| |jt¡| t|jƒd¡| 	|jd|¡qzdSr<)
ràrárˆr‰r´r˜r§r«r™r¬)r&rnr‹rŒr!rrrÚ#test_recursive_tuple_and_inst_stateós"


z7AbstractPickleTests.test_recursive_tuple_and_inst_statecCsLdddddddg}tD]0}|D]&}| ||¡}| |¡}| ||¡qqdS)Nròz<\u>u<\ሴ>z<
>z<\>u<\ð’…>u<í²€>©rˆr‰r´r°)r&Zendcasesr‹ÚurÚu2rrrÚtest_unicode	sý
z AbstractPickleTests.test_unicodecCs4d}tD]&}| ||¡}| |¡}| ||¡qdS)Nuð’…rä)r&rnr‹rrƒrrrÚtest_unicode_high_planes

z+AbstractPickleTests.test_unicode_high_planecCs¢tD]˜}dD]"}| ||¡}| || |¡¡qdd„tdƒDƒD]"}| ||¡}| || |¡¡qBdd„tdƒDƒD]"}| ||¡}| || |¡¡qxqdS)N©rKóxyzs,xyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzcSsg|]}t|gƒ‘qSr©rl©rrrËrrrrs sz2AbstractPickleTests.test_bytes.<locals>.<listcomp>écSsg|]}t||gƒ‘qSrrërìrrrrs#s)rˆr‰r°r´r×)r&r‹rŒrrrrÚ
test_bytesszAbstractPickleTests.test_bytescCsÄtD]º}dD]°}t|ƒ}| ||¡}| |¡}| ||¡| ||¡|dkrn| d|¡| tt	j
|ƒ¡q|dkr–| d|¡| tt	j|ƒ¡q|dkr| d|¡| tt	j
|ƒ¡qqdS)Nrér s	bytearrayr!rh)rˆrr‰r´r®r°ÚassertInÚ
assertTruerrÚGLOBALÚSTACK_GLOBALÚassertNotInÚ
BYTEARRAY8)r&r‹rŒr[rZbbrrrÚtest_bytearray's 
z"AbstractPickleTests.test_bytearraycCsTtD]J}tj}|r||fD]&}| ||¡}| |¡}| ||¡q|d?}qqdSr¬)rˆrxÚmaxsizer‰r´r°)r&r‹rrrŒZn2rrrÚ	test_ints:s
zAbstractPickleTests.test_intsc	CsÂtD]`}dD]V}d|>}|d||dfD]6}||fD]&}| ||¡}| |¡}| ||¡q8q*qqtddƒ}||d>7}||fD]6}| |d¡}| |¡}| t|ƒt¡| ||¡q†dS)N)réiðiøéirZdeadbeeffeedfaceéi@Br›)rˆr‰r´r°Úintr¬r_r«)	r&r‹ZnbitsZnbaseZnposrrrÏrrrrÚ	test_longDs


zAbstractPickleTests.test_longcCsfddddddddd	d
dg}|dd
„|Dƒ}tD]0}|D]&}| ||¡}| |¡}| ||¡q8q0dS)Nggg+æp‹hgà®Z¤î*)g_DÅø…9gš™™™™™¹?gà?g…ëQ¸	@g‘mÎ"wp@gêWôTáßDgꌠ9Y>)FcSsg|]
}|‘qSrrrqrrrrs^sz2AbstractPickleTests.test_float.<locals>.<listcomp>rä)r&Ztest_valuesr‹rRrrÏrrrÚ
test_float[sÿ
zAbstractPickleTests.test_floatÚLC_ALLÚde_DEÚfr_FRcCs | | dd¡dd…d¡dS)Ng333333ó?rr sF1.)r«r‰r)rrrÚtest_float_formatesz%AbstractPickleTests.test_float_formatcCs6tD],}tƒ}| ||¡}| |¡}| |t¡qdSr)rˆÚAAAr‰r´r«ÚREDUCE_A©r&r‹Úinstr÷rärrrÚtest_reducejs

zAbstractPickleTests.test_reducecCs:tD]0}tddƒ}| ||¡}| |¡}| ||¡qdS)Nrr›)rˆrXr‰r´r°rrrrÚtest_getinitargsqs


z$AbstractPickleTests.test_getinitargscCs:tƒ}tD]*}| ||¡}| |¡}| |j|j¡q
dSr)r]rˆr‰r´r«rs©r&rZr‹rŒr[rrrÚtest_metaclassxs

z"AbstractPickleTests.test_metaclasscCs^tdtfƒ}t ttj¡tD]:}| ||¡}| |¡}| 	||¡| 
t|ƒt|ƒ¡qdS)NZmy_dynamic_class)rarßr=rr^rSrˆr‰r´r«r¬r_rrrrÚtest_dynamic_classs
z&AbstractPickleTests.test_dynamic_classcCs®ddl}ddl}| ¡}tD]Œ}| ||¡}| |¡}| ||¡| |j¡}| ||¡}| |¡}| ||¡t	|dƒr| 
|j¡}| ||¡}| |¡}| ||¡qdS)NrÚstatvfs)ÚtimertÚ	localtimerˆr‰r´r°ÚstatÚcurdirr­r)r&rrtrnr‹rŒrårrrÚtest_structseqˆs 



z"AbstractPickleTests.test_structseqcCs0tD]&}| d|¡}| |¡}| d|¡qdS©N.)rˆr‰r´r¬©r&r‹rŒrårrrÚ
test_ellipsis›s
z!AbstractPickleTests.test_ellipsiscCs0tD]&}| t|¡}| |¡}| t|¡qdSr)rˆr‰rr´r¬rrrrÚtest_notimplemented¡s
z'AbstractPickleTests.test_notimplementedcCsLddtg}|D]8}tD].}| t|ƒ|¡}| |¡}| t|ƒ|¡qqdSr)rrˆr‰r_r´r¬)r&Z
singletonsZ	singletonr‹rŒrårrrÚtest_singleton_types§s

z(AbstractPickleTests.test_singleton_typesc
CsÐtD]N}| d|¡}|dkr>tjt|gƒ}| | |¡¡q| ttj|ƒd¡qtdd}tj	tj
}tjt|gƒ|}z| |¡Wn2tk
rÀ}z| 
dt|ƒ¡W5d}~XYnX| d¡dS)Nr›rrŸrzunsupported pickle protocolz0expected bad protocol number to raise ValueError)rˆr‰rÚPROTOrlrðÚ
startswithr«rÚNONErîr´rÎrïrWZfail)r&r‹r
Z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«rrÚLONG1©r&r!r‹rŒr¦rrrÚ
test_long1Ås
zAbstractPickleTests.test_long1cCsPdd>}tD]>}| ||¡}| |¡}| ||¡| ttj|ƒ|dk¡qdS)Nrrùr›)rˆr‰r´r°r«rrÚLONG4rrrrÚ
test_long4Ís
zAbstractPickleTests.test_long4cCsÔtjtjtjtjtjtjtjtjtjtjtjtjtjtjtjtjtjtjtjtjdœ}d}d}d}d}d}tD]`}|||||fD]L}| ||¡}	| |	¡}
| 	||
¡|t
|dƒt|ƒf}| t
||	ƒ¡q€qndS)N))rr)rr)rr›)rr )rr!)rr)rr©rr›)rr ©rr!)r›r©r›r)r›r›)r›r )r›r!)r r)r r)r r›)r r ©r r!r)rr!©rr›r )rr›r r!r )rÚTUPLEÚEMPTY_TUPLEÚTUPLE1ÚTUPLE2ÚTUPLE3rˆr‰r´r°Úminr™rðr)r&Úexpected_opcoderZr[r¥r¯Úer‹r!rŒr¦rrrrÚtest_short_tuplesÕsBê
z%AbstractPickleTests.test_short_tuplesc
Csžtjtjtjtjtjtjtjtjtjtjtjtjdœ}tD]^}dD]T}| ||¡}| |¡}| ||k||||f¡|t	|dƒ|f}| t
||ƒ¡qBq:dS)N))rN)rN)r›N)r N)rT)rT)r›T)r T)rF)rF)r›F)r F)NFTr )rrÚINTÚNEWTRUEÚNEWFALSErˆr‰r´rðr+r)r&r,r‹r!rŒr¦rrrrÚtest_singletonsüs(ó
z#AbstractPickleTests.test_singletonscCsJtdddgƒ}d|_d|_tD]&}| ||¡}| |¡}| ||¡qdS©Nrr›r rÚhello)rÙr¡r¢rˆr‰r´r°rrrrÚtest_newobj_tuples
z%AbstractPickleTests.test_newobj_tuplecCsJtdddgƒ}d|_d|_tD]&}| ||¡}| |¡}| ||¡qdSr3)r r¡r¢rˆr‰r´r°rrrrÚtest_newobj_lists
z$AbstractPickleTests.test_newobj_listc	CsŒtD]‚}tD]x}|j}||jƒ}d|_| ||¡}| |¡}|||||t|ƒf}| ||¡| 	||ƒ||ƒ|¡| 	|j
|j
|¡qqdS©Nr)rˆÚ	myclassesÚ__base__Úsampler¡r‰r´r_r°r«rE)r&r‹rDÚBr!rŒr¦ÚdetailrrrÚtest_newobj_generic's

z'AbstractPickleTests.test_newobj_genericc	CsÂtdd…}ttfD]}| |¡qtD]”}|D]Š}|j}||jƒ}d|_t 	|¡}| 
||¡}| |¡}	| t
|	ƒt
|ƒ¡|||||	t
|	ƒf}
| ||ƒ||	ƒ|
¡| |j|	j|
¡q0q(dSr7)r8ÚMyIntrÙr{rˆr9r:r¡ÚweakrefÚproxyr‰r´r«r_rE)r&Úclassesr¥r‹rDr;r!rrŒr¦r<rrrÚtest_newobj_proxies4s


z'AbstractPickleTests.test_newobj_proxiescCsDt}t t¡}| |d¡}zda| ttjf|j|¡W5|aXdS)Nr!r)ÚSimpleNewObjrˆr‰r³r*rrûr´)r&ÚsaverÏr[rrrÚtest_newobj_not_classGs
z)AbstractPickleTests.test_newobj_not_classcCsìt|ƒ}zÔt td|¡tdddgƒ}d|_d|_| |d¡}| 	t 
d¡|¡| 	d|¡| t||ƒ¡| 
|¡}| ||¡| |d¡}| t 
d¡|¡| d|¡| t||ƒd	t|ƒ¡| 
|¡}| ||¡W5| ¡XdS)
Nr rr›r rr4rgsMyListT)r;rCr=rBr0r r¡r¢r‰rïrÈÚassertFalserr´r°rór«Úrepr)r&ZextcodeÚopcoder-r!Ús1r¦Ús2rrrÚproduce_global_extWs&

z&AbstractPickleTests.produce_global_extcCs | dtj¡| dtj¡dS)Nrrœ)rKrÚEXT1r)rrrÚtest_global_ext1ssz$AbstractPickleTests.test_global_ext1cCs.| dtj¡| dtj¡| dtj¡dS)NríriÍ«)rKrÚEXT2r)rrrÚtest_global_ext2wsz$AbstractPickleTests.test_global_ext2cCs.| dtj¡| dtj¡| dtj¡dS)NéržiïÍ«)rKrÚEXT4r)rrrÚtest_global_ext4|sz$AbstractPickleTests.test_global_ext4cCsÈd}tt|ƒƒ}tD]B}| ||¡}| |¡}| ||¡ttj|ƒ}| 	||dk¡qd}tt|ƒƒ}tD]V}| ||¡}| |¡}| ||¡ttj|ƒ}|dkr´| 	|d¡ql| 
|dk¡qldS©Né
réÄ	r›)r˜r×rˆr‰r´r°rrÚAPPENDSr«rð)r&rr!r‹rŒr¦Znum_appendsrrrÚtest_list_chunkings$

z&AbstractPickleTests.test_list_chunkingcCsØd}t t|ƒ¡}tD]N}| ||¡}| |t¡| |¡}| ||¡t	t
j|ƒ}| ||dk¡qd}t t|ƒ¡}tD]V}| ||¡}| |¡}| ||¡t	t
j|ƒ}|dkrÄ| |d¡q|| 
|dk¡q|dSrS)rbrÓr×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]T}| ||¡}| |¡}| ||¡ttj|ƒ}|dkr\| 	|d¡q| 	|d¡qd}tt|ƒƒ}tD]T}| ||¡}| |¡}| ||¡ttj|ƒ}|dkrÆ| 	|d¡q~| 
|d¡q~dS)NrTr!rrrUr›)rÕr×rˆr‰r´r°rrÚADDITEMSr«ÚassertGreaterEqual)r&rr!r‹rŒr¦Znum_additemsrrrÚtest_set_chunking®s(

z%AbstractPickleTests.test_set_chunkingc
Cs¦t td¡}d|_tD]Š}|j|dt| ||¡}|dkrJ| d|¡n| d|¡| tt	j
|ƒd|k¡| tt	j|ƒ¡| 
|¡}| ||¡W5QRXqdS)NéÎúéš©r‹ró
I64206óMÎúr›)rCrˆr rˆr²r‰rïr«rrÚNEWOBJrFÚ	NEWOBJ_EXr´r°rrrrÚtest_simple_newobjÇsÿ
z&AbstractPickleTests.test_simple_newobjc
CsÒt td¡}d|_tD]¶}|j|d | ||¡}|dkrJ| d|¡n8|dkr`| d|¡n"|dkrv| d	|¡n| d
|¡| tt	j
|ƒd|k¡| tt	j|ƒ¡| 
|¡}| ||¡W5QRXqdS©Nr]r^r_rr`r›rar!s	XFACEsŒFACE)Ú
ComplexNewObjrˆr rˆr²r‰rïr«rrrbrFrcr´r°rrrrÚtest_complex_newobj×s$ÿ
z'AbstractPickleTests.test_complex_newobjc
CsÒt td¡}d|_tD]¶}|j|d | ||¡}|dkrJ| d|¡n8|dkr`| d|¡n"|dkrv| d	|¡n| d
|¡| tt	j
|ƒ¡| tt	j|ƒd|k¡| 
|¡}| ||¡W5QRXqdSre)ÚComplexNewObjExrˆr rˆr²r‰rïrFrrrbr«rcr´r°rrrrÚtest_complex_newobj_exës$ÿ
z*AbstractPickleTests.test_complex_newobj_excCs@tdddgƒ}d|_d|_| |d¡}| |¡}| ||¡dSr3)ÚSlotListr¡r¢r‰r´r°)r&r!rŒr¦rrrÚtest_newobj_list_slotsÿs
z*AbstractPickleTests.test_newobj_list_slotscCsTtD]J}tƒ}| |jd¡| ||¡}| |jd¡| |¡}| |jd¡qdSr<)rˆÚREX_oner«Ú_reduce_calledr‰r´rŠrrrÚ'test_reduce_overrides_default_reduce_ex	s
z;AbstractPickleTests.test_reduce_overrides_default_reduce_excCsTtD]J}tƒ}| |jd¡| ||¡}| |j|¡| |¡}| |jd¡qdSr)rˆÚREX_twor«Ú_protor‰r´rŠrrrÚtest_reduce_ex_called	s
z)AbstractPickleTests.test_reduce_ex_calledcCsTtD]J}tƒ}| |jd¡| ||¡}| |j|¡| |¡}| |jd¡qdSr)rˆÚ	REX_threer«rpr‰r´rŠrrrÚtest_reduce_ex_overrides_reduce	s
z3AbstractPickleTests.test_reduce_ex_overrides_reducecCsTtD]J}tƒ}| |jd¡| ||¡}| |j|¡| |¡}| |j|¡qdSr)rˆÚREX_fourr«rpr‰r´rŠrrrÚtest_reduce_ex_calls_base"	s
z-AbstractPickleTests.test_reduce_ex_calls_basecCsTtD]J}tƒ}| |jd¡| ||¡}| |jd¡| |¡}| |jd¡qdSr<)rˆÚREX_fiver«rmr‰r´rŠrrrÚtest_reduce_calls_base+	s
z*AbstractPickleTests.test_reduce_calls_basecCs&tƒ}tD]}| t|j||¡q
dSr)Ú
BadGetattrrˆr³ÚRuntimeErrorr‰)r&r!r‹rrrÚtest_bad_getattr4	sz$AbstractPickleTests.test_bad_getattrc	Cs‚Gdd„dtƒ}Gdd„dtƒ}tD]X}z| |ƒ|¡Wntjk
rPYnXz| |ƒ|¡Wq$tjk
rzYq$Xq$dS)Nc@seZdZdd„ZdS)z7AbstractPickleTests.test_reduce_bad_iterator.<locals>.CcSstddgdfSrM)r˜r)rrrrS?	szBAbstractPickleTests.test_reduce_bad_iterator.<locals>.C.__reduce__N©r0r1r2rSrrrrrD>	srDc@seZdZdd„ZdS)z7AbstractPickleTests.test_reduce_bad_iterator.<locals>.DcSstdddgfSrM)rbr)rrrrSC	szBAbstractPickleTests.test_reduce_bad_iterator.<locals>.D.__reduce__Nr{rrrrrIB	srI)rßrˆr‰rÚ
PicklingError)r&rDrIr‹rrrÚtest_reduce_bad_iterator;	sz,AbstractPickleTests.test_reduce_bad_iteratorc
Cs‚dd„tdƒDƒ}tdd„|Dƒƒ}t|ƒt|ƒt|ƒg}tD]>}|j|d(| ||¡}| |¡}| ||¡W5QRXq>dS)Ncss|]}dt|ƒVqdS)ZaaaNrVrìrrrÚ	<genexpr>U	sz>AbstractPickleTests.test_many_puts_and_gets.<locals>.<genexpr>rcss|]}|dddgfVqdS)r!rhr"Nr)rrÚkrrrr~V	sr_)r×rbrˆr²r‰r´r°)r&rÙZ
large_dictrwr‹r÷rärrrÚtest_many_puts_and_getsR	s
z+AbstractPickleTests.test_many_puts_and_getsc	CsjtD]`}tƒ}d|_d|_| ||¡}| |¡}t|jƒ}t|jƒ}t||ƒD]\}}| 	||¡qNqdS)Nrr4)
rˆrDr¡r¢r‰r´ÚsortedrEÚ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)Nrhr›r )r‰r×r«rÖrÕÚ	DATA_SET2rörrrÚtest_pickle_to_2xm	sz%AbstractPickleTests.test_pickle_to_2xcCsTtD]J}dtddtf}| ||¡}| |¡}| t|ƒt|ƒ¡| ||¡qdS)Nrsxyix)rˆr+r™r‰r´r«)r&r‹r±r÷rärrrÚtest_large_picklesw	s
z&AbstractPickleTests.test_large_picklesc
s€tD]v‰ˆjˆd`‡‡fdd„tdƒDƒ}ttt|ƒƒ}ˆ t|ƒ|¡ˆdkrp|D]}ˆ t	t
j|ƒ¡qXW5QRXqdS)Nr_csg|]}ˆ d|ˆ¡‘qS©r›©r‰)rrr©r‹r&rrrs…	szDAbstractPickleTests.test_int_pickling_efficiency.<locals>.<listcomp>éFr›)rˆr²r×r˜Úmapr™r«rrFrrÚLONG)r&ZpicklesZsizesrrr‰rÚtest_int_pickling_efficiency	sz0AbstractPickleTests.test_int_pickling_efficiencycCs6| ||¡}| t||ƒ¡| |¡}| ||¡dSr)r‰rðrr´r«)r&rwrHr‹r
rrrrÚ_check_pickling_with_opcode	s
z/AbstractPickleTests._check_pickling_with_opcodecCsFtdddgƒ}tD].}|dkr0| |tj|¡q| |tj|¡qdS)Nrr›r r)r¥rˆrŽrÚAPPENDrV©r&rwr‹rrrÚtest_appends_on_non_lists“	s
z-AbstractPickleTests.test_appends_on_non_listscCsHtddddœƒ}tD].}|dkr2| |tj|¡q| |tj|¡qdS)NrŸéþÿÿÿéýÿÿÿr%r)r·rˆrŽrÚSETITEMrXrrrrÚtest_setitems_on_non_dictsœ	s
z.AbstractPickleTests.test_setitems_on_non_dictsr!rPcCs<d}}dddddh}t |¡D]Ú\}}}|dk	rJ| ||¡||krJd}|dk	r~| |jd¡|j|krÖ| t|ƒ|j¡nX|jdks |j|krÀt|ƒ|jkrÀ|dk	rÖ| |||j¡d}n|dkrÖ|jdkrÖ|}|jdkr | 	||j¡|d	|}q t|ƒ}|dk	r| 
||¡n|dk	r8| |||j¡dS)
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ÚBINBYTESÚ
BINUNICODEÚ	BINBYTES8ÚBINUNICODE8rôÚFRAMEré	)rrÚassertLessEqualÚassertNotEqualrcr™ÚFRAME_SIZE_TARGETÚ
assertLessÚFRAME_SIZE_MINr[r«)r&r
Z	frame_endZframeless_startZframeless_opcodesrrJÚposrrrÚcheck_frame_opcodes©	sDÿ

ÿþ
ÿ


z'AbstractPickleTests.check_frame_opcodesc
Cs¢ttdƒƒ}tdtjdƒD]€}|j|dj| ||¡}| |¡}| ||¡t|ƒt	tj
|ƒ}| ||jd¡| 
||jd¡| |¡W5QRXqdS)Ni †r!rr_r›)r˜r×rr—r²r‰r´r«r™rršÚ
assertGreaterržrœr¢)r&rwr‹r
rZbytes_per_framerrrÚtest_framing_many_objectsØ	s 

ÿÿÿz-AbstractPickleTests.test_framing_many_objectscCsd}dd„tdƒDƒ}d|f|d|d|f•}tdtjd	ƒD]Ö}d
D]Ì}|j||d´|sp| ||¡}nDt|dƒs†W5QR£qJt ¡}|j||d
}||_	| 
|¡| ¡}| |¡}	| 
dd„|Dƒdd„|	Dƒ¡| 
||	¡ttj|ƒ}
| 
|
d	¡| |¡W5QRXqJqBdS)NicSsg|]
}|g‘qSrrrìrrrrsê	szBAbstractPickleTests.test_framing_large_objects.<locals>.<listcomp>rTóxóyÚzr!r)FT)r‹ÚfastÚpickler©rncSsg|]}t|ƒ‘qSr©r™rqrrrrsþ	scSsg|]}t|ƒ‘qSrr«rqrrrrsÿ	s)r×rr—r²r‰r­r,r4r©r¨Údumpr5r´r«rršr¢)r&ÚNZsmall_itemsrwr‹r¨r
Úbufr©rÚn_framesrrrÚtest_framing_large_objectsè	s.


ÿz.AbstractPickleTests.test_framing_large_objectscsØtjdkrdSddd„}|j‰d}ttfD]¨‰‡‡fdd„t|ƒDƒ}tdtjdƒD]z}| ||¡}||ƒ}| ttj	|ƒd¡| || 
|¡¡||d	d
„ƒ}| ttj	|ƒttj	|ƒ¡| || 
|¡¡qVq*dS)Nr!c
Ssˆg}d}t |¡D]\}}}|jdkr| |¡qtƒ}d}t|ƒD].\}	}|rZ||	ƒrZqD||||…7}||}qD|||d…7}|S)z+Remove frame opcodes from the given pickle.r›ršrN)rrrcr¤rÚ	enumerate)
r
Z
keep_frameZframe_startsZframe_opcode_sizerHÚ_r¡Z	newpickleZlast_frame_endrËrrrÚ
remove_frames
s

z?AbstractPickleTests.test_optional_frames.<locals>.remove_framesécsi|]}|ˆ|gƒˆ“qSrrrì©Z
bytes_typeÚ
frame_sizerrÚ
<dictcomp>$
sz<AbstractPickleTests.test_optional_frames.<locals>.<dictcomp>rrcSs|dS)Nr›r)rËrrrr£-
rKz:AbstractPickleTests.test_optional_frames.<locals>.<lambda>)N)rr—ržrlrr×r‰r«rršr´rŸ)r&r³Z
num_framesrwr‹r
Zframeless_pickleZsome_frames_picklerrµrÚtest_optional_frames
s"


ÿz(AbstractPickleTests.test_optional_framesc
s€Gdd„dƒ}tdtjdƒD]Z}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.<locals>.ChunkAccumulatorz2Accumulate pickler output in a list of raw chunks.cSs
g|_dSr)Úchunksr)rrrr96
szbAbstractPickleTests.test_framed_write_sizes_with_delayed_writer.<locals>.ChunkAccumulator.__init__cSs|j |¡dSr)r¹r¤)r&Úchunkrrrr88
sz_AbstractPickleTests.test_framed_write_sizes_with_delayed_writer.<locals>.ChunkAccumulator.writecSsd |j¡S)NrK)r}r¹r)rrrÚconcatenate_chunks:
szlAbstractPickleTests.test_framed_write_sizes_with_delayed_writer.<locals>.ChunkAccumulator.concatenate_chunksN)r0r1r2r:r9r8r»rrrrÚChunkAccumulator4
sr¼r!rcSs,g|]$}t|ƒ d¡|ddt|ƒif‘qS)rÆrrË)rWrÈrìrrrrs>
sÿzSAbstractPickleTests.test_framed_write_sizes_with_delayed_writer.<locals>.<listcomp>gˆÃ@Z0123456789abcdefrúr›r cSsg|]}t|ƒ‘qSrr«)rrr¥rrrrsb
scsg|]}|ˆjkr|‘qSr©rž©rrrŒr)rrrsc
s
ÿcs*g|]"}d|krˆjkrnq|‘qS©r›r½r¾r)rrrse
s

ÿcSsg|]}|dkr|‘qSr¿rr¾rrrrsg
s)r×rr—rûr¤ržr©r¬r»r´r«r£r™r¹rÚ
gc_collectr[rœrŸ)
r&r¼r‹ZobjectsÚwriterr
Z
reconstructedr¯Zchunk_sizesZlarge_sizesZmedium_sizesZsmall_sizesZ
chunk_sizerr)rÚ+test_framed_write_sizes_with_delayed_writer2
s@	
ÿÿ
ÿ
þz?AbstractPickleTests.test_framed_write_sizes_with_delayed_writercCszGdd„dƒattjdƒD]X}tjtjjtjjjfD]<}|j||d$| | 	||¡¡}| 
||¡W5QRXq6qdS)Nc@seZdZGdd„dƒZdS)ÚNestedc@seZdZGdd„dƒZdS)zNested.Ac@seZdZGdd„dƒZdS)z
Nested.A.Bc@seZdZdS)zNested.A.B.CNrPrrrrrDy
srDN)r0r1r2rDrrrrr;x
sr;N)r0r1r2r;rrrrÚAw
srÄN)r0r1r2rÄrrrrrÃv
srÃr)r‹rw)rÃr×rr—rÄr;rDr²r´r‰r¬)r&r‹rwrrrrÚtest_nested_namest
sz%AbstractPickleTests.test_nested_namesc
CstGdd„dƒatjtjt_dt_ttjdƒD]:}|j	|d$| 
| t|¡¡}| |t¡W5QRXq0t`dS)Nc@seZdZdS)Ú	RecursiveNrPrrrrrƃ
srÆzRecursive.mod.Recursiverr_)
rÆrxÚmodulesr1Úmodr2r×rr—r²r´r‰r¬)r&r‹rrrrÚtest_recursive_nested_names
sz/AbstractPickleTests.test_recursive_nested_namescCsþGdd„dƒatjtjtƒjtjjtjjt ¡jf}tjtftjjtjff}tt	j
dƒD]ž}|D]@}|j||d(| | 
||¡¡}| |ƒ|ƒ¡W5QRXqb|D]N\}}|ƒ}|j||d,| | 
||¡¡}| ||ƒ||ƒ¡W5QRXq¨qZdS)Nc@s:eZdZedd„ƒZedd„ƒZdd„ZGdd„dƒZd	S)
Ú
PyMethodsTestcSsdS)NÚcheeserrrrrrË
szPyMethodsTest.cheesecSs|tkst‚dS)NÚwine)rÊÚAssertionError©ryrrrrÌ“
szPyMethodsTest.winecSst|tƒst‚dS)NÚbiscuits)rŒrÊrÍr)rrrrÏ—
szPyMethodsTest.biscuitsc@s0eZdZdZedd„ƒZedd„ƒZdd„ZdS)	zPyMethodsTest.NestedzNested classcSsdS)NÚketchuprrrrrrМ
szPyMethodsTest.Nested.ketchupcSs|tjkst‚dS)NÚmaple)rÊrÃrÍrÎrrrrÑŸ
szPyMethodsTest.Nested.maplecSst|tjƒst‚dS)NÚpie)rŒrÊrÃrÍr)rrrrÒ£
szPyMethodsTest.Nested.pieN)	r0r1r2r:ÚstaticmethodrÐrrÑrÒrrrrrÚ
s

rÃN)	r0r1r2rÓrËrrÌrÏrÃrrrrrÊ
s

rÊr©r‹Úmethod)rÊrËrÌrÏrÃrÐrÑrÒr×rr—r²r´r‰r«)r&Z
py_methodsZpy_unbound_methodsr‹rÕrryrwrrrÚtest_py_methods
s*ú	þz#AbstractPickleTests.test_py_methodscCsGdd„dtƒadjdftjdfdddgjd	ftjdddgffddhjd
ftjddhdfftj	dft
jdftdddgƒjd
ftjtdddgƒdfft 
d
¡jdftj
jt 
d
¡dfff}ttjdƒD]R}|D]H\}}|j||d,| | ||¡¡}| ||Ž||Ž¡W5QRXqÎqÆdS)Nc@seZdZGdd„deƒZdS)ÚSubclassc@seZdZdS)zSubclass.NestedNrPrrrrrÃÁ
srÃN)r0r1r2rWrÃrrrrr×À
sr×Úabcd)r¥)rØr¥rr›r rr‡))rZr)r[r›)sabcrêZsweet)r-r-rÔ)r§r×ÚindexrWÚ__len__r˜Ú__contains__rÕrbrÓrÚ	maketransÚcountrÃr×rr—r²r´r‰r«)r&Z	c_methodsr‹rÕr'rrrrÚtest_c_methods¾
s&ëz"AbstractPickleTests.test_c_methodscCsàtddƒddfttdƒddftjddftjd	d	ftƒd
dft 	¡dd
ft 
¡ddft ¡ddfg}|D]t\}}}tdƒD]`}|jt
|ƒ|dD| ||¡}| d||f ¡|¡| t
| |¡ƒt
|ƒ¡W5QRXqxqfdS)NrrÚ__builtin__ÚxrangeZ123Ú	itertoolsÚimapr$r&Ú
exceptionsrÜr(ÚIterableUserDictÚUserListr'Údefaultdictr )r_r‹zc%s
%s)r×r‹rûr#r$r%r&rÜr'r(rårær²r_r‰rïrÈr¬r´)r&ZtestsÚvalrÈrcr‹r
rrrÚtest_compat_pickleá
s


ø
z&AbstractPickleTests.test_compat_picklec
Csädd„}tdtjdƒD]2}| ttjf¡t | ||¡¡W5QRXq|`	tdtjdƒD]2}| ttjf¡t | ||¡¡W5QRXq`|j
|_tdtjdƒD]2}| ttjf¡t | ||¡¡W5QRXq¬dS)NcSsdSrrrrrrrö
sz6AbstractPickleTests.test_local_lookup_error.<locals>.frr)r×rr—r³ÚAttributeErrorr|rr‘r‰r1r2r0©r&rr‹rrrÚtest_local_lookup_erroró
sz+AbstractPickleTests.test_local_lookup_errorccs„d}t|ƒVt|ƒVtdk	r€t|ƒ}tj|dd}dtjfD]>}t|dd|dVt|ddd	|d
Vt|ddd|d
Vq@dS)NóabcdefghÚlittle)Ú	byteorderrr;)rø)rrrŽr“)r!r›r#)rrrŽrr“r")rfr‚r„r˜rûÚ
from_bytesr•rƒ)r&Z
bytestringr™rRr“rrrÚbuffer_like_objectss&

ÿÿþz'AbstractPickleTests.buffer_like_objectscCs| ¡D]ò}tdtjdƒD]Ü}| ||¡}|jrF|dkrF| d|¡| ttj	|ƒd¡|dkrÂ| ttj
|ƒ|jrzdnd¡| ttj|ƒ|jr˜dnd¡dd„}|j|||d}| ||¡| 
|¡}| ||¡| t|ƒt|ƒ¡| ||¡qqdS)NrrrhrìcSsdS©NTr©rwrrrÚbuffer_callback0szAAbstractPickleTests.test_in_band_buffers.<locals>.buffer_callback©ró)rðr×rr—r‰r}rïr«rÚNEXT_BUFFERÚSHORT_BINBYTESr|rôr´r®r¬r_)r&rwr‹r±róÚdata2rŠrrrÚtest_in_band_buffers s,ÿÿÿ
z(AbstractPickleTests.test_in_band_bufferscs²| ¡D]¢}tddƒD],}| t¡|j||gjdW5QRXqtdtjdƒD]R}g‰‡fdd„}|j|||d}| d|¡| 	t
tj|ƒd¡| 	t
tj|ƒd¡| 	t
tj
|ƒd¡| 	t
tj|ƒ|jrÜdnd¡|jrü| 	tˆdƒd¡| tj¡| |¡W5QRX|j|ˆd}|jrB| ||¡n | t|ƒt|ƒ¡| 	||¡|j|tˆƒd}|jrŠ| ||¡qV| t|ƒt|ƒ¡| 	||¡qVqdS)	Nrrhrôrcsˆ | ¡¡Sr)r¤r–)r—©Úbuffersrrr£IrKz6AbstractPickleTests.test_oob_buffers.<locals>.<lambda>rìrù)rðr×r³rÎr‰r¤rr—rór«rrörôrõÚREADONLY_BUFFERr|r}rlrûr´rr¬r_Úiter)r&rwr‹rór±rŠrrùrÚtest_oob_buffers?sBÿÿÿz$AbstractPickleTests.test_oob_bufferscCsttdƒ}tdtjdƒD]V}g}|j}|j|||d}tt|ƒ}|j||d}| 	t
|ƒt
|ƒ¡| ||¡qdS©Nófoobarrhrrôrù)rfr×rr—r¤r‰r‹rr´r¬r_r«)r&rwr‹rúrór±rŠrrrÚ%test_oob_buffers_writable_to_readonlyis
z9AbstractPickleTests.test_oob_buffers_writable_to_readonlyc
CsBt d¡}tddƒD](}| tj¡| ||¡W5QRXqdS)Nrÿrrh)rrkr×r³ÚPickleErrorr‰)r&r—r‹rrrÚtest_picklebuffer_errorvs
z+AbstractPickleTests.test_picklebuffer_errorc	Cs<dd„}t d¡}| t¡|j|d|dW5QRXdS)NcSsdddSr–rrùrrrró~szGAbstractPickleTests.test_buffer_callback_error.<locals>.buffer_callbackrÿrhrô)rrkr³ÚZeroDivisionErrorr‰)r&rór—rrrÚtest_buffer_callback_error}s
z.AbstractPickleTests.test_buffer_callback_errorc
Cs‚t d¡}tdtjdƒD]b}|j||gjd}| t¡|j|t	ƒdW5QRX| tj
¡|j|gdW5QRXqdSrþ)rrkr×r—r‰r¤r³r*r´rßrû)r&r—r‹r±rrrÚtest_buffers_error„s
z&AbstractPickleTests.test_buffers_errorcCs8tdtjdƒD]"}|jd|dd}|j|dd}qdS)Nrhrrôrù)r×rr—r‰r´)r&r‹Zdata_pickledr±rrrÚ+test_inband_accept_default_buffers_argumentsz?AbstractPickleTests.test_inband_accept_default_buffers_argumentNzTest needs Numpycs„‡fdd„‰‡fdd„‰‡‡‡fdd„}t d¡}||ƒ||ddd…ƒt d	¡ d
¡}||ƒ||jƒ||ddd…ƒdS)Ncs&tj ||¡ˆ |jj|jj¡dSr)ÚnpÚtestingÚassert_equalr«Úctypesr±©r!r¦r)rrÚ
check_no_copy–sz=AbstractPickleTests.test_buffers_numpy.<locals>.check_no_copycs&tj ||¡ˆ |jj|jj¡dSr)rrr	rr
r±rr)rrÚ
check_copyšsz:AbstractPickleTests.test_buffers_numpy.<locals>.check_copycsàtdtjdƒD]$}ˆ ||¡}ˆ |¡}ˆ||ƒqtdtjdƒD]0}dd„}ˆj|||d}ˆ |¡}ˆ||ƒqFtdtjdƒD]R}g}|j}ˆj|||d}ˆj||d}|jjsÄ|jjrЈ||ƒqˆˆ||ƒqˆdS)NrrrhcSsdSrñr)r²rrrr£¥rKzMAbstractPickleTests.test_buffers_numpy.<locals>.check_array.<locals>.<lambda>rôrù)	r×rr—r‰r´r¤r“r}r~)Úarrr‹r±rŠrórú©r
rr&rrÚcheck_arrayžs"

z;AbstractPickleTests.test_buffers_numpy.<locals>.check_arrayr"r›ér$)rZarangeZreshapeÚT)r&rrrrrÚtest_buffers_numpy”s

z&AbstractPickleTests.test_buffers_numpy)…r0r1r2Z	optimizedr¨r»r‡r°rrŽr•r"rrž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ÛrÝrßrârãrçrèrîrõr÷rürýrrrrr	r
rrrrrrr r.r2r5r6r=rBrErKrMrOrRrWrYr\rdrgrirkrnrqrsrurwrrzr}r€rƒr…r†rrŽr‘r•r ržr¢rZskip_if_pgo_taskr¤r°r¸rÂrÅrÉrÖrÞrèrërðrørýrrrrrÚunittestZskipIfrrrrrrr†žsü





	'		
					



	
/
 *
A
1#*
r†c@szeZdZeeddddd„ƒZeeddddd„ƒZeedddd	d
„ƒZeeddddd
„ƒZ	eeddddd„ƒZ
dS)ÚBigmemPickleTestsgÍÌÌÌÌÌ@F)ÚsizeZmemuseÚdry_runcCspdd|>}zXtD]N}|dkr q|j|d.| ttf¡|j||dW5QRXW5QRXqW5d}XdS)Nrrør›r_rª)rˆr²r³rÎrür‰)r&rr±r‹rrrÚtest_huge_long_32bÆs(z$BigmemPickleTests.test_huge_long_32bg@c
Csžd|d}z†tD]|}|dkr q|j|d\zN|j||d}tjt dt|ƒ¡}| |¡}| 	|||t|ƒ|…¡W5d}XW5QRXqW5d}XdS)Nóabcdr!r r_rªrê)
rˆr²r‰rr–rìrír™rÙr«©r&rr±r‹r
ÚheaderZ
data_startrrrÚtest_huge_bytes_32b×s$ÿ
þz%BigmemPickleTests.test_huge_bytes_32bcCsÚd|d}zÂtD]¸}|dkr q|j|d˜|dkrj| ttf¡|j||dW5QRXW5QR£qzN|j||d}tjt 	dt
|ƒ¡}| |¡}| |||t
|ƒ|…¡W5d}XW5QRXqW5d}XdS)Nsacbdr!r r_rªú<Q)
rˆr²r³rÎrür‰rr˜rìrír™rÙr«rrrrÚtest_huge_bytes_64bìs,ÿ
þz%BigmemPickleTests.test_huge_bytes_64brøc
CsÆd|d}z®tD]¤}|dkr q|j|d„zv|j||d}tjt dt|ƒ¡}| d¡}| 	|||t|ƒ|…¡| 	| 
d¡tdƒ| d¡t|ƒ¡W5d}XW5QRXqW5d}XdS)NrØr!rr_rªrêr)rˆr²r‰rr—rìrír™rÙr«ÚrindexrrrrÚtest_huge_str_32b
s.ÿ
þÿÿz#BigmemPickleTests.test_huge_str_32bcCsd|d}zêtD]à}|dkr q|j|dÀ|dkrj| ttf¡|j||dW5QRXW5QR£qzv|j||d}tjt 	dt
|ƒ¡}| d¡}| |||t
|ƒ|…¡| | 
d¡t
dƒ| d¡t
|ƒ¡W5d}XW5QRXqW5d}XdS)NrØr!rr_rªrr)rˆr²r³rÎrür‰rr™rìrír™rÙr«rrrrrÚtest_huge_str_64b%s6ÿ
þÿÿz#BigmemPickleTests.test_huge_str_64bN)r0r1r2rr	rrr
rr r!rrrrrÂs



rc@seZdZdZdZdd„ZdS)rlz4No __reduce_ex__ here, but inheriting it from objectrcCsd|_tdfS)Nrr)rmrlr)rrrrSFszREX_one.__reduce__N©r0r1r2r:rmrSrrrrrlCsrlc@seZdZdZdZdd„ZdS)roz1No __reduce__ here, but inheriting it from objectNcCs||_tdfSrM©rpro©r&r‹rrrroMszREX_two.__reduce_ex__©r0r1r2r:rprorrrrroJsroc@s eZdZdZdd„Zdd„ZdS)rrNcCs||_tdfSrMr#r$rrrroSszREX_three.__reduce_ex__cCstdƒ‚dS)Nz#This __reduce__ shouldn't be called)rr)rrrrSVszREX_three.__reduce__)r0r1r2rprorSrrrrrrQsrrc@seZdZdZdZdd„ZdS)rtz(Calling base class method should succeedNcCs||_t ||¡Sr)rprßror$rrrro\szREX_four.__reduce_ex__r%rrrrrtYsrtc@seZdZdZdZdd„ZdS)rvz-This one used to fail with infinite recursionrcCsd|_t |¡Sr¬)rmrßrSr)rrrrScszREX_five.__reduce__Nr"rrrrrv`srvc@s2eZdZdZddd„Zdd„Zdd„Zd	d
„ZdS)r¥z]This class is used to check the 4th argument (list iterator) of
    the reduce protocol.
    NcCs|dk	r|ng|_dSrr¢)r&r™rrrr9kszREX_six.__init__cCst|ƒt|ƒko|j|jkSr)r_r™rFrrrrHmszREX_six.__eq__cCs|j |¡dSr)r™r¤)r&Úitemrrrr¤oszREX_six.appendcCst|ƒddt|jƒdfSrM)r_rür™r)rrrrSqszREX_six.__reduce__)N)r0r1r2r:r9rHr¤rSrrrrr¥gs

r¥c@s2eZdZdZddd„Zdd„Zdd„Zd	d
„ZdS)r·z]This class is used to check the 5th argument (dict iterator) of
    the reduce protocol.
    NcCs|dk	r|ni|_dSrr´)r&rµrrrr9xszREX_seven.__init__cCst|ƒt|ƒko|j|jkSr)r_rµrFrrrrHzszREX_seven.__eq__cCs||j|<dSrr´)r&rÑrRrrrÚ__setitem__|szREX_seven.__setitem__cCst|ƒdddt|j ¡ƒfSrM)r_rürµr™r)rrrrS~szREX_seven.__reduce__)N)r0r1r2r:r9rHr'rSrrrrr·ts

r·c@s2eZdZdZddd„Zdd„Zdd„Zd	d
„ZdS)ràzUThis class is used to check the 3th argument (state) of
    the reduce protocol.
    NcCs
||_dSr©rá©r&rárrrr9…szREX_state.__init__cCst|ƒt|ƒko|j|jkSr©r_rárFrrrrH‡szREX_state.__eq__cCs
||_dSrr(r)rrrÚ__setstate__‰szREX_state.__setstate__cCst|ƒd|jfSrMr*r)rrrrS‹szREX_state.__reduce__)N)r0r1r2r:r9rHr+rSrrrrràs

ràc@seZdZdZdS)r>rN©r0r1r2r:rrrrr>‘sr>c@seZdZdZdS)ÚMyFloatgð?Nr,rrrrr-”sr-c@seZdZdZdS)Ú	MyComplexyð?Nr,rrrrr.—sr.c@seZdZdZdS)ÚMyStrr4Nr,rrrrr/šsr/c@seZdZdZdS)Ú	MyUnicodeu	hello ሴNr,rrrrr0sr0c@seZdZdZdS)rÙr%Nr,rrrrrÙ srÙc@seZdZdddgZdS)r rr›r Nr,rrrrr £sr c@seZdZdddœZdS)r²rr›rYNr,rrrrr²¦sr²c@seZdZddhZdS)rÜrZr[Nr,rrrrrÜ©srÜc@seZdZeddhƒZdS)rÞrZr[N)r0r1r2rÖr:rrrrrÞ¬srÞc@seZdZdgZdS)rjr¡N)r0r1r2rªrrrrrjµsrjc@seZdZdd„Zdd„ZdS)rCcOstdƒ‚dS)Nz3SimpleNewObj.__init__() didn't expect to get called)r*r†rrrr9¹szSimpleNewObj.__init__cCst|ƒt|ƒko|j|jkSr)rûrErFrrrrH¼szSimpleNewObj.__eq__N)r0r1r2r9rHrrrrrC¸srCc@seZdZdd„ZdS)rfcCsd|dfS)Nú%Xrúrr)rrrÚ__getnewargs__ÀszComplexNewObj.__getnewargs__N)r0r1r2r2rrrrrf¿srfc@seZdZdd„ZdS)rhcCsd|fddifS)Nr1Úbaserúrr)rrrÚ__getnewargs_ex__Äsz!ComplexNewObjEx.__getnewargs_ex__N)r0r1r2r4rrrrrhÃsrhc@seZdZdd„ZdS)rxcCs
|jdSr)r¡)r&rÑrrrÚ__getattr__ÈszBadGetattr.__getattr__N)r0r1r2r5rrrrrxÇsrxc@sdeZdZdd„Zdd„Zdd„Zdd„Zd	d
„Zdd„Zd
d„Z	dd„Z
dd„Zdd„Zdd„Z
dS)ÚAbstractPickleModuleTestsc	Cs:ttdƒ}z| ¡| t|jd|¡W5t t¡XdS©Nrfé{©r|rrÚunlinkÚcloser³rÎr¬©r&rrrrÚtest_dump_closed_fileÎs

z/AbstractPickleModuleTests.test_dump_closed_filec	Cs:ttdƒ}z| ¡| t|jd|¡W5t t¡XdSr7r9r<rrrÚtest_load_closed_fileÖs

z/AbstractPickleModuleTests.test_load_closed_filecCsBt ¡}didg}| ||¡| d¡| |¡}| ||¡dS)Nr8é|r)r,r4r¬r.Úloadr«)r&Ústreamr±rrrrÚtest_load_from_and_dump_to_fileÞs


z9AbstractPickleModuleTests.test_load_from_and_dump_to_filecCs| tjd¡dSrg)r«rr—r)rrrÚtest_highest_protocolæsz/AbstractPickleModuleTests.test_highest_protocolcCs^t ¡}| d|d¡|jd|dd| dd¡|jddd| |d¡|j|dddS)Nr8rŸ)Úfilernrª)r,r4r¬r‰ÚPicklerr<rrrÚtest_callapiêsz&AbstractPickleModuleTests.test_callapic	CsFttdƒ}z"tD]}| t|jd||¡qW5| ¡t t¡XdS)NÚwr8)	r|rr;rr:rˆr³r*r¬rêrrrÚtest_dump_text_fileôs
z-AbstractPickleModuleTests.test_dump_text_filecCs(t d¡}| ttjtjf|j|¡dS)NsX''.)	r,r4r³rdrìr.rrûr@)r&rŒrrrÚtest_incomplete_inputýs
z/AbstractPickleModuleTests.test_incomplete_inputcCsNGdd„d|jƒ}Gdd„d|jƒ}| tj|ƒjd¡| tj|ƒj¡dS)Nc@seZdZdd„ZdS)z;AbstractPickleModuleTests.test_bad_init.<locals>.BadPicklercSsdSrrr)rrrr9
rKzDAbstractPickleModuleTests.test_bad_init.<locals>.BadPickler.__init__NrKrrrrÚ
BadPickler
srJc@seZdZdd„ZdS)z=AbstractPickleModuleTests.test_bad_init.<locals>.BadUnpicklercSsdSrrr)rrrr9
rKzFAbstractPickleModuleTests.test_bad_init.<locals>.BadUnpickler.__init__NrKrrrrÚBadUnpickler
srKr)rEÚ	Unpicklerr³rr|r¬rûr@)r&rJrKrrrÚ
test_bad_init
sz'AbstractPickleModuleTests.test_bad_initc	
CsÈtdƒ}tddƒD]*}| t¡|||gjdW5QRXqtdtjdƒD]t}g}|j}||||d}| d|¡| t	|dƒd¡| tj
¡||ƒW5QRX|||d}| ||¡qNdS)Nsfoorrh)rnrórrù)rfr×r³rÎr¤rr—rór«rlrûr¬)	r&r‰r´rwr‹rúrór±rŠrrrÚcheck_dumps_loads_oob_buffers

s$ÿÿz7AbstractPickleModuleTests.check_dumps_loads_oob_bufferscCs| |j|j¡dSr)rNr‰r´r)rrrÚtest_dumps_loads_oob_buffers%
sz6AbstractPickleModuleTests.test_dumps_loads_oob_bufferscs(‡fdd„}‡fdd„}ˆ ||¡dS)Ncs t ¡}ˆj||f|Ž| ¡Sr)r,r4r¬r5)rwr‡rr)rrr‰+
szCAbstractPickleModuleTests.test_dump_load_oob_buffers.<locals>.dumpscst |¡}ˆj|f|ŽSr)r,r4r@)r±r‡rr)rrr´0
s
zCAbstractPickleModuleTests.test_dump_load_oob_buffers.<locals>.loads)rN)r&r‰r´rr)rÚtest_dump_load_oob_buffers)
sz4AbstractPickleModuleTests.test_dump_load_oob_buffersN)r0r1r2r=r>rBrCrFrHrIrMrNrOrPrrrrr6Ìs
	r6c@s$eZdZdd„Zdd„Zdd„ZdS)ÚAbstractPersistentPicklerTestscCsNt|tƒr,|ddkr,|jd7_t|ƒS|dkrF|jd7_dSdSdS)Nr›rrÚtest_false_valuerò)rŒrûÚid_countrWÚfalse_count)r&rßrrrÚ
persistent_id=
sz,AbstractPersistentPicklerTests.persistent_idcCsD|s|jd7_dS|jd7_t|ƒ}|ddks<t‚|SdS)NrrRr›r)Úload_false_countÚ
load_countrûrÍ)r&ZoidrßrrrÚpersistent_loadG
sz.AbstractPersistentPicklerTests.persistent_loadc	CsŠttdƒƒdg}tD]n}d|_d|_d|_d|_| | | 	||¡¡|¡| |jd¡| |jd¡| |jd¡| |jd¡qdS)NrTrRrrhr)
r˜r×rˆrSrTrVrWr«r´r‰)r&ÚLr‹rrrÚtest_persistenceQ
sz/AbstractPersistentPicklerTests.test_persistenceN)r0r1r2rUrXrZrrrrrQ7
s

rQc@s4eZdZdd„Zdd„Zdd„Zdd„Zd	d
„ZdS)Ú&AbstractIdentityPersistentPicklerTestscCs|Srr)r&rwrrrrUa
sz4AbstractIdentityPersistentPicklerTests.persistent_idcCs|Srr)r&ÚpidrrrrXd
sz6AbstractIdentityPersistentPicklerTests.persistent_loadcCs2| | ||¡¡}| |t|ƒ¡| ||¡dSr)r´r‰r˜r_r«)r&rwr‹rrrrÚ_check_return_correct_typeg
szAAbstractIdentityPersistentPicklerTests._check_return_correct_typecCsDtD]:}|dkr| dd¡qddddtfD]}| ||¡q,qdS)Nrr sabc
zabc
rŸg*\Âõ(¼¿)rˆr]rW)r&r‹rwrrrÚtest_return_correct_typel
s
z?AbstractIdentityPersistentPicklerTests.test_return_correct_typecCsBd}| tj|j|d¡tj| d¡d}| tj|j|¡dS)Nu∅rrgrÍ)r³rr|r‰ÚPERSIDrÈrûr´)r&Z
non_ascii_strr
rrrÚtest_protocol0_is_ascii_onlyu
szCAbstractIdentityPersistentPicklerTests.test_protocol0_is_ascii_onlyN)r0r1r2rUrXr]r^r`rrrrr[_
s
	r[c@sjeZdZdZdZdd„Zdd„Zdd„Zdd	„Zd
d„Z	dd
œdd„Z
dd„Zdd„Zdd„Z
dd„ZdS)Ú#AbstractPicklerUnpicklerObjectTestsNcCs|js
t‚|jst‚dSr)Ú
pickler_classrÍÚunpickler_classr)rrrr‡
s
z)AbstractPicklerUnpicklerObjectTests.setUpcCs¦dddg}tD]’}t ¡}| ||¡}| |¡| ¡}| d¡| ¡| |¡| ¡}| ¡| d¡| ¡| |¡| ¡}| 	||¡| 
||¡qdS©NÚabcdefgé,r)rˆr,r4rbr¬r5r.ÚtruncateÚ
clear_memorr«)r&r±r‹rr©Ú
first_pickledZsecond_pickledZ
third_pickledrrrÚtest_clear_pickler_memo…
s"





z;AbstractPicklerUnpicklerObjectTests.test_clear_pickler_memocCsjdddg}t ¡}| |¡}| |¡| ¡}t ¡}| |¡}|j|_| |¡| ¡}| ||¡dS©Nrerf)r,r4rbr¬r5Úmemor)r&r±rr©riÚprimedÚprimed_pickledrrrÚtest_priming_pickler_memo¥
s




z=AbstractPicklerUnpicklerObjectTests.test_priming_pickler_memoc
CsÆdddg}t ¡}| |¡}| |¡| ¡}t ¡}| |¡}|j|_| |¡| ¡}| t |¡¡}| ¡}| ||¡| t |¡¡}|j|_| ¡}	|j 	¡| |	|¡| 
|	|k¡dSrk)r,r4rbr¬r5rlrcr@r«Úclearrð)
r&r±rr©rirmrnÚ	unpicklerZunpickled_data1Zunpickled_data2rrrÚtest_priming_unpickler_memo·
s&





z?AbstractPicklerUnpicklerObjectTests.test_priming_unpickler_memocCsÌdddg}t ¡}| |¡}| |¡| ¡}dddg}t ¡}| |¡}| |¡| ¡}t ¡}| |¡| d¡| |¡}| | 	¡|¡| d¡| 
¡| |¡| d¡| | 	¡|¡dSrd)r,r4rbr¬r5r8r.rcr«r@rg)r&Údata1rr©Zpickled1r÷Zpickled2rqrrrÚtest_reusing_unpickler_objectsÕ
s(











zBAbstractPicklerUnpicklerObjectTests.test_reusing_unpickler_objectsT©r*c
CsÔtD]Ê}|j|d´dd„tdƒDƒdtg}|ƒ}|j||d}| |¡| ¡}d}|||ƒ}| |¡}	t|ƒD]<}
|rˆ| ¡}| 	|	 
¡|¡|rx| 	| ¡|t|ƒ¡qx| t|	j
¡W5QRXqdS)Nr_cSsg|]}|t|ƒf‘qSrrVrqrrrrsñ
szSAbstractPicklerUnpicklerObjectTests._check_multiple_unpicklings.<locals>.<listcomp>iÐsabcderªrh)
rˆr²r×r™rbr¬r5rcr/r«r@r³rd)r&Zioclassr*r‹rsrr©r
r­rqrËr¡rrrÚ_check_multiple_unpicklingsî
s"

z?AbstractPicklerUnpicklerObjectTests._check_multiple_unpicklingscCs| tj¡dSr)rvr,r4r)rrrÚ"test_multiple_unpicklings_seekableszFAbstractPicklerUnpicklerObjectTests.test_multiple_unpicklings_seekablecCs|jtdddS©NFru)rvr#r)rrrÚ$test_multiple_unpicklings_unseekableszHAbstractPicklerUnpicklerObjectTests.test_multiple_unpicklings_unseekablecCs|jtdddSrx)rvr3r)rrrÚ!test_multiple_unpicklings_minimalszEAbstractPicklerUnpicklerObjectTests.test_multiple_unpicklings_minimalcCsxttdƒƒ}tD]b}tddƒD]R}tjt ¡|d}|j||d}| |¡| d¡| 	|¡}| 
| ¡|¡qqdS)NrTré)Zbuffer_sizerªr)r˜r×rˆr,ÚBufferedRandomr4rbr¬r.rcr«r@)r&r±r‹Zbuf_sizerr©rqrrrÚ"test_unpickling_buffering_readline
s


zFAbstractPicklerUnpicklerObjectTests.test_unpickling_buffering_readline)r0r1r2rbrcr‡rjrorrrtrvrwryrzr}rrrrra|
s raZreduce_Ac@seZdZdd„ZdS)rcCs
ttffSr)rWrr)rrrrS szAAA.__reduce__Nr{rrrrrsrc@seZdZdd„Zdd„ZdS)ÚBBBcCs
d|_dS)Nzsome attribute©rZr)rrrr9$szBBB.__init__cCs
d|_dS)NúBBB.__setstate__rr)rrrr+)sr€N)r0r1r2r9r+rrrrr~#sr~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)rwrárrrÚsetstate_bbb-s	r‚c@seZdZdZdd„ZdS)ÚAbstractCustomPicklerClassz<Pickler implementing a reducing hook using reducer_override.cCsLt|ddƒ}|dkrtdfS|dkr,tdfS|dkr8dS|dkrHtd	ƒ‚tS)
Nr0r)rhÚMyClass)úsome strÚgFÚhúThe reducer just failed)r¯rûrWrÎr)r&rwZobj_namerrrÚreducer_override<sz+AbstractCustomPicklerClass.reducer_overrideN)r0r1r2r:r‰rrrrrƒ:srƒc@s"eZdZdd„Zejdd„ƒZdS)ÚAbstractHookTestscCsüdd„}dd„}dd„}Gdd„dƒ}td	tjd
ƒD]À}|j|dªt ¡}| ||¡}| ||tj	g¡t 
| ¡¡\}}	}
| |d¡| |	d
¡| 
|
tj	¡| tj¡| |¡W5QRX| td¡| |¡W5QRXW5QRXq6dS)NcSsdSrrrrrrrXsz.AbstractHookTests.test_pickler_hook.<locals>.fcSsdSrrrrrrr†[sz.AbstractHookTests.test_pickler_hook.<locals>.gcSsdSrrrrrrr‡^sz.AbstractHookTests.test_pickler_hook.<locals>.hc@seZdZdS)z4AbstractHookTests.test_pickler_hook.<locals>.MyClassNrPrrrrr„asr„rrr_rhr…rˆ)r×rr—r²r,r4rbr¬ÚmathÚlogr´r5r«r¬r³r|ZassertRaisesRegexrÎ)r&rr†r‡r„r‹ÚbiorÚnew_fZsome_strZmath_logrrrÚtest_pickler_hookSs(ÿz#AbstractHookTests.test_pickler_hookc
CsŒtdtjdƒD]v}|j|d`dd„}t |¡}t ¡}| ||¡}| 	|¡t 
| ¡¡}|dkslt‚~~| 
|ƒ¡W5QRXqdS)Nrrr_cSsdSrrrrrrrƒszEAbstractHookTests.test_reducer_override_no_reference_cycle.<locals>.frh)r×rr—r²r?Úrefr,r4rbr¬r´r5rÍrð)r&r‹rÚwrrrrŽrrrÚ(test_reducer_override_no_reference_cycle{s

z:AbstractHookTests.test_reducer_override_no_reference_cycleN)r0r1r2rrZcpython_onlyr’rrrrrŠRs(rŠc@s,eZdZdd„Zdd„Zdd„Zdd„Zd	S)
ÚAbstractDispatchTableTestsc	CsDt ¡}| |d¡}| t¡|jW5QRX| t|dƒ¡dS)NrÚdispatch_table)r,r4rbr³rér”rFr­)r&rrrrrÚtest_default_dispatch_table–s
z6AbstractDispatchTableTests.test_default_dispatch_tablecs@ˆ ¡‰G‡fdd„dˆjƒ‰d‡‡‡fdd„	}ˆ |ˆ¡dS)NcseZdZ”ZdS)zGAbstractDispatchTableTests.test_class_dispatch_table.<locals>.MyPicklerN)r0r1r2r”r)ÚdtrrÚ	MyPickler¢sr—cs2t ¡}ˆ||ƒ}ˆ |jˆ¡| |¡| ¡Sr)r,r4r«r”r¬r5©rwrnrr©r—r–r&rrr‰¥s


zCAbstractDispatchTableTests.test_class_dispatch_table.<locals>.dumps)N)Úget_dispatch_tablerbÚ_test_dispatch_table©r&r‰rr™rÚtest_class_dispatch_tabležsz4AbstractDispatchTableTests.test_class_dispatch_tablecs(ˆ ¡‰d‡‡fdd„	}ˆ |ˆ¡dS)Ncs:t ¡}ˆ ||¡}ˆ|_ˆ |jˆ¡| |¡| ¡Sr)r,r4rbr”r«r¬r5r˜©r–r&rrr‰²s
zFAbstractDispatchTableTests.test_instance_dispatch_table.<locals>.dumps)N)ršr›rœrržrÚtest_instance_dispatch_table®sz7AbstractDispatchTableTests.test_instance_dispatch_tablecsš‡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_dump½szIAbstractDispatchTableTests._test_dispatch_table.<locals>.custom_load_dumpcSst t |d¡¡Sr )rr´r‰ròrrrÚdefault_load_dumpÀszJAbstractDispatchTableTests._test_dispatch_table.<locals>.default_load_dumpyð?@Úreduce_1cs
tˆffSrrVrò)ÚREDUCE_1rrr£ËszAAbstractDispatchTableTests._test_dispatch_table.<locals>.reduce_1Úreduce_2cs
tˆffSrrVrò)ÚREDUCE_2rrr¥âszAAbstractDispatchTableTests._test_dispatch_table.<locals>.reduce_2r€cSstd|jddtfSrM)r~rEr‚ròrrrÚ
reduce_bbbõszCAbstractDispatchTableTests._test_dispatch_table.<locals>.reduce_bbbr)r«Úcomplexrr~rr˜rZ)r&r‰r”r¡r¢r§r£rZr[r¥r§r)r¤r¦r‰rr›¼sB
z/AbstractDispatchTableTests._test_dispatch_tableN)r0r1r2r•rrŸr›rrrrr“”sr“rzDATA{0} = (r´z	    {0!r}r’z# Disassembly of DATA{0}zDATA{0}_DIS = """\z""")¾r'r=r%r,r#rtr‹rrrvrìrxr~rr?ÚtextwraprZhttp.cookiesrr„ÚImportErrorÚtestrZtest.supportrrrrr	r
rrr
rrZnumpyrZ
skipUnlessrör…r×r—rˆrrr"r4r#rßr3r;rDrIrLrOrQrTr1rûrUrXr_r\r]r^rarlrfrr‚rƒr¼r“r¾r”rÀZ	DATA2_DISrÂZ	DATA3_DISrÄZ	DATA4_DISrÔrÖrØr„ÚArithmeticErrorrÍrérµÚBufferErrorÚBytesWarningÚDeprecationWarningrdÚEnvironmentErrorrÜÚFloatingPointErrorÚ
FutureWarningÚ
GeneratorExitÚIOErrorÚ
ImportWarningÚIndentationErrorÚ
IndexErrorrÚKeyboardInterruptÚLookupErrorÚMemoryErrorÚ	NameErrorr$ÚOSErrorrüÚPendingDeprecationWarningÚReferenceErrorryÚRuntimeWarningÚ
StopIterationÚSyntaxErrorÚ
SyntaxWarningÚSystemErrorÚ
SystemExitÚTabErrorr*ÚUnboundLocalErrorÚUnicodeErrorÚUnicodeWarningÚUserWarningrÎÚWarningrrÚrÛrÝr§ZTestCaser¨r†rrlrorrrtrvr¥r·ràr>Úfloatr-r¨r.rWr/r0r§rÙr˜r rbr²rÕrÜrÖrÞr8rjrCrfrhrxr6rQr[rarrr~r‚rƒrŠr“r0r‘r!rËr‰rr·rrr™Újr[rrrrÚ<module>s 
0
ÿ	
NÿSÿAÿ:ÿ:ÿ
CÓ0g0

ýk("

Bk


Zerion Mini Shell 1.0