
    0hh(                       S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SKrS SK	r	S SK
r
S SKrS SKrS SKrS SKJr  S SKJr  S SKJrJr  S SKJr  S SKJr  S SKJr   S SKJr  S SKrS SKrS SKrS	 rS
r " S S\R<                  5      r " S S\R<                  5      r  " S S\R<                  5      r! " S S\R<                  5      r"\R                  RF                   " S S\R<                  5      5       r$\R                  RF                   " S S\R<                  5      5       r%\&S:X  a  \RN                  " 5         gg! \ a    Sr Nf = f)    N)support)	os_helper)assert_python_okassert_python_failure)threading_helper)import_helper)force_not_colorized)interpretersc                 H    [         R                  " [        S L S5      " U 5      $ )Nzsubinterpreters required)unittestskipIfr
   )meths    6/opt/python-3.13.8/usr/lib/python3.13/test/test_sys.pyrequires_subinterpretersr      s%    ??<4/577;= =    n2BI2nc                   ,    \ rS rSrS rS rS rS rSrg)DisplayHookTest&   c                    [         R                  n[        R                  " 5        nU" S5        S S S 5        U R	                  WR                  5       S5        U R	                  [        R                  S5        [        ?[        R                  " 5        nU" S 5        S S S 5        U R	                  UR                  5       S5        U R                  [        [        S5      (       + 5        U R                  [        U5        [         R                  n [         ?U R                  [        US5        U[         l        g ! , (       d  f       GN= f! , (       d  f       N= f! U[         l        f = f)N*   z42
 _)sys__displayhook__r   captured_stdoutassertEqualgetvaluebuiltinsr   
assertTruehasattrassertRaises	TypeErrorstdoutRuntimeError)selfdhoutr$   s       r   test_original_displayhook)DisplayHookTest.test_original_displayhook(   s      $$&#rF ' 	0R(J$$&#tH ' 	,GHc223 	)R(	 
lB3CJ- '& '&  CJs#   	D7	E	E 7
E	
EE'c                     [         R                  n [         ?[        SSS5      nU R                  [        [
        U5        U[         l        g ! U[         l        f = f)N42<string>single)r   displayhookcompiler"   r%   eval)r&   r/   codes      r   test_lost_displayhook%DisplayHookTest.test_lost_displayhookC   sD    oo	*4X6DlD$7)COkCOs   .A Ac                     S n[         R                  " [        SU5         [        SSS5      nU R	                  [
        [        U5        S S S 5        g ! , (       d  f       g = f)Nc                     [         eN
ValueError)objs    r   baddisplayhook?DisplayHookTest.test_custom_displayhook.<locals>.baddisplayhookM       r   r/   r,   r-   r.   )r   	swap_attrr   r0   r"   r9   r1   )r&   r;   r2   s      r   test_custom_displayhook'DisplayHookTest.test_custom_displayhookL   sH    	 sM>B4X6Dj$5 CBBs   )A
A c                      " S S5      n[         R                  " [        SS 5         [        R                  " 5       [        l        [        R                  " U" 5       5        S S S 5        g ! , (       d  f       g = f)Nc                       \ rS rSrS rSrg)(DisplayHookTest.test_gh130163.<locals>.XU   c                 j    [         R                  " 5       [        l        [        R
                  " 5         g)Nfoo)ioStringIOr   r$   r   
gc_collectr&   s    r   __repr__1DisplayHookTest.test_gh130163.<locals>.X.__repr__V   s    [[]
""$r    N)__name__
__module____qualname____firstlineno__rK   __static_attributes__rM   r   r   XrC   U   s    r   rS   r$   )r   r>   r   rG   rH   r$   r/   )r&   rS   s     r   test_gh130163DisplayHookTest.test_gh130163T   sG    	 	 sHd3CJOOAC  433s   :A**
A8rM   N)	rN   rO   rP   rQ   r)   r3   r?   rT   rR   rM   r   r   r   r   &   s     6*6	!r   r   c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
ActiveExceptionTests`   c                 N    U R                  [        R                  " 5       S5        g )N)NNN)r   r   exc_inforJ   s    r   test_exc_info_no_exception/ActiveExceptionTests.test_exc_info_no_exceptiona   s    );<r   c                 N    U R                  [        R                  " 5       S 5        g r7   )r   r   	exceptionrJ   s    r   test_sys_exception_no_exception4ActiveExceptionTests.test_sys_exception_no_exceptiond   s    $/r   c                 <   S n U" 5         U R                  W[        5        U R                  WS   [        5        U R                  US   U5        U R                  US   UR                  5        g ! [          a!  nUn[        R                  " 5       n S nANS nAff = f)Nc                      [        S5      eNr   r8   rM   r   r   fEActiveExceptionTests.test_exc_info_with_exception_instance.<locals>.fh       R. r   r         	Exceptionr   rZ   assertIsInstancer9   assertIs__traceback__r&   rd   e_erZ   s        r   %test_exc_info_with_exception_instance:ActiveExceptionTests.test_exc_info_with_exception_instanceg   s    	!	&C
 	a,hqk:.hqk1%hqk1??3  	&A||~H	&   A0 0
B:BBc                 <   S n U" 5         U R                  W[        5        U R                  WS   [        5        U R                  US   U5        U R                  US   UR                  5        g ! [          a!  nUn[        R                  " 5       n S nANS nAff = f)Nc                      [         er7   r8   rM   r   r   rd   AActiveExceptionTests.test_exc_info_with_exception_type.<locals>.fw   r=   r   r   rg   rh   ri   rn   s        r   !test_exc_info_with_exception_type6ActiveExceptionTests.test_exc_info_with_exception_typev   s    		&C
 	a,hqk:.hqk1%hqk1??3  	&A||~H	&rs   c                     S n U" 5         U R                  W[        5        U R                  WU5        g ! [          a!  nUn[        R                  " 5       n S nANOS nAff = f)Nc                      [        S5      erc   r8   rM   r   r   rd   JActiveExceptionTests.test_sys_exception_with_exception_instance.<locals>.f   rf   r   rj   r   r^   rk   r9   rl   r&   rd   ro   rp   excs        r   *test_sys_exception_with_exception_instance?ActiveExceptionTests.test_sys_exception_with_exception_instance   sS    	!	"C
 	a,c1  	"A--/C	"   5 
A AA c                     S n U" 5         U R                  W[        5        U R                  WU5        g ! [          a!  nUn[        R                  " 5       n S nANOS nAff = f)Nc                      [         er7   r8   rM   r   r   rd   FActiveExceptionTests.test_sys_exception_with_exception_type.<locals>.f   r=   r   r|   r}   s        r   &test_sys_exception_with_exception_type;ActiveExceptionTests.test_sys_exception_with_exception_type   sS    		"C
 	a,c1  	"A--/C	"r   rM   N)rN   rO   rP   rQ   r[   r_   rq   rw   r   r   rR   rM   r   r   rW   rW   `   s     =044r   rW   c                   :    \ rS rSr\S 5       r\S 5       rS rSrg)ExceptHookTest   c                     [        S5      e! [          ac  n[        R                  " 5        n[        R                  " [        R
                  " 5       6   S S S 5         S nAO! , (       d  f        S nAO= fS nAff = fU R                  WR                  5       R                  S5      5        U R                  [        [        R                  5        g )Nr   zValueError: 42
)r9   r   captured_stderrr   __excepthook__rZ   r    r   endswithr"   r#   r&   r~   errs      r   test_original_excepthook'ExceptHookTest.test_original_excepthook   s    	4R.  	4((*c""CLLN3 +***	4 	//0BCD)S%7%78s1    
A:A5'A A5 
A2	*A52A55A:c                 <   [         R                  " 5          [         R                  " S[        5         [	        SS5      e! [         ac  n[
        R                  " 5        n[        R                  " [        R                  " 5       6   S S S 5         S nAO! , (       d  f        S nAO= fS nAff = fS S S 5        O! , (       d  f       O= fWR                  5       nU R                  SU5        U R                  SU5        U R                  UR                  S5      5        g )Nignoremsg)s   bytes_filename{   r   textz%  File "b'bytes_filename'", line 123
z	    text
zSyntaxError: msg
)warningscatch_warningssimplefilterBytesWarningSyntaxErrorr   r   r   r   rZ   r   assertInr    r   r   s      r   test_excepthook_bytes_filename-ExceptHookTest.test_excepthook_bytes_filename   s     $$&!!(L98!%)LMM 8,,.#&&7 /...8 '&& llnBCH&,%9:;sP   B8?
B,	B''BB'B8
B$B'B8$B''B,,B88
Cc                 Z   [         R                  R                  S5       n[         R                  R                  5          [        R
                  " SSS5        S S S 5        S S S 5        U R                  SWR                  5       ;   5        g ! , (       d  f       N9= f! , (       d  f       NB= f)Nstderrrg   1zETypeError: print_exception(): Exception expected for value, str found)testr   captured_outputcatch_unraisable_exceptionr   
excepthookr    r   )r&   r   s     r   test_excepthookExceptHookTest.test_excepthook   sv    \\))(3v88:q#q) ; 4 	 ,/5/@A 	B ;: 43s"   BBB
B	B
B*rM   N)	rN   rO   rP   rQ   r	   r   r   r   rR   rM   r   r   r   r      s.    	9 	9 < <"Br   r   c                      \ rS rSrS rS r\R                  " 5       S 5       rS r	S r
S rS rS	 r\R                  R                  S
 5       r\R$                  " \R&                  S5      \R*                  " 5       S 5       5       rS rS r\R$                  " \" \S5      S5      S 5       r\R                  R8                  S 5       rS rS r\R@                  \R*                  " 5       S 5       5       r!\R@                  \R*                  " 5       S 5       5       r"S r#S r$\R$                  " \RJ                  S5      S 5       r&S r'S r(\R                  \)S 5       5       r*\R                  \)S 5       5       r+\R                  \)S 5       5       r,S  r-S! r.S" r/S# r0S$ r1\R                  R                  S% 5       r2\3\R                  " 5       S& 5       5       r4\R$                  " \5Rl                  S'5      \R$                  " \Rn                  " 5       \8Rr                  " S(5      :H  S)5      \R                  " 5       S* 5       5       5       r:\Rv                  " \Rx                  \Rz                  :g  S+5      \R                  " 5       S, 5       5       r>SRS. jr?S/ r@SSS0 jrAS1 rB\R                  " 5       S2 5       rC\R                  " 5       S3 5       rDS4 rE\R                  R                  S5 5       rF\R$                  " \" \S65      S75      S8 5       rGS9 rHS: rIS; rJS< rK\R$                  " \R                  S=:H  S>5      S? 5       rM\3\R                  " 5       S@ 5       5       rNSA rO\R$                  " \" \SB5      SC5      SD 5       rP\R                  " 5       SE 5       rQSF rRSG rS\R$                  " \" \SH5      SI5      SJ 5       rT\R$                  " \" \SK5      SL5      SM 5       rU\R                  R                  \R$                  " \" \SN5      SO5      SP 5       5       rVSQrWg-)TSysModuleTest   c                 @    [         R                  R                  5         g r7   )r   r   reap_childrenrJ   s    r   tearDownSysModuleTest.tearDown   s    ""$r   c                   ^  T R                  [        [        R                  SS5        T R                  [        5       n[        R                  " 5         S S S 5        T R                  WR                  R                  5        [        SS5      u  p#nT R                  US5        T R                  US5        T R                  US5        [        SS5      u  p#nT R                  US5        T R                  US5        T R                  US5        [        SS5      u  p#nT R                  US5        T R                  US5        T R                  US5        T R                  [        5       n[        R                  " S5        S S S 5        T R                  UR                  R                  S5        T R                  [        5       n[        R                  " S	5        S S S 5        T R                  UR                  R                  S5        T R                  [        5       n[        R                  " S
5        S S S 5        T R                  UR                  R                  S
5        T R                  [        5       n[        R                  " S5        S S S 5        T R                  UR                  R                  S5        [        SS5      u  p#nT R                  US5        T R                  US5        T R                  US5        U 4S jnU" SS5        U" SS5        U" SSSS9  g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNs= f! , (       d  f       GN+= f! , (       d  f       N= f)Nr   -czimport sys; sys.exit()r   r   z!import sys; sys.exit(0xffff_ffff))   l    zimport sys; sys.exit(2**128))r   exit)      zraise SystemExit(47)/   c                    > [        SU 40 UD6u  p4nTR                  US5        TR                  US5        TR                  UR                  U5      [	        U5      < S[	        U5      < 35        g )Nr   rg   r   z doesn't start with )r   r   r    
startswithascii)r2   expectedenv_varsrcr(   r   r&   s         r   check_exit_message3SysModuleTest.test_exit.<locals>.check_exit_message  s`    0tHxHLBSR#S#&OOCNN84.3Cj%/JLr   z?import sys; sys.stderr.write("unflushed,"); sys.exit("message")s   unflushed,messagez)import sys; sys.exit("surrogates:\uDCFF")s   surrogates:\udcffzimport sys; sys.exit("h\xe9")s   hzlatin-1)PYTHONIOENCODING)r"   r#   r   r   
SystemExitassertIsNoner^   r2   r   r   r   r   )r&   cmr   r(   r   r   s   `     r   	test_exitSysModuleTest.test_exit   s   )SXXr26 z*bHHJ +",,++,'.FGQc"c" -T3VWb12c"c" -T3QRb12c"c" z*bHHRL +**B/ z*bHHUO +**B/ z*bHHV +**F3 z*bHHX +**H5 -T3IJR c"c"	L 	N 	" 	8!	# 	,y	2O +*0 +* +*
 +*
 +*s;   L$L/>MM2M%
L,/
L>
M
M"%
M3c           
         SS K n/ SQnU H  nS H  nU R                  X4S9   UR                  S5       nUR                  U SU S35        UR	                  S5        [
        R                  " [        R                  /US9nU R                  UR                  U5        S S S 5        S S S 5        M     M     g ! , (       d  f       N= f! , (       d  f       M  = f)	Nr   )r   z__import__('sys').exitzraise SystemExit)r   r   )exitfuncreturn_codezw+(z)
)stdin)tempfilesubTestTemporaryFilewriteseek
subprocessrunr   
executabler   
returncode)r&   r   	exit_waysr   r   r   procs          r   test_exit_codes_under_repl(SysModuleTest.test_exit_codes_under_repl   s     	
	 "H'\\8\M!//5xj+c$BC

1)~~s~~.>eL((+F	 6 NM  ( " 65 NMs#   CA)B6	C6
C C
Cc                     U R                  [        [        R                  S5        U R	                  [        R                  " 5       [
        5        g rc   )r"   r#   r   getdefaultencodingrk   strrJ   s    r   test_getdefaultencoding%SysModuleTest.test_getdefaultencoding5  s3    )S%;%;R@c446<r   c                 r   U R                  [        [        R                  5        U R                  [        [        R                  S5        U R                  [        [        R                  S5        U R                  [        [        R                  S5        [        R
                  " 5       nU R                  US:  U5         SSSU4 H>  n[        R                  " U5        U R                  [        R
                  " 5       U5        M@     [        R                  " U5        g ! [        R                  " U5        f = f)Nag      g        g      ?gh㈵>g?g      @)r"   r#   r   setswitchintervalr9   getswitchintervalr    assertAlmostEqual)r&   origns      r   test_switchinterval!SysModuleTest.test_switchinterval=  s    )S%:%:;)S%:%:C@*c&;&;TB*c&;&;SA$$&s
D)	(dC-%%a(&&s'<'<'>B . !!$'C!!$'s   ?AD D6c                     [         R                  " 5       nU R                  U[        5        U R	                  US5        U R                  [        [         R                  S5        g )Nrg   r   )r   getrecursionlimitrk   intassertGreaterr"   r#   )r&   limits     r   test_getrecursionlimit$SysModuleTest.test_getrecursionlimitL  sH    %%'eS)5!$)S%:%:B?r   c                    [         R                  " 5       n [         R                  " S5        U R                  [         R                  " 5       S5        U R	                  [
        [         R                  5        U R	                  [        [         R                  S5        [         R                  " U5        g ! [         R                  " U5        f = f)Ni'  i)r   r   setrecursionlimitr   r"   r#   r9   )r&   	old_limits     r   test_setrecursionlimit$SysModuleTest.test_setrecursionlimitS  s    ))+		-!!&)S224f=i)>)>?j#*?*?E!!),C!!),s   BB2 2C
c                 \  ^ [        [        S5      (       a+  [        R                  " 5       (       a  U R                  S5        [        R                  " 5       nU4S jm S Hd  n [        R
                  " U5        U R                  [        5         T" 5         S S S 5        U R                  [        5         T" 5         S S S 5        Mf     [        R
                  " U5        g ! [         a     M  f = f! , (       d  f       N_= f! , (       d  f       M  = f! [        R
                  " U5        f = f)Ngettracez(fatal error if run with a trace functionc                     > T " 5         g r7   rM   )rd   s   r   rd   5SysModuleTest.test_recursionlimit_recovery.<locals>.fc  s    Cr   )2   K   d        )r!   r   r   skipTestr   r   RecursionErrorr"   )r&   r   depthrd   s      @r   test_recursionlimit_recovery*SysModuleTest.test_recursionlimit_recovery^  s    3
##MMDE))+			-1))%0 &&~6C 7&&~6C 76 2 !!), &   7666 !!),s`   D $C:D C0D 4D<D 
C-)D ,C--D 0
C>	:D 
D	D D+c                 h   [         R                  " 5       n [        R                  " 5       nU R	                  [         R                  " 5       US9   [         R
                  " US-   5        [         R
                  " U5        U R                  [        5       n[         R
                  " U5        S S S 5        S S S 5        U R                  [        WR                  5      S5        [         R
                  " U5        g ! , (       d  f       NR= f! , (       d  f       N[= f! [         R
                  " U5        f = f)N)r   r   rg   z\cannot set the recursion limit to [0-9]+ at the recursion depth [0-9]+: the limit is too low)r   r   r   get_recursion_depthr   r   r"   r   assertRegexr   r^   )r&   r   r   r   s       r   test_setrecursionlimit_to_depth-SysModuleTest.test_setrecursionlimit_to_depthw  s    
 ))+		-//1EC$9$9$;5I%%eai0 %%i0&&~6"))%0 7 J S.45
 !!), 76 JI !!),s<   8D ADC7+D3-D 7
D	D
DD D1z&only meaningful if the GIL is disabledc                    SSK Jn  S nS n/ n[        S5       H  nUR                  U" US95        M     [        S5       H  nUR                  U" US95        M     [        R
                  " 5        n[        R                  " U5          S S S 5        UR                  (       a  UR                  e S S S 5        g ! , (       d  f       N5= f! , (       d  f       g = f)Nr   )Threadc                  "   ^  U 4S jm T " S5        g )Nc                 .   > U S:  a  T" U S-
  5      S-   $ g)Nr   rg   rM   )r   counts    r   r  USysModuleTest.test_racing_recursion_limit.<locals>.something_recursive.<locals>.count  s     q5 Q<!++r   r   rM   )r  s   @r   something_recursiveFSysModuleTest.test_racing_recursion_limit.<locals>.something_recursive  s    
 "Ir   c                  V    [        SS5       H  n [        R                  " U 5        M     g )Nr      )ranger   r   )r   s    r   set_recursion_limitFSysModuleTest.test_racing_recursion_limit.<locals>.set_recursion_limit  s     sC%%e, )r      target)	threadingr  r  appendr   catch_threading_exceptionstart_threads	exc_value)r&   r  r
  r  threadsr   r   s          r   test_racing_recursion_limit)SysModuleTest.test_racing_recursion_limit  s     	%		- qANN6)<=>  qANN6)<=>  779R!//8 9 ||ll" 	 :988 :9s$   2C	B:%C:
C	C
Cc                    [         R                  R                  [        S5        [        R                  " 5       nU R                  [        U5      S5        U R                  US   [        5        U R                  US   [        5        U R                  US   [        5        U R                  US   [        5        U R                  US   [        5        U R                  [        [        R                  US5        U R                  UR                  [        5        U R                  UR                  [        5        U R                  UR                   [        5        U R                  UR"                  [        5        U R                  UR$                  [        5        U R                  UR&                  [        5        U R                  UR(                  [        5        U R                  UR*                  [        5        U R                  UR,                  [        5        U R                  US   UR                  5        U R                  US   UR                  5        U R                  US   UR                   5        U R                  US   UR"                  5        U R                  US   UR$                  5        [        R                  " 5       u  p#pEng )Ngetwindowsversionr  r   rg   rh         )r   r   get_attributer   r  r   lenrk   r   r   r"   
IndexErroroperatorgetitemmajorminorbuildplatformservice_packservice_pack_minorservice_pack_major
suite_maskproduct_type)r&   vmajminbuildnoplatcsds          r   test_getwindowsversion$SysModuleTest.test_getwindowsversion  s   ""3(;<!!#Q#adC(adC(adC(adC(adC(*h&6&61=aggs+aggs+aggs+ajj#.annc2a22C8a22C8allC0annc21qww'1qww'1qww'1qzz*1q~~. (+'<'<'>$'r   c                 X    U R                  [        [        R                  [        S5        g )Nrh   )r"   r#   r   call_tracingtyperJ   s    r   test_call_tracingSysModuleTest.test_call_tracing  s    )S%5%5tQ?r   setdlopenflagsztest needs sys.setdlopenflags()c                    U R                  [        [        S5      5        U R                  [        [        R
                  S5        [        R
                  " 5       nU R                  [        [        R                  5        [        R                  " US-   5        U R                  [        R
                  " 5       US-   5        [        R                  " U5        g )Ngetdlopenflagsr   rg   )r    r!   r   r"   r#   r=  r;  r   )r&   oldflagss     r   test_dlopenflagsSysModuleTest.test_dlopenflags  s     	%567)S%7%7<%%')S%7%788A:&++-xz:8$r   c                    U R                  [        [        R                  5        [        R                  " S 5      nS qU R                  [        R                  " S 5      U5        BU R                  [        R                  " S 5      U5        [        [        S5      (       a*  U R                  [        R                  " 5       [        5        g g )Ngettotalrefcount)
r"   r#   r   getrefcountr   r   r!   rk   rB  r   )r&   cs     r   test_refcountSysModuleTest.test_refcount  s     	)S__5OOD!.2.23*++!!#"6"6"8#> ,r   c                 *   U R                  [        [        R                  SS5        U R                  [        [        R                  S5        U R                  [        R                  R                  [        R                  " 5       R                  L 5        g )Nr   i 5w)
r"   r#   r   	_getframer9   r    r   test_getframe__code__f_coderJ   s    r   rI  SysModuleTest.test_getframe  s_    )S]]B;*cmmZ@''00}}%%&	
r   c                 H   U R                  [        [        R                  " 5       5        U R                  S[        R                  " S5      5        Sn[        R                  " U5      nU(       a~  U R                  UR
                  S   [        R                  " U5      =(       d    S5        US-  nUR                  n [        R                  " U5      nU R                  X#5        U(       a  M~  U R                  [        R                  " U5      5        g ! [         a     M3  f = f)Nzunittest.caserg   r   rN   __main__)
r   rN   r   _getframemodulenamerH  	f_globalsf_backr9   rl   r   )r&   ird   f2s       r   test_getframemodulename%SysModuleTest.test_getframemodulename  s    3#:#:#<=#*A*A!*DEMM!J'''*8j FABMM!$ MM!  a 	#11!45  s   =D 
D! D!c                 4  ^^^^^ SS K mSS KnTR                  5       mTR                  5       m/ mU4S jnUUUU4S jmTR                  US9nUR	                  5         TR                  5          U R                  [        T5      S5        TS   n[        R                  " 5       nU H+  nU R                  U[        5        U R                  US5        M-     TR                  5       nU R                  Xu5        U R                  XE5        UR                  U5      nU R!                  U[        R"                  " 5       L 5        UR                  U5      nUR%                  U5      n	['        U	5       H  u  n
u  ppUS:X  d  M    O   U R)                  S5        U R                  WS5        U	W
S-      u  ppU R                  US	5        U R                  US
S/5        TR+                  5         UR-                  5         g ! TR+                  5         UR-                  5         f = f)Nr   c                     > T " 5         g r7   rM   g456s   r   f123/SysModuleTest.test_current_frames.<locals>.f123      Fr   c                     > TR                  TR                  5       5        T R                  5         TR                  5         g r7   )r  	get_identsetwait)	entered_gleave_gthread_infor  s   r   rY  /SysModuleTest.test_current_frames.<locals>.g456  s,    y2245MMOLLNr   r  rg   rZ  )didn't find f123() on thread's call stackg456()rY  zleave_g.wait()zentered_g.set())r  	tracebackEventr  startr`  r   r!  r   _current_framesrk   r   r   r^  r   popr    rH  extract_stack	enumeratefailr_  join)r&   rg  rZ  t	thread_iddtidmain_idframestackrR  filenamelinenofuncname
sourcelinera  rY  rb  rc  r  s                  @@@@@r   test_current_frames!SysModuleTest.test_current_frames  s    	
 OO%	//#		 	
 D)		(	 S-q1#AI##%A%%c3/""3*   ))+GMM'%MM)' EE'NEOOES]]_45
 EE)$E++E2E?H?O;;Hhv% @P 		EFZ2 6;1Q3Z2HhXv.MM*'79J&KL KKMFFH KKMFFHs   /D	G5 <AG5 5"Hc                   ^^^^^ SS K mSS KnTR                  5       mTR                  5       m/ mU4S jnUUUU4S jmTR                  US9nUR	                  5         TR                  [        R                  S9   U R                  [        T5      S5        TS   n[        R                  " 5       nU H+  nU R                  U[        5        U R                  US5        M-     TR                  5       nU R!                  Xu5        U R!                  XE5        U R                  S UR#                  U5      5        UR#                  U5      nUR%                  UR&                  R(                  5      n	[+        U	5       H  u  n
u  ppUS:X  d  M    O   U R-                  S5        U R                  WS	5        U	W
S-      u  ppU R                  US
5        U R/                  UR1                  S5      =(       d    UR1                  S5      5        TR3                  5         UR5                  5         g ! TR3                  5         UR5                  5         f = f)Nr   c                     > T " 5         g r7   rM   rX  s   r   rZ  3SysModuleTest.test_current_exceptions.<locals>.f123\  r\  r   c                     > TR                  TR                  5       5          [        S5      e! [         a7    T R                  5         TR	                  [
        R                  S9(       a   g  Of = fMR  )Noopstimeout)r  r^  r9   r_  r`  r   LONG_TIMEOUT)g_raisedrb  rc  r  s   r   rY  3SysModuleTest.test_current_exceptions.<locals>.g456_  sg    y2245$V,,! LLN||G,@,@|A B s   . <A/.A/r  r  rg   rZ  re  rf  rY  zif leave_g.wait(zg_raised.set())r  rg  rh  r  ri  r`  r   r  r   r!  r   _current_exceptionsrk   r   r   r^  r   rk  rl  rm   tb_framerm  rn  r    r   r_  ro  )r&   rg  rZ  rp  rq  rr  rs  rt  r  rv  rR  rw  rx  ry  rz  rY  r  rb  rc  r  s                  @@@@@r   test_current_exceptions%SysModuleTest.test_current_exceptionsO  s    	
 ??$//#		 	 D)		g223#	S-q1#AI'')A%%c3/""3*   ))+GMM'%MM)'T155>2
 i(I++I,C,C,L,LME?H?O;;Hhv% @P 		EFZ2 6;1Q3Z2HhXv.OOZ223EF E'223CDG KKMFFH KKMFFHs   <DH$ A<H$ $"Ic                    U R                  [        R                  [        5        U R                  [        R                  [
        5        [        R                   H  nU R                  U[        5        M     U R                  [        R                  [
        5        [        R                   H  nU R                  U[        5        M     U R                  [        R                  S5        U R                  [        R                  [        5        U R                  [        R                  [        5        U R                  [        R                  [        5        U R                  [        R                  [        5        U R                  [        R                  [        5        U R!                  [#        [        R$                  5      S5        U R!                  [        R$                  R&                  S5        U R!                  [#        [        R(                  5      S5        U R+                  [        R(                  R,                  S-  S:H  5        U R+                  [        R(                  R.                  S:  5        U R1                  [        R(                  R2                  S5        U R1                  [        R(                  R4                  S	5        U R7                  [        R(                  R2                  [        R(                  R4                  5        U R!                  [9        [        R(                  R,                  5      [        5        U R!                  [9        [        R(                  R.                  5      [        5        U R                  [        R(                  R2                  [        5        U R                  [        R(                  R4                  [        5        U R                  [        R:                  [        5        U R!                  [#        [        R<                  5      S
5        U R?                  [        R<                  R@                  S[        R<                  RB                  -  5        [E        SS	5       H{  nU R!                  [G        U[        R<                  R@                  S-
  [        R<                  R@                  5      SSRI                  [        R<                  R@                  5      5        M}     U R                  [        R<                  RJ                  [        5        U R                  [        R<                  RL                  [        5        U R                  [        R<                  RN                  [        5        [P        RR                  " S5      n[        R<                  RT                  S;   Ga  U R                  [        R<                  RV                  SS15        U R                  [        R<                  RX                  1 Sk5        US:X  a+  U R!                  [        R<                  RT                  S5        OUS:X  a+  U R!                  [        R<                  RT                  S5        OpUS:X  a+  U R!                  [        R<                  RT                  S5        O?U R                  [        R<                  RT                  1 Sk5        OU R!                  US5        U R1                  [        R<                  RZ                  S5        U R?                  [        R<                  RZ                  S5        U R                  [        R\                  [        5        U R                  [        R^                  [        5        U R!                  [        R^                  S5        U R                  [        R`                  [        5        U R                  [        Rb                  [        5        U R                  [        Rd                  [        5        U R                  [        Rf                  [        5        U R                  [        Rh                  [        5        [        Rj                  nU R                  US S  [        5        U R!                  [#        U5      S5        U R                  US   [        5        U R                  US   [        5        U R                  US   [        5        U R                  US   S5        U R                  US   [        5        U R                  URl                  [        5        U R                  URn                  [        5        U R                  URp                  [        5        U R                  URr                  S5        U R                  URt                  [        5        U R!                  US   URl                  5        U R!                  US   URn                  5        U R!                  US   URp                  5        U R!                  US   URr                  5        U R!                  US   URt                  5        U R+                  US:  5        U R                  [        Rv                  [        5        U R                  [        Rv                  S5        [        R`                  Ry                  S5      (       d%  U R                  [        Rz                  [        5        g g )N)littlebig   rh   r  r  r   rg   i  r   	   z'sys.hash_info.modulus {} is a non-primePy_HASH_ALGORITHM>   fnv	siphash13	siphash24    @   >   r  r     r  r  r  r     i alphabeta	candidatefinal)rg   r   r   )shortlegacywin)>rk   r   api_versionr   argvlistr   	orig_argvr   	byteorderbuiltin_module_namestuple	copyrightexec_prefixbase_exec_prefixr   r   r!  
float_inforadixint_infor    bits_per_digitsizeof_digitassertGreaterEqualdefault_max_str_digitsstr_digits_check_thresholdr   r8  
hexversion	hash_info
assertLessmoduluswidthr  powformatinfnanimag	sysconfigget_config_var	algorithm	hash_bits	seed_bitscutoffmaxsize
maxunicoder(  prefixbase_prefix
platlibdirversionversion_infor%  r&  microreleaselevelserialfloat_repr_styler   abiflags)r&   argxalgovis        r   test_attributesSysModuleTest.test_attributes  s   coos3chh-88C!!#s+ cmmT2==C!!#s+ !cmm%67c66>cmmS1coos3c22C8cnnc2S^^,b1--q1S\\*A.33a71<=11Q67 C CSI G GM3<<>><<BB	Dcll99:C@cll778#>cllAA3GcllEEsKcnnc2S]]+Q/--q#--2E2E/EF q#AAs}},,Q.0E0EF9@@MM))+  	cmm//5cmm//5cmm00#6''(;<==""&GGMM#--11B8<MM#--11=Aqy  !8!8+F  !8!8%@  !8!8+Fcmm557XY T1% 4 4a8,,a0ckk3/cnnc22cllC0cjj#.coos3cnnc2ckk3/beU+R!$beS)beS)beS)beDEbeS)bhh,bhh,bhh,boo'NObii-A)A)A)A0A		*W%c22C8c**,?@||&&u--!!#,,4 .r   c                 v   [         R                  nU R                  [        U5      S5        U R	                  UR
                  S5        U R	                  UR                  S5        [         R                  R                  S5      (       a  U R                  UR
                  S5        g [         R                  S:X  a  U R                  UR
                  S5        g [         R                  S:X  a  U R	                  UR
                  SS	15        g [         R                  S
:X  a  U R                  UR
                  S	5        g g )Nr  )ntpthreadpthread-stubssolarisN)	semaphorez
mutex+condN)linuxandroidfreebsdr  win32r  
emscriptenr  wasi)	r   rc  r   r!  r   namelockr(  r   )r&   infos     r   test_thread_infoSysModuleTest.test_thread_info  s    TA&dii!TUdii!BC<<""#BCCTYY	2\\W$TYY-\\\)MM$))i%AB\\V#TYY8 $r   zonly available on Emscriptenc                    U R                  [        [        R                  5      S5        U R	                  [        R                  R
                  [        5        U R	                  [        R                  R                  [        [        S 5      45        U R	                  [        R                  R                  [        5        U R	                  [        R                  R                  [        5        g )Nr  )r   r!  r   _emscripten_infork   emscripten_versionr  runtimer   r8  pthreadsboolshared_memoryrJ   s    r   test_emscripten_info"SysModuleTest.test_emscripten_info  s    S112A6c22EEuMc22::S$t*<MNc22;;TBc22@@$Gr   c                     U R                  [        R                  R                  [        R                  R                  5        g r7   )r   r   
__stdout__encoding
__stderr__rJ   s    r   
test_43581SysModuleTest.test_43581  s(     	00#..2I2IJr   c                    [         R                  R                  SS9=(       d    [        [        S5      nU R                  [        [        R                  5        U R                  [        [        R                  S5        U(       aI  U R                  [        [        R                  5        U R                  [        [        R                  S5        S[        [        R                  " SS5      5      -   nU R                  [        R                  " U5      UL 5        U(       a&  U R                  [        R                  " U5      S5        UR                  5       R                  5       nU(       a&  U R                  [        R                  " U5      S5        U R                  [        R                  " U5      UL 5        U(       a&  U R                  [        R                  " U5      S5         " S	 S
[        5      nU R                  [        [        R                  U" S5      5        U(       a-  U R                  [        R                  " U" S5      5      S5        g g )NT)cpython_is_interneds   abcnever interned beforer    ʚ;Fc                       \ rS rSrS rSrg)$SysModuleTest.test_intern.<locals>.Si$  c                     g)Nr   rM   rJ   s    r   __hash__-SysModuleTest.test_intern.<locals>.S.__hash__%      r   rM   N)rN   rO   rP   rQ   r  rR   rM   r   r   Sr  $      r   r  abc)r   r   check_impl_detailr!   r   r"   r#   internr  r   random	randranger    rl   swapcase)r&   has_is_internedss2r  s        r   test_internSysModuleTest.test_intern  s   <<99$9G ;%c>: 	)SZZ0)SZZ8i)9)9:i)9)96B#c&*:*:1e*D&EE

1*+MM#**1-t4ZZ\""$MM#**2.6

2!+,MM#**2.6	 	 	)SZZ5:MM#**1U84e< r   c                    S[        [        R                  " SS5      5      -   n[        R                  " U5      nU R                  X!5        [        R                  " 5       nUR                  [        R                  " SUR                  5       < S[        U5       S[        U5       S[        U5       S[        U5       S35      5        g )	Nr  r   r  zn
            import sys

            # set `s`, avoid parser interning & constant folding
            s = str(zG, 'utf-8')

            t = sys.intern(s)

            assert id(t) != 
, (id(t), z)
            assert id(t) != z)
            )r   r  r  r   r  rl   r
   createexectextwrapdedentencodeidr&   r  rp  interps       r   +test_subinterp_intern_dynamically_allocated9SysModuleTest.test_subinterp_intern_dynamically_allocated,  s    
 $c&*:*:1e*D&EEJJqMa$$&HOO ) XXZN #  UG:beW 5UG:beW 5
% 
 
	r   c                 `   S H  nU R                  US9   [        R                  " U5      n[        R                  " 5       nUR                  [        R                  " SUR                  5       < S[        U5       S[        U5       S35      5        S S S 5        M     g ! , (       d  f       M  = f)N)__init__	CANCELLEDz<module>utf-8z{{r   
r   r      ¸   ÿr  
                    import sys

                    # set `s`, avoid parser interning & constant folding
                    s = str(zV, 'utf-8')

                    t = sys.intern(s)
                    assert id(t) == r  z)
                    )
r   r   r  r
   r  r  r  r  r  r  r  s       r   *test_subinterp_intern_statically_allocated8SysModuleTest.test_subinterp_intern_statically_allocatedB  s    A "JJqM%,,.HOO 1 XXZN +% &(UG:beW =-  	 #" #"s   A<B
B-	c                 f   S H  nU R                  US9   [        R                  " 5       nUR                  [        R
                  " SUR                  5       < S[        U5       S35      5        U R                  [        R                  " U5      5        S S S 5        M     g ! , (       d  f       M  = f)N)r   r  r   r  r  r  r  r   r!  z0, 'utf-8')

                    assert id(s) == z;
                    t = sys.intern(s)
                    )r   r
   r  r  r  r  r  r  r    r   r  )r&   r  r  s      r   test_subinterp_intern_singleton-SysModuleTest.test_subinterp_intern_singletonZ  s    
 AA"%,,.HOO 1 XXZN +%%'UG ,-    0 0 34 #" A""s   A?B!!
B0	c           	      B   U R                  [        R                  5        SnU Hr  nU R                  [        [        R                  U5      U5        US;   a  [        O[
        nU R                  [        [        [        R                  U5      5      X25        Mt     U R                  [        [        R                  5      5        U R                  [        [        R                  5      [        U5      5        U R                  [        R                  R                  1 Sk5        g )N)debuginspectinteractiveoptimizedont_write_bytecodeno_user_siteno_siteignore_environmentverbosebytes_warningquiethash_randomizationisolateddev_mode	utf8_modewarn_default_encoding	safe_pathint_max_str_digits)r5  r8  >   r   rg   rh   )r    r   flagsr!   r  r   r   r8  getattrreprr!  r   r6  )r&   attrsattr	attr_types       r   test_sys_flagsSysModuleTest.test_sys_flagsm  s    		"M DOOGCIIt4d; $(A AsIT'#))T":;YM  	SYY(SYYU4cii))95r   c                 F    [         R                  " U [        U5      U5        g r7   )r   check_disallow_instantiationr8  )r&   sys_attrs     r   assert_raise_on_new_sys_type*SysModuleTest.assert_raise_on_new_sys_type~  s     	,,T4>8Lr   c                 B    U R                  [        R                  5        g r7   )rE  r   r:  rJ   s    r   test_sys_flags_no_instantiation-SysModuleTest.test_sys_flags_no_instantiation  s    ))#))4r   c                 B    U R                  [        R                  5        g r7   )rE  r   r  rJ   s    r   &test_sys_version_info_no_instantiation4SysModuleTest.test_sys_version_info_no_instantiation  s    ))#*:*:;r   c                     [         R                  R                  [        S5        U R	                  [        R
                  " 5       5        g )Nr  )r   r   r   r   rE  r  rJ   s    r   +test_sys_getwindowsversion_no_instantiation9SysModuleTest.test_sys_getwindowsversion_no_instantiation  s.    ""3(;<))#*?*?*ABr   c                 .    [         R                  " 5         g r7   )r   _clear_type_cacherJ   s    r   test_clear_type_cache#SysModuleTest.test_clear_type_cache  s    r   c                 J   [        [        R                  5      nSUS'   [        R                  " [
        R                  SS/[        R                  US9nUR                  5       S   R                  5       nS[        R                  -   R                  S5      nU R                  X45        SUS'   [        R                  " [
        R                  SS/[        R                  US9nUR                  5       S   R                  5       nU R                  US	5        S
US'   [        R                  " [
        R                  SS/[        R                  [        R                  US9nUR                  5       u  p5U R                  US5        U R                  SU5        U R                  SU5        SUS'   [        R                  " [
        R                  SS/[        R                  [        R                  US9nUR                  5       u  p5U R                  US5        U R                  SU5        U R                  SU5        SUS'   [        R                  " [
        R                  SS/[        R                  US9nUR                  5       S   R                  5       nU R                  US5        g )Ncp424r   r   zprint(chr(0xa2))r$   envr      ¢zascii:replace   ?r   )r$   r   rW  r   s   UnicodeEncodeError:s   '\xa2'zascii:z:surrogateescapezprint(chr(0xdcbd))   )dictosenvironr   Popenr   r   PIPEcommunicatestriplinesepr  r   r   )r&   rW  pr(   r   r   s         r   test_ioencodingSysModuleTest.test_ioencoding  s(    2::
 #*cnnd4FG&0oo3@mmoa &&(RZZ'//8'"1cnnd4FG&0oo3@mmoa &&(d#")cnnd4FG$.OOJOO!$& ==?c",c2j#&"*cnnd4FG$.OOJOO!$& ==?c",c2j#&"4cnnd4HI$.OO>mmoa &&(g&r   z*requires OS support of non-ASCII encodingsFz$requires FS encoding to match localec                 v   [        [        R                  5      nSUS'   [        R                  " [
        R                  SS[        R                  -  /[        R                  US9nUR                  5       S   R                  5       nU R                  U[        R                  " [        R                  5      5        g )Nr   r   r   z	print(%a)rV  r   )r[  r\  r]  r   r^  r   r   r   FS_NONASCIIr_  r`  ra  r   fsencode)r&   rW  rc  r(   s       r   test_ioencoding_nonascii&SysModuleTest.test_ioencoding_nonascii  s     2::"$cnnd +i.C.C CE'1CA mmoa &&(bkk)*?*?@Ar   zTest is not venv-compatiblec           
         U R                  [        R                  R                  [        R
                  5      [        R
                  5        [        R                  R                  [        R                  R                  [        R
                  5      5      n[        R                  " / SQ[        R
                  [        R                  US9nUR                  5       S   nUR                  5       R                  S5      nUR                  5         U R                  US[!        [        R
                  R#                  SS5      5      /5        g )N)nonexistentr   zEimport sys; print(sys.executable.encode("ascii", "backslashreplace")))r   r$   cwdr   ASCIIzb''r   backslashreplace)r   r\  pathabspathr   r   dirnamerealpathr   r^  r_  r`  ra  decoder`  r   r<  r  )r&   
python_dirrc  r$   r   s        r   test_executableSysModuleTest.test_executable  s    
 	8#..I WW__RWW%5%5cnn%EF
V~~joo:O #\\^**73
	j5$s~~/D/DWN`/a*b"cdr   Nc                     U R                  U5        [        R                  " U5        U(       a  U R                  X5        g g r7   )assertIsNotNonecodecslookupr   r&   fs_encodingr   s      r   check_fsencodingSysModuleTest.check_fsencoding  s2    [)k"[3 r   c                     [         R                  " 5       n[         R                  S:X  a  SnOS nU R                  X5        g )Ndarwinr  )r   getfilesystemencodingr(  r~  r|  s      r   test_getfilesystemencoding(SysModuleTest.test_getfilesystemencoding  s4    //1<<8#HHk4r   c                    [         R                  R                  5       nXS'   SUS'   SR                  S5      n[        R
                  SSSU/nU(       a  UR                  S	5        Ub  X4S
'   OUR                  S
S 5        [        R                  " U[        R                  [        R                  USS9nUR                  5       u  pU$ )NLC_ALL0PYTHONCOERCECLOCALEr  )
import syszdef dump(name):z    std = getattr(sys, name)z(    print("%s: %s" % (name, std.errors))zdump("stdin")zdump("stdout")zdump("stderr")-Xzutf8=0r   -Ir   T)r$   r   rW  universal_newlines)r\  r]  copyro  r   r   r  rk  r   r^  r_  STDOUTr`  )
r&   localer4  r  rW  r2   argsrc  r$   r   s
             r   c_locale_get_error_handler(SysModuleTest.c_locale_get_error_handler  s    jjooH%(!"yy 
  hd;KK&."#GG&-T%/__%/%6%6"%15	7
 r   c                    U R                  USS9nU R                  US5        U R                  USS9nU R                  US5        U R                  USS9nU R                  US5        U R                  US	S9nU R                  US5        U R                  US
S9nU R                  US5        U R                  USS9nU R                  US5        g )NT)r4  zHstdin: surrogateescape
stdout: surrogateescape
stderr: backslashreplace
z:ignore)r  z6stdin: ignore
stdout: ignore
stderr: backslashreplace
z	iso8859-1z6stdin: strict
stdout: strict
stderr: backslashreplace
z
iso8859-1::r   )r  r   )r&   r  r(   s      r   check_locale_surrogateescape*SysModuleTest.check_locale_surrogateescape  s   --ft-D6	7 --fy-I6	7 --f{-K6	7 --f|-L6	7 --fs-C6	7 --fr-B6	7r   c                 &    U R                  S5        g )NCr  rJ   s    r   test_c_locale_surrogateescape+SysModuleTest.test_c_locale_surrogateescape6  s    ))#.r   c                 &    U R                  S5        g )NPOSIXr  rJ   s    r   !test_posix_locale_surrogateescape/SysModuleTest.test_posix_locale_surrogateescape:  s    ))'2r   c                 z   SSSSS.nU R                  [        [        R                  S5      5        U R                  [        [        R                  S5      5        U R                  [        [        R                  S5      5        U R                  [        [        R                  S	5      5        [        R                  R                  nU R                  US S
 UR                  UR                  45        UR                  S-  UR                  S-  -  UR                  S-  -  XR                     S-  -  UR                  S-  -  nU R                  [        R                  R                  U5        U R                  [        R                  R                  [        R                  R                  R                  5       5        g )N
   r        r  r  r  r  	cache_tagrh         r  r  r   )r    r!   r   implementationr  r   r%  r&  r  r  r  r  r  lower)r&   levelsr  r  s       r   test_implementation!SysModuleTest.test_implementation>  sS    #L 2 2F;< 2 2I>? 2 2LAB 2 2K@A$$,,!w}}gmm&DEmmr)GMMR,??mmq()+12F2F+G1+LMnn)*
 	++66
C 	++00++00668	:r   c                    SSK Jn  SS/nU" U6 u  p4n[        R                  S:w  a}  [        R
                  " S5      n[        R
                  " S5      nU(       a  U R                  SU5        U(       a  U R                  S	U5        U(       d  U(       d  U R                  U5        U R                  [        [        R                  S
5        g )Nr   )r   r   z#import sys; sys._debugmallocstats()r  WITH_FREELISTSWITH_PYMALLOCs   free PyDictObjectss   Small block thresholdT)test.support.script_helperr   r   r(  r  r  r   assertFalser"   r#   _debugmallocstats)r&   r   r  retr(   r   with_freelistswith_pymallocs           r   test_debugmallocstats#SysModuleTest.test_debugmallocstatsT  s     	@;<($/# <<7"&556FGN%44_EM3S96<!-  % 	)S%:%:DAr   getallocatedblocksz0sys.getallocatedblocks unavailable on this buildc                     SS K n UR                  5       nUS;   n[        R                  " 5       nU R                  [        U5      [        5        U(       a  U R                  US5        OU R                  US5         U R                  U[        R                  " 5       5        [         R"                  " 5         [        R                  " 5       nU R%                  Xe5        [         R"                  " 5         [        R                  " 5       nU R'                  U[)        US-
  US-   5      5        g ! [         a  nSn S nAGN S nAff = f! [         a    [        R
                  " 5       n GNJf = f! [         a     Nf = f)Nr   )pymallocpymalloc_debugTr   )_testinternalcapipymem_getallocatorsnamer%   ImportErrorr   r  r   r  rl   r8  r   r   r  r  rB  AttributeErrorgccollectassertLessEqualr   r  )r&   r  
alloc_namer  r~   r   brD  s           r   test_getallocatedblocks%SysModuleTest.test_getallocatedblocksj  s4   	O$O.FFH

 ",/M!M ""$d1gs#q!$
 ##Aq)	 OOAs3356 	

""$Q"


""$aq2vq2v./;   % $%  	4#113M	44  		s:   E D* =%E* *
E4D<<EE'&E'*
E76E7c                     [         R                  (       a3  U R                  [        [        R
                  " 5       5      [        5        g U R                  [        R
                  " 5       5        g r7   )r   Py_GIL_DISABLEDrl   r8  r   _is_gil_enabledr  r    rJ   s    r   test_is_gil_enabled!SysModuleTest.test_is_gil_enabled  s<    ""MM$s2245t<OOC//12r   c                     U R                  [        R                  " 5       S5        Sn[        SU5      u  p#nU R	                  UR                  5       S5        g )NFa  if 1:
            import sys

            class AtExit:
                is_finalizing = sys.is_finalizing
                print = print

                def __del__(self):
                    self.print(self.is_finalizing(), flush=True)

            # Keep a reference in the __main__ module namespace, so the
            # AtExit destructor will be called at Python exit
            ref = AtExit()
        r   s   True)rl   r   is_finalizingr   r   rstripr&   r2   r   r$   r   s        r   test_is_finalizing SysModuleTest.test_is_finalizing  sI    c'')51 .dD9F'2r   c                     Sn[        SU5      u  p#nUR                  5       nU R                  SUS   5        U R                  SUS   5        g )Nzif 1:
            import sys
            class A:
                def __del__(self, sys=sys):
                    print(sys.flags)
                    print(sys.float_info)
            a = A()
            r   s	   sys.flagsr   s   sys.float_inforg   )r   
splitlinesr   r&   r2   r   r(   r   s        r   test_issue20602SysModuleTest.test_issue20602  sL     (d3nnlCF+'Q0r   c                     Sn[        SU5      u  p#nU R                  US5        U R                  UR                  5       S5        U R                  UR                  5       S5        g )Nzif 1:
            import struct, sys

            class C:
                def __init__(self):
                    self.pack = struct.pack
                def __del__(self):
                    self.pack('I', -42)

            sys.x = C()
            r   r   r   )r   r   r  r  s        r   &test_sys_ignores_cleaning_up_user_data4SysModuleTest.test_sys_ignores_cleaning_up_user_data  sX    
 .dD9FQ#.#.r   r  zAndroid onlyc                 ~    [         R                  " 5       nU R                  U[        5        U R	                  US5        g )Nr   )r   getandroidapilevelrk   r   r   )r&   levels     r   test_getandroidapilevel%SysModuleTest.test_getandroidapilevel  s0    &&(eS)5!$r   c                   ^ ^ SmUU 4S jn/ SQnU" SU5        U" SU5        U" SUS S USS  -   5        U" SUS S US	S  -   5        U" S
US   /5        U" SUS   /5        U" SS-  U5        U" SS-  US   /5        U" S U5        g )Nzif 1:
            import sys
            def f1():
                1 / 0
            def f2():
                f1()
            sys.tracebacklimit = %r
            f2()
        c                    > [         R                  " [        R                  STU -  /[         R                  S9nUR                  5       S   nTR                  UR                  5       U5        g )Nr   )r   rg   )r   r^  r   r   r_  r`  r   r  )tracebacklimitr   rc  r(   r2   r&   s       r   check4SysModuleTest.test_sys_tracebacklimit.<locals>.check  sS      #..$~8M!N(29A--/!$CS^^-x8r   )s"   Traceback (most recent call last):s&     File "<string>", line 8, in <module>s       f2()       ~~^^s      File "<string>", line 6, in f2s       f1()r  s      File "<string>", line 4, in f1s	       1 / 0s	       ~~^~~s#   ZeroDivisionError: division by zeror  r  rh   rg   r     r   r   r   rM   )r&   r  rg  r2   s   `  @r   test_sys_tracebacklimit%SysModuleTest.test_sys_tracebacklimit  s    	9
	 	b)aa2A12./a2A12./a)B-!b9R=/"agy!b$h2(dIr   c                     U R                  [        [        R                  5      [        [	        [        R                  5      5      5        g r7   )r   r!  r   	meta_pathr_  rJ   s    r   test_no_duplicates_in_meta_path-SysModuleTest.test_no_duplicates_in_meta_path  s)    S]]+SS]]1C-DEr   _enablelegacywindowsfsencodingz*needs sys._enablelegacywindowsfsencoding()c                     Sn[        SSR                  U5      5      u  p#nUR                  SS5      R                  5       nU R	                  US5        g )N)r  z$sys._enablelegacywindowsfsencoding()zCprint(sys.getfilesystemencoding(), sys.getfilesystemencodeerrors())r   z; r   replacezmbcs replace)r   ro  rt  r  r   r  s        r   #test__enablelegacywindowsfsencoding1SysModuleTest.test__enablelegacywindowsfsencoding   sM    W (diio>jj),335n-r   c                 .   [         R                  " S5      n[        R                  SSSSUS/n[        R
                  " USSSS9n[        SS/5      [        U5      /nU R                  UR                  R                  5       R                  5       UU5        g )	Nz]
            import sys
            print(sys.argv)
            print(sys.orig_argv)
        r  r  utf8r   r  T)r  capture_outputr   )r  r  r   r   r   r   r<  r   r$   r  r  )r&   r2   r  r   r   s        r   test_orig_argvSysModuleTest.test_orig_argv
  s       
 dFD$F~~d$t$O$J
 	++-88:H	r   c                     U R                  [        R                  [        5        [        R                   H  nU R                  U[        5        M     g r7   )rk   r   stdlib_module_names	frozensetr   )r&   r  s     r   test_module_namesSysModuleTest.test_module_names  s8    c55yA++D!!$, ,r   c                    [         R                  " S5      n[        USS 5      nU(       a"  UR                  R	                  U5      (       d  S nU(       a  UR                  R                  U5      OS nU R                  UR                  R                  [        R                  5      UR                  R                  U5      5        g )Nr\  __file__)
r   import_fresh_moduler;  rp  existsrr  r   normpathr   _stdlib_dir)r&   r\  markerr   s       r   test_stdlib_dirSysModuleTest.test_stdlib_dir  s    ..t4Z."''..00F.4277??6*$))#//:))(3	5r   
getobjectszneed sys.getobjects()c                    [         R                  " S5      nU R                  U[        5        U R	                  [        U5      S5         " S S5      nSn[        U5       Vs/ s H	  oB" 5       PM     nn[         R                  " SU5      nU R                  [        U5      U5        U H  nU R                  Xr5        M     [         R                  " SU5      nU R                  [        U5      S5        g s  snf )Nr   c                       \ rS rSrSrg)-SysModuleTest.test_getobjects.<locals>.MyTypei0  rM   NrN   rO   rP   rQ   rR   rM   r   r   MyTyper  0  s    r   r  r   r  )r   r  rk   r  r   r!  r  r   )r&   all_objectsr  sizer   
my_objectsget_objectsr:   s           r   test_getobjectsSysModuleTest.test_getobjects(  s     nnQ'k403{+Q/	 	(-d41fh
4nnQ/[)40C!!#.  nnQ/[)1- 5s   !C2	_stats_onzneed Py_STATS buildc                     [         R                  " 5         [         R                  " 5         [         R                  " 5         [         R                  " 5         g r7   )r   r  
_stats_off_stats_clear_stats_dumprJ   s    r   test_pystatsSysModuleTest.test_pystats=  s-     	r   r  zneed sys.abiflagsc                 f    U R                  S[        R                  ;   [        R                  5        g )Nrp  )r   r   r  r   r  rJ   s    r   test_disable_gil_abi"SysModuleTest.test_disable_gil_abiF  s#     	,g.E.EFr   rM   r7   )FN)XrN   rO   rP   rQ   r   r   r   requires_subprocessr   r   r   r   r   r   r   cpython_onlyr  r   
skipUnlessr  r   requires_working_threadingr  r4  r9  r!   r   r?  refcount_testrE  rI  rT  reap_threadsr{  r  r  r  is_emscriptenr  r  r
  r   r  r"  r%  r@  rE  rH  rK  rN  rR  r	   rd  r   rg  r  r  getpreferredencodingri  r   r  r  rv  r~  r  r  r  r  r  r  r  r  r  r  r  r  r(  r  r  r  r  r  r  r  r  r  r  rR   rM   r   r   r   r      s   %N2`   "G #G(=(@	--2 
\\- -. 002Z[002# 3 \#8?<@ &67:<%<% 
\\?  ?*
6* ""002? 3 #?B ""002? 3 #?B]5~9 ..0NOH PHK
=@   (   , 5  5"6"M
5<C
 
\\      ")' # )'V ..EG2248S8STY8ZZ?A  "B #AG
B __S__

224  "e #4e(45:$7L   "/ #/   "3 #3:, 
\\B B* &:;KM%0M%0N33*1/" 2NC% D%
   "% # %NF &FGEG.G.   " #-
5 l35LM. N.( k24IJ K 
\\j13FGG H Gr   r   c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
UnraisableHookTestiL  c                    [         R                  " S5      nSSKJnJn  [
        n[        R                  " [        S[        R                  5         [        R                  " 5        nU" [        S5      U5        S S S 5        WR                  5       R                  5       nU R                  US   SU< 35        U R                  US   S5        U R                  US	   S
5        [        R                  " 5        nU" [        S5      S 5        S S S 5        UR                  5       R                  5       nU R                  US   S5        U R                  US	   S
5        [        R                  " 5        nU" [        S5      SU5        S S S 5        UR                  5       R                  5       nU R                  US   SU< S35        U R                  US   S5        U R                  US	   S
5        [        R                  " 5        nU" [        S5      S 5        S S S 5        UR                  5       R                  5       nU R                  US   S5        U R                  US	   S
5        S S S 5        g ! , (       d  f       GN= f! , (       d  f       GN}= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       g = f)N	_testcapir   err_writeunraisableerr_formatunraisableunraisablehookr   zException ignored in: rg   z"Traceback (most recent call last):r   zValueError: 42zError in %Rz	Error in r  )r   import_moduler$  r&  r'  hexr   r>   r   __unraisablehook__r   r9   r   r  r   )r&   r$  r&  r'  r:   r   liness          r   test_original_unraisablehook/UnraisableHookTest.test_original_unraisablehookN  s(   !//<	Gs$4$'$:$:<((*f#JrNC8 +OO%002EU1X)?w'GHU1X'KLU2Y(89((*f#JrND9 +OO%002EU1X'KLU2Y(89((*f$Z^]CH +OO%002EU1X3'';<U1X'KLU2Y(89((*f$Z^T: +OO%002EU1X'KLU2Y(895< <** +* +* +*-< <sp   J4%I-8A>J46I?	A%J4.JA?J4J#AJ4-
I<	7J4?
J		J4
J 	J4#
J1	-J44
Kc           	        ^  " S S5      n " S S[         5      m " U4S jS5      nX4 GHb  nU R                  U5         U" 5       n[        R                  R	                  5        n[        R                  R                  [        S[        R                  5         AS S S 5        S S S 5        WR                  5       nU R                  SU5        U R                  UR                  R                  U5        U R                  S	U5        U R                  S
U5        X2L a%  U R                  SU5        U R                  SU5        O$U R                  SU5        U R                  SU5        U R                  UR                  S5      5        S S S 5        GMe     g ! , (       d  f       N= f! , (       d  f       GN= f! , (       d  f       GM  = f)Nc                       \ rS rSrS rSrg)FUnraisableHookTest.test_original_unraisablehook_err.<locals>.BrokenDeliq  c                     [        S5      nUe)Ndel is brokenr8   r&   r~   s     r   __del__NUnraisableHookTest.test_original_unraisablehook_err.<locals>.BrokenDel.__del__r  s     1	r   rM   NrN   rO   rP   rQ   r5  rR   rM   r   r   	BrokenDelr1  q  s    r   r8  c                       \ rS rSrS rSrg)OUnraisableHookTest.test_original_unraisablehook_err.<locals>.BrokenStrExceptioniw  c                     [        S5      e)Nzstr() is brokenrj   rJ   s    r   __str__WUnraisableHookTest.test_original_unraisablehook_err.<locals>.BrokenStrException.__str__x  s     122r   rM   N)rN   rO   rP   rQ   r=  rR   rM   r   r   BrokenStrExceptionr:  w  s    3r   r?  c                   "   > \ rS rSrU 4S jrSrg)OUnraisableHookTest.test_original_unraisablehook_err.<locals>.BrokenExceptionDeli{  c                    > T" 5       nUer7   rM   )r&   r~   r?  s     r   r5  WUnraisableHookTest.test_original_unraisablehook_err.<locals>.BrokenExceptionDel.__del__|  s    (*	r   rM   Nr7  )r?  s   r   BrokenExceptionDelrA  {  s     r   rD  r(  zException ignoredztest_sys.pyz	raise excz<exception str() failed>r9   r3  r  )rj   r   r   r   r   r>   r   r+  r   r   r5  rP   r    r   )r&   r8  rD  
test_classr:   r   reportr?  s          @r    test_original_unraisablehook_err3UnraisableHookTest.test_original_unraisablehook_erro  sW   	 		3 	3	 	 %9Jj) l\\113v\\++C1A,/,B,BD D 4  *16:j00==vFmV4k623MM"6?MM"<fEMM,7MM/6: 56' *) :D D 43 *)s=    &F6&4F$F	F$$C!F6
F!F$$
F3.F66
G	c           	         [         R                  " S5      nSSKJn   " S S5      nS GH+  nU R	                  US9   XCR
                  R                  l        [        R                  R                  5        n[        R                  R                  [        S[        R                  5         U" UR
                  R                  5       S	5        S S S 5        S S S 5        WR                  5       nU R                  UR
                  R                  R                   U5        US
;   a  U R#                  US-   U5        OU R                  US-   U5        S S S 5        GM.     g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       GMc  = f)Nr$  r   r&  c                   (    \ rS rSr " S S5      rSrg)MUnraisableHookTest.test_original_unraisablehook_exception_qualname.<locals>.Ai  c                   *    \ rS rSr " S S\5      rSrg)OUnraisableHookTest.test_original_unraisablehook_exception_qualname.<locals>.A.Bi  c                       \ rS rSrSrg)QUnraisableHookTest.test_original_unraisablehook_exception_qualname.<locals>.A.B.Xi  rM   Nr  rM   r   r   rS   rP    s    r   rS   rM   N)rN   rO   rP   rQ   rj   rS   rR   rM   r   r   BrN    s    	 r   rQ  rM   N)rN   rO   rP   rQ   rQ  rR   rM   r   r   ArL    s     r   rR  )r   rN  some_module)
moduleNamer(  r:   )r   rN  .)r   r)  r$  r&  r   rQ  rS   rO   r   r   r   r>   r   r+  r   r   rP   assertNotIn)r&   r$  r&  rR  rT  r   rF  s          r   /test_original_unraisablehook_exception_qualnameBUnraisableHookTest.test_original_unraisablehook_exception_qualname  s   
 "//<	1	 	
 @J4#- \\113vt||?U?U)3+A+A@ (7@3  *accee00&9!99$$Z#%5v>MM*s"2F; 54 @@ @33 54s<   9E<54E+)"E	E+A9E<
E($E++
E95E<<
F	c                 >   [        S5      n[        R                  R                  [        S[        R
                  5         U R                  [        5         [        R                  " U5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nr   r(  )	r9   r   r   r>   r   r+  r"   r#   r(  r4  s     r   'test_original_unraisablehook_wrong_type:UnraisableHookTest.test_original_unraisablehook_wrong_type  sh    n\\##C)9$'$:$:<""9-""3' .< <--< <s#   BA=,B=
B	B
Bc                   ^ [         R                  " S5      nSSKJnJn  S mU4S jn[
        n [        R                  R                  [        SU5         [        S5      nU" Xe5        U R                  TR                  [        U5      5        U R                  TR                  U5        U R                  TR                  UR                   5        U R#                  TR$                  5        U R'                  TR(                  U5        U" USU5        U R                  TR                  [        U5      5        U R                  TR                  U5        U R                  TR                  UR                   5        U R'                  TR$                  SU< 35        U R#                  TR(                  5        S S S 5        S nS mg ! , (       d  f       N= f! S nS mf = f)	Nr$  r   r%  c                 
   > U mg r7   rM   )r  	hook_argss    r   	hook_func@UnraisableHookTest.test_custom_unraisablehook.<locals>.hook_func  s    Ir   r(  r   zcustom hook %Rzcustom hook )r   r)  r$  r&  r'  r*  r   r   r>   r   r9   rl   exc_typer8  r  exc_tracebackrm   r   err_msgr   object)	r&   r$  r&  r'  r_  r:   r~   r   r^  s	           @r   test_custom_unraisablehook-UnraisableHookTest.test_custom_unraisablehook  sq   !//<	G		 	''-=yI n#C-i00$s)<i1137i55s7H7HI!!)"3"34  !1!137$S*:C@i00$s)<i1137i55s7H7HI  !2!2l3'4JK!!)"2"23 J" HI% JI" HIs$   %G EF?2G ?
G	G Gc                    [         R                  " S5      nSSKJn  S n[        R
                  R                  S5       n[        R
                  R                  [        SU5         U" [        S5      S5        S S S 5        S S S 5        WR                  5       nU R                  S	U< S
3U5        U R                  SU5        U R                  SU5        g ! , (       d  f       Nb= f! , (       d  f       Nk= f)Nr$  r   rJ  c                      [        S5      e)Nzhook_func failedr<  )r  s    r   r_  EUnraisableHookTest.test_custom_unraisablehook_fail.<locals>.hook_func  s    .//r   r   r(  r   zcustom hook failz)Exception ignored in sys.unraisablehook: r  z#Traceback (most recent call last):
zException: hook_func failed
)r   r)  r$  r&  r   r   r   r>   r   r9   r   r   )r&   r$  r&  r_  r   r   s         r   test_custom_unraisablehook_fail2UnraisableHookTest.test_custom_unraisablehook_fail  s    !//<	1	0 \\))(3v''-=yI#JrN4FG J 4 ooA"R)	 	<cB5s; JI 43s#   &C%%C8C%
C"	C%%
C3rM   N)rN   rO   rP   rQ   r-  rG  rW  rZ  re  rj  rR   rM   r   r   r"  r"  L  s"    :B&7P<4(><r   r"  c                      ^  \ rS rSrS r\R                  R                  rS rS r	S r
U 4S jrS rS rS	 rS
 rS rSrU =r$ )
SizeofTesti  c                     [         R                  " S5      U l        [        R                  R
                  U l        [        R                  " S5      nUR                  U l
        UR                  U l        g )NPr  )structcalcsizero  r   r  r  	longdigitr   r)  SIZEOF_PYGC_HEADgc_headsizeSIZEOF_MANAGED_PRE_HEADERmanaged_pre_header_size)r&   r  s     r   setUpSizeofTest.setUp  sQ    %22)778KL,=='8'R'R$r   c                     [         R                  R                  nU R                  nU R	                  [
        R                  " S5      U" S5      U R                  -   5        U R	                  [
        R                  " / 5      U" S5      U-   5        g )NTr   Pn)r   r   calcvobjsizert  r   r   	getsizeofrr  )r&   vsizegc_header_sizes      r   test_gc_head_sizeSizeofTest.test_gc_head_size  sd    ))))t,eBi$...HIr*E$K.,HIr   c                     " S S5      nU R                  [        [        R                  U" 5       5         " S S5      nU R                  [        [        R                  U" 5       5        S/nU R                  [        R                  " U" 5       U5      U5         " S S5      nU R                  [        [        R                  U" 5       5        U R                  [        R                  " U" 5       U5      U5         " S S	[        5      nU R                  [        R                  " U" [        R                  5      5      [        R                  U R                  -   U R                  -   5        U R                  [        5         [        R                  " U" [        R                  S
-   5      5        S S S 5        U R                  [        5         [        R                  " U" S5      5        S S S 5        U R                  [        [        45         [        R                  " U" [        R                  * S
-
  5      5        S S S 5        g ! , (       d  f       N= f! , (       d  f       Nr= f! , (       d  f       g = f)Nc                       \ rS rSrS rSrg))SizeofTest.test_errors.<locals>.BadSizeofi  c                     [         er7   r8   rJ   s    r   
__sizeof__4SizeofTest.test_errors.<locals>.BadSizeof.__sizeof__   s      r   rM   NrN   rO   rP   rQ   r  rR   rM   r   r   	BadSizeofr        !r   r  c                       \ rS rSrS rSrg)-SizeofTest.test_errors.<locals>.InvalidSizeofi  c                     g r7   rM   rJ   s    r   r  8SizeofTest.test_errors.<locals>.InvalidSizeof.__sizeof__  s    r   rM   Nr  rM   r   r   InvalidSizeofr    s    r   r  sentinelc                       \ rS rSrS rSrg)+SizeofTest.test_errors.<locals>.FloatSizeofi  c                     g)Ng      @rM   rJ   s    r   r  6SizeofTest.test_errors.<locals>.FloatSizeof.__sizeof__  r  r   rM   Nr  rM   r   r   FloatSizeofr    r   r   r  c                       \ rS rSrS rSrg).SizeofTest.test_errors.<locals>.OverflowSizeofi  c                     [        U 5      $ r7   )r   rJ   s    r   r  9SizeofTest.test_errors.<locals>.OverflowSizeof.__sizeof__  s    4y r   rM   Nr  rM   r   r   OverflowSizeofr    r  r   r  rg   r   )r"   r9   r   r|  r#   rl   r   r   r  rt  rv  OverflowError)r&   r  r  r  r  r  s         r   test_errorsSizeofTest.test_errors  s   	! 	! 	*cmmY[A	 	 	)S]]MOD<cmmMOX>I	 	 	)S]]KMBcmmKM8<hG	!S 	! 	~ckk'BCt'7'77$:V:VV	X}-MM.q9: .z*MM.,- +
M:;MM.#++)9:; <;	 .-**;;s$   >.I	I	/I#
I
I #
I1c                    [         R                  R                  nU R                  [        R
                  " S5      U" S5      U R                  -   5        U R                  [        R
                  " SS5      U" S5      U R                  -   5        g )NTr   r   )r   r   r{  r   r   r|  rr  )r&   r
  s     r   test_defaultSizeofTest.test_default  s_    ||((t,d2h.GHtR0$r(T^^2KLr   c           	        >^ ^%^& [         R                  n[        R                  R                  m&[        R                  R
                  nT R                  m%T%" SU" S5      T R                  -   5        T%" SU" S5      T R                  -   5        T%" [        T&" S5      5        SSS-  /nU H-  n[        U5      nT%" XR" S5      UR                  5       -   5        M/     T%" [        [        5       5      T&" S	5      5        T%" SU" S
5      S-   5        T%" SU" S
5      S-   5        S nT%" U" 5       R                  S   T&" S5      5        U 4S jnU" U" 5       R                  T&" S5      5        U" UR                  T&" S5      5        S nU" UR                  T&" S5      U" S
5      -   5        T%" [        SS5      T&" S5      5        T%" [        R                   T&" S5      5        SS Kn	T%" U	R$                  R&                  T&" S5      5        SS Kn
T%" U
R*                  R,                  T&" S5      5        T%" [.        R0                  T&" S5      5        T%" 0 R2                  T&" S5      5        T%" 0 T&" S5      5        T%" SS0T&" S5      U" [4        5      -   S-   SU" S5      -  -   5        [7        S5       Vs0 s H  n[        U5      U_M     nnT%" UT&" S5      U" [4        5      -   S-   SU" S5      -  -   5        T%" SS0T&" S5      U" [4        5      -   S-   SU" S5      -  -   5        SS S!S"SS#S$SS%.nT%" UT&" S5      U" [4        5      -   S-   SU" S5      -  -   5        T%" 0 R9                  5       T&" S5      5        T%" 0 R;                  5       T&" S5      5        T%" 0 R=                  5       T&" S5      5        T%" [        0 5      T&" S&5      5        T%" [        0 R9                  5       5      T&" S&5      5        T%" [        0 R;                  5       5      T&" S&5      5        T%" [        0 R=                  5       5      T&" S&5      5         " S' S([>        5      nT%" UR@                  T&" S5      5        T%" [C        5       T&" S)5      5        T%" [E        SSSSS5      T&" S*5      5        T%" [G        SSSSS5      T&" S*5      5        T%" [I        SSSS5      T&" S*5      5        T%" [J        T&" S5      5        SS K&nSS K'nURP                  " URR                  RT                  5      nT%" UT&" S+5      5        T%" [W        / 5      T&" S,5      5        T%" [Y        S5      T&" S	5      5        T%" [[        S5      T&" S-5      5        T%" [\        R^                  U" S5      T R`                  [        [\        R^                  5      -  -   5        S. nU" 5       nT%" UT&" S/5      5        S0 nT%" UT&" S15      5         " U%U&4S2 jS35      nS4 nT%" U" 5       T&" S55      5        T%" [        S65      T&" S75      5        SS K1nT%" URe                  SS5      T&" S5      5        T%" [g        / 5      U" S85      5        T%" [g        S/5      U" S85      S T R`                  -  -   5        T%" [g        SS /5      U" S85      S T R`                  -  -   5        T%" [g        / S9Q5      U" S85      S"T R`                  -  -   5        T%" [        / 5      T&" S75      5        T%" [Y        / 5      T&" S	5      5        T%" SU" S5      T R                  -   5        T%" SU" S5      T R                  -   5        T%" S:U" S5      T R                  -   5        S [\        Rh                  Rj                  -  nT%" [/        U5      U" S5      S T R                  -  -   5        T%" [/        US -  S-
  5      U" S5      S T R                  -  -   5        T%" [/        US -  5      U" S5      S!T R                  -  -   5        [        Rl                  (       a  T%" [n        T&" S;5      5        OT%" [n        T&" S<5      5        T%" S T&" S5      5        T%" [p        T&" S5      5        T%" [?        5       T&" S5      5         " U%U&4S= jS([>        5      nT%" [r        Rt                  T&" S>5      5        T%" [        [7        S5      5      T&" S?5      5        T%" [        [7        S S@-  5      5      T&" SA5      5        T%" [Y        S5      T&" S	5      5        T%" [7        S5      T&" SB5      5        T%" [7        SC5      T&" SB5      5        Sn/ [7        S5      [7        SD5      /nT&" SEUS	-  -   SF-   5      nU H  n[        U5      nUS:X  a  SnUS -  nUnUU::  a  US-  nUU::  a  M  US::  a&  T%" [w        U5      U5        T%" [y        U5      U5        M\  T%" [w        U5      UUU" S	5      -  -   5        T%" [y        U5      UUU" S	5      -  -   5        M     T%" [        [w        5       5      T&" SG5      5        T%" [{        S5      T&" SA5      5        T%" [}        [.        5      T&" SA5      5        T%" SHU" S5      5        T%" S9U" S5      S!T R`                  -  -   5        SInU" U5      nT%" [.        U5        U" USJ-   5      n " SK SL[>        5      nT%" UUU" [4        5      -   SM-   SNU" S5      -  -   5        [7        SO5       Vs/ s H
  nU" 5       PM       nT%" U" 5       R@                  T&" S5      T R`                  -   5        U" 5       nS=Ul?        =Ul@        =UlA        =UlB        =UlC        =UlD        =UlE        UlF        T%" UUU" [4        5      -   SM-   SNU" S5      -  -   5        T%" U" 5       R@                  T&" S5      T R`                  -   5        / SPQnSQnUS	-   nUS-   n U H  n[        [        U5      5      n!U!SR:  a  T&" U5      [        U5      -   S-   n"OYU!SS:  a  T&" U5      [        U5      -   S-   n"O;U!ST:  a  T&" U5      S [        U5      S-   -  -   n"OT&" U5      S"[        U5      S-   -  -   n"T%" UU"5        M     [        SU5      nT%" UT&" U5      S"-   5        [        USVSW5        T%" UT&" U5      S"-   S"-   5        SS KKn#[        Rl                  (       a	  T&" SX5      n$OT&" SY5      n$T%" U#R                  [.        5      U$5        T%" U#R                  [.        5      U$5        g s  snf s  snf )ZNTr   F5Pr      ui n2PinPr   rg   s
   xxxxxxxxxxr  c                     ^ SmU4S jn U $ )Nr   c                     > T $ r7   rM   r  s   r   inner<SizeofTest.test_objecttypes.<locals>.get_cell.<locals>.inner<      r   rM   )r  r  s    @r   get_cell-SizeofTest.test_objecttypes.<locals>.get_cell:  s    ALr   r   ro  c                 R   > TR                  [        R                  " U 5      U5        g r7   )r  r   r|  )r   expected_sizer&   s     r   check_code_size4SizeofTest.test_objecttypes.<locals>.check_code_sizeA  s    ##CMM!$4mDr   6i13Pc                    ^  U 4S jnU$ )Nc                     > T $ r7   rM   r  s   r   r  =SizeofTest.test_objecttypes.<locals>.get_cell2.<locals>.innerF  r  r   rM   )r  r  s   ` r   	get_cell2.SizeofTest.test_objecttypes.<locals>.get_cell2E  s    Lr   2d3PPP3PP3P2P2PnQ2Pr   r  r  r  r  n2Prh   r  r     r  )rg   rh   r  r  r  r  r  r  P2nPnc                       \ rS rSrSrg)&SizeofTest.test_objecttypes.<locals>.Cis  rM   Nr  rM   r   r   r  r  s  s    r   r  6Pbz	6Pb 2P2nP32B2iBn4Prr  c                  ,    [         R                  " 5       $ r7   )r   rH  rM   r   r   func)SizeofTest.test_objecttypes.<locals>.func  s    ==?"r   z3Pi2c2P7P2ic??2Pc                      g r7   rM   rM   r   r   r  r    s    Dr   15Pic                   z   > \ rS rSr\S 5       r\S 5       r Y " \ Y" S5      5         Y " \ Y" S5      5        Srg)&SizeofTest.test_objecttypes.<locals>.ci  c                      g r7   rM   rM   r   r   rF   *SizeofTest.test_objecttypes.<locals>.c.foo      r   c                     g r7   rM   )clss    r   bar*SizeofTest.test_objecttypes.<locals>.c.bar  r  r   PPrM   N)	rN   rO   rP   rQ   staticmethodrF   classmethodr  rR   r  r
  s   r   rD  r    sE       #tDz"#tDz"r   rD  c               3      #    Sv   g 7f)Nrg   rM   rM   r   r   get_gen,SizeofTest.test_objecttypes.<locals>.get_gen  s	     Qws   zPP4P4c7P2ic??2Pr  lPrz  )rg   rh   r  r   PPPPPPPPPPPc                   `   > \ rS rSrS rS rS r\" \\\S5      r Y " \ Y" S5      5        Sr	g)	r  i  c                     U R                   $ r7   _C__xrJ   s    r   getx+SizeofTest.test_objecttypes.<locals>.C.getx  s
    488Or   c                     Xl         g r7   r  )r&   values     r   setx+SizeofTest.test_objecttypes.<locals>.C.setx  s    e8r   c                     U ? g r7   r  rJ   s    r   delx+SizeofTest.test_objecttypes.<locals>.C.delx  s    r   r   5Pi)__xN)
rN   rO   rP   rQ   r  r  r  propertyr  rR   r  s   r   r  r    s*    +3(tT2.A!T%[!r   6P3lA   3P4Pi r   3nP2nPP3nrM   P2nPI13Pl4Pn9Pn12PIPc4P36P3P10P2P6P1PIPc                       \ rS rSrSrg)2SizeofTest.test_objecttypes.<locals>.newstyleclassi  rM   Nr  rM   r   r   newstyleclassr    s    Tr   r  r  r   r   )d1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111ud   ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿuP   ĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀĀu,  ￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿ux   𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀u  􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿􏿿nnbr     i   i @  z<stdin>r1   2Pn4P2Pn3P)Nrp  rq  r   r   calcobjsizer{  check_sizeofrr  r!  	bytearray	__alloc__iter__closure__rJ  complexr   r  datetime	timedeltadayscollectionsdefaultdictdefault_factoryr   __add____iter__DICT_KEY_STRUCT_FORMATr  keysvaluesitemsrd  __dict__BaseExceptionUnicodeEncodeErrorUnicodeDecodeErrorUnicodeTranslateErrorEllipsisrz  encodings.iso8859_3charmap_build	iso8859_3decoding_tablerm  reversedfloatr   r  ro  refinditerr  r  r  r  r   NotImplemented	_datetimedatetime_CAPIr_  r  slicesuperr   r  rD  rr  rp   rd   ghordmaxchrr0   weakrefrefproxy)(r&   rq  r}  samplessampler  r  r  r  r  r	  rR  longdictr  rz  	encodingsr  rD  r  r  PyLong_BASEPySet_MINSIZEr  minusedtmpnewsizefmtr  r   oasciifieldscompactfieldsunicodefieldsmaxcharLr*  r   r  r
  	__class__s(   `                                    @@r   test_objecttypesSizeofTest.test_objecttypes"  s   ??||''))!!dE"I./eU2Y/0 	c4:V$F&!A!U6]Q[[]23  	d9;d,c5:>"isb)	
 	hj$$Q'c3	E
++T'];))4=9	 		**DMHSM,IJgalDJ'ciif& 	h  %%tE{3k%%55tE{Cckk4<(bkk4:&b$v,sAhVx0F'GG!KvW_`dWeNeef',Qx0x!CFAIx0hVx0F'GG"LPWYabfYgOgghq!fd6lX.D%EEIVU]^cUdLdde1Q!qA;hVx0F'GG"LPWYabgYhOhhibggic#biik49%bhhj$s)$d2hW&d2779otG}-d299;g/d288:W.ajj$s)$motE{+ RAr2D4EF S!Q3T+5FG#B1b143DEhR!*  !4!4!C!CDah imT%[)hrlDJ'eAhS	"cnneBi$&&3s~~3F*FFG	#Fa()*dDL!
	# 
	# 	gi/01d5k4:&bkk"R $t*-d2hd$dA3itqx/0dAq6lE$K!DFF(23d9ouT{QtvvX56 	d2hT
#hrlDJ'arT^^+,arT^^+,b%)dnn,-444c+b	Adnn,< <=c+q."#U2Y4>>1A%ABc+q.!59q/?#?@""(DN+(DM*dDHnd2h'fhR!	" 	" 	" 	i%%tDz2d58nd4j)d5B< $t*-hrlDJ'eAhT
#eElDJ' uRy%),t++e34F&kG!|1S aiG#GW$!Q, W$!|c&k1%i'+c&k1wx~'=#=>i'WXd^-C)CD   	d35k4;'eAhT
#eCj$t*%b%)guRy1TVV8+, &#Jc1#  	*F)mQ*@!AABFHUYNIZZ["'*-*Q*-mo&&Vtvv(=>O8999ac9AC9!#99ac9AC!#mQ*@!AABFHUYNIZZ[mo&&Vtvv(=>
6 #d*%+A#a&kG}%A.23'#a&0145'!SVaZ.8'!SVaZ.8!QK  Kam$q() 	9f%am$q(1,- 	""G}HG}Hgkk#) 	gmmC (+u 1R 	.s   's=sc                 2   [         R                  " U5      [        R                  " U5      -   n[        R
                  " U5      (       a)  [        R
                  " U5      (       d  X@R                  -  nU R                  [         R                  " U5      U5        g r7   )r   r|  rp  rq  r  
is_trackedrt  r   )r&   r:   baseextrar   s        r   check_slotsSizeofTest.check_slots:  sb    ==&)??==bmmD&9&9(((Hs+X6r   c                    U R                   n " S S[        5      nU" U" 5       [        5       S5         " S S[        5      nU" U" / S9S/ 0S5         " S S	[        5      nU" U" 5       / S5         " S
 S[        5      nU" U" 5       [	        5       S5         " S S[
        5      nU" U" 5       [        5       S5        SSKJn   " S SU5      nU" U" / S9U" / S9S5        g )Nc                       \ rS rSrSrSrg)!SizeofTest.test_slots.<locals>.BAiD  r   r  rD  rM   NrN   rO   rP   rQ   	__slots__rR   rM   r   r   BArH  D      %Ir   rL  r  c                       \ rS rSrSrSrg) SizeofTest.test_slots.<locals>.DiG  rI  rM   NrJ  rM   r   r   DrO  G  rM  r   rP  r  r  c                       \ rS rSrSrSrg) SizeofTest.test_slots.<locals>.LiJ  rI  rM   NrJ  rM   r   r   r<  rR  J  rM  r   r<  c                       \ rS rSrSrSrg) SizeofTest.test_slots.<locals>.SiM  rI  rM   NrJ  rM   r   r   r  rT  M  rM  r   r  c                       \ rS rSrSrSrg)!SizeofTest.test_slots.<locals>.FSiP  rI  rM   NrJ  rM   r   r   FSrV  P  rM  r   rW  r   )OrderedDictc                       \ rS rSrSrSrg)!SizeofTest.test_slots.<locals>.ODiT  rI  rM   NrJ  rM   r   r   ODrZ  T  rM  r   r[  )rD  r  r[  r  r_  r  r	  rX  )	r&   r  rL  rP  r<  r  rW  rX  r[  s	            r   
test_slotsSizeofTest.test_slots@  s       	& 	&bdIK&	& 	&a"gRy$'	& 	&ac2t	& 	&ac35$	& 	&bdIK&+	& 	&b2hb)40r   c           	         [         R                  R                  n[         R                  R                  nU R                  nSS KnU" UR                  5       U" S5      5         [        e! [         a'  nUR                  nUb  U" Xa" S5      5         S nAOS nAff = fU" [        R                  U" S5      U R                  S[        [        R                  5      -   -  -   5        g )Nr   ro  2P2ir   rg   )r   r   r  r{  r   _astASTr#   rm   r   r:  ro  r!  )r&   r
  r}  r  r`  rp   tbs          r   test_pythontypesSizeofTest.test_pythontypesX  s    ||''))!!dhhj$s)$	(O 	(B~b$v,'		( 	ciirTVVq3syy>/A%BBCs   #A) )
B3BBc                    [         R                  " 5       nU R                  UR                  5        U R                  UR                  5        S nS nU R                  [        5         [         R                  " USS9  S S S 5        [         R                  " 5       nU R                  UR                  5        U R                  UR                  5        U R                  [        5         [         R                  " SUS9  S S S 5        [         R                  " 5       nU R                  UR                  5        U R                  UR                  5        [         R                  " US9  [         R                  " 5       nU R                  UR                  U5        U R                  US   U5        U R                  UR                  S 5        U R                  US   S 5        [         R                  " US9  [         R                  " 5       nU R                  UR                  U5        U R                  US   U5        U R                  UR                  U5        U R                  US   U5        [         R                  " U6   [         R                  " 5       nU R                  UR                  5        U R                  UR                  5        g ! , (       d  f       GNM= f! , (       d  f       GN= f)	Nc                      g r7   rM   r   s    r   <lambda>0SizeofTest.test_asyncgen_hooks.<locals>.<lambda>r      tr   c                      g r7   rM   rg  s    r   rh  ri  s  rj  r   invalid)	firstiter	finalizer)rm  r   rg   )rn  )	r   get_asyncgen_hooksr   rm  rn  r"   r#   set_asyncgen_hooksrl   )r&   oldrm  rn  curhookss         r   test_asyncgen_hooksSizeofTest.test_asyncgen_hooksm  s   $$&#--(#--(#	#	y)""Y)L *$$&#--(#--( y)""Y)L *$$&#--(#--(3&&(eooy1eAh	*eoot,eAh%3&&(eooy1eAh	*eooy1eAh	*$$$&#--(#--(= *) *)s   'K%K
K
K$c                     [         R                  " S5      n[        SU5      u  p#nU R                  US5        U R                  US5        g )Nz
            import sys
            class MyStderr:
                def write(self, s):
                    sys.stderr = None
            sys.stderr = MyStderr()
            1/0
        r   r   )r  r  r   r   r  s        r   /test_changing_sys_stderr_and_removing_reference:SizeofTest.test_changing_sys_stderr_and_removing_reference  sI         -T48c"c"r   )ro  rt  rr  rv  )rN   rO   rP   rQ   rw  r   r   r   r  r  r  r>  rD  r\  rc  rt  rw  rR   __classcell__)r=  s   @r   rm  rm    sR    S <<,,LJ<>M
V,p710D*&)P# #r   rm  rN  )(r   rz  r!  r  rG   r  r#  r\  r  rp  r   r   r  test.supportr   r   r   r  r   r   r   r   r	   r
   r  r  r   r   r   r  TestCaser   rW   r   r   r  r"  rm  rN   mainrM   r   r   <module>r}     s@      	 	   	    
    " N ) & ,)   = " 7!h'' 7!t=8,, =@%BX&& %BV~GH%% ~GB$ Y<** Y< Y<x y#"" y# y#v zMMO ]<  Ls    E   E
E