+
    Bio                     h   ^ RI HtHtHtHt ^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
t
^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RIt^ RIt^ RIHt ^ RIHtHtHt ^ RIHt ^ RIHt ^ RIHt ^ R	IHt ^ R
IHt ^ RIH t  ^ RIH!t! ^ RIH"t" ^ RIH#t# ^ RIH$t$ ^ RIH%t% ^ RIH&t&  ^ RI't'Rt( ! R R]PT                  4      t+ ! R R] ]PT                  4      t, ! R R]]PT                  4      t- ! R R]]PT                  4      t. ! R R]]PT                  4      t/ ! R R]]]&]PT                  4      t0 ! R  R!]14      t2 ! R" R#]!]2]PT                  4      t3 ! R$ R%]"]2]PT                  4      t4 ! R& R']#]PT                  4      t5 ! R( R)]$]PT                  4      t6 ! R* R+]$]PT                  4      t7 ! R, R-]]PT                  4      t8]('       Ed    ! R. R/] ]PT                  4      t9 ! R0 R1]-4      t: ! R2 R3].4      t; ! R4 R5]/4      t< ! R6 R7]34      t= ! R8 R9]44      t> ! R: R;]/4      t? ! R< R=]/4      t@ ! R> R?]#]PT                  4      tA ! R@ RA]$]PT                  4      tB ! RB RC]$]PT                  4      tC ! RD RE]]PT                  4      tD]P,                   ! RF RG]PT                  4      4       tE]P,                   ! RH RI]PT                  4      4       tF0 RUmtG0 RVmtHRJ tIRK tJRL tKRM tLRN tM ! RO RP]PT                  4      tN ! RQ RR]PT                  4      tORS tP]QRT8X  d   ]P                  ! 4        R# R#   ]) d    Rt( ELi ; i)W    )IMPORT_MAPPINGREVERSE_IMPORT_MAPPINGNAME_MAPPINGREVERSE_NAME_MAPPINGN)dedent)support)cpython_onlyimport_helper	os_helperensure_lazy_imports)AbstractHookTests)AbstractUnpickleTests)AbstractPicklingErrorTests)AbstractPickleTests)AbstractPickleModuleTests)AbstractPersistentPicklerTests)&AbstractIdentityPersistentPicklerTests)#AbstractPicklerUnpicklerObjectTests)AbstractDispatchTableTests)AbstractCustomPicklerClass)BigmemPickleTestsTFc                   0   a  ] tR t^(t o ]R 4       tRtV tR# )LazyImportTestc                     \        R R04       R# )picklereNr   selfs   &'/usr/lib/python3.14/test/test_pickle.pytest_lazy_importLazyImportTest.test_lazy_import)   s    Htf-     N)__name__
__module____qualname____firstlineno__r	   r!   __static_attributes____classdictcell____classdict__s   @r    r   r   (   s     . .r#   r   c                       ] tR t^.t]! ]P                  4      t]! ]P                  4      t	]! ]P                  4      t]! ]P                  4      t]P                  t]P                   tRtR# )PyPickleTestsr$   N)r%   r&   r'   r(   staticmethodr   _dumpdump_dumpsdumps_loadload_loadsloads_PicklerPickler
_Unpickler	Unpicklerr)   r$   r#   r    r.   r.   .   sN    %D'E%D'EooG!!Ir#   r.   c                   ~   a  ] tR t^7t o ]P
                  t]3t]P                  ]
]]]P                  ]]3tR tRtV tR# )PyUnpicklerTestsc                t    \         P                  ! V4      pV P                  ! V3/ VB pVP                  4       # NioBytesIO	unpicklerr5   r   bufkwdsfus   &&,  r    r7   PyUnpicklerTests.loads?   -    JJsONN1%%vvxr#   r$   N)r%   r&   r'   r(   r   r:   rC   
IndexErrorbad_stack_errorsUnpicklingErrorEOFErrorAttributeError
ValueErrorstructerrorImportErrortruncated_errorsr7   r)   r*   r+   s   @r    r=   r=   7   sE     !!I"}..&
j+? r#   r=   c                   B   a  ] tR t^Et o ]P
                  tRR ltRtV t	R# )PyPicklingErrorTestsNc                    \         P                  ! 4       pV P                  ! WB3/ VB pVP                  V4       VP	                  ^ 4       \        VP                  4       4      # r   rA   rB   picklerr1   seekbytesreadr   argprotokwargsrG   ps   &&&,  r    r3   PyPicklingErrorTests.dumpsI   F    JJLLL,V,	s	q	QVVXr#   r$   r?   )
r%   r&   r'   r(   r   r8   rZ   r3   r)   r*   r+   s   @r    rV   rV   E   s     ooG r#   rV   c                   `   a  ] tR t^Qt o ]P
                  t]P                  tRR lt	R t
RtV tR# )PyPicklerTestsNc                    \         P                  ! 4       pV P                  ! WB3/ VB pVP                  V4       VP	                  ^ 4       \        VP                  4       4      # rX   rY   r^   s   &&&,  r    r3   PyPicklerTests.dumpsV   rd   r#   c                t    \         P                  ! V4      pV P                  ! V3/ VB pVP                  4       # r?   r@   rD   s   &&,  r    r7   PyPicklerTests.loads]   rJ   r#   r$   r?   )r%   r&   r'   r(   r   r8   rZ   r:   rC   r3   r7   r)   r*   r+   s   @r    rf   rf   Q   s(     ooG!!I r#   rf   c                      a  ] tR t^ct o ]P
                  ]3t]P
                  ]]	]
]P                  ]]3tRR ltR tRtRtRtRtV tR# )InMemoryPickleTestsNc                0    \         P                  ! W3/ VB # r?   )r   r3   )r   r_   protocolra   s   &&&,r    r3   InMemoryPickleTests.dumpsk   s    ||C4V44r#   c                0    \         P                  ! V3/ VB # r?   )r   r7   )r   rE   rF   s   &&,r    r7   InMemoryPickleTests.loadsn   s    ||C(4((r#   r$   r?   )r%   r&   r'   r(   r   rM   rK   rL   rN   rO   rP   rQ   rR   rS   rT   r3   r7   +test_framed_write_sizes_with_delayed_writertest_find_classtest_custom_find_classr)   r*   r+   s   @r    rl   rl   c   sX      ..
;..&
j+?5) 37/O!r#   rl   c                   0   a  ] tR t^vt o RR ltR tRtV tR# )PersistentPicklerUnpicklerMixinNc                   a   ! V 3R  lRS P                   4      p\        P                  ! 4       pV! WB4      pVP                  V4       VP	                  4       # )c                   .   <a  ] tR t^yt o V3R ltRtV tR# ):PersistentPicklerUnpicklerMixin.dumps.<locals>.PersPicklerc                &   < SP                  V4      # r?   )persistent_idsubselfobjr   s   &&r    r{   HPersistentPicklerUnpicklerMixin.dumps.<locals>.PersPickler.persistent_idz   s    ))#..r#   r$   Nr%   r&   r'   r(   r{   r)   r*   r,   r   s   @r    PersPicklerry   y   s     / /r#   r   )rZ   rA   rB   r1   getvalue)r   r_   r`   r   rG   rb   s   f&&   r    r3   %PersistentPicklerUnpicklerMixin.dumpsx   sA    	/$,, 	/ JJL!	szz|r#   c                   a   ! V 3R  lRS P                   4      p\        P                  ! V4      pV! V3/ VB pVP                  4       # )c                   .   <a  ] tR t^t o V3R ltRtV tR# )<PersistentPicklerUnpicklerMixin.loads.<locals>.PersUnpicklerc                &   < SP                  V4      # r?   )persistent_loadr|   s   &&r    r   LPersistentPicklerUnpicklerMixin.loads.<locals>.PersUnpickler.persistent_load   s    ++C00r#   r$   Nr%   r&   r'   r(   r   r)   r*   r   s   @r    PersUnpicklerr      s     1 1r#   r   )rC   rA   rB   r5   )r   rE   rF   r   rG   rH   s   f&,   r    r7   %PersistentPicklerUnpicklerMixin.loads   s<    	1DNN 	1 JJsO!$t$vvxr#   r$   r?   )r%   r&   r'   r(   r3   r7   r)   r*   r+   s   @r    rv   rv   v   s      r#   rv   c                   F    ] tR t^t]P
                  t]P                  tRt	R# )PyPersPicklerTestsr$   N)
r%   r&   r'   r(   r   r8   rZ   r:   rC   r)   r$   r#   r    r   r      s     ooG!!Ir#   r   c                      a  ] tR t^t o ]P
                  t]P                  t]P                  t
]P                  R 4       t]P                  R 4       t]P                  R 4       tR tR tR tR tR tR	 tR
tV tR# )PyIdPersPicklerTestsc                   a  V 3R  lp ! R RS P                   4      pV! V4        ! R RS P                   4      pV! V4        ! R RS P                   4      pV! V4       R# )c                   < \        \        P                  ^,           4       F`  p\        P                  ! 4       pV ! W!4      pVP                  R4       SP                  SP                  VP                  4       4      R4       Kb  	  V ! \        P                  ! 4       4      pSP                  VP                  R4      R4       \        P                  ! V4      p?SP                  V! 4       4       R#    abcdefN)ranger   HIGHEST_PROTOCOLrA   rB   r1   assertEqualr7   r   r{   weakrefrefassertIsNone)r9   r`   rG   rZ   rr   s   &    r    check@PyIdPersPicklerTests.test_pickler_reference_cycle.<locals>.check   s    v66:;JJL!!+U#  AJJL!95A	 <
 bjjl+GW22595AG$Aac"r#   c                   &   a  ] tR t^t o R tRtV tR# )FPyIdPersPicklerTests.test_pickler_reference_cycle.<locals>.PersPicklerc                    V# r?   r$   r}   r~   s   &&r    r{   TPyIdPersPicklerTests.test_pickler_reference_cycle.<locals>.PersPickler.persistent_id       
r#   r$   Nr   r+   s   @r    r   r            r#   r   c                   0   a  ] tR t^t o ]R 4       tRtV tR# )r   c                    V# r?   r$   )clsr~   s   &&r    r{   r          
r#   r$   N)r%   r&   r'   r(   classmethodr{   r)   r*   r+   s   @r    r   r            r#   c                   0   a  ] tR t^t o ]R 4       tRtV tR# )r   c                    V # r?   r$   )r~   s   &r    r{   r      r   r#   r$   N)r%   r&   r'   r(   r/   r{   r)   r*   r+   s   @r    r   r            r#   N)rZ   )r   r   r   s   f  r    test_pickler_reference_cycle1PyIdPersPicklerTests.test_pickler_reference_cycle   sV    
	#	$,, 	 	k	$,, 	 	k	$,, 	 	kr#   c                z  a  ! V3R  lRV P                   4      p ! R R4      pV! 4       oV! \        P                  ! 4       4      pV P                  VP                  S4       \
        P                  ! S4      pV P                  V! 4       4       ?>\        P                  ! 4        V P                  V! 4       4       R# )c                   6   <a a ] tR t^t oV V3R ltRtVtV ;t# )PPyIdPersPicklerTests.test_custom_pickler_dispatch_table_memleak.<locals>.Picklerc                6   < SV n         \        SV `  ! V/ VB  R # r?   )dispatch_tablesuper__init__)r   argsra   	__class__tables   &*,r    r   YPyIdPersPicklerTests.test_custom_pickler_dispatch_table_memleak.<locals>.Pickler.__init__   s    &+# $1&1r#   )r   )r%   r&   r'   r(   r   r)   r*   __classcell__)r   r,   r   s   @@r    r9   r      s     2 2r#   r9   c                       ] tR t^tRtR# )VPyIdPersPicklerTests.test_custom_pickler_dispatch_table_memleak.<locals>.DispatchTabler$   Nr%   r&   r'   r(   r)   r$   r#   r    DispatchTabler          r#   r   N)rZ   rA   rB   assertIsr   r   r   assertIsNotNoner   
gc_collectr   )r   r9   r   rZ   	table_refr   s   &    @r    *test_custom_pickler_dispatch_table_memleak?PyIdPersPicklerTests.test_custom_pickler_dispatch_table_memleak   s    	2dll 	2
	 	 "**,'g,,e4KK&	Y[))+&r#   c                   a  V 3R  lp ! R RS P                   4      pV! V4        ! R RS P                   4      pV! V4        ! R RS P                   4      pV! V4       R# )c           	        < \        \        P                  ^,           4       FO  pV ! \        P                  ! SP                  RV4      4      4      pSP                  VP                  4       R4       KQ  	  V ! \        P                  ! 4       4      pSP                  VP                  R4      R4       \        P                  ! V4      p?SP                  V! 4       4       R# r   )r   r   r   rA   rB   r3   r   r5   r   r   r   r   )r;   r`   rC   r   r   s   &   r    r   BPyIdPersPicklerTests.test_unpickler_reference_cycle.<locals>.check   s    v66:;%bjjE51I&JK	  !159 < ""**,/IY66u=uEI&Aac"r#   c                   &   a  ] tR t^t o R tRtV tR# )JPyIdPersPicklerTests.test_unpickler_reference_cycle.<locals>.PersUnpicklerc                    V# r?   r$   r}   pids   &&r    r   ZPyIdPersPicklerTests.test_unpickler_reference_cycle.<locals>.PersUnpickler.persistent_load   r   r#   r$   Nr   r+   s   @r    r   r      r   r#   r   c                   0   a  ] tR t^t o ]R 4       tRtV tR# )r   c                    V# r?   r$   )r   r   s   &&r    r   r      r   r#   r$   N)r%   r&   r'   r(   r   r   r)   r*   r+   s   @r    r   r      r   r#   c                   0   a  ] tR t^t o ]R 4       tRtV tR# )r   c                    V # r?   r$   )r   s   &r    r   r      r   r#   r$   N)r%   r&   r'   r(   r/   r   r)   r*   r+   s   @r    r   r      r   r#   N)rC   )r   r   r   s   f  r    test_unpickler_reference_cycle3PyIdPersPicklerTests.test_unpickler_reference_cycle   sV    	#	DNN 	 	m	DNN 	 	m	DNN 	 	mr#   c                n  a a  ! VV 3R  lRS P                   4      p\        \        P                  ^,           4       Fu  p\        P
                  ! 4       pV! W24      p. oVP                  R4       S P                  SR.4       S P                  S P                  VP                  4       4      R4       Kw  	  R# )c                   8   <a a ] tR t^t oV VV3R ltRtVtV ;t# )<PyIdPersPicklerTests.test_pickler_super.<locals>.PersPicklerc                f   < SP                  V4       SP                  \        SV `  V4      4       V# r?   appendr   r   r{   r}   r~   r   calledr   s   &&r    r{   JPyIdPersPicklerTests.test_pickler_super.<locals>.PersPickler.persistent_id   ,    c"!!%'"7"<=
r#   r$   )r%   r&   r'   r(   r{   r)   r*   r   r   r,   r   r   s   @@r    r   r      s      r#   r   r   N)
rZ   r   r   r   rA   rB   r1   r   r7   r   )r   r   r`   rG   rZ   r   s   f    @r    test_pickler_super'PyIdPersPicklerTests.test_pickler_super   s    	 	$,, 	 622Q67E

A!!+GFLLVeW-TZZ

5u= 8r#   c           	     L  a a  ! VV 3R  lRS P                   4      p\        \        P                  ^,           4       Fd  pV! \        P
                  ! S P                  RV4      4      4      p. oS P                  VP                  4       R4       S P                  SR.4       Kf  	  R# )c                   8   <a a ] tR t^t oV VV3R ltRtVtV ;t# )@PyIdPersPicklerTests.test_unpickler_super.<locals>.PersUnpicklerc                   < SP                  V4       SP                  SP                  4      ;_uu_ 4        \        SV `  V4       R R R 4       V#   + '       g   i     T# ; ir?   r   assertRaisespersistent_load_errorr   r   r}   r   r   r   r   s   &&r    r   PPyIdPersPicklerTests.test_unpickler_super.<locals>.PersUnpickler.persistent_load   M    c"&&t'A'ABBG+C0 C
 CB
   AA!	r$   )r%   r&   r'   r(   r   r)   r*   r   r   s   @@r    r   r      s      r#   r   r   N)	rC   r   r   r   rA   rB   r3   r   r5   )r   r   r`   rC   r   s   f   @r    test_unpickler_super)PyIdPersPicklerTests.test_unpickler_super   s    	 	DNN 	 622Q67E%bjjE51I&JKIFY^^-u5VeW-	 8r#   c                  a V3R  lp\        \        P                  ^,           4       F  p\        P                  ! 4       pV P                  W24      p. oVP                  pWn        V P                  VP                  V4       VP                  R4       V P                  SR.4       V P                  V P                  VP                  4       4      R4       V=V P                  VP                  V4       K  	  R# )c                 *   < SP                  V 4       V # r?   r   )r~   r   s   &r    r{   KPyIdPersPicklerTests.test_pickler_instance_attribute.<locals>.persistent_id      MM#Jr#   r   N)r   r   r   rA   rB   rZ   r{   r   r1   r7   r   )r   r{   r`   rG   rZ   old_persistent_idr   s   &     @r    test_pickler_instance_attribute4PyIdPersPicklerTests.test_pickler_instance_attribute  s    	 622Q67E

All1,GF ' 5 5$1!W22MBLLVeW-TZZ

5u=%W224EF 8r#   c           	       a V3R  lp\        \        P                  ^,           4       F  pV P                  \        P
                  ! V P                  RV4      4      4      p. oVP                  pWn        V P                  VP                  V4       V P                  VP                  4       R4       V P                  SR.4       V=V P                  VP                  V4       K  	  R# )c                 *   < SP                  V 4       V # r?   r   )r   r   s   &r    r   OPyIdPersPicklerTests.test_unpickler_instance_attribute.<locals>.persistent_load  r   r#   r   N)
r   r   r   rC   rA   rB   r3   r   r   r5   )r   r   r`   rC   old_persistent_loadr   s   &    @r    !test_unpickler_instance_attribute6PyIdPersPicklerTests.test_unpickler_instance_attribute  s    	 622Q67Erzz$**UE2J'KLIF"+";";(7%Y66HY^^-u5VeW-)Y668KL 8r#   c                0  a a  ! VV 3R  lRS P                   4      p\        \        P                  ^,           4       F  p\        P
                  ! 4       pV! W24      p. oVP                  pVP                  Vn        S P                  VP                  VP                  4       VP                  R4       S P                  SR.4       S P                  S P                  VP                  4       4      R4       V=S P                  VP                  V4       K  	  R# )c                   >   <a a ] tR tRt oR tV VV3R ltRtVtV ;t# )OPyIdPersPicklerTests.test_pickler_super_instance_attribute.<locals>.PersPickleri*  c                    \        R 4      hzshould never be calledAssertionErrorr   s   &&r    r{   ]PyIdPersPicklerTests.test_pickler_super_instance_attribute.<locals>.PersPickler.persistent_id+      $%=>>r#   c                f   < SP                  V4       SP                  \        SV `  V4      4       V# r?   r   r   s   &&r    _persistent_id^PyIdPersPicklerTests.test_pickler_super_instance_attribute.<locals>.PersPickler._persistent_id-  r   r#   r$   )	r%   r&   r'   r(   r{   r  r)   r*   r   r   s   @@r    r   r  *  s     ? r#   r   r   N)rZ   r   r   r   rA   rB   r{   r  r   r1   r7   r   )r   r   r`   rG   rZ   r   r   s   f     @r    %test_pickler_super_instance_attribute:PyIdPersPicklerTests.test_pickler_super_instance_attribute)  s    	 	$,, 	 622Q67E

A!!+GF ' 5 5$+$:$:G!W22G4J4JKLLVeW-TZZ

5u=%W224EF 8r#   c           	       a a  ! VV 3R  lRS P                   4      p\        \        P                  ^,           4       F  pV! \        P
                  ! S P                  RV4      4      4      p. oVP                  pVP                  Vn        S P                  VP                  VP                  4       S P                  VP                  4       R4       S P                  SR.4       V=S P                  VP                  V4       K  	  R# )c                   >   <a a ] tR tRt oR tV VV3R ltRtVtV ;t# )SPyIdPersPicklerTests.test_unpickler_super_instance_attribute.<locals>.PersUnpickleri@  c                    \        R 4      hr  r  r   s   &&r    r   cPyIdPersPicklerTests.test_unpickler_super_instance_attribute.<locals>.PersUnpickler.persistent_loadA  r	  r#   c                   < SP                  V4       SP                  SP                  4      ;_uu_ 4        \        SV `  V4       R R R 4       V#   + '       g   i     T# ; ir?   r   r   s   &&r    _persistent_loaddPyIdPersPicklerTests.test_unpickler_super_instance_attribute.<locals>.PersUnpickler._persistent_loadC  r   r   r$   )	r%   r&   r'   r(   r   r  r)   r*   r   r   s   @@r    r   r  @  s     ? r#   r   r   N)rC   r   r   r   rA   rB   r3   r   r  r   r5   )r   r   r`   rC   r   r   s   f    @r    'test_unpickler_super_instance_attribute<PyIdPersPicklerTests.test_unpickler_super_instance_attribute?  s    	 	DNN 	 622Q67E%bjjE51I&JKIF"+";";(1(B(BI%Y66	8R8RSY^^-u5VeW-)Y668KL 8r#   r$   N)r%   r&   r'   r(   r   r8   rZ   r:   rC   rM   r   r   r	   r   r   r   r   r   r   r   r  r  r)   r*   r+   s   @r    r   r      s      ooG!!I"22 < ' '*  8>.G$M G,M Mr#   r   c                   F    ] tR tRt]P
                  t]P                  tRt	R# )PyPicklerUnpicklerObjectTestsiU  r$   N)
r%   r&   r'   r(   r   r8   pickler_classr:   unpickler_classr)   r$   r#   r    r  r  U  s    OOM''Or#   r  c                   >   a  ] tR tRt o ]P
                  tR tRtV t	R# )PyDispatchTableTestsi[  c                >    \         P                  P                  4       # r?   r   r   copyr   s   &r    get_dispatch_table'PyDispatchTableTests.get_dispatch_table_  s    $$))++r#   r$   N
r%   r&   r'   r(   r   r8   r  r"  r)   r*   r+   s   @r    r  r  [  s     OOM, ,r#   r  c                   >   a  ] tR tRt o ]P
                  tR tRtV t	R# )PyChainDispatchTableTestsic  c                L    \         P                  ! / \        P                  4      # r?   collectionsChainMapr   r   r   s   &r    r"  ,PyChainDispatchTableTests.get_dispatch_tableg  s    ##B(=(=>>r#   r$   Nr$  r+   s   @r    r&  r&  c  s     OOM? ?r#   r&  c                   F    ] tR tRt ! R R]P
                  ]4      t]tRt	R# )PyPicklerHookTestsik  c                       ] tR tRtRtR# )'PyPicklerHookTests.CustomPyPicklerClassil  r$   Nr   r$   r#   r    CustomPyPicklerClassr/  l  s    r#   r0  r$   N)
r%   r&   r'   r(   r   r8   r   r0  r  r)   r$   r#   r    r-  r-  k  s    v9 )Mr#   r-  c                   6    ] tR tRt^ RIHtHtHtHtH	t	H
t
 RtR# )CPickleTestsis  )r1   r3   r5   r7   r9   r;   r$   N)r%   r&   r'   r(   _pickler1   r3   r5   r7   r9   r;   r)   r$   r#   r    r2  r2  s  s    HHHr#   r2  c                   b    ] tR tRt]P
                  t]P                  3t	]P                  3t
RtR# )CUnpicklerTestsiv  r$   N)r%   r&   r'   r(   r3  r;   rC   r   rM   rL   rT   r)   r$   r#   r    r5  r5  v  s+    %%	"224"224r#   r5  c                   .    ] tR tRt]P
                  tRtR# )CPicklingErrorTestsi{  r$   N)r%   r&   r'   r(   r3  r9   rZ   r)   r$   r#   r    r7  r7  {  s    //r#   r7  c                   F    ] tR tRt]P
                  t]P                  tRt	R# )CPicklerTestsi~  r$   N
r%   r&   r'   r(   r3  r9   rZ   r;   rC   r)   r$   r#   r    r9  r9  ~      //%%	r#   r9  c                   F    ] tR tRt]P
                  t]P                  tRt	R# )CPersPicklerTestsi  r$   Nr:  r$   r#   r    r=  r=    r;  r#   r=  c                   ^    ] tR tRt]P
                  t]P                  t]P                  t
RtR# )CIdPersPicklerTestsi  r$   N)r%   r&   r'   r(   r3  r9   rZ   r;   rC   rM   r   r)   r$   r#   r    r?  r?    s"    //%%	 ' 7 7r#   r?  c                   F    ] tR tRt]P
                  t]P                  t	Rt
R# )CDumpPickle_LoadPicklei  r$   N)r%   r&   r'   r(   r3  r9   rZ   r   r:   rC   r)   r$   r#   r    rA  rA    s    //%%	r#   rA  c                   F    ] tR tRt]P
                  t]P                  t	Rt
R# )DumpPickle_CLoadPicklei  r$   N)r%   r&   r'   r(   r   r8   rZ   r3  r;   rC   r)   r$   r#   r    rC  rC    s    //%%	r#   rC  c                   V   a  ] tR tRt o ]P
                  t]P                  tR t	Rt
V tR# )CPicklerUnpicklerObjectTestsi  c                l   V P                  \        P                  ! 4       4      pV P                  \        4      ;_uu_ 4        \
        Vn        R R R 4       V P                  \        4      ;_uu_ 4        RR /Vn        R R R 4       ^R /Vn        R #   + '       g   i     LJ; i  + '       g   i     L.; i)N)r  rA   rB   r   	TypeErrorobjectmemorP   )r   rC   s   & r    test_issue18339,CPicklerUnpicklerObjectTests.test_issue18339  su    ,,RZZ\:I""9--!'	 . "":.."$d	 /YIN .- /.s   B3
B#B 	#B3	r$   N)r%   r&   r'   r(   r3  r9   r  r;   r  rK  r)   r*   r+   s   @r    rE  rE    s#     !++	' 	'r#   rE  c                   >   a  ] tR tRt o ]P
                  tR tRtV t	R# )CDispatchTableTestsi  c                >    \         P                  P                  4       # r?   r   r   s   &r    r"  &CDispatchTableTests.get_dispatch_table  s    ((--//r#   r$   N
r%   r&   r'   r(   r   r9   r  r"  r)   r*   r+   s   @r    rN  rN    s     	0 	0r#   rN  c                   >   a  ] tR tRt o ]P
                  tR tRtV t	R# )CChainDispatchTableTestsi  c                L    \         P                  ! / \        P                  4      # r?   r(  r   s   &r    r"  +CChainDispatchTableTests.get_dispatch_table  s    ''F,A,ABBr#   r$   NrQ  r+   s   @r    rS  rS    s     	C 	Cr#   rS  c                   F    ] tR tRt ! R R]P
                  ]4      t]tRt	R# )CPicklerHookTestsi  c                       ] tR tRtRtR# )%CPicklerHookTests.CustomCPicklerClassi  r$   Nr   r$   r#   r    CustomCPicklerClassrY    r   r#   rZ  r$   N)
r%   r&   r'   r(   r3  r9   r   rZ  r  r)   r$   r#   r    rW  rW    s    	'//3M 	+r#   rW  c                   2   a  ] tR tRt o R tR tR tRtV tR# )HeapTypesTestsi  c                D   \         P                  ! \        P                  ! 4       4      p\         P                  ! \        P                  ! 4       4      p\         P                  \         P                  \        VP                  4      \        VP                  4      3V n        R # r?   )r3  r9   rA   rB   r;   typerJ  _types)r   rZ   rC   s   &  r    setUpHeapTypesTests.setUp  s_    oobjjl3G))"**,7I !!W\\"Y^^$	DKr#   c                    ^ RI pV P                   FF  pV P                  VR7      ;_uu_ 4        V P                  VP	                  V4      4       RRR4       KH  	  R#   + '       g   i     K]  ; i)r   Ntp)gcr_  subTest
assertTrue
is_tracked)r   re  rd  s   &  r    test_have_gcHeapTypesTests.test_have_gc  sK    kk\\R\((OOBMM"$56 )( "(((s   !AA.c           
        V P                    FT  pV P                  VR 7      ;_uu_ 4        V P                  \        R4      ;_uu_ 4        RVn        RRR4       RRR4       KV  	  R#   + '       g   i     L; i  + '       g   i     K~  ; i)rc  	immutablebarN)r_  rf  assertRaisesRegexrH  foo)r   rd  s   & r    test_immutableHeapTypesTests.test_immutable  s\    kk\\R\((//	;GG!& H )( "GG )((s#   A:	A'A:'A72A::B)r_  N)	r%   r&   r'   r(   r`  ri  rp  r)   r*   r+   s   @r    r\  r\    s     		7	' 	'r#   r\  c                   D   a  ] tR tRt o ]P
                  tR tR tRtV t	R# )SizeofTestsi  c                N   \         P                  ! R 4      p\        P                  ! \        P
                  ! 4       4      pV P                  \        P                  V4      V4       \        P                  ! R4      p\        P                  ! R4      pV P                  pV! W!V,           ^V,          ,           \        P                  ! R4      ,           4       \        ^4       F  pVP                  \!        V4      4       K  	  V! W!V,           ^ V,          ,           ^ ,           4       R# )7P2n3i2n3i2P3nP0nPn0PNs   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)r   calcobjsizer3  r9   rA   rB   r   rI  
__sizeof__rQ   calcsizecheck_sizeofsys	getsizeofr   r1   chr)r   basesizerb   MT_sizeME_sizer   is   &      r    test_picklerSizeofTests.test_pickler  s    **>:H

-AV..q18<oog.Goof-G%%E!g+&i() * 1Xs1v !w,'  r#   c           	       aa	a
aa \         P                  ! R 4      p\        P                  o\        P
                  ! R4      o\        P
                  ! R4      o
V P                  o	R
 F  pR F  pS! \        P                  ! 4       W#R7      pV P                  \        P                  V4      V4       S	! WA^ S,          ,           \        V4      ,           ^,           \        V4      ,           ^,           4       K  	  K  	  V\        R4      ,           ^,           \        R4      ,           ^,           oVV	V
VV3R lpV! ^ ^ ^ 4       V! ^ .^d,          ^ ^4       T! \        ^d4       Uu. uF  p\        V4      NK  	  up^^4       R pV! V! ^ 4      ^ ^ 4       V! V! ^4      ^ ^4       V! V! ^4      ^ ^4       V! V! ^24      ^@^<4       \         P                  '       d   \         P                   '       g   V! V! ^d4      ^^4       S! \        P                  ! \"        P$                  ! R^ 4      4      RRR7      pVP'                  4        S	! VS^ S,          ,           ^,           ^,           4       R	# u upi )z2P2n2P 2P2n2i5P 2P3n8P2n2iPnASCIIstrictencodingerrorsc                    < \         P                  ! V 4      pS	! \        P                  ! V4      R RR7      pVP	                  4        S! VSVS,          ,           VS,          ,           4       R# )r  r  r  N)r   r3   rA   rB   r5   )
data	memo_size
marks_sizer1   rH   r  r   r  stdsizerC   s
   &&&  r    check_unpickler3SizeofTests.test_unpickler.<locals>.check_unpickler  sQ    ||D)bjj.'.xAa9q=0:>ABr#   c                 4    ^ p\        V 4       F  pW.pK  	  V# rX   )r   )deepr  r  s   &  r    recurse+SizeofTests.test_unpickler.<locals>.recurse  s!    tA <D %r#   aN)r  zUTF-16zlatin-1)r  replace)r   rx  r3  r;   rQ   rz  r{  rA   rB   r   rI  ry  lenr   r~  is_wasiPy_DEBUGr   r3   r5   )r   r  r  r  rH   r  r  r  r  r   r  r  rC   s   &       @@@@@r    test_unpicklerSizeofTests.test_unpickler  s   **+GHH))I$A$A%%E81F!"**,+3DA$$V%6%6q%98D!!V$ ]+-./14V=?@A B	 2 9 W-1CMAAEGC C Ar1%QC#Ir2.U3Z8ZSVZ8#rB
 GAJA.GAJB/GBKR0GBKR0OOO(8(8(8c37"**V\\#q%9:#*8=AFFH!WrAv%)A-.# 9s   !I(r$   N)
r%   r&   r'   r(   r   r{  r  r  r)   r*   r+   s   @r    rs  rs    s     ++	",	/ ,	/r#   rs  c                 v    W3\         9   d   \         W3,          w  rW3# V \        9   d   \        V ,          p W3# r?   )r   r   modulenames   &&r    mappingr    s@    ~%#VN3 < 
>	!'<r#   c                 v    W3\         9   d   \         W3,          w  rW3# V \        9   d   \        V ,          p W3# r?   )r   r   r  s   &&r    reverse_mappingr  $  sB    ~--+VN; < 
)	)'/<r#   c                 ^    \         P                  V ,          #   \         Ed     \        P                  ! 4       ;_uu_ 4        \
        P                  '       d   R MRp\        P                  ! T\        4       \        T 4       RRR4       M  + '       g   i     Mu; i  \         d5   p\
        P                  '       d   \        RT : RT: 24       \        hRp?i\         d(   p\
        P                  '       d   \        T4       h Rp?ii ; i\         P                  T ,          u # i ; i)alwaysignoreNzCan't import module z: )r|  modulesKeyErrorwarningscatch_warningsr   verbosesimplefilterDeprecationWarning
__import__rO   printrS   )r  actionexcs   &  r    	getmoduler  +  s    #{{6"" #	((**%,___(%%f.@A6" +***  	fcBC 	c
	 {{6""#si    D,B ABB D,BB D,B  D+/CD'D("D

DD,+D,c                 b    \        V 4      pVP                  R 4       F  p\        W#4      pK  	  V# ).)r  splitgetattr)r  r  r~   r  s   &&  r    getattributer  >  s,    
F
CZZ_co Jr#   c              #      "   \        V 4       FC  p\        W4      p\        V\        4      '       g   K&  \	        V\
        4      '       g   K>  W3x  KE  	  R # 5ir?   )dirr  
isinstancer^  
issubclassBaseException)modr  attrs   &  r    get_exceptionsr  D  s>     Cs!dD!!j}&E&E* s   -AAAc                   J   a  ] tR tRt o R tR tR tR tR tR t	R t
R	tV tR
# )CompatPickleTestsiJ  c                v   \        \        P                  ! 4       4      pV\        \        4      ,          pT\         UUu0 uF  w  r#VkK	  	  upp,          pT\
        P                  ! 4        UUu0 uF  w  r#VkK	  	  upp,          pV F  p \        V4       K  	  R # u uppi u uppi   \         d     K/  i ; ir?   )setr   valuesr   r   r   r  rS   )r   r  r  r  s   &   r    test_importCompatPickleTests.test_importK  s    n++-.3-../CD/C|vF/CDD|/B/B/DE/D|vF/DEEF&!  EE  s   B/B#B))B87B8c                l   \         P                  ! 4        Fu  w  rV P                  W34      ;_uu_ 4         \        V4       VR ,          R8w  d4   V P                  V\        4       V P                  \        V,          V4       RRR4       Kw  	  R#   \         d     L\i ; i  + '       g   i     K  ; i)Nr   N_N)r   itemsrf  r  rS   assertInr   r   )r   module3module2s   &  r    test_import_mapping%CompatPickleTests.test_import_mappingV  s     6 < < >Gw011g& 2;#%MM'>:$$^G%<gF 21 !? #  211s/   B"BAB"B	B"B	B""B3c           	     8   \         P                  ! 4        F  w  w  rw  r4V P                  W3W4334      ;_uu_ 4        W43R8X  d#   \        W4      pV P	                  V\
        4       MW43R8X  d#   \        W4      pV P	                  V\        4       MV\        W44      w  rgVR,          R8w  d   V P                  Wg3W34        \        W4      pV P                  \        Wg4      V4       RRR4       K  	  R#   \         d     Li ; i  + '       g   i     EK  ; i)
exceptionsr  r  Nr  OSErrorr  rS   )	r   r  rf  r  assertIsSubclassr  rS   r  r   )r   r  name3r  name2r  r  r  s   &       r    test_name_mapping#CompatPickleTests.test_name_mappinga  s   2F2L2L2N.W.w/'1ABCC#'@@'7D))$8%)FF'7D))$<#*7#:LFr{c)((&'9IJK+G; ((f)CTJ! DC 3O '  DCCs0   BDC6D6D	DD	DDc           	        \         P                  ! 4        F  w  rV P                  W34      ;_uu_ 4         \        V4       W3\        9  dd   \        P                  ! VR 4      V8w  dH   \        P                  ! 4        F  w  w  rEw  rgW!3WF38X  g   K   M	  V P                  RV: RV: 24       \        P                  ! W"4      p\         P                  ! W4      pV P                  W4       R R R 4       K  	  R #   \         d,   p\
        P                  '       d   \        T4        R p?LR p?ii ; i  + '       g   i     EK1  ; i)NzNo reverse mapping from z to )r   r  rf  r  rS   r   r  r  ALT_IMPORT_MAPPINGr   getr   failr   )	r   r  r  r  m3n3m2n2r  s	   &        r    test_reverse_import_mapping-CompatPickleTests.test_reverse_import_mappingu  s    . 4 4 6Gw011#g& &.@@*..w=H.B.H.H.J*(2#-"9! /K 		#*G#5 6/33GE'++F;  1! 21 !7 # #c
# 211s<   D5C<AD5AD5<D2	!D-	(D5-D2	2D55Ec                   \         P                  ! 4        F  w  w  rw  r4V P                  W3W4334      ;_uu_ 4         \        W44      p\        W44      w  rgWW43\        9  d   V P                  Wg3W34       \        Wg4      w  rgV P                  Wg3W434       R R R 4       K  	  R #   \         d     Lji ; i  + '       g   i     K  ; ir?   )	r   r  rf  r  rS   r  ALT_NAME_MAPPINGr   r  )r   r  r  r  r  r  r  r  s   &       r    test_reverse_name_mapping+CompatPickleTests.test_reverse_name_mapping  s    2>2D2D2F.W.w/'1ABCC'7D  /w>G3;KK$$f^g5EF&v4  &'1AB DC 3G #  DCCs/   B8B'
AB8'B5	2B84B5	5B88C	c                   V P                  \        R R4      R4       V P                  \        R R4      R4       V P                  \        RR4      R4       V P                  \        R R4      R4       V P                  \        RR4      R	4       \        \        4       EF;  w  rV P                  V4      ;_uu_ 4        V\        \        \        \        \        \        \        \        \        3	9   d    RRR4       K_  V\        Jd4   \!        V\        4      '       d   V P                  \        RV4      R	4       MV\"        JdR   \!        V\"        4      '       d<   V P                  \        RV4      R
4       V P                  \        R V4      R V34       M<V P                  \        RV4      R V34       V P                  \        R V4      RV34       RRR4       EK>  	  R#   + '       g   i     EKT  ; i)r  StandardErrorbuiltins	Exceptionr  N)r  r  )r  r  )r  r  r  r  )r   r  r  r  r  rf  BlockingIOErrorResourceWarningStopAsyncIterationPythonFinalizationErrorRecursionErrorEncodingWarningBaseExceptionGroupExceptionGroup_IncompleteInputErrorr  r  rS   )r   r  r  s   &  r    test_exceptions!CompatPickleTests.test_exceptions  s   ?2	4{;2	4[A4	6y90	2Y?2	4 (1IDd##?*-2)*-)02 2  $# g%*S'*B*B$$_Z%F%>@+
30L0L$$_Z%F%BD$$W\4%@&2D%9; $$_Z%F&2D%9;$$W\4%@&0$%79- $# 2###s   ;6G;CGG0c           	     n   \         P                  ! R 4      p\        V4       F{  w  r#\        V\        4      '       d   K  V P                  V4      ;_uu_ 4        V P                  \        R V4      RV34       V P                  \        RV4      R V34       RRR4       K}  	  R#   + '       g   i     K  ; i)zmultiprocessing.contextmultiprocessingN)	r
   import_moduler  r  Warningrf  r   r  r  )r   r  r  r  s   &   r    test_multiprocessing_exceptions1CompatPickleTests.test_multiprocessing_exceptions  s    ,,-FG'/ID#w''d##  1JD!Q"3T!:<  ):D!A";T!BD $# 0 $##s   =B##B4r$   N)r%   r&   r'   r(   r  r  r  r  r  r  r  r)   r*   r+   s   @r    r  r  J  s3     		GK(2(C$9L	D 	Dr#   r  c                   l   a  ] tR tRt o R t]R 4       tR tR tR t	]
P                  R 4       tRtV tR	# )
CommandLineTesti  c                    \         P                  ! 4       V n        V P                  \        P
                  V P                  4       R # r?   )tempfilemktempfilename
addCleanupr   unlinkr   s   &r    r`  CommandLineTest.setUp  s(     )	(($--8r#   c                4    \        V 4      P                  4       # )zDedent *string* and strip it from its surrounding whitespaces.

This method is used by the other utility functions so that any
string to write or to match against can be freely indented.
)r   strip)strings   &r    text_normalizeCommandLineTest.text_normalize  s     f~##%%r#   c                    \        V P                  R 4      ;_uu_ 4       p\        P                  ! W4       RRR4       R#   + '       g   i     R# ; i)wbN)openr  r   r1   )r   r  rG   s   && r    set_pickle_dataCommandLineTest.set_pickle_data  s0    $--&&!KK  '&&&s   A  A	c                (   \         P                  ! 4       p\        P                  ! V4      ;_uu_ 4        \        P
                  ! . VOV P                  NR 7       RRR4       V P                  VP                  4       4      #   + '       g   i     L/; i))r   N)	rA   StringIO
contextlibredirect_stdoutr   _mainr  r  r   )r   flagsoutputs   &* r    invoke_pickleCommandLineTest.invoke_pickle  s_    ''//LL55t}}56 0""6??#455 0/s   &BB	c                L   R . RORRRR/pRpV P                  V4       V P                  VR7      ;_uu_ 4        V P                  4       pV P                  V4      pV P	                  VP                  4       VP                  4       4       RRR4       R#   + '       g   i     R# ; i)	r  bcr
  z
            {'a': [1, 2.0, (3+4j)],
             'b': ('character string', b'byte string'),
             'c': 'string'}
        )r  N)r   g       @y      @      @)zcharacter strings   byte string)r  rf  r  r  assertListEqual
splitlines)r   r  expectress   &   r    test_invocationCommandLineTest.test_invocation  s     5


 	T"\\t\$$$$&C((0F  !163D3D3FG %$$$s   ABB#	c           	     x   \         P                  ! 4       pV P                  \        4      ;_uu_ 4        \        P
                  ! V4      ;_uu_ 4        V P                  R 4      pRRR4       RRR4       V P                  VP                  4       R4       R#   + '       g   i     L:; i  + '       g   i     LE; i)z	--unknownNzusage: )	rA   r  r   
SystemExitr  redirect_stderrr  assertStartsWithr   )r   stderrr  s   &  r    test_unknown_flag!CommandLineTest.test_unknown_flag  st    z**++F33&&{3 4 + 	foo/; 43 +*s#   B)B	$B)B&!B))B9	)r  N)r%   r&   r'   r(   r`  r/   r  r  r  r"  r   force_not_colorizedr)  r)   r*   r+   s   @r    r   r     sH     9 & &!6H&   < !<r#   r   c                 X    VP                  \        P                  ! \        4      4       V# r?   )addTestdoctestDocTestSuiter   )loadertestspatterns   &&&r    
load_testsr3    s    	MM'&&v./Lr#   __main__>   cPickler   r  rA   	cStringIOrA   _elementtreezxml.etree.ElementTree>   socket_socketobjectr=  
SocketTypeUserDictrA  r)  rA  r  r  r  r  __builtin__
basestringr  str)S_compat_pickler   r   r   r   r  r)  r  rA   r   rQ   r|  r  r  r   textwrapr   r.  unittesttestr   test.supportr	   r
   r   test.support.import_helperr   test.pickletesterr   r   r   r   r   r   r   r   r   r   r   r3  has_c_implementationrS   TestCaser   r.   r=   rV   rf   rl   rI  rv   r   r   r  r  r&  r-  r2  r5  r7  r9  r=  r?  rA  rC  rE  rN  rS  rW  r\  rs  r  r  r  r  r  r  r  r  r   r3  r%   mainr$   r#   r    <module>rQ     s0  @ @    	   
        ? ? : / 3 8 1 7 < D A 8 8 /!
.X&& ."-x/@/@ ",h.?.? 	5x7H7H 	((*;*; $"-/D+X->->"&f ("78(:K:K"AMA:H<M<MAMH($GIZIZ (,5x7H7H ,? :H<M<M ?)*H,=,= ) I0(2C2C I5* 5
"2 "& &&. &82 8
& && &''JHL]L] '08(:K:K 0
C#=x?P?P C
,-x/@/@ ,
 '** ' '6 @/h'' @/ @/F  #&{D)) {D|2<h'' 2<j
 zMMO }  ! !s   L$ $	L10L1