
    /hh'                        S SK r S SKJrJrJrJrJrJrJ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\5      r " S S\ R*                  5      r\ " S S\ R*                  5      5       r\ R0                  " \	SL S	5       " S
 S\ R*                  5      5       r " S S\5      r " S S\5      r " S S\5      r " S S\5      rS rS r " S S5      r \ " 5       r!\"" 5       r# " S S\ R*                  5      r$Sr%Sr&S r'S r(Sr)\ R0                  " \	SL S	5       " S S \ R*                  5      5       r* " S! S"5      r+\ " S# S$\ R*                  5      5       r,\ " S% S&\ R*                  5      5       r-\ " S' S(\ R*                  5      5       r. " S) S*\ R*                  5      r/\ R0                  " \	SL S+5       " S, S-\ R*                  5      5       r0\1S.:X  a  \ Rd                  " 5         gg! \
 a    Sr	 GNf = f! \
 a    Sr GNf = f)/    N)cpython_onlyis_wasirequires_limited_apiPy_DEBUGset_recursion_limitskip_on_s390ximport_helperc                        \ rS rSrS rS rSrg)BadStr   c                     g)NT )selfothers     7/opt/python-3.13.8/usr/lib/python3.13/test/test_call.py__eq__BadStr.__eq__   s        c                 2    [         R                  U 5      S-  $ )N   )str__hash__r   s    r   r   BadStr.__hash__   s    ||D!A%%r   r   N)__name__
__module____qualname____firstlineno__r   r   __static_attributes__r   r   r   r   r      s    &r   r   c                        \ rS rSrS rS rSrg)FunctionCalls   c                    [         R                  " SS/5      nUR                  S5        [        UR	                  5       5      nS nU" S0 UD6nU R                  U[        5        U R                  [        UR	                  5       5      U5        g )N)a   )b   r$   c                      U $ Nr   )kws    r   fn+FunctionCalls.test_kwargs_order.<locals>.fn%   s    Ir   r   )collectionsOrderedDictmove_to_endlistitemsassertIsInstancedictassertEqual)r   odexpectedr+   ress        r   test_kwargs_orderFunctionCalls.test_kwargs_order   sp    $$h%9:
s
#	 h2hc4(ciik*H5r   c                     S n " S S5      nXR                   / R                  /nU H  n[        S5       H  n U" S 5        M     M      g ! [         a     M"  f = f)Nc                      g r)   r   r   r   r   fBFunctionCalls.test_frames_are_popped_after_failed_calls.<locals>.f/       r   c                       \ rS rSrS rSrg)BFunctionCalls.test_frames_are_popped_after_failed_calls.<locals>.C1   c                     g r)   r   r   s    r   mDFunctionCalls.test_frames_are_popped_after_failed_calls.<locals>.C.m2       r   r   N)r   r   r   r   rC   r   r   r   r   Cr@   1       r   rF     )rC   __len__range	TypeError)r   r<   rF   	callablesc_s         r   )test_frames_are_popped_after_failed_calls7FunctionCalls.test_frames_are_popped_after_failed_calls,   s]    		 	 RZZ(	A4[dG !  ! s   A
AAr   N)r   r   r   r   r8   rO   r   r   r   r   r!   r!      s    6r   r!   c                   
   \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S  r"S! r#S" r$S# r%S$ r&S% r'S& r(S' r)S( r*S) r+S* r,S+r-g,)-CFunctionCallsErrorMessages>   c                 J    SnU R                  [        U0 R                  5        g )Nz7__contains__\(\) takes exactly one argument \(0 given\)assertRaisesRegexrK   __contains__r   msgs     r   test_varargs0)CFunctionCallsErrorMessages.test_varargs0A   s    Hy#r?r   c                 N    SnU R                  [        U0 R                  SS5        g )Nz7__contains__\(\) takes exactly one argument \(2 given\)r   r%   rU   rX   s     r   test_varargs2)CFunctionCallsErrorMessages.test_varargs2E   s!    Hy#r1Er   c                 X    SnU R                  [        U[        R                  SSS5        g )Nz@^from_bytes\(\) takes at most 2 positional arguments \(3 given\)   alittleF)rV   rK   int
from_bytesrX   s     r   test_varargs3)CFunctionCallsErrorMessages.test_varargs3I   s#    Qy#s~~tXuUr   c                     SnU R                  [        U0 R                  5        SnU R                  [        U0 R                  5        g )NzUget\(\) takes at least 1 argument \(0 given\)|get expected at least 1 argument, got 0zexpected 1 argument, got 0)rV   rK   get__delattr__rX   s     r   test_varargs1min,CFunctionCallsErrorMessages.test_varargs1minM   s:    :y#rvv6+y#r~~>r   c                 >    SnU R                  [        U[        5        g )Nz,getattr expected at least 2 arguments, got 0rV   rK   getattrrX   s     r   test_varargs2min,CFunctionCallsErrorMessages.test_varargs2minU   s    =y#w7r   c                 B    SnU R                  [        U[        SS5        g )NzWinput\(\) takes at most 1 argument \(2 given\)|input expected at most 1 argument, got 2r%   r'   )rV   rK   inputrX   s     r   test_varargs1max,CFunctionCallsErrorMessages.test_varargs1maxY   s    ;y#ua;r   c                 P    SnU R                  [        U0 R                  SSS5        g )NzUget\(\) takes at most 2 arguments \(3 given\)|get expected at most 2 arguments, got 3r%   r'   r   )rV   rK   rg   rX   s     r   test_varargs2max,CFunctionCallsErrorMessages.test_varargs2max^   s%    :y#rvvq!Q?r   c                 H    SnU R                  [        U0 R                  SS9  g )N+__contains__\(\) takes no keyword argumentsr'   xrU   rX   s     r   test_varargs1_kw,CFunctionCallsErrorMessages.test_varargs1_kwc   s"    <y#r!Dr   c                 J    SnU R                  [        U0 R                  SSS9  g )Nrx   r'   rz   yrU   rX   s     r   test_varargs2_kw,CFunctionCallsErrorMessages.test_varargs2_kwg   s$    <y#r!qIr   c                 <    SnU R                  [        U[        SS9  g )Nz#bool\(\) takes no keyword argumentsr'   ry   )rV   rK   boolrX   s     r   test_varargs3_kw,CFunctionCallsErrorMessages.test_varargs3_kwk   s    4y#tq9r   c                 H    SnU R                  [        U/ R                  SS9  g )Nz0^(list[.])?index\(\) takes no keyword arguments$r'   ry   )rV   rK   indexrX   s     r   test_varargs4_kw,CFunctionCallsErrorMessages.test_varargs4_kwo   s"    Ay#rxx1=r   c                 <    SnU R                  [        U[        SS9  g )Nz(^hasattr\(\) takes no keyword arguments$r'   ry   )rV   rK   hasattrrX   s     r   test_varargs5_kw,CFunctionCallsErrorMessages.test_varargs5_kws       9y#w!<r   c                 <    SnU R                  [        U[        SS9  g )Nz(^getattr\(\) takes no keyword arguments$r'   ry   rl   rX   s     r   test_varargs6_kw,CFunctionCallsErrorMessages.test_varargs6_kww   r   r   c                 <    SnU R                  [        U[        SS9  g )Nz%^next\(\) takes no keyword arguments$r'   ry   )rV   rK   nextrX   s     r   test_varargs7_kw,CFunctionCallsErrorMessages.test_varargs7_kw{   s    6y#tq9r   c                 P    SnU R                  [        U[        R                  SS9  g )Nz/^_struct[.]pack\(\) takes no keyword arguments$r'   ry   )rV   rK   structpackrX   s     r   test_varargs8_kw,CFunctionCallsErrorMessages.test_varargs8_kw   s"    @y#v{{a@r   c                 P    SnU R                  [        U[        R                  SS9  g )Nz4^_struct[.]pack_into\(\) takes no keyword arguments$r'   ry   )rV   rK   r   	pack_intorX   s     r   test_varargs9_kw,CFunctionCallsErrorMessages.test_varargs9_kw   s$    Ey#v/?/?1Er   c                 n    SnU R                  [        U[        R                  " 5       R                  SS9  g )Nz.^deque[.]index\(\) takes no keyword arguments$r'   ry   )rV   rK   r-   dequer   rX   s     r   test_varargs10_kw-CFunctionCallsErrorMessages.test_varargs10_kw   s-    ?y#{/@/@/B/H/HANr   c                     SnU R                  [        U[        R                  R                  [        R                  " S5      SS9  g )Nz.^Struct[.]pack\(\) takes no keyword arguments$ r'   ry   )rV   rK   r   Structr   rX   s     r   test_varargs11_kw-CFunctionCallsErrorMessages.test_varargs11_kw   s5    ?y#v}}/A/A6==QSCTXYZr   c                 D    SnU R                  [        U[        [        S9  g )Nz-^staticmethod\(\) takes no keyword arguments$func)rV   rK   staticmethodidrX   s     r   test_varargs12_kw-CFunctionCallsErrorMessages.test_varargs12_kw   s    >y#|"Er   c                 D    SnU R                  [        U[        [        S9  g )Nz,^classmethod\(\) takes no keyword arguments$r   )rV   rK   classmethodr   rX   s     r   test_varargs13_kw-CFunctionCallsErrorMessages.test_varargs13_kw   s    =y#{Dr   c           	      T    SnU R                  [        U[        R                  SSSS9  g )Nz:^product\(\) takes at most 1 keyword argument \(2 given\)$r   r%   r'   )repeatfoo)rV   rK   	itertoolsproductrX   s     r   test_varargs14_kw-CFunctionCallsErrorMessages.test_varargs14_kw   s.    Ky#(00!A1 	 	Fr   c                 D    SnU R                  [        U[        SSSSSS9  g )Nz?^ImportError\(\) takes at most 3 keyword arguments \(4 given\)$r   r%   r'   r   )namepath	name_fromr   )rV   rK   ImportErrorrX   s     r   test_varargs15_kw-CFunctionCallsErrorMessages.test_varargs15_kw   s-    Py#*AAAPQ 	 	Sr   c           
      B    SnU R                  [        U[        SSSSS9  g )Nz7^min\(\) takes at most 2 keyword arguments \(3 given\)$r   r%   r'   r   )defaultkeyr   )rV   rK   minrX   s     r   test_varargs16_kw-CFunctionCallsErrorMessages.test_varargs16_kw   s*    Hy#"AqaQ 	 	@r   c                 F    SnU R                  [        U[        SSSSSSS9	  g )	Nz3print\(\) got an unexpected keyword argument 'foo'$r   r%   r'   r         )sependfileflushr   )rV   rK   printrX   s     r   test_varargs17_kw-CFunctionCallsErrorMessages.test_varargs17_kw   s.    Dy#$aQAAQA 	 	Or   c                     SnU R                  [        U5         [        S0 [        S5      S0D6  S S S 5        g ! , (       d  f       g = f)Nz'invalid keyword argument for print\(\)$r   ,)r   r%   )rV   rK   r   r   rX   s     r   test_varargs18_kw-CFunctionCallsErrorMessages.test_varargs18_kw   s7    8##Is3/6%=#./ 433	   9
Ac                     SnU R                  [        U5         [        S0 [        S5      S0D6  S S S 5        g ! , (       d  f       g = f)Nz'invalid keyword argument for round\(\)$r   r%   )g      ?)rV   rK   roundr   rX   s     r   test_varargs19_kw-CFunctionCallsErrorMessages.test_varargs19_kw   s7    8##Is3-6%=!,- 433r   c                 L    SnU R                  [        U0 R                  S5        g )Nz'keys\(\) takes no arguments \(1 given\)r   rV   rK   keysrX   s     r   test_oldargs0_1+CFunctionCallsErrorMessages.test_oldargs0_1   s    8y#rww:r   c                 N    SnU R                  [        U0 R                  SS5        g )Nz'keys\(\) takes no arguments \(2 given\)r   r%   r   rX   s     r   test_oldargs0_2+CFunctionCallsErrorMessages.test_oldargs0_2   s!    8y#rww1=r   c                 H    SnU R                  [        U0 R                  SS9  g )N#keys\(\) takes no keyword argumentsr'   ry   r   rX   s     r   test_oldargs0_1_kw.CFunctionCallsErrorMessages.test_oldargs0_1_kw   s"    4y#rww!<r   c                 J    SnU R                  [        U0 R                  SSS9  g )Nr   r'   r~   r   rX   s     r   test_oldargs0_2_kw.CFunctionCallsErrorMessages.test_oldargs0_2_kw   s$    4y#rww!qAr   c                 J    SnU R                  [        U/ R                  5        g )Nz0count\(\) takes exactly one argument \(0 given\)rV   rK   countrX   s     r   test_oldargs1_0+CFunctionCallsErrorMessages.test_oldargs1_0   s    Ay#rxx8r   c                 N    SnU R                  [        U/ R                  SS5        g )Nz0count\(\) takes exactly one argument \(2 given\)r%   r'   r   rX   s     r   test_oldargs1_2+CFunctionCallsErrorMessages.test_oldargs1_2   s!    Ay#rxxA>r   c                 H    SnU R                  [        U/ R                  SS9  g N$count\(\) takes no keyword argumentsr'   ry   r   rX   s     r   test_oldargs1_0_kw.CFunctionCallsErrorMessages.test_oldargs1_0_kw   s"    5y#rxx1=r   c                 J    SnU R                  [        U/ R                  0 SS9  g r   r   rX   s     r   test_oldargs1_1_kw.CFunctionCallsErrorMessages.test_oldargs1_1_kw   s$    5y#rxxqAr   c                 J    SnU R                  [        U/ R                  SSS9  g )Nr   r'   r~   r   rX   s     r   test_oldargs1_2_kw.CFunctionCallsErrorMessages.test_oldargs1_2_kw   s$    5y#rxx1Br   c                 F    SnU R                  [        U[        5       5        g )Nz!^'object' object is not callable$)rV   rK   objectrX   s     r   test_object_not_callable4CFunctionCallsErrorMessages.test_object_not_callable   s    2y#vx8r   c                 ^    SnU R                  [        U[        R                  " S5      5        g N!^'module' object is not callable$mod)rV   rK   types
ModuleTyperX   s     r   (test_module_not_callable_no_suggestion_0DCFunctionCallsErrorMessages.test_module_not_callable_no_suggestion_0   s$    2y#u/?/?/FGr   c                 n    Sn[         R                  " S5      nSUl        U R                  [        X5        g Nr  r  *   r  r  r  rV   rK   r   rY   r  s      r   (test_module_not_callable_no_suggestion_1DCFunctionCallsErrorMessages.test_module_not_callable_no_suggestion_1   s.    2u%y#3r   c                 d    Sn[         R                  " S5      nU?U R                  [        X5        g r  r  r  r   rV   rK   r  s      r   (test_module_not_callable_no_suggestion_2DCFunctionCallsErrorMessages.test_module_not_callable_no_suggestion_2   s,    2u%Ly#3r   c                 n    Sn[         R                  " S5      nSUl        U R                  [        X5        g r	  r  r  s      r   (test_module_not_callable_no_suggestion_3DCFunctionCallsErrorMessages.test_module_not_callable_no_suggestion_3   s.    2u%y#3r   c                 p    Sn[         R                  " S5      nS Ul        U R                  [        X5        g )NzH^'module' object is not callable\. Did you mean: 'mod\.mod\(\.\.\.\)'\?$r  c                      g)N.r   r   r   r   <lambda>QCFunctionCallsErrorMessages.test_module_not_callable_suggestion.<locals>.<lambda>   s    #r   r  r  s      r   #test_module_not_callable_suggestion?CFunctionCallsErrorMessages.test_module_not_callable_suggestion   s.    Yu%y#3r   r   N).r   r   r   r   rZ   r]   rd   ri   rn   rr   ru   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r   r   r   r   rR   rR   >   s    @FV?8<
@
EJ:>==:AFO[FEF
S
@
O
0.;>=B9?>BC9H4444r   rR   requires _testcapic                       \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rSrg)TestCallingConventions   ak  Test calling using various C calling conventions (METH_*) from Python

Subclasses test several kinds of functions (module-level, methods,
class methods static methods) using these attributes:
  obj: the object that contains tested functions (as attributes)
  expected_self: expected "self" argument to the C function

The base class tests module-level functions.
c                 (    [         =U l        U l        g r)   )	_testcapiobjexpected_selfr   s    r   setUpTestCallingConventions.setUp  s    (114%r   c                 v    U R                  U R                  R                  SSS5      U R                  S45        g Nr%   r'   r   r%   r'   r   r4   r"  meth_varargsr#  r   s    r   test_varargs#TestCallingConventions.test_varargs  s4    HH!!!Q*+	
r   c                 n    U R                  U R                  R                  " S6 U R                  S45        g Nr(  r)  r   s    r   test_varargs_ext'TestCallingConventions.test_varargs_ext  s0    HH!!9-+	
r   c                 @   ^  SnT R                  [        UU 4S j5        g )Nz+meth_varargs\(\) takes no keyword argumentsc                  6   > T R                   R                  SS9$ Nr%   )k)r"  r*  r   s   r   r  >TestCallingConventions.test_varargs_error_kw.<locals>.<lambda>  s    DHH$9$9A$9$>r   rV   rK   rX   s   ` r   test_varargs_error_kw,TestCallingConventions.test_varargs_error_kw  s    <s>	
r   c           	      |    U R                  U R                  R                  SSSSS9U R                  SSSS.45        g Nr%   r'   r   r   r$   r&   r%   r'   r4   r"  meth_varargs_keywordsr#  r   s    r   test_varargs_keywords,TestCallingConventions.test_varargs_keywords  s@    HH**1a1*:qq)9:	
r   c           	          U R                  U R                  R                  " SS/0 SSS.D6U R                  SSSS.45        g r:  r=  r   s    r   test_varargs_keywords_ext0TestCallingConventions.test_varargs_keywords_ext#  sE    HH**QFGAA6FGqq)9:	
r   c                 r    U R                  U R                  R                  S5      U R                  S45        g Nr%   r4   r"  meth_or#  r   s    r   test_oTestCallingConventions.test_o)  s*    +d.@.@!-DEr   c                 p    U R                  U R                  R                  " S/6 U R                  S45        g rE  rF  r   s    r   
test_o_ext!TestCallingConventions.test_o_ext,  s,    1#.1C1CQ0GHr   c                 \    SnU R                  [        XR                  R                  5        g )Nz1meth_o\(\) takes exactly one argument \(0 given\))rV   rK   r"  rG  rX   s     r   test_o_error_no_arg*TestCallingConventions.test_o_error_no_arg/  s    By#xx?r   c                 @   ^  SnT R                  [        UU 4S j5        g )Nz1meth_o\(\) takes exactly one argument \(2 given\)c                  <   > T R                   R                  SS5      $ Nr%   r'   r"  rG  r   s   r   r  >TestCallingConventions.test_o_error_two_args.<locals>.<lambda>6  s    DHHOOAq$9r   r6  rX   s   ` r   test_o_error_two_args,TestCallingConventions.test_o_error_two_args3  s    Bs9	
r   c                 @   ^  SnT R                  [        UU 4S j5        g )Nz1meth_o\(\) takes exactly one argument \(3 given\)c                  6   > T R                   R                  " S6 $ r.  rS  r   s   r   r  9TestCallingConventions.test_o_error_ext.<locals>.<lambda><  s    DHHOOY$?r   r6  rX   s   ` r   test_o_error_ext'TestCallingConventions.test_o_error_ext9  s    Bs?	
r   c                 @   ^  SnT R                  [        UU 4S j5        g )N%meth_o\(\) takes no keyword argumentsc                  6   > T R                   R                  SS9$ r3  rS  r   s   r   r  8TestCallingConventions.test_o_error_kw.<locals>.<lambda>B      DHHOOaO$8r   r6  rX   s   ` r   test_o_error_kw&TestCallingConventions.test_o_error_kw?      6s8	
r   c                 @   ^  SnT R                  [        UU 4S j5        g )Nr]  c                  6   > T R                   R                  SS9$ r3  rS  r   s   r   r  <TestCallingConventions.test_o_error_arg_kw.<locals>.<lambda>H  r`  r   r6  rX   s   ` r   test_o_error_arg_kw*TestCallingConventions.test_o_error_arg_kwE  rc  r   c                 l    U R                  U R                  R                  5       U R                  5        g r)   r4   r"  meth_noargsr#  r   s    r   test_noargs"TestCallingConventions.test_noargsK  s%    --/1C1CDr   c                 j    U R                  U R                  R                  " / 6 U R                  5        g r)   rj  r   s    r   test_noargs_ext&TestCallingConventions.test_noargs_extN  s'    --r2D4F4FGr   c                 @   ^  SnT R                  [        UU 4S j5        g )Nz.meth_noargs\(\) takes no arguments \(1 given\)c                  :   > T R                   R                  S5      $ rE  r"  rk  r   s   r   r  >TestCallingConventions.test_noargs_error_arg.<locals>.<lambda>T  s    DHH$8$8$;r   r6  rX   s   ` r   test_noargs_error_arg,TestCallingConventions.test_noargs_error_argQ  s    ?s;	
r   c                 @   ^  SnT R                  [        UU 4S j5        g )Nz.meth_noargs\(\) takes no arguments \(2 given\)c                  <   > T R                   R                  SS5      $ rR  rs  r   s   r   r  ?TestCallingConventions.test_noargs_error_arg2.<locals>.<lambda>Z  s    DHH$8$8A$>r   r6  rX   s   ` r   test_noargs_error_arg2-TestCallingConventions.test_noargs_error_arg2W  s    ?s>	
r   c                 @   ^  SnT R                  [        UU 4S j5        g )Nz.meth_noargs\(\) takes no arguments \(3 given\)c                  6   > T R                   R                  " S6 $ r.  rs  r   s   r   r  >TestCallingConventions.test_noargs_error_ext.<locals>.<lambda>`  s    DHH$8$8)$Dr   r6  rX   s   ` r   test_noargs_error_ext,TestCallingConventions.test_noargs_error_ext]  s    ?sD	
r   c                 @   ^  SnT R                  [        UU 4S j5        g )Nz*meth_noargs\(\) takes no keyword argumentsc                  6   > T R                   R                  SS9$ r3  rs  r   s   r   r  =TestCallingConventions.test_noargs_error_kw.<locals>.<lambda>f  s    DHH$8$81$8$=r   r6  rX   s   ` r   test_noargs_error_kw+TestCallingConventions.test_noargs_error_kwc  s    ;s=	
r   c                 v    U R                  U R                  R                  SSS5      U R                  S45        g r'  r4   r"  meth_fastcallr#  r   s    r   test_fastcall$TestCallingConventions.test_fastcalli  s4    HH""1a++	
r   c                 n    U R                  U R                  R                  " S6 U R                  S45        g r.  r  r   s    r   test_fastcall_ext(TestCallingConventions.test_fastcall_exto  s0    HH""I.+	
r   c                 @   ^  SnT R                  [        UU 4S j5        g )Nz,meth_fastcall\(\) takes no keyword argumentsc                  6   > T R                   R                  SS9$ r3  )r"  r  r   s   r   r  ?TestCallingConventions.test_fastcall_error_kw.<locals>.<lambda>x  s    DHH$:$:Q$:$?r   r6  rX   s   ` r   test_fastcall_error_kw-TestCallingConventions.test_fastcall_error_kwu  s    =s?	
r   c           	      |    U R                  U R                  R                  SSSSS9U R                  SSSS.45        g r:  r4   r"  meth_fastcall_keywordsr#  r   s    r   test_fastcall_keywords-TestCallingConventions.test_fastcall_keywords{  s@    HH++AqA+;qq)9:	
r   c           	          U R                  U R                  R                  " S0 SSS.D6U R                  SSSS.45        g )Nr<  r   r   r;  r  r   s    r   test_fastcall_keywords_ext1TestCallingConventions.test_fastcall_keywords_ext  sA    HH++VHQQ7GHqq)9:	
r   r#  r"  N)r   r   r   r   __doc__r$  r+  r/  r7  r?  rB  rH  rK  rN  rU  rZ  ra  rg  rl  ro  ru  rz  r  r  r  r  r  r  r  r   r   r   r   r  r     s    2




FI@



EH








r   r  c                       \ rS rSrSrS rSrg)TestCallingConventionsInstancei  z?Test calling instance methods using various calling conventionsc                 F    [         R                  " 5       =U l        U l        g r)   )r!  MethInstancer"  r#  r   s    r   r$  $TestCallingConventionsInstance.setUp  s    (1(>(>(@@4%r   r  Nr   r   r   r   r  r$  r   r   r   r   r  r    s    IAr   r  c                       \ rS rSrSrS rSrg)TestCallingConventionsClassi  z<Test calling class methods using various calling conventionsc                 <    [         R                  =U l        U l        g r)   r!  	MethClassr"  r#  r   s    r   r$  !TestCallingConventionsClass.setUp  s    (1(;(;;4%r   r  Nr  r   r   r   r  r    s
    F<r   r  c                       \ rS rSrSrS rSrg)#TestCallingConventionsClassInstancei  z&Test calling class methods on instancec                 b    [         R                  " 5       U l        [         R                  U l        g r)   r  r   s    r   r$  )TestCallingConventionsClassInstance.setUp  s     &&(&00r   r  Nr  r   r   r   r  r    s
    01r   r  c                       \ rS rSrSrS rSrg)TestCallingConventionsStatici  z=Test calling static methods using various calling conventionsc                 F    [         R                  " 5       U l        S U l        g r)   )r!  
MethStaticr"  r#  r   s    r   r$  "TestCallingConventionsStatic.setUp  s    '')!r   r  Nr  r   r   r   r  r    s
    G"r   r  c                     X/$ r)   r   arg1arg2s     r   pyfuncr    s
    <r   c                      gNnoargr   r   r   r   pyfunc_noargr    s    r   c                   @    \ rS rSrS rS r\S 5       r\S 5       r	Sr
g)PythonClassi  c                     X/$ r)   r   )r   r  r  s      r   methodPythonClass.method  s
    |r   c                     gr  r   r   s    r   method_noargPythonClass.method_noarg  s    r   c                     g)Nr   r   )clss    r   class_methodPythonClass.class_method  s    r   c                      g)Nr   r   r   r   r   static_methodPythonClass.static_method  s    r   r   N)r   r   r   r   r  r  r   r  r   r  r   r   r   r   r  r    s4        r   r  c                      \ rS rSrSr\SSS/4\SS4\R                  SS4\R                  SS	4\
R                  SSS/4\
R                  SS4\
R                  SS4\
R                  SS	4/r\S
SS0SS/4\SSSS.SS/4\
R                  S
SS0SS/4\
R                  SSSS.SS/4/r\(       Ga  \R                   " 5       r\\4\\4\R$                  \R$                  4\R$                  " 5       \R$                  4\R&                  S44 GH&  u  rr\R-                  \R.                  S\S44\R0                  S\S\44\R4                  S\S44\R4                  S\S44\R6                  S\S\44\R6                  S\S\44\R8                  S\4\R:                  S\S44/5        \R-                  \R0                  SSS0\SSS044\R0                  SSS0\SSS044\R0                  S0 \S\44\R6                  SSS0\SSS044\R6                  SSS0\SSS044\R6                  S0 \S\44/5        GM)     S r\R@                  " \SL S5      S 5       r!\R@                  " \SL S5      S 5       r"S r#Sr$g)FastCallTestsi  z0Test calling using various callables from C
    r<  r%   r'   r   r  r   r   )r%   r  r  N){   r  rz   r   c                     [        U[        5      (       a$  US   [        L a  US   0 S 4;   a  / US S QUS   P7nU R                  X5        g )N)
isinstancetupleNULL_OR_EMPTYr4   )r   resultr6   s      r   check_resultFastCallTests.check_result  sQ    h&&8B<=+Hbzb$Z'7Xcr]7F2J7*r   r  c                    U R                    Hv  u  pnU R                  XS9   [        R                  " XS 5      nU R	                  XC5        U(       d)  [        R                  " US S 5      nU R	                  XC5        S S S 5        Mx     U R
                   HG  u  ppSU R                  XUS9   [        R                  " XU5      nU R	                  XC5        S S S 5        MI     g ! , (       d  f       M  = f! , (       d  f       Mm  = f)Nr   argsr   r  kwargs)CALLS_POSARGSsubTestr!  pyobject_fastcalldictr  CALLS_KWARGS)r   r   r  r6   r  r  s         r   test_vectorcall_dict"FastCallTests.test_vectorcall_dict  s     %)$6$6 D43"88TJ!!&3&<<T4NF%%f7 43 %7 -1,=,=(D46B"88VL!!&3 CB -> 43 CBs   AC))C1
C.	1
D 	c                    U R                    H  u  pnU R                  XS9   [        R                  " XS 5      nU R	                  XC5        [        R                  " XS5      nU R	                  XC5        U(       dR  [        R                  " US S 5      nU R	                  XC5        [        R                  " US S5      nU R	                  XC5        S S S 5        M     U R
                   H|  u  ppSU R                  XUS9   [        UR                  5       5      nU[        UR                  5       5      -   n[        R                  " XU5      nU R	                  XC5        S S S 5        M~     g ! , (       d  f       GMh  = f! , (       d  f       M  = f)Nr  r   r  )	r  r  r!  pyobject_vectorcallr  r  r  r   values)r   r   r  r6   r  r  kwnamess          r   test_vectorcallFastCallTests.test_vectorcall.  sB    %)$6$6 D43"66t4H!!&3 #66t2F!!&3&::4tLF%%f7 '::4rJF%%f7! 43 %7& -1,=,=(D46B.eFMMO44"66t7K!!&3	 CB ->% 43& CBs   B*E%:AE8%
E5	8
F	c                 `     " S S5      nU" U" 5       S9n[        SSSU40 UR                  D6  g )Nc                   &    \ rS rSrS/rS rS rSrg)>FastCallTests.test_fastcall_clearing_dict.<locals>.IntWithDictiO  r  c                     Xl         g r)   r  )r   r  s     r   __init__GFastCallTests.test_fastcall_clearing_dict.<locals>.IntWithDict.__init__Q  s    $r   c                 b    U R                   R                  5         [        R                  " 5         g)Nr   )r  cleargccollectr   s    r   	__index__HFastCallTests.test_fastcall_clearing_dict.<locals>.IntWithDict.__index__S  s    !!#

r   r  N)r   r   r   r   	__slots__r  r  r   r   r   r   IntWithDictr  O  s    !
I%r   r  )optimizepassr   exec)compiler  )r   r  rz   s      r   test_fastcall_clearing_dict)FastCallTests.test_fastcall_clearing_dictL  s3    	 	 / 	FA22r   )%r   r   r   r   r  r  r  r  r  r  PYTHON_INSTANCEr  r  r  r  r!  r  	_instancer  r  r"  r#  extendr*  r>  r  r  r  rk  rG  r  unittestskipIfr  r  r  r   r   r   r   r  r    se    
!Q  
r7# 
	!	!2}5		"	"B7 
		!Q0		%	%r73		%	%r=9		&	&N;#M6 
{QF+	a+aV4 
		{QF;			a%;aVDL **,		"	"  )"5"56  "I$7$78!!4(#
C   !!6M6+BC**]FMBD""F]F,CD""B(;<++]FMBD++M:<"m4W}c&:;"  **S#Jc
(KM**c
]Bc
$CE**B FH++S#Jc
(KM++c
]Bc
$CE++B FH! +#
H+ __Y$&(<=4 >4& __Y$&(<=4 >4:3r   r  i   i   c                     U $ zsome docr   r   s    r   testfunctionr  b      Kr   c                    U $ r  r   )r   r*   s     r   testfunction_kwr  g  r  r   r'   c                   z    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 r\S 5       r\S 5       r\S 5       rSrg)
TestPEP590io  c                    SS K nUR                  S5      " [        5      nU R                  [	        [
        5      R                  [        -  5        U R                  [	        [        R                  5      R                  [        -  5        U R                  [	        [        R                  5      R                  [        -  5        U R                  [	        [        5      R                  [        -  5        U R                  [	        U5      R                  [        -  5        U R                  [        R                  R                  [        -  5        U R                  [        R                  R                  [        -  5        U R                  [        R                  R                  [        -  5         " S S[        R                  5      nU R                  UR                  [        -  5        g )Nr   r%   c                       \ rS rSrSrg)DTestPEP590.test_method_descriptor_flag.<locals>.MethodDescriptorHeapi  r   Nr   r   r   r   r   r   r   r   MethodDescriptorHeapr
        r   r  )	functools	lru_cacher  assertFalsetyperepr	__flags__Py_TPFLAGS_METHOD_DESCRIPTOR
assertTruer0   append__add__r!  MethodDescriptorBaseMethodDescriptorDerivedMethodDescriptorNopGet)r   r  cachedr  s       r   test_method_descriptor_flag&TestPEP590.test_method_descriptor_flagr  s<   $$Q'5d--0LLMT[[)336RRST\\*447SST\*447SSTV..1MMN	66@@C__`	99CCFbbc99CCFbbc	9#A#A 	-77:VVWr   c                    U R                  [        R                  R                  [        -  5        U R                  [        R
                  R                  [        -  5        U R                  [        R                  R                  [        -  5        U R                  [        R                  R                  [        -  5         " S S[        R                  5      nU R                  UR                  [        -  5        [        Ul
        U R                  UR                  [        -  5         " S S[        R                  5      nU R                  UR                  [        -  5        g )Nc                       \ rS rSrSrg)=TestPEP590.test_vectorcall_flag.<locals>.MethodDescriptorHeapi  r   Nr  r   r   r   r  r     r  r   r  c                       \ rS rSrS rSrg)r   i  c                     g r)   r   r   s    r   __call__FTestPEP590.test_vectorcall_flag.<locals>.MethodDescriptorHeap.__call__  rE   r   r   Nr   r   r   r   r#  r   r   r   r   r  r     rG   r   )r  r!  r  r  Py_TPFLAGS_HAVE_VECTORCALLr  r  r  MethodDescriptor2r   r#  )r   r  s     r   test_vectorcall_flagTestPEP590.test_vectorcall_flag  s    	66@@C]]^	99CCF``a99CCF``a	33==@ZZ[	9#A#A 	,669SST(-%-77:TTU	9#A#A 	 	-77:TTUr   c                     [        [        S5      5      n[        R                  " 5       nU R	                  U" U6 U5        g )Nr   )r  rJ   r!  r  assertIs)r   r  r<   s      r   test_vectorcall_override#TestPEP590.test_vectorcall_override  s1     U1X,,.ah%r   c                     [         R                  " 5       nU" 5       nU R                  U" 5       S5        UR                  U5        U R                  U" 5       S5        S Ul        U R                  U" 5       S5        g)z*Setting __call__ should disable vectorcalltp_call
vectorcallc                     gNcustomr   r   s    r   r  FTestPEP590.test_vectorcall_override_on_mutable_class.<locals>.<lambda>  s    r   r3  N)r!  make_vectorcall_classr4   set_vectorcallr#  )r   TestTypeinstances      r   )test_vectorcall_override_on_mutable_class4TestPEP590.test_vectorcall_override_on_mutable_class  sc    224:Y/)\21X.r   c                 ^   [         R                  " 5       n " S SU5      nU" 5       n[         R                  " U5      n[         R                  " U5      nU R                  [        XB5      5        U R                  [        XQ5      5        U R	                  U" 5       S5        U R	                  [         R
                  " U5      S5        U R	                  [         R
                  " U5      S5        U R	                  [         R
                  " U5      S5        U R	                  [         R
                  " U5      S5        UR                  U5        U R	                  U" 5       S5        U R	                  [         R
                  " U5      S5        U R	                  [         R
                  " U5      S5        U R	                  [         R
                  " U5      S5        U R	                  [         R
                  " U5      S5        S Ul        U R	                  U" 5       S5        U R	                  [         R
                  " U5      S5        U R	                  [         R
                  " U5      S5        U R	                  [         R
                  " U5      S5        U R	                  [         R
                  " U5      S5        g	)
z:Setting __call__ on a superclass should disable vectorcallc                       \ rS rSrSrg)FTestPEP590.test_vectorcall_override_with_subclass.<locals>.DerivedTypei  r   Nr  r   r   r   DerivedTyper=    r  r   r>  r/  Tr0  c                     gr2  r   r   s    r   r  CTestPEP590.test_vectorcall_override_with_subclass.<locals>.<lambda>  s    (r   r3  FN)r!  r5  r  
issubclassr4   has_vectorcall_flagr6  r#  )r   	SuperTyper>  r8  UnaffectedType1UnaffectedType2s         r   &test_vectorcall_override_with_subclass1TestPEP590.test_vectorcall_override_with_subclass  s   335		) 	 = $99+F#99)D 	
?@A
?>? 	Y/66yA4H66{CTJ66GN66GN 		*\266yA4H66{CTJ66GN66GN 3	X.66yA5I66{CUK66GN66GNr   c                   ^ [         [        S5      40 S4[        R                  / S40 S 4/ R                  S0 S 4[        S/4SS0S4[
        S0 S4[        SSS 0S4[        R                  " 5       S0 S	4[        R                  " 5       S0 S	4[        R                  " 5       S0 S
4/	nSSKJmJn  SSKJn  SSKJn  U4S jnU H_  u  pgpU R#                  [%        U5      5         U(       d  U R'                  X" Xg5      5        U R'                  X" XgU5      5        S S S 5        Ma      " S S[        R                  5      n
 " S S[        R                  5      n " S S5      n " S SU[        R                  5      nU[(        R*                  0 4SS	0S 40 R*                  0 4SS	0S 4U
" 5       S0 S	4U" 5       S0 S4U" 5       S0 S	4/-  nU H  u  pgpU R#                  [%        U5      5         USS  nU" XgS   5      nU" U5      nU(       dV  U R'                  X" U6 5        U R'                  U	T" XgS 5      5        U R'                  X" U6 5        U R'                  U	U" U6 5        U R'                  X" U0 UD65        U R'                  X" XgU5      5        U R'                  X" U0 UD65        U R'                  U	U" U0 UD65        S S S 5        M     g ! , (       d  f       GM  = f! , (       d  f       GM$  = f)Nr
  r   )r   $   start   )r
  r*   TF)r  pyvectorcall_call)
MethodType)partialc                 V   > / UQUR                  5       Q7n[        U5      nT" XU5      $ r)   )r  r  )r   r  r  r  r  s       r   r0  .TestPEP590.test_vectorcall.<locals>.vectorcall  s.    *D*6==?*DFmG&t7;;r   c                       \ rS rSrSrg)8TestPEP590.test_vectorcall.<locals>.MethodDescriptorHeapi  r   Nr  r   r   r   r  rR    r  r   r  c                       \ rS rSrS rSrg)>TestPEP590.test_vectorcall.<locals>.MethodDescriptorOverriddeni  c                     g)Nnewr   )r   ns     r   r#  GTestPEP590.test_vectorcall.<locals>.MethodDescriptorOverridden.__call__  s    r   r   Nr%  r   r   r   MethodDescriptorOverriddenrT    s    r   rY  c                   (   ^  \ rS rSrU 4S jrSrU =r$ )-TestPEP590.test_vectorcall.<locals>.SuperBasei  c                    > [         TU ]  " U6 $ r)   superr#  r   r  	__class__s     r   r#  6TestPEP590.test_vectorcall.<locals>.SuperBase.__call__      w'..r   r   r   r   r   r   r#  r   __classcell__r`  s   @r   	SuperBaser[        / /r   rf  c                   (   ^  \ rS rSrU 4S jrSrU =r$ )9TestPEP590.test_vectorcall.<locals>.MethodDescriptorSuperi	  c                    > [         TU ]  " U6 $ r)   r]  r_  s     r   r#  BTestPEP590.test_vectorcall.<locals>.MethodDescriptorSuper.__call__
  rb  r   r   rc  re  s   @r   MethodDescriptorSuperri  	  rg  r   rl  r   rV  r%   )lenrJ   r0   r  sumr  r  r!  r  r  r'  r  rL  r  rM  r  rN  r  r   r4   r3   update)r   callsrL  rM  rN  r0  r   r  r  r6   r  rY  rf  rl  args1methwrappedr  s                    @r   r  TestPEP590.test_vectorcall  s    b	|R,++AwD1))T2t,wR0r2.!54+r:002D"dC335tRF--/r5AC 	E$%	<
 /4*Tc$i($$X/@/LM  +<T+PQ )( /4	9#A#A 		)G)G 		/ 	/	/Iy/M/M 	/ 	[[2%%t4YYd|T2!#T2t4')4U;"$dB5
 	
 /4*Tc$i(QR!$Q0!$-$$XtT{;$$X/B4t/TU$$XtU|<$$Xw~>  4+@+@A  :d&+IJ  4+A&+AB  7D+CF+CD )( /4? )(@ )(s    7K&CK
K	
K*	c                     SSK Jn  S nU R                  nSnU" SU" U5      5        U" U5        [        S[        -  5       H  nU" SU" U5      5        M     g )Nr   function_setvectorcallc                     U S-   $ rE  r   nums    r   r<   (TestPEP590.test_setvectorcall.<locals>.f&  s
    37Nr   
      
overridden)r!  rw  r4   rJ   ADAPTIVE_WARMUP_DELAY)r   rw  r<   assert_equalrz  rN   s         r   test_setvectorcallTestPEP590.test_setvectorcall$  sQ    4"''R3 q!r112Aqv. 3r   c                     SSK Jn   " S S5      nU R                  nU" 5       nU" SUR                  5        U" UR                  5        [        [        5       H  nU" SUR                  5        M     g )Nr   rv  c                       \ rS rSrS rSrg)FTestPEP590.test_setvectorcall_load_attr_specialization_skip.<locals>.Xi2  c                     U$ r)   r   r   attrs     r   __getattribute__WTestPEP590.test_setvectorcall_load_attr_specialization_skip.<locals>.X.__getattribute__3      r   r   Nr   r   r   r   r  r   r   r   r   Xr  2      r   r  r$   r~  )r!  rw  r4   r$   r  rJ   r  )r   rw  r  r  rz   rN   s         r   0test_setvectorcall_load_attr_specialization_skip;TestPEP590.test_setvectorcall_load_attr_specialization_skip/  s_    4	 	 ''CS!##q112 ,-Aqss+ .r   c                    SSK Jn   " S S5      nS nU R                  nU" 5       n[        [        5       H  nU" SU" U5      5        M     U" UR
                  5        [        [        5       H  nU" SU" U5      5        M     g )Nr   rv  c                       \ rS rSrS rSrg)GTestPEP590.test_setvectorcall_load_attr_specialization_deopt.<locals>.XiB  c                     U$ r)   r   r  s     r   r  XTestPEP590.test_setvectorcall_load_attr_specialization_deopt.<locals>.X.__getattribute__C  r  r   r   Nr  r   r   r   r  r  B  r  r   r  c                     U R                   $ r)   )r$   ry   s    r   get_aKTestPEP590.test_setvectorcall_load_attr_specialization_deopt.<locals>.get_aF  s    33Jr   r$   r~  )r!  rw  r4   rJ   r  r  )r   rw  r  r  r  rz   rN   s          r   1test_setvectorcall_load_attr_specialization_deopt<TestPEP590.test_setvectorcall_load_attr_specialization_deopt?  st    4	 		 ''C,-AeAh' .q112 ,-AuQx0 .r   c                 n    SSK Jn  [        R                  " 5       nU R	                  U" USS5      S5        g )Nr   )r  r   zvectorcall called)r!  r  _testlimitedcapiLimitedVectorCallClassr4   )r   r  r"  s      r    test_vectorcall_limited_incoming+TestPEP590.test_vectorcall_limited_incomingT  s.    1557,S"b9;NOr   c                    ^^ SSK Jn  / m/ mUU4S jnU R                  U" U5      S5        U R                  TS/5        U R                  TSS0/5        g )Nr   )call_vectorcallc                  J   > TR                  U 5        TR                  U5        gNsuccessr  )r  r  args_capturedkwargs_captureds     r   r<   6TestPEP590.test_vectorcall_limited_outgoing.<locals>.fa  s"      &""6*r   r  r   bazbar)r  r  r4   )r   r  r<   r  r  s      @@r    test_vectorcall_limited_outgoing+TestPEP590.test_vectorcall_limited_outgoingZ  sU    4	
 	+Y7
3E5>*:;r   c                    ^^ SSK Jn  / m/ m " UU4S jS5      nU R                  U" U" 5       5      S5        U R                  TS/5        U R                  TSS0/5        g )	Nr   )call_vectorcall_methodc                   $   > \ rS rSrU U4S jrSrg)HTestPEP590.test_vectorcall_limited_outgoing_method.<locals>.TestInstanceiq  c                 J   > TR                  U5        TR                  U5        gr  r  )r   r  r  r  r  s      r   r<   JTestPEP590.test_vectorcall_limited_outgoing_method.<locals>.TestInstance.fr  s"    $$T*&&v. r   r   N)r   r   r   r   r<   r   )r  r  s   r   TestInstancer  q  s    ! !r   r  r  r  r  r  )r  r  r4   )r   r  r  r  r  s      @@r   'test_vectorcall_limited_outgoing_method2TestPEP590.test_vectorcall_limited_outgoing_methodj  s]    ;	! 	! 	/?K
3E5>*:;r   r   N)r   r   r   r   r  r(  r,  r9  rF  r  r  r  r  r   r  r  r  r   r   r   r   r  r  o  st    X&V*&/'OTJEX	/, 1* P P
 < < < <r   r  c                   :    \ rS rSrS r\S 5       r\S 5       rSrg)Ai{  c                     g r)   r   )r   rz   r   s      r   method_two_argsA.method_two_args|  s    r   c                      g r)   r   r   r   r   static_no_argsA.static_no_args      r   c                    g r)   r   args    r   positional_onlyA.positional_only  r  r   r   N)	r   r   r   r   r  r   r  r  r   r   r   r   r  r  {  s/        r   r  c                   V    \ rS rSr\R
                  S 5       rS rS rS r	S r
S rSrg	)
!TestErrorMessagesUseQualifiedNamei  c              #      #    U R                  [        5       nS v   S S S 5        U R                  [        WR                  5      U5        g ! , (       d  f       N4= f7fr)   )assertRaisesrK   r4   r   	exceptionr   messagecms      r   check_raises_type_error9TestErrorMessagesUseQualifiedName.check_raises_type_error  s>     y)R *R\\*G4 *)   AA.A
AAc                     SnU R                  U5         [        5       R                  S5        S S S 5        g ! , (       d  f       g = f)Nz?A.method_two_args() missing 1 required positional argument: 'y'rz   r  r  r  rX   s     r   test_missing_arguments8TestErrorMessagesUseQualifiedName.test_missing_arguments  s1    O))#.C$ /..	   7
Ac                     SnU R                  U5         [        R                  S5        S S S 5        g ! , (       d  f       g = f)Nz?A.static_no_args() takes 0 positional arguments but 1 was givenzoops it's an arg)r  r  r  rX   s     r   test_too_many_positional:TestErrorMessagesUseQualifiedName.test_too_many_positional  s0    O))#./0 /..s	   3
Ac                     SnU R                  U5         [        R                  SS9  S S S 5        g ! , (       d  f       g = f)NzYA.positional_only() got some positional-only arguments passed as keyword arguments: 'arg'rz   r  )r  r  r  rX   s     r   &test_positional_only_passed_as_keywordHTestErrorMessagesUseQualifiedName.test_positional_only_passed_as_keyword  s2    i))#.#& /..s   1
?c                     SnU R                  U5         [        5       R                  SS9  S S S 5        g ! , (       d  f       g = f)Nz<A.method_two_args() got an unexpected keyword argument 'bad'rz   )badr  rX   s     r   test_unexpected_keyword9TestErrorMessagesUseQualifiedName.test_unexpected_keyword  s4    L))#.CC( /..s	   5
Ac                     SnU R                  U5         [        5       R                  SSSS9  S S S 5        g ! , (       d  f       g = f)Nz8A.method_two_args() got multiple values for argument 'x'rz   r   oopsry   r  rX   s     r   test_multiple_values6TestErrorMessagesUseQualifiedName.test_multiple_values  s8    H))#.CSF3 /..r  r   N)r   r   r   r   
contextlibcontextmanagerr  r  r  r  r  r  r   r   r   r   r  r    s5     5 5
%
1
'
)
4r   r  c                   n    \ rS rSr\R
                  S 5       r\R
                  S 5       rS rS r	S r
Srg)	TestErrorMessagesSuggestionsi  c              #      #    U R                  [        5       nS v   S S S 5        U R                  SU S3[        WR                  5      5        g ! , (       d  f       N8= f7f)NzDid you mean 'z'?)r  rK   assertInr   r  r  s      r   check_suggestion_includes6TestErrorMessagesSuggestions.check_suggestion_includes  sE     y)R *wir2C4EF *)s   A A2A 
AA c              #      #    U R                  [        5       nS v   S S S 5        U R                  S[        WR                  5      5        g ! , (       d  f       N4= f7f)NzDid you mean)r  rK   assertNotInr   r  )r   r  s     r   check_suggestion_not_present9TestErrorMessagesSuggestions.check_suggestion_not_present  s>     y)R *R\\):; *)r  c           	      (   SS S.S jjn/ SQnU H\  u  p4U R                  U5         U(       a  U R                  U5      OU R                  5       nU   U" S0 US 0D6  S S S 5        S S S 5        M^     g ! , (       d  f       N= f! , (       d  f       M  = f)N)late1c                   g r)   r   )blechaaar  r  s       r   r   \TestErrorMessagesSuggestions.test_unexpected_keyword_suggestion_valid_positions.<locals>.foo  r>   r   ))blachN)aar  )orgsN)late11r  NNr   )r  r  r  )r   r   caseskeyword
suggestionctxs         r   2test_unexpected_keyword_suggestion_valid_positionsOTestErrorMessagesSuggestions.test_unexpected_keyword_suggestion_valid_positions  s~    	d 	
 $)Gg&DNd44Z@TXTuTuTw)74.)  '& $) S '&s#   +BA1B1
A?;B
B	c           	      J   SS jnSS jnSS jnSS jnSS jnSS jnSS jnUS4US	4US
4US4US4US4US4US44 H?  u  pU R                  U	5         U R                  U	5         U" S S9  S S S 5        S S S 5        MA     g ! , (       d  f       N= f! , (       d  f       Md  = f)Nc                     g r)   r   )noise
more_noiser$   r  s       r   substitution[TestErrorMessagesSuggestions.test_unexpected_keyword_suggestion_kinds.<locals>.substitution  r>   r   c                     g r)   r   )r  r  r$   blchs       r   eliminationZTestErrorMessagesSuggestions.test_unexpected_keyword_suggestion_kinds.<locals>.elimination  r>   r   c                     g r)   r   )r  r  r$   bluchins       r   additionWTestErrorMessagesSuggestions.test_unexpected_keyword_suggestion_kinds.<locals>.addition  r>   r   c                     g r)   r   )r  blucs     r   substitution_over_eliminationlTestErrorMessagesSuggestions.test_unexpected_keyword_suggestion_kinds.<locals>.substitution_over_elimination  r>   r   c                     g r)   r   )r  bluchis     r   substitution_over_additioniTestErrorMessagesSuggestions.test_unexpected_keyword_suggestion_kinds.<locals>.substitution_over_addition  r>   r   c                     g r)   r   )r  bluchas     r   elimination_over_additionhTestErrorMessagesSuggestions.test_unexpected_keyword_suggestion_kinds.<locals>.elimination_over_addition  r>   r   c                     g r)   r   )BLuchLuchfluchs      r   case_change_over_substitutionlTestErrorMessagesSuggestions.test_unexpected_keyword_suggestion_kinds.<locals>.case_change_over_substitution  r>   r   r  r  r  r  r  r  )bluch)NNNNr  )NNN)r  r  )
r   r  r  r  r  r  r  r  r   r  s
             r   (test_unexpected_keyword_suggestion_kindsETestErrorMessagesSuggestions.test_unexpected_keyword_suggestion_kinds  s    							 y!7#&!y!*G4'1&/*G4	!
D j)33J?t$ @ *)	!
 @? *)s$   B&B-B
BB
B"	c                 
   U R                  S5         SR                  SS9  S S S 5        U R                  [        SSR                  SS9  U R	                  5          SR                  SS9  S S S 5        U R	                  5          SR                  SSS9  S S S 5        U R                  S5         [        S	S
9  S S S 5        U R                  [        S[
        SS9  U R	                  5          [        SS9  S S S 5        U R	                  5          [        SS	S9  S S S 5        g ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nw= f! , (       d  f       g = f)Nmaxsplitr   r%   )maxspltz5split\(\) got an unexpected keyword argument 'blech'$)r  )r  r%  r   r  )namezz;ImportError\(\) got an unexpected keyword argument 'blech'$)r  r&  )r  splitrV   rK   r  r   r   s    r   .test_unexpected_keyword_suggestion_via_getargsKTestErrorMessagesSuggestions.test_unexpected_keyword_suggestion_via_getargs  s1   ++J7KKK" 8 	OKKq 	 	
 ..0KKaK  1..0KK1aK0 1 ++F3f% 4 	Uq 	 	
 ..0a  1..0av. 10- 87 1000 43 1000sG   DD0E,
E(
E#
E4
D-0
D>
E
E #
E14
Fr   N)r   r   r   r   r  r  r  r  r  r!  r(  r   r   r   r   r  r    sF    G G
 < <
*"#%J/r   r  c                       \ rS rSr\\R                  " \=(       a    \S5      \R                  " \	SL S5      S 5       5       5       r
Srg)TestRecursioni  zrequires deep stackNr  c                   ^^^^ U4S jmUU4S jmU4S jmU4S jm[        S5         T" S5        U R                  [        5         T" S5        S S S 5        T" S5        U R                  [        5         T" S5        S S S 5        T" S	5        U R                  [        5         T" S5        S S S 5        S S S 5        g ! , (       d  f       Ns= f! , (       d  f       NV= f! , (       d  f       N9= f! , (       d  f       g = f)
Nc                 ,   > U (       a  T" U S-
  5        g g rE  r   )rW  recurses    r   r.  .TestRecursion.test_super_deep.<locals>.recurse  s    ! r   c                 D   > U (       a  T" U S-
  U5        g T" US-
  5        g rE  r   )rW  rC   c_py_recurse
py_recurses     r   r2  1TestRecursion.test_super_deep.<locals>.py_recurse  s     1Q3"QqS!r   c                 N   > U (       a  [         R                  " TU S-
  4S5        g g )Nr%   r   r!  r  )rW  	c_recurses    r   r6  0TestRecursion.test_super_deep.<locals>.c_recurse  s#    --i!A#D r   c                 J   > U (       a  [         R                  " TSU 4S5        g g )NrH   r   r5  )rC   r2  s    r   r1  3TestRecursion.test_super_deep.<locals>.c_py_recurse  s!    --j4)RH r   i i_ i d   Z   )r   r  RecursionError)r   r1  r6  r2  r.  s    @@@@r   test_super_deepTestRecursion.test_super_deep
  s    
		"	E	I !)FO"">2  3cN"">2&! 3"">2W% 3 *)22 32 32 *)sS   C0	B=%C05	C>%C0#	C,C0=
C	C0
C	C0
C-	)C00
C>r   )r   r   r   r   r   r  r  r   r   r!  r=  r   r   r   r   r+  r+    sI     __W)+@A__Y$&(<=& > B &r   r+  c                       \ rS rSrS rSrg)TestFunctionWithManyArgsi-  c           	      L   S H  nU R                  US9   SR                  [        U5       Vs/ s H  nSU 3PM
     sn5      nSU SUS-   3n0 n[        U0 U5        U R	                  US   " [        U5      6 US-  5        S S S 5        M     g s  snf ! , (       d  f       M  = f)	N)r|  i  rH   )Nr   r$   zdef f(z) : return ar'   r<   )r  joinrJ   r  r4   )r   rB  ir  srcls         r   test_function_with_many_args5TestFunctionWithManyArgs.test_function_with_many_args.  s     A"xx%( ;(Q1QC( ;<tfLA7S"a   3q!2AqD9 #" ! ; #"s   BBABB
B#	r   N)r   r   r   r   rG  r   r   r   r   r@  r@  -  s    :r   r@  zneed _testcapic                       \ rS rSrS rSrg)TestCAPIi8  c                     S nS nU R                  U" U5      S0 45        U R                  U" USSS5      S0 45        U R                  U" USS	S
9SSS	045        g )Nc                      X4$ r)   r   )r  r  s     r   r   *TestCAPI.test_cfunction_call.<locals>.func;  s
    >!r   c                 j    U(       a  [         R                  " XU5      $ [         R                  " X5      $ r)   )r!  pycfunction_callr  s      r   PyCFunction_Call6TestCAPI.test_cfunction_call.<locals>.PyCFunction_Call@  s)     11$fEE 11$==r   r   r%   r'   r   r(  r  r   ry  r  rz  )r4   )r   r   rP  s      r   test_cfunction_callTestCAPI.test_cfunction_call:  sl    	"
	> 	)$/"b:)$1a89b/J)$1=5RS*?UVr   r   N)r   r   r   r   rR  r   r   r   r   rJ  rJ  8  s    Wr   rJ  __main__)3r  test.supportr   r   r   r   r   r   r	   r!  r   r  r   r-   r   r  r  sysr  r   r   TestCaser!   rR   r  r  r  r  r  r  r  r  r  r  r   r  r  r&  r  r  r  r  r  r  r  r  r+  r@  rJ  r   mainr   r   r   <module>rY     s   M M M    	  
 &S &H%% B z4("3"3 z4 z4z 
d"$89H
X.. H
 :H
VA%; A<"8 <1*@ 1"#9 "   -X3H%% X3v % & 

   
d"$89I<"" I< :I<V
 
 4(9(9 4 4B [/8#4#4 [/ [/z "&H%% "& "&J:x00 : 
d"$45Wx   W 6W$ zMMO K"  I  s"   G/ G> /G;:G;>H
	H
