
    3hhp                    "	   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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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$J%r%J&r&  S SK#J'r'J(r(  S SK)J*r*J+r+  S SK,J-r-J.r.  S S	K/J0r0J1r1J2r2  S S
K#J3r3J4r4  S SK5J6r6  S SK7J8r9  S SK7J:r;  S SK7J<r<  S SK7J=r=  S SK7J>r>  S SK7J?r?  \9R                  rA\AR                  S5      (       a  \ASS rA\" \A5      rAS rC\9R                  " 5       rES rFS rGS rHSR                  5       rJ " S S\R                  5      rLS rMS rNS rO\R                  S 5       rQS rRS  rSS! rTS" rUS# rVS$ rWS% rXS&rY " S' S(5      rZ " S) S*\L5      r[ " S+ S,\L5      r\ " S- S.\R                  5      r] " S/ S05      r^ " S1 S2\]5      r_ " S3 S4\R                  5      r` " S5 S6\R                  5      ra " S7 S8\]5      rb " S9 S:\]5      rc " S; S<\]5      rd " S= S>\]5      re " S? S@\]5      rf " SA SB\]5      rg " SC SD\]5      rh " SE SF\i5      rj " SG SH\i5      rkSI rl " SJ SK\R                  5      rm " SL SM\R                  5      rn " SN SO\R                  5      ro " SP SQ\R                  5      rp\i" 5       rq " SR SS\R                  5      rr " ST SU\R                  5      rs " SV SW\s5      rt " SX SY\t5      ru " SZ S[\R                  5      rv " S\ S]\R                  5      rw " S^ S_\R                  5      rx\6R                  " 5        " S` Sa\R                  5      5       r{ " Sb Sc\R                  5      r} " Sd Se\R                  5      r " Sf Sg\R                  5      r " Sh Si\R                  5      r " Sj Sk\R                  5      r " Sl Sm\R                  5      r " Sn So\R                  5      r " Sp Sq\R                  5      r " Sr Ss5      r " St Su\R                  5      r " Sv Sw\R                  5      r " Sx Sy\R                  5      r " Sz S{\R                  5      r\S|:X  a  \GR                  " 5         gg! \" a    Sr! GN	f = f)}    Nnormcase)Unpack)ThreadPoolExecutor)cpython_onlyimport_helpersuppress_immortalization)MISSING_C_DOCSTRINGS	ALWAYS_EQ)DirsOnSysPathready_to_import)TESTFNtemp_cwd)assert_python_okassert_python_failurekill_python)has_subprocess_supportSuppressCrashReport)support)inspect_fodder)inspect_fodder2)inspect_stock_annotations)inspect_stringized_annotations) inspect_stringized_annotations_2)%inspect_stringized_annotations_pep695)coc                      [        U 5      4U-   $ Nr   )filenameargss     G/opt/python-3.13.8/usr/lib/python3.13/test/test_inspect/test_inspect.pyreviser$   H   s    X 4''    c                  \    [         R                  (       a  [        R                  " S 5        g g r    )r   has_socket_supportasyncioset_event_loop_policy r%   r#   tearDownModuler+   N   s    !!%%d+ "r%   c               #   *  #    / SQn [        SS[        U 5      -  5       Ho  n/ nSn[        [        U 5      5       H$  nXU-  -  (       d  M  UR                  X   5        M&     SSR                  U5      -   S-   n0 n[	        XVU5        US   v   Mq     g7f)	z
Yields a whole bunch of functions with only keyword-only parameters,
where those parameters are always in lexicographically sorted order.
)abarr   deltaephraimmagicalyoyoz      zdef foo(*, z, z): passfooN)rangelenappendjoinexec)
parametersipbitjfn_textsymbolss          r#   5signatures_with_lexicographic_keyword_only_parametersrC   S   s     
 OJ1aZ()s:'A1H~~' (  $))A,.:Ww'en *s   ABABc                     g r    r*   )throwoutthebabywith_the_	bathwaters          r#   #unsorted_keyword_only_parameters_fnrL   e   s    r%   z'throw out the baby with_ the_ bathwaterc                   z   \ rS rSr\" \R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                   \R"                  \R$                  \R&                  \R(                  /5      rS rS rSrg)
IsTestBasek   c           	         [        U5      nU R                  U" U5      UR                  < SU< S35        U R                  [	        U/5      -
   H  nU[
        R                  :X  d(  U[
        R                  :X  d  U[
        R                  :X  a  U[
        R                  :X  a  MU  U R                  U" U5      SUR                  < SU< S35        M     g )N()znot )eval
assertTrue__name__
predicatessetinspectisgeneratorfunctionisasyncgenfunctioniscoroutinefunction
isfunctionassertFalse)self	predicateexpobjothers        r#   istestIsTestBase.istestt   s    3i	#I4F4F(LM__sI;'77EW888G666G777***U3Z)MN 8r%   c                 8    [         R                  " U [        SS9  g )N)modulesbyfile)not_exported)r   check__all__rX   r^   s    r#   test__all__IsTestBase.test__all__   s    T79KLr%   r*   N)rU   
__module____qualname____firstlineno__rW   rX   	isbuiltinisclassiscodeisframer\   ismethodismoduleistracebackisgeneratorrY   iscoroutiner[   
isasyncgenrZ   ismethodwrapperrV   rc   rj   __static_attributes__r*   r%   r#   rN   rN   k   s    g'''..oow'9'97;K;K&&(;(;))7+F+F))7+F+F(('*D*D--/ 0J
OMr%   rN   c              #   8   #    [        S5       H  nUv   M	     g 7fNr5   r7   r^   r=   s     r#   generator_function_exampler      s     1X    c                H   #    [        S5        S h  vN nU7v   M   N
 g 7fr|   r}   r~   s     r#    async_generator_function_exampler      s     8 a8s   "  " "c                    #    g7fNspamr*   ri   s    r#   coroutine_function_exampler      s        c              #      #    S v   g7fr   r*   ri   s    r#   gen_coroutine_function_exampler      s     	   c                      g r    r*   r*   r%   r#   meth_noargsr          4r%   c                    g r    r*   objects    r#   meth_or          tr%   c                    g r    r*   ri   s    r#   meth_self_noargsr          tr%   c                    g r    r*   )r^   r   s     r#   meth_self_or          $r%   c                    g r    r*   types    r#   meth_type_noargsr      r   r%   c                    g r    r*   )r   r   s     r#   meth_type_or      r   r%   c                 F   ^  [         R                  " T 5      U 4S j5       nU$ )Nc                     > T" U 0 UD6$ r    r*   r"   kwargsfuncs     r#   wrapped!identity_wrapper.<locals>.wrapped   s    T$V$$r%   	functoolswraps)r   r   s   ` r#   identity_wrapperr      s#    __T% %Nr%   )r"   ..var_positionalr   ..var_keyword.c                        \ rS rSrS rS rSrg)custom_descriptor   c                     Xl         g r    r   r^   r   s     r#   __init__custom_descriptor.__init__   s    	r%   c                 8    U R                   R                  X5      $ r    )r   __get__r^   instanceowners      r#   r   custom_descriptor.__get__   s    yy  11r%   r   N)rU   rl   rm   rn   r   r   rz   r*   r%   r#   r   r      s    2r%   r   c                   J    \ 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)TestPredicates   c           	      "	   U R                  [        R                  S5        U R                  [        R                  S5        U R                  [        R                  S5         SS-    S qU R                  [        R                   S
5        U R                  [        R                   S5        U R                  [        R"                  S5        U R                  [        R"                  S5        U R                  [        R$                  S5        U R                  [        R&                  S5        U R                  [        R(                  S5        U R                  [        R*                  S5        U R                  [        R,                  S5        U R                  [        R.                  S5        U R                  [        R0                  S5        [2        R4                  " 5          [2        R6                  " S5        U R                  [        R8                  S5        U R                  [        R:                  S5        S S S 5        [        [        S5      (       a!  U R                  [        R<                  S5        O=U R                  [        R<                  " [>        R@                  RB                  5      5        U R                  [        RD                  S5        U R                  [        RD                  S5        U R                  [        RD                  S5        U R                  [        RD                  " [        5      5        U R                  [        RD                  " [F        5      5        U R                  [        RD                  " [        SS0 5      5      5        g ! [         a  nUR
                  qU R                  [        R                  S5        U R                  [        R                  S5        [        [        S5      (       a&  U R                  [        R                  S	5         S nAGNU R                  [        R                  " [        [        R                  5      R                  5      5         S nAGN	S nAff = f! S qf = f! , (       d  f       GNQ= f)Nzsys.exitz	[].appendzmod.spam.__code__r4   r   ztb.tb_frametbGetSetDescriptorTypeztype(tb.tb_frame).f_localszmod.spamzmod.StupidGit.abusez	git.arguezmod.custom_methodmodzint.__add__z'collections.defaultdict.default_factoryz(x for x in range(2))r   z#async_generator_function_example(1)r   ignorezcoroutine_function_example(1)r   MemberDescriptorTypezdatetime.timedelta.dayszobject().__str__zobject().__eq__zobject().__repr__AnyClassr*   )$rc   rX   ro   rq   	Exception__traceback__r   rr   ru   hasattrtypesisgetsetdescriptorr]   r   tb_framef_localsr\   rs   rt   ismethoddescriptorisdatadescriptorrv   rY   rx   rZ   warningscatch_warningssimplefilterrw   r[   ismemberdescriptordatetime	timedeltadaysry   intr^   es     r#   test_excluding_predicates(TestPredicates.test_excluding_predicates   s   G%%z2G%%{3GNN$78	aC BG&&
3G&&(=>G$$k2G$$&9:G$$e,G..>G,,.WXG'')@AG//1MNG&&9	;G..6	8 $$&!!(+KK++-LMKK335QR '
 5011KK224MNW778J8J8O8OPQG++-?@G++->?G++-@A0067005600j"b1IJKQ  	YBKK7KK++T2u455G668: :   !;!;D<M<V<V!WXX	Y B '&sE   "N AQ?
Q5BQ0Q8 $AQ0*Q8 0Q55Q8 8Q<?
Rc           	      ,  ^ [        S5      n[        S5      n[        S5      n " S S5      nU" 5       nUR                  nUR                  nUR
                  nUR                  n	UR                  n
UR
                  nU R                  [        R                  " [        5      5        U R                  [        R                  " [        R                  " [        R                  " [        5      5      5      5        U R                  [        R                  " U5      5        U R                  [        R                  " U
5      5        U R                  [        R                  " [        5      5        U R                  [        R                  " U5      5        U R                  [        R                  " [        5      5        U R                  [        R                  " [        R                  " [        R                  " [        5      5      5      5        U R                  [        R                  " U5      5        U R                  [        R                  " U
5      5        U R                  [        R                  " U5      5        S m[        R                  U4S j5       nU R                  [        R                  " U5      5        U R                  [        R                  " [        R                  " U4S j5      5      5         " S S5      nU R                  [        R                  " U5      5        U R                  [        R                  " U" 5       5      5        U R                  [        R                  " [        R                  " U" 5       5      5      5         " S	 S
5      nU R                  [        R                  " U5      5        U R                  [        R                  " U" 5       5      5        U R                  [        R                  " [        R                  " U" 5       5      5      5         " S S5      nU R                  [        R                  " UR                   5      5        U R                  [        R                  " UR"                  5      5        U R                  [        R                  " [$        R&                  R)                  5       5      5        U R                  [        R                  " [$        R&                  R+                  5       5      5        U R                  [        R                  " [        5      5        U R                  [        R                  " [        R                  " [        R                  " [        5      5      5      5        U R                  [        R                  " U5      5        U R                  [        R                  " U5      5        U R                  [        R                  " U5      5        U R                  [        R                  " [$        R&                  R)                  5       5      5        U R                  [        R                  " [$        R&                  R+                  5       5      5        U R                  [        R                  " [        5      5        U R                  [        R                  " [        R                  " [        R                  " [        5      5      5      5        U R                  [        R                  " U5      5        U R                  [        R                  " U5      5        U R                  [        R                  " U5      5        U R                  [        R,                  " [$        R&                  R)                  5       5      5        U R                  [        R,                  " [$        R&                  R+                  5       5      5        U R                  [        R,                  " [        5      5        U R                  [        R,                  " [         5      5        U R                  [        R,                  " [        R                  " [        R                  " [         5      5      5      5        U R                  [        R,                  " U5      5        U R                  [        R,                  " U	5      5        U R                  [        R.                  " U5      5        UR1                  5         UR1                  5         g )Nr4   c                       \ rS rSr\R
                  " \5      r\R
                  " \5      r	\R
                  " \
5      rSrg)0TestPredicates.test_iscoroutine.<locals>.PMClass   r*   N)rU   rl   rm   rn   r   partialmethodr   %async_generator_partialmethod_exampler   coroutine_partialmethod_exampler   #gen_coroutine_partialmethod_examplerz   r*   r%   r#   PMClassr      s>    4=4K4K0521.7.E.E*/,+2;2I2I.30/r%   r   c                     #    g 7fr    r*   r*   r%   r#   _fn3-TestPredicates.test_iscoroutine.<locals>._fn3  s     r   c                     > T " 5       $ r    r*   r   s   r#   fn3,TestPredicates.test_iscoroutine.<locals>.fn3  s
    6Mr%   c                     > T " 5       $ r    r*   r   s   r#   <lambda>1TestPredicates.test_iscoroutine.<locals>.<lambda>  s    dfr%   c                       \ rS rSrS rSrg)+TestPredicates.test_iscoroutine.<locals>.Cli"  c                    #    g 7fr    r*   ri   s    r#   __call__4TestPredicates.test_iscoroutine.<locals>.Cl.__call__#  s     r   r*   NrU   rl   rm   rn   r   rz   r*   r%   r#   Clr   "      r%   r   c                   8    \ rS rSr\R
                  S 5       rSrg),TestPredicates.test_iscoroutine.<locals>.Cl2i.  c                     g r    r*   ri   s    r#   r   5TestPredicates.test_iscoroutine.<locals>.Cl2.__call__/      r%   r*   N)rU   rl   rm   rn   rX   markcoroutinefunctionr   rz   r*   r%   r#   Cl2r   .  s    ** +r%   r   c                   p    \ rS rSr\R
                  \S 5       5       r\R
                  \S 5       5       r	Sr
g),TestPredicates.test_iscoroutine.<locals>.Cl3;  c                     g r    r*   clss    r#   do_something_classy@TestPredicates.test_iscoroutine.<locals>.Cl3.do_something_classy<       r%   c                      g r    r*   r*   r%   r#   do_something_static@TestPredicates.test_iscoroutine.<locals>.Cl3.do_something_staticA  r  r%   r*   N)rU   rl   rm   rn   rX   r   classmethodr  staticmethodr  rz   r*   r%   r#   Cl3r   ;  sD    **  + **  +r%   r  )r   r   r   r   r   r   r]   rX   r[   r   partialrw   rT   rY   rv   r   r  r  unittestmockMock	AsyncMockrZ   rx   close)r^   async_gen_corogen_corocoror   pm_instanceasync_gen_coro_pmigen_coro_pmicoro_pmiasync_gen_coro_pmcgen_coro_pmccoro_pmcr   r   r   r  r   s                   @r#   test_iscoroutineTestPredicates.test_iscoroutine   sO   9!<1!4)!,	0 	0 i(NN"FF>> %JJBB::''(FG	I''!!)"3"32#4 56	7 	44\BC44\BC44W=>,,X67''(FG	I''!!)"3"32#4 56	7 	33LAB33LAB++H56	 
	&	&	 
'	 	33C89''--n=	
	 	 	44R8944RT:;33))"$/
 		 	
 	44S9:44SU;<33))#%0
 			 		 	33C4K4KLM33C4K4KLM''(:(:(<=	?''(?(?(AB	D''(BC	E''!!)"3"3.#0 12	3 	33H=>33H=>++D12''(:(:(<=	?''(?(?(AB	D''(BC	E''!!)"3"3.#0 12	3 	44X>?44X>?,,T23&&x}}'9'9';<	>&&x}}'>'>'@A	C&&'AB	D&&'GH	J&&!!)"3"34#6 78	9 	223EFG223EFG**>:;

hnn&r%   c                    S nU R                  [        R                  " U" 5       5      5        [        S5      n[	        S5      nU R                  [        R                  " U5      5        U R                  [        R                  " U5      5         " S S5      nU R                  [        R                  " U" 5       5      5        U R                  [        R                  " U5      5         " S S5      nU" 5       nS Ul        U R                  [        R                  " U5      5        UR                  5         UR                  5         g )Nc               3      #    S v   g 7fr    r*   r*   r%   r#   gen,TestPredicates.test_isawaitable.<locals>.genx  s     5r   r4   c                       \ rS rSrS rSrg)/TestPredicates.test_isawaitable.<locals>.Future  c                      g r    r*   r*   r%   r#   	__await__9TestPredicates.test_isawaitable.<locals>.Future.__await__      r%   r*   N)rU   rl   rm   rn   r'  rz   r*   r%   r#   Futurer$    r   r%   r*  c                       \ rS rSrSrg)2TestPredicates.test_isawaitable.<locals>.NotFuturei  r*   NrU   rl   rm   rn   rz   r*   r%   r#   	NotFuturer,    s    r%   r.  c                      g r    r*   r*   r%   r#   r   1TestPredicates.test_isawaitable.<locals>.<lambda>      Dr%   )r]   rX   isawaitabler   r   rT   r'  r  )r^   r!  r  r  r*  r.  not_futs          r#   test_isawaitableTestPredicates.test_isawaitablew  s    ,,SU34)!,1!4++D12++H56	 	 	++FH56,,V45+(,,W56

hnn&r%   c           	      	   U R                  [        R                  " [        R                  5      5        U R                  [        R                  " [
        R                  5      5        U R                  [        R                  " / R                  5      5        U R                  [        R                  " [
        R                  5      5        U R                  [        R                  " [
        R                  R                  5      5        U R                  [        R                  " [        R                  5      5        U R                  [        R                  " [        R                  5      5        U R                  [        R                  " [        R                  5      5        U R                  [        R                  " [        R                  5      5        U R                  [        R                  " [        5       R                  5      5        U R                  [        R                  " [        5       R                  5      5        U R                  [        R                  " [        5       R                  5      5        U R                  [        R                  " SR                  5      5        U R                  [        R                  " [         R"                  5      5        U R                  [        R                  " [$        R&                  5      5        U R                  [        R                  " SR"                  5      5        U R                  [        R                  " / R&                  5      5        U R)                  [        R                  " [        5      5        U R)                  [        R                  " [        5       5      5        U R)                  [        R                  " [!        5       5      5        U R)                  [        R                  " [
        5      5        U R)                  [        R                  " [*        5      5        U R)                  [        R                  " [        5      5        U R)                  [        R                  " [+        SS0 5      5      5        U R)                  [        R                  " [,        R.                  " [
        R                  5      5      5        g )N*    
some_classr*   )rT   rX   	isroutinegitarguer   custom_methodcountr   	StupidGitabuser   r   __str____lt__r   strr:   listr9   r]   r   r   r  ri   s    r#   test_isroutineTestPredicates.test_isroutine  s   ))#))45))#*;*;<=))"((34))#((34))#--*=*=>?))&//:;))&..9:))&--89))#**56))&(*;*;<=))&(*:*:;<))&(//:;))2++67))#((34))$++67))"''23))"))45**623**6845**3512**3/0**401**3/0**4b"+EFG**9+<+<SXX+FGHr%   c                 (   U R                  [        R                  " [        R                  " [
        R                  5      5      5         " S S5      nU R                  [        R                  " UR                  5      5        U R                  [        R                  " U" 5       R                  5      5        U R                  [        R                  " UR                  5      5        U R                  [        R                  " UR                  5      5        g )Nc                       \ rS rSr\R
                  S 5       r\R
                  \S 5       5       r\R
                  \	S 5       5       r
Srg)7TestPredicates.test_isroutine_singledispatch.<locals>.Ai  c                     g r    r*   )r^   args     r#   method>TestPredicates.test_isroutine_singledispatch.<locals>.A.method  r   r%   c                     g r    r*   r  rK  s     r#   class_methodDTestPredicates.test_isroutine_singledispatch.<locals>.A.class_method  r  r%   c                     g r    r*   )rK  s    r#   static_methodETestPredicates.test_isroutine_singledispatch.<locals>.A.static_method  r  r%   r*   N)rU   rl   rm   rn   r   singledispatchmethodrL  r
  rP  r  rS  rz   r*   r%   r#   ArI    sZ    ++ ,++  ,++  ,r%   rV  )
rT   rX   r:  r   singledispatchr   r   rL  rS  rP  r^   rV  s     r#   test_isroutine_singledispatch,TestPredicates.test_isroutine_singledispatch  s    )))*B*B388*LMN	 	 	))!((34))!#**56))!//:;))!..9:r%   c                    U R                  [        R                  S5        U R                  [        R                  " [        5      5         " S S[
        5      nU R                  [        R                  " U" 5       5      5        g )Nzmod.StupidGitc                       \ rS rSrS rSrg)2TestPredicates.test_isclass.<locals>.CustomGetattri  c                     g r    r*   r^   attrs     r#   __getattr__>TestPredicates.test_isclass.<locals>.CustomGetattr.__getattr__      r%   r*   NrU   rl   rm   rn   ra  rz   r*   r%   r#   CustomGetattrr]        r%   re  )rc   rX   rp   rT   rD  r   r]   )r^   re  s     r#   test_isclassTestPredicates.test_isclass  sP    GOO_5-.	F 	 	9:r%   c                      " S S[         5      nU" 5       nSUl        [        [        R                  " U5      5      nU R                  SU5        U R                  SU5        g )Nc                       \ rS rSrSrSrg)/TestPredicates.test_get_slot_members.<locals>.Ci  r-   br*   NrU   rl   rm   rn   	__slots__rz   r*   r%   r#   Crk    s    "Ir%   rp  r7  r-   rm  )r   r-   dictrX   
getmembersassertInassertNotIn)r^   rp  xmemberss       r#   test_get_slot_members$TestPredicates.test_get_slot_members  sO    	# 	#Cw))!,-c7#g&r%   c                   ^ SSK JnJm   " U4S jSUS9n " S SU5      nU" 5       nU R                  [        R
                  " U5      5        U R                  [        R
                  " U5      5        U R                  [        R
                  " U5      5        U R                  [        R
                  " [        5      5        U R                  [        R
                  " S5      5        g )	Nr   ABCMetaabstractmethodc                   (   > \ rS rSr Y S 5       rSrg)<TestPredicates.test_isabstract.<locals>.AbstractClassExamplei  c                     g r    r*   ri   s    r#   r6   @TestPredicates.test_isabstract.<locals>.AbstractClassExample.foo  r   r%   r*   NrU   rl   rm   rn   r6   rz   r|  s   r#   AbstractClassExampler~    s     r%   r  	metaclassc                       \ rS rSrS rSrg)4TestPredicates.test_isabstract.<locals>.ClassExamplei  c                     g r    r*   ri   s    r#   r6   8TestPredicates.test_isabstract.<locals>.ClassExample.foo  r)  r%   r*   Nr  r*   r%   r#   ClassExampler    r   r%   r     )abcr{  r|  rT   rX   
isabstractr]   r   )r^   r{  r  r  r-   r|  s        @r#   test_isabstractTestPredicates.test_isabstract  s    /	W 		/ 	 N 	**+?@A++L9:++A./++C01++A./r%   c                   ^^	 SSK JnJm  / m	 " U	4S jSUS9n " U4S jSU5      n " S S	U5      nU R                  T	S
S/5        T	R	                  5          " S SU5      n " S SU5      n " S SU5      nU R                  T	/ SQ5        g )Nr   rz  c                   "   > \ rS rSrU 4S jrSrg)LTestPredicates.test_isabstract_during_init_subclass.<locals>.AbstractCheckeri  c                 P   > TR                  [        R                  " U 5      5        g r    )r9   rX   r  )r  isabstract_checkss    r#   __init_subclass__^TestPredicates.test_isabstract_during_init_subclass.<locals>.AbstractChecker.__init_subclass__  s    !((););C)@Ar%   r*   N)rU   rl   rm   rn   r  rz   )r  s   r#   AbstractCheckerr    s    B Br%   r  r  c                   (   > \ rS rSr Y S 5       rSrg)QTestPredicates.test_isabstract_during_init_subclass.<locals>.AbstractClassExamplei  c                     g r    r*   ri   s    r#   r6   UTestPredicates.test_isabstract_during_init_subclass.<locals>.AbstractClassExample.foo  r   r%   r*   Nr  r  s   r#   r  r    s     r%   r  c                       \ rS rSrS rSrg)ITestPredicates.test_isabstract_during_init_subclass.<locals>.ClassExamplei  c                     g r    r*   ri   s    r#   r6   MTestPredicates.test_isabstract_during_init_subclass.<locals>.ClassExample.foo  r)  r%   r*   Nr  r*   r%   r#   r  r    r   r%   r  TFc                       \ rS rSrSrg)JTestPredicates.test_isabstract_during_init_subclass.<locals>.AbstractChildi  r*   Nr-  r*   r%   r#   AbstractChildr        r%   r  c                       \ rS rSrSrg)OTestPredicates.test_isabstract_during_init_subclass.<locals>.AbstractGrandchildi  r*   Nr-  r*   r%   r#   AbstractGrandchildr    r  r%   r  c                       \ rS rSrSrg)OTestPredicates.test_isabstract_during_init_subclass.<locals>.ConcreteGrandchildi  r*   Nr-  r*   r%   r#   ConcreteGrandchildr    r  r%   r  )TTF)r  r{  r|  assertEqualclear)
r^   r{  r  r  r  r  r  r  r|  r  s
           @@r#   $test_isabstract_during_init_subclass3TestPredicates.test_isabstract_during_init_subclass  s    /	B 	B	? 		/ 	 	*T5M:!	0 		 		 	*,?@r%   r*   N)rU   rl   rm   rn   r   r  r4  rE  rY  rg  rw  r  r  rz   r*   r%   r#   r   r      s6    /LfN(`'."IH;*;'0,Ar%   r   c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
TestInterpreterStacki  c                 z    [         R                  R                  " U /UQ70 UD6  [        R	                  SSS5        g )N      	   )r  TestCaser   r;  r@  r^   r"   r   s      r#   r   TestInterpreterStack.__init__	  s0    ""49$9&9		!Qr%   c                     U R                  [        R                  S5        U R                  [        R                  S5        g )Nzgit.ex.__traceback__zmod.fr)rc   rX   ru   rr   ri   s    r#   test_abuse_done$TestInterpreterStack.test_abuse_done  s)    G'')?@GOOX.r%   c           	         U R                  [        [        R                  5      S:  5        [        R                  tpp4n[	        USS  6 nU R                  U[        SSS/S45        U R                  UR                  [        R                  " SSSS5      5        [	        USS  6 nU R                  U[        SS	S
/S45        U R                  UR                  [        R                  " SSSS5      5        [	        USS  6 nU R                  U[        SSS/S45        U R                  UR                  [        R                  " SSSS5      5        [	        USS  6 nU R                  U[        SSS/S45        U R                  UR                  [        R                  " SSSS5      5        [        R                  S   nU R                  UR                  [        R                  5        U R                  UR                  S5        U R                  UR                  [        R                  5        U R                  UR                   S5        U R#                  SUR$                  S   5        U R                  UR&                  S5        g )Nr  r4      eggsz    st = inspect.stack()
r   r     r       eggs(b + d, c + f)
      +   r<              spam(a, b, c)
      '   r@  z        self.argue(a, b, c)
r     zinspect.stack())rT   r8   r   str$   r  modfile	positionsdis	PositionsassertIsframefrlinenor!   __file__functionrs  code_contextindex)r^   frame1frame2frame3frame4_	frameinforecords           r#   
test_stackTestInterpreterStack.test_stack  s   CFFq()-0VV*F12J'	r6$@#A1E	G))3==RB+GHF12J'	q&#=">B	D))3==Aq"+EFF12J'	r7%B$CQG	I))3==RR+HIF12J'	r7%D$EqI	K))3==RB+GHfllCFF++#,,7&1')<)<Q)?@q)r%   c           	         U R                  [        [        R                  5      S5        [        R                  u  pnU R                  [	        USS  6 [
        SSS/S45        U R                  UR                  [        R                  " SSSS5      5        U R                  [	        USS  6 [
        S	S
S/S45        U R                  UR                  [        R                  " S	S	SS5      5        U R                  [	        USS  6 [
        SSS/S45        U R                  UR                  [        R                  " SSSS5      5        g )N   r4   r  r<  r  r   r  r  r  r   r  r  r     r  z    q = y / 0
r     )	r  r8   r;  trr$   r  r  r  r  )r^   r  r  r  s       r#   
test_traceTestInterpreterStack.test_trace.  s    SVVa("%&&,r7%B$CQG	I))3==RR+HI,q&#=">B	D))3==Aq"+EF,r6$5#6:	<))3==RB+GHr%   c                 <   [         R                  " [        R                  5      u  pp4U R	                  USS/5        U R	                  US 5        U R	                  US 5        U R	                  USSSS.5        U R	                  [         R
                  " XX45      S5        g )Nru  y      )ru  r>   r  z(x=11, y=14))rX   getargvaluesr   r  r  formatargvaluesr^   r"   varargsvarkwlocalss        r#   
test_frameTestInterpreterStack.test_frame;  s    '.';';CFF'C$uSz*$'%r!<=00N'	)r%   c                 $   [         R                  " [        R                  R                  5      u  pp4U R                  U/ SQ5        U R                  US5        U R                  US5        U R                  [         R                  " XX45      S5        g )N)r-   rm  r   dr   fghz-(a=7, b=8, c=9, d=3, e=4, f=5, *g=(), **h={}))rX   r  r   r  f_backr  r  r  s        r#   test_previous_frame(TestInterpreterStack.test_previous_frameD  sp    '.';';CFFMM'J$u=>#&$00N<	>r%   r*   N)rU   rl   rm   rn   r   r  r  r  r  r  rz   r*   r%   r#   r  r    s!    
/*8I)>r%   r  c                   *    \ rS rSrSrS rS rS rSrg)GetSourceBaseiL  Nc                     [        [        R                  " U R                  5      SS9 nUR	                  5       U l        S S S 5        g ! , (       d  f       g = f)Nutf-8encoding)openrX   getsourcefilefodderModulereadsource)r^   fps     r#   setUpGetSourceBase.setUpP  s:    '''(9(9:WMQS'')DK NMMs   A
Ac                     U R                   R                  S5      nSR                  X1S-
  U 5      U(       a  S-   $ S-   $ )N
r4   r8  )r  splitr:   )r^   topbottomliness       r#   sourcerangeGetSourceBase.sourcerangeT  s=    !!$'yy1uV,-HHRHHr%   c                 n    U R                  [        R                  " U5      U R                  X#5      5        g r    )r  rX   	getsourcer  )r^   ra   r	  r
  s       r#   assertSourceEqualGetSourceBase.assertSourceEqualX  s+    **3/))#6	8r%   )r  )	rU   rl   rm   rn   r   r  r  r  rz   r*   r%   r#   r  r  L  s    L$I8r%   r  c                   "    \ rS rSrSrSSS.rSrg)SlotUseri\  zDocstrings for __slots__measured in kilowattsmeasured in kilometers)powerdistancer*   N)rU   rl   rm   rn   __doc__ro  rz   r*   r%   r#   r  r  \  s    157Ir%   r  c                      \ rS rSr\rS rS r\R                  " \
R                  R                  S:  S5      S 5       r\R                  " \
R                  R                  S:  S5      S 5       r\R                  " \S5      S	 5       r/ S
QrS r\S 5       rS rS rS rS rS rS rS rS rS rS rS r\ " 5       S 5       r!S r"S r#S r$S r%S r&S r'Sr(g )!TestRetrievingSourceCodeia  c                    [         R                  " [        [         R                  5      nU R	                  US[        R
                  4S[        R                  4S[        R                  4S[        R                  4S[        R                  4S[        R                  4/5        [         R                  " U Vs/ s H  o"S   PM	     sn5      nU R	                  U[        S4[        R                  [        44[        R
                  [        R                  [        R                  44/[        R                  [        44[        R                  [        R                  44[        R
                  [        R                  [        R                  44//[        R                  [        44//5        [         R                  " U Vs/ s H  o"S   PM	     snS	5      nU R	                  U[        S4[        R                  [        44[        R                  [        44[        R                  [        R                  44[        R
                  [        R                  [        R                  44//[        R                  [        44//5        g s  snf s  snf )
NFesteringGobMalodorousPervertParrotDroppingsr?  TitWhichCommentsr4   r*   T)rX   rr  r   rp   r  r  r  r  r?  r   getclasstreer   )r^   classesr  trees       r#   test_getclasses(TestRetrievingSourceCode.test_getclassesd  s,   $$S'//:)3+;+;<.0E0EF,c.A.AB&6 #"7"78*C,=,=>	 ##w$?wVw$?@!2,//&; --0E0E363F3F0H I   MMF95 22S]]4DE!..1F1F474G4G1I J 
 !..	;	 ##w$?wVw$?F!2,//&;MMF95 22S]]4DE!..1F1F474G4G1I J 
 !..	;
	# %@  %@s   6J <Jc                    [         R                  " [        [         R                  5      nU R	                  US[        R
                  4S[        R                  4S[        R                  4S[        R                  4/5        g )Nafter_closingr  lobbestr   )	rX   rr  r   r\   r  r'  r  r(  r   )r^   	functionss     r#   test_getfunctions*TestRetrievingSourceCode.test_getfunctions  s`    &&sG,>,>?	os7H7H%I&,chh%7&/%=&,chh%7%9 	:r%   r5   z)Docstrings are omitted with -O2 and abovec                    U R                  [        R                  " [        5      S5        U R                  [        R                  " [        R                  5      S5        U R                  [        R                  " [
        R                  5      S5        U R                  [        R                  " [        R                  5      S5        U R                  [        R                  " [        R                  5      S5        g )NzA module docstring.A longer,

indented

docstring.$Another

docstring

containing

tabsr  r  )
r  rX   getdocr   r?  r;  r@  r  r  r  ri   s    r#   test_getdoc$TestRetrievingSourceCode.test_getdoc  s     	,.CD6>	@		2E	G70	2(9(9:1	3r%   c                    U R                  [        R                  " [        R                  5      S5        U R                  [        R                  " [        R                  R
                  5      S5        U R                  [        R                  " [        R                  " 5       R
                  5      S5        U R                  [        R                  " [        R                  R                  5      S5        g )Nr-  r.  zThe automatic gainsaying.)r  rX   r/  r   r  r@  contradictionri   s    r#   test_getdoc_inherited.TestRetrievingSourceCode.test_getdoc_inherited  s     	(8(89>	@(8(8(>(>?E	G(8(8(:(@(@AE	G(8(8(F(FG4	6r%   ztest requires docstringsc                 p   [         R                  nU R                  U" [        5      [        R                  5        U R                  U" [        R
                  5      [        R
                  R                  5        U R                  U" [        5       R
                  5      [        R
                  R                  5        U R                  U" [        R                  5      [        R                  R                  5        U R                  U" [        R                  5      [        R                  R                  5        g r    )rX   _finddocr  r   r  to_bytes
from_bytesreal)r^   finddocs     r#   test_finddoc%TestRetrievingSourceCode.test_finddoc  s    ""s{{3.0D0DE0#,,2F2FG0#..2H2HI*CHH,<,<=r%   ))z An
  indented
   docstring.zAn
indented
 docstring.)z# An 
   
  indented 
   docstring. zAn 
 
indented 
 docstring. )z'doc string

  second line
  third line z#doc string

second line
third line )z   r8  )z+


  first paragraph

   second paragraph

z'


first paragraph

 second paragraph

)z   
 
  
   z	
 
  
   c                    [         R                  n[        U R                  5       HI  u  nu  p4UR	                  S5      nU R                  US9   U R                  U" U5      U5        S S S 5        MK     g ! , (       d  f       M]  = f)Nr  r=   )rX   cleandoc	enumeratecleandoc_testdatastripsubTestr  )r^   r   r=   inputexpecteds        r#   test_cleandoc&TestRetrievingSourceCode.test_cleandoc  sl    $-d.D.D$E A ~~d+H"  eh7 #" %F #"s   A44
B	c                 8    SS K nUR                  n[        U R                  5       H8  u  nu  pEU R                  US9   U R                  U" U5      U5        S S S 5        M:     g ! [         a    [        R                  " S5      s $ f = f! , (       d  f       Mr  = f)Nr   zrequires _testinternalcapir?  )	_testinternalcapiImportErrorr  skipcompiler_cleandocrA  rB  rD  r  )r^   rJ  r   r=   rE  rF  s         r#   test_c_cleandoc(TestRetrievingSourceCode.test_c_cleandoc  s    	?$ !22$-d.D.D$E A "  eh7 #" %F  	?==!=>>	? #"s   A$ B
$ BB

B	c                    U R                  [        R                  " [        5      S5        U R                  [        R                  " [        R                  5      S5        U R                  [        R                  " [
        R                  5      S5        [        SSS5      nU R                  [        R                  " U5      5        U R                  [        R                  " [        5      5        g )N	# line 1
z
# line 20
z# line 159
x=1z_non_existing_filename.pyr;   )
r  rX   getcommentsr   r?  mod2cls160compileassertIsNonerD  )r^   cos     r#   test_getcomments)TestRetrievingSourceCode.test_getcomments  s    ,,S1<@,,S]];]K,,T[[9>JU7@'--b12'--d34r%   c                    U R                  [        R                  " [        5      [        5        U R                  [        R                  " [        R                  5      [        5        U R                  [        R                  " [        R                  R
                  5      [        5        U R                  [        R                  " [        R                  R
                  5      [        5        U R                  [        R                  " [        5      [        R                  S   5        U R                  [        R                  " S [        5      [        5        g )Nbuiltins)
r  rX   	getmoduler   r?  r@  rC  sysmodulesr  ri   s    r#   test_getmodule'TestRetrievingSourceCode.test_getmodule  s    **3/5**3==93?**3==+>+>?E**3==+>+>?E**3/Z1HI**493?r%   c                    S n[         R                  R                  SU5         [        R                  " 5       nU R                  [        R                  " U5      5        [        R                  " U5        S S S 5        g ! , (       d  f       g = f)Nc                     [        S5      e)Nzbad file)FileNotFoundError)ra   	_filenames     r#   _getabsfileKTestRetrievingSourceCode.test_getmodule_file_not_found.<locals>._getabsfile  s    #J//r%   zinspect.getabsfile)r  r  patchrX   currentframerW  r]  getouterframes)r^   rf  r  s      r#   test_getmodule_file_not_found6TestRetrievingSourceCode.test_getmodule_file_not_found  s^    	0]]  !5{C$$&Ag//23""1% DCCs   AA>>
Bc                     [         R                  " U R                  R                  S5      nU R	                  UR
                  S   S5        U R	                  UR
                  S   S5        g )N2   r   rQ  r4   z'A module docstring.'
)rX   getframeinfor   r  r  r  )r^   
frame_infos     r#    test_getframeinfo_get_first_line9TestRetrievingSourceCode.test_getframeinfo_get_first_line  sW    ))$*;*;*>*>C
003\B0035NOr%   c                    U R                  [        R                  SS5        U R                  [        R                  SS5        U R                  [        R
                  SS5        U R                  [        R                  SS5        g )N   r     3   K   L   x   )r  r;  r@  r   r?  r(  r'  ri   s    r#   test_getsource'TestRetrievingSourceCode.test_getsource  s\    syy"b1s}}b"5s{{B3s00#s;r%   c                    U R                  [        [        R                  " [        R
                  5      5      [        5        U R                  [        [        R                  " [        R                  5      5      [        5        Sn[        SUS5      nU R                  [        R                  " U5      S 5        SS SUR                  4[        R                  UR                  '    U R                  [        [        R                  " U5      5      U5        [        R                  UR                  	 g ! [        R                  UR                  	 f = f)Nz2_non_existing_filename_used_for_sourcefile_test.pyrR  r;   r4   None)r  r   rX   r  r   r   r  r;  r@  rV  co_filename	linecachecache)r^   fnrX  s      r#   test_getsourcefile+TestRetrievingSourceCode.test_getsourcefile  s    '"7"7"ABGL'"7"7		"BCWMAUB'..r2D9+,dFBNN*K	'	0Xg&;&;B&?@"E/	/s   $/D/ /Ec                 
   [        5        n[        SS5          S S S 5        [        R                  R	                  SU5         SS KnU R                  [        R                  " U5      S5        U R                  [        R                  " U5      S/S45        [        R                  R                  U5         S S S 5        g ! , (       d  f       N= f! [        R                  R                  U5        f = f! , (       d  f       g = f)Nzempty_file.pywr   r  )r   r  r^  pathinsert
empty_filer  rX   r  getsourcelinesremove)r^   cwdr  s      r#   test_getsource_empty_file2TestRetrievingSourceCode.test_getsource_empty_file  s    Z3os+ ,HHOOAs#%!  !2!2:!>E  !7!7
!Ctfa[Q$ Z++ $ Zs:   C4B?(C4ACC4?
C		C4!C11C44
Dc                     U R                  [        R                  " [        R                  5      [        R
                  5        g r    )r  rX   getfiler   r?  r  ri   s    r#   test_getfile%TestRetrievingSourceCode.test_getfile  s#    7Fr%   c                     U R                  [        5       n[        R                  " [        5        S S S 5        U R                  [        WR                  5      R                  S5      5        g ! , (       d  f       NB= f)Nz<module)	assertRaises	TypeErrorrX   r  r^  rT   rC  	exception
startswithr   s     r#   test_getfile_builtin_module4TestRetrievingSourceCode.test_getfile_builtin_module"  sL    y)QOOC  *AKK(33I>? *)   A--
A;c                     U R                  [        5       n[        R                  " [        5        S S S 5        U R                  [        WR                  5      R                  S5      5        g ! , (       d  f       NB= f)Nz<class)	r  r  rX   r  r   rT   rC  r  r  r   s     r#   test_getfile_builtin_class3TestRetrievingSourceCode.test_getfile_builtin_class'  sL    y)QOOC  *AKK(33H=> *)r  c                    U R                  [        5       n[        R                  " [        5        S S S 5        U R                  S[        WR                  5      5        U R                  [        5       n[        R                  " [        R                  5        S S S 5        U R                  S[        WR                  5      5        g ! , (       d  f       N= f! , (       d  f       NE= f)Nzexpected, got)
r  r  rX   r  absrs  rC  r  rD  r9   )r^   e_abse_appends      r#   'test_getfile_builtin_function_or_method@TestRetrievingSourceCode.test_getfile_builtin_function_or_method,  s    y)UOOC  *os5??';<y)XOODKK( *os8+=+='>? *) *)s   C3%C
C
C%c                      " S S[         5      n " S SUS9nU R                  [        5         [        R                  " U5        S S S 5        g ! , (       d  f       g = f)Nc                   $    \ rS rSr\S 5       rSrg)FTestRetrievingSourceCode.test_getfile_class_without_module.<locals>.CMi6  c                     [         er    AttributeErrorr  s    r#   rl   QTestRetrievingSourceCode.test_getfile_class_without_module.<locals>.CM.__module__7  s    $$r%   r*   N)rU   rl   rm   rn   propertyrz   r*   r%   r#   CMr  6      % %r%   r  c                       \ rS rSrSrg)ETestRetrievingSourceCode.test_getfile_class_without_module.<locals>.Ci:  r*   Nr-  r*   r%   r#   rp  r  :  r  r%   rp  r  )r   r  r  rX   r  )r^   r  rp  s      r#   !test_getfile_class_without_module:TestRetrievingSourceCode.test_getfile_class_without_module4  s@    	% 	%	" 	y)OOA *))s   A
Ac                      " S S5      nU" 5       nU R                  [        5         [        R                  " U5        S S S 5        g ! , (       d  f       g = f)Nc                       \ rS rSrS rSrg)DTestRetrievingSourceCode.test_getfile_broken_repr.<locals>.ErrorRepri@  c                     [        S5      e)Nxyz)r   ri   s    r#   __repr__MTestRetrievingSourceCode.test_getfile_broken_repr.<locals>.ErrorRepr.__repr__A  s    &&r%   r*   N)rU   rl   rm   rn   r  rz   r*   r%   r#   	ErrorReprr  @  s    'r%   r  )r  r  rX   r  )r^   r  ers      r#   test_getfile_broken_repr1TestRetrievingSourceCode.test_getfile_broken_repr?  s;    	' 	' [y)OOB *))s   A
Ac                 j   SSK Jn  SnU" U5      =n[        R                  U'   SUl        SUl        [        SUR                  5        U R                  [        R                  " UR                  R                  5      S5        [        R                  U	 [        R                  " [        SSS	5      5        g )
Nr   )
ModuleType__inspect_dummy<string>dummyzdef x(): passza=10r8  single)r   r  r^  r_  r  
__loader__r;   __dict__r  rX   r  ru  __code__r]  rV  )r^   r  namems       r#   test_getmodule_recursion1TestRetrievingSourceCode.test_getmodule_recursionG  s    $  *4 00CKK
_ajj)..qss||<jIKK'&H56r%   c                    ^^^ Su  mm[         R                  mSUUU4S jjnU[         l         0 n[        [        TTS5      U5        [        R
                  " US   5        T[         l        g! T[         l        f = f)z4doctest monkeypatches linecache to enable inspection)z<test>zdef x(): pass
Nc                 >   > U T:X  a  TR                  SS9$ T" X5      $ )NT)keepends)
splitlines)r!   module_globalsr  getlinesr  s     r#   monkeyHTestRetrievingSourceCode.test_proceed_with_fake_filename.<locals>.monkeyV  s)    2~(($(7799r%   r  ru  r    )r  r  r;   rV  rX   r  )r^   r  nsr  r  r  s      @@@r#   test_proceed_with_fake_filename8TestRetrievingSourceCode.test_proceed_with_fake_filenameR  sk    0
F%%	: 	:
 $		*BX.3bg&!)IIs   2A- -A:c                 Z    U R                  [        R                  R                  SS5        g )Nr  r  )r  r   r  r  ri   s    r#   test_getsource_on_code_object6TestRetrievingSourceCode.test_getsource_on_code_objectc  s    sxx00"b9r%   c                 8   [        S[        R                  40 5      nU R                  [        R
                  " U5      [        5        U R                  [        R                  " U5      [        5        U R                  [        R                  " U5      [        R                  [           5        U R                  [        [        R                  U5        U R                  [        [        R                   U5        U R#                  [        R$                  " U5      5        g )NrV  )r   r  r  r  rX   r  r  r  r  r]  r^  r_  rU   r  OSErrorr  r  rW  rS  rX  s     r#   !test_getsource_on_generated_class:TestRetrievingSourceCode.test_getsource_on_generated_classf  s    x((*B/..q18<+X6g''*CKK,AB'7#4#4a8'7#9#91='--a01r%   c                 n   ^ Sm " U4S jS5      nU R                  [        [        R                  U5        g )Nr4   c                      > \ rS rSm Srg)OTestRetrievingSourceCode.test_getsource_on_class_without_firstlineno.<locals>.Ciq  r*   N)rU   rl   rm   rz   )rn   s   r#   rp  r  q  s     r%   rp  )r  r  rX   r  )r^   rp  rn   s     @r#   +test_getsource_on_class_without_firstlinenoDTestRetrievingSourceCode.test_getsource_on_class_without_firstlinenoo  s*    	% 	%'7#4#4a8r%   r*   N))rU   rl   rm   rn   r   r   r$  r*  r  skipIfr^  flagsoptimizer0  r4  r
   r<  rB  rG  r   rN  rY  r`  rk  rq  rz  r  r  r  r  r  r  r	   r  r  r  r  r  r  r  rz   r*   r%   r#   r  r  a  s,   L&P: __SYY''1,@B	3B	3 __SYY''1,@B6B6 __)+EF> G>&8 8 85@&P
<
0
%G@
?
@    	7*":29r%   r  c                   ,    \ rS rSrS rS rS rS rSrg)TestGetsourceStdlibiu  c                 $   SS K n[        R                  " UR                  R                  5      u  p#U R                  US   S5        [        R                  " UR                  R                  5      nU R                  UR                  S5      U5        g )Nr   z(class Sequence(Reversible, Collection):
T)collections.abcrX   r  r  Sequencer  r  r  )r^   collectionsr  r  srcs        r#   %test_getsource_stdlib_collections_abc9TestGetsourceStdlib.test_getsource_stdlib_collections_abcx  si    ..{/G/GHq#NO 8 89-u5r%   c                     SS K nU R                  [        [        R                  UR
                  5        U R                  [        [        R                  UR
                  5        g Nr   )tomllibr  r  rX   r  TOMLDecodeErrorr  )r^   r  s     r#   test_getsource_stdlib_tomllib1TestGetsourceStdlib.test_getsource_stdlib_tomllib  sA    '7#4#4g6M6MN'7#9#97;R;RSr%   c                    [         R                  " SS/S9n[        R                  " [        R
                  SU5         U R                  [        [        R                  UR                  5        U R                  [        [        R                  UR                  5        S S S 5        SS Kn [        R                  " UR                  5      n[        R                  " UR                  5      u  p4U R                  US   S5        U R                  UR                  S5      U5        g ! , (       d  f       N= f! [         a     g f = f)Nr  _abcblockedr   z    class ABCMeta(type):
T)r   import_fresh_moduler   	swap_itemr^  r_  r  r  rX   r  r{  r  r  r  r  )r^   r  r  r  r  s        r#   test_getsource_stdlib_abc-TestGetsourceStdlib.test_getsource_stdlib_abc  s    //xHs{{E37gw'8'8#++Fgw'='=s{{K 8 		:##CKK0C#223;;?ME U1X'CDS^^D159 87  		s   AD")AD3 "
D03
E ?E c                    [         R                  " SS/S9n[        R                  " [        R
                  SU5         [        R                  " UR                  5      n[        R                  " UR                  5      u  p4S S S 5        U R                  WS   S5        U R                  WR                  S5      U5        g ! , (       d  f       NE= f)Ndecimal_decimalr  r   zclass Decimal(object):
T)r   r  r   r  r^  r_  rX   r  Decimalr  r  r  )r^   r  r  r  r  s        r#   test_getsource_stdlib_decimal1TestGetsourceStdlib.test_getsource_stdlib_decimal  s    33I
|Ts{{Iw?##GOO4C#227??CME @ 	q#=>-u5	 @?s   AB??
Cr*   N)	rU   rl   rm   rn   r  r  r  r  rz   r*   r%   r#   r  r  u  s    6T
:"6r%   r  c                   8    \ rS rSr\R
                  S 5       rSrg)TestGetsourceInteractivei  c                 H    Sn[        SUSS9u    p#U R                  SU5        g )Nzimport sys, inspect;                 assert not hasattr(sys.modules['__main__'], '__file__');                 A = type('A', (), {});                 inspect.getsource(A)z-cT)
__isolateds"   OSError: source code not available)r   rs  )r^   coder  stderrs       r#   test_getclasses_interactive4TestGetsourceInteractive.test_getclasses_interactive  s,    & -T4DI1;VDr%   r*   N)rU   rl   rm   rn   r   force_not_colorizedr  rz   r*   r%   r#   r  r    s      E !Er%   r  c                   $    \ rS rSr\rS rS rSrg)!TestGettingSourceOfToplevelFramesi  c                 T    S U l         U R                  [        R                  SS 5        g Nr4   )maxDiffr  r   ri  ri   s    r#   test_range_toplevel_frame;TestGettingSourceOfToplevelFrames.test_range_toplevel_frame  s!    s//D9r%   c                 F    U R                  [        R                  SS 5        g r  )r  r   r   ri   s    r#   #test_range_traceback_toplevel_frameETestGettingSourceOfToplevelFrames.test_range_traceback_toplevel_frame  s    svvq$/r%   r  N)	rU   rl   rm   rn   r   r   r  r  rz   r*   r%   r#   r
  r
    s    L:0r%   r
  c                   0    \ rS rSr\rS rS rS rS r	Sr
g)TestDecoratorsi  c                 F    U R                  [        R                  SS5        g )Nr     )r  rT  r   ri   s    r#   test_wrapped_decorator%TestDecorators.test_wrapped_decorator  s    t||R4r%   c                 F    U R                  [        R                  SS5        g )Nr  
   )r  rT  goneri   s    r#   test_replacing_decorator'TestDecorators.test_replacing_decorator  s    tyy!R0r%   c                 F    U R                  [        R                  SS5        g )N      )r  rT  r:  ri   s    r#   test_getsource_unwrap$TestDecorators.test_getsource_unwrap  s    tyy#s3r%   c                 F    U R                  [        R                  SS5        g )Nq   s   )r  rT  func114ri   s    r#   test_decorator_with_lambda)TestDecorators.test_decorator_with_lambda  s    t||S#6r%   r*   N)rU   rl   rm   rn   rT  r   r  r  r"  r(  rz   r*   r%   r#   r  r    s    L5147r%   r  c                   r    \ rS rSr\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)TestOnelinersi  c                 F    U R                  [        R                  SS5        g )Nr  )r  rT  ollri   s    r#   test_oneline_lambda!TestOneliners.test_oneline_lambda  s    txxR0r%   c                 F    U R                  [        R                  SS5        g )N      )r  rT  tllri   s    r#   test_threeline_lambda#TestOneliners.test_threeline_lambda  s     	txxR0r%   c                 F    U R                  [        R                  SS5        g )N!   "   )r  rT  tlliri   s    r#   test_twoline_indented_lambda*TestOneliners.test_twoline_indented_lambda  s     	tyy"b1r%   c                     U R                  [        R                  SS5        U R                  [        R                  SS5        U R                  [        R                  SS5        g )Ni  i  i  )r  rT  parenthesized_lambdaparenthesized_lambda2parenthesized_lambda3ri   s    r#   #test_parenthesized_multiline_lambda1TestOneliners.test_parenthesized_multiline_lambda  sL     	t88#sCt993Dt993Dr%   c                 F    U R                  [        R                  SS5        g )Ni  i  )r  rT  post_line_parenthesized_lambda1ri   s    r#   #test_post_line_parenthesized_lambda1TestOneliners.test_post_line_parenthesized_lambda  s     	tCCS#Nr%   c                 F    U R                  [        R                  SS5        g )Ni#  i$  )r  rT  nested_lambdari   s    r#   test_nested_lambda TestOneliners.test_nested_lambda  s    t113<r%   c                 F    U R                  [        R                  SS5        g )N%   )r  rT  onelinefuncri   s    r#   test_onelinefuncTestOneliners.test_onelinefunc  s    t//R8r%   c                 F    U R                  [        R                  SS5        g )N(   )   )r  rT  manyargsri   s    r#   test_manyargsTestOneliners.test_manyargs  s     	t}}b"5r%   c                 F    U R                  [        R                  SS5        g )N,   -   )r  rT  twolinefuncri   s    r#   test_twolinefuncTestOneliners.test_twolinefunc  s     	t//R8r%   c                 L    U R                  [        R                  S   SS5        g )Nr4   1   )r  rT  r-   ri   s    r#   test_lambda_in_list!TestOneliners.test_lambda_in_list  s     	tvvay"b1r%   c                 F    U R                  [        R                  SS5        g )N7   )r  rT  	anonymousri   s    r#   test_anonymousTestOneliners.test_anonymous  s     	t~~r26r%   c                    U R                  [        R                  SS5        U R                  [        R                  SS5        U R                  [        R                  SS5        U R                  [        R
                  SS5        U R                  [        [        R                  [        R                  5        U R                  [        [        R                  [        R                  5        U R                  [        [        R                  [        R                  5        U R                  [        [        R                  [        R                  5        g )	NiB  iC  iF  iG  iJ  iK  iN  iO  )r  rT  enum322enum326flag330flag334r  r  rX   r  simple_enum338simple_enum339simple_flag340simple_flag341ri   s    r#   	test_enumTestOneliners.test_enum  s    t||S#6t||S#6t||S#6t||S#6'7#4#4d6I6IJ'7#4#4d6I6IJ'7#4#4d6I6IJ'7#4#4d6I6IJr%   c                     U R                  [        R                  SS5        U R                  [        [
        R                  [        R                  5        g )NiZ  i\  )r  rT  nt346r  r  rX   r  nt351ri   s    r#   test_namedtupleTestOneliners.test_namedtuple  4    tzz34'7#4#4djjAr%   c                     U R                  [        R                  SS5        U R                  [        [
        R                  [        R                  5        g )Nib  id  )r  rT  td354r  r  rX   r  td359ri   s    r#   test_typeddictTestOneliners.test_typeddict  rt  r%   c                    U R                  [        R                  SS5        U R                  [        [
        R                  [        R                  5        U R                  [        [
        R                  [        R                  5        g )Nil  io  )	r  rT  dc364r  r  rX   r  dc370dc371ri   s    r#   test_dataclassTestOneliners.test_dataclass  sP    tzz34'7#4#4djjA'7#4#4djjAr%   r*   N)rU   rl   rm   rn   rT  r   r.  r4  r:  r@  rD  rH  rM  rS  rY  r]  rb  rm  rr  rx  r~  rz   r*   r%   r#   r+  r+    sX    L11
2
EO
=9692
7
KBBBr%   r+  c                   *    \ rS rSr\rS rS rS rSr	g)TestBlockCommentsi  c                 F    U R                  [        R                  SS5        g )N`   r   )r  r   r   ri   s    r#   test_toplevel_class%TestBlockComments.test_toplevel_class  s    s00"c:r%   c                 Z    U R                  [        R                  R                  SS5        g )Nc   h   )r  r   r   r  ri   s    r#   test_class_method#TestBlockComments.test_class_method  s     s0022B<r%   c                 Z    U R                  [        R                  R                  SS5        g )Nm   p   )r  r   r   asyncfri   s    r#   test_class_async_method)TestBlockComments.test_class_async_method  s     s0077cBr%   r*   N)
rU   rl   rm   rn   r   r   r  r  r  rz   r*   r%   r#   r  r    s    L;=Cr%   r  c                      \ rS rSr\rS rS rS rS r	S r
S rS r\R                  " \" \S	5      (       + =(       d    \R"                  R%                  S
5      S5      S 5       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\ RB                  S 5       r"S r#S r$S r%\R                  " \ RL                  =(       d    \ RN                  S5      S 5       r(S r)S  r*S!r+g")#TestBuggyCasesi   c                 F    U R                  [        R                  SS5        g )N:   ;   )r  rT  with_commentri   s    r#   test_with_comment TestBuggyCases.test_with_comment#  s    t00"b9r%   c                 L    U R                  [        R                  S   SS5        g )Nr   ?   @   )r  rT  multiline_sigri   s    r#   test_multiline_sig!TestBuggyCases.test_multiline_sig&  s    t11!4b"=r%   c                 d    U R                  [        R                  " 5       R                  SS5        g )NG   H   )r  rT  func69func71ri   s    r#   test_nested_class TestBuggyCases.test_nested_class)  s     t{{}33R<r%   c                 F    U R                  [        R                  SS5        g )NM   )r  rT  func77ri   s    r#   #test_one_liner_followed_by_non_name2TestBuggyCases.test_one_liner_followed_by_non_name,      t{{B3r%   c                 Z    U R                  [        R                  R                  SS5        g )NS   )r  rT  cls82func83ri   s    r#   test_one_liner_dedent_non_name-TestBuggyCases.test_one_liner_dedent_non_name/  s    tzz00"b9r%   c                 F    U R                  [        R                  SS5        g )NX   Z   )r  rT  func88ri   s    r#   &test_with_comment_instead_of_docstring5TestBuggyCases.test_with_comment_instead_of_docstring2  r  r%   c                 F    U R                  [        R                  SS5        g )N_   a   )r  rT  method_in_dynamic_classri   s    r#   test_method_in_dynamic_class+TestBuggyCases.test_method_in_dynamic_class5  s    t;;RDr%   r  z.pyz,unicodedata is not an external binary modulec                     U R                  [        [        R                  [        5        U R                  [        [        R
                  [        5        g r    )r  r  rX   r  unicodedata
findsourceri   s    r#   test_findsource_binary%TestBuggyCases.test_findsource_binary:  s4     	'7#4#4kB'7#5#5{Cr%   c                 ,   S/n[        US   SS5      nU R                  [        [        R                  U5        U R                  [        [        R
                  U5        SS XR                  4[        R                  UR                  '    U R                  [        R                  " U5      US45        U R                  [        R
                  " U5      US   5        [        R                  UR                  	 g ! [        R                  UR                  	 f = f)NrR  r   _dynamically_created_filer;   r4   )
rV  r  r  rX   r  r  r~  r  r  r  )r^   r  rX  s      r#   !test_findsource_code_in_linecache0TestBuggyCases.test_findsource_code_in_linecacheA  s    U1X:FC'7#5#5r:'7#4#4b9+,dE>>*J	'	0W//3eAY?W..r2E!H=/	/s   	AC6 6Dc                     S HZ  n[        SUS5      nU R                  [        [        R                  U5        U R                  [        [        R
                  U5        M\     g )N)r8  r  rR  r;   )rV  r  IOErrorrX   r  r  )r^   fnamerX  s      r#    test_findsource_without_filename/TestBuggyCases.test_findsource_without_filenameM  sJ    %Ev.Bgw'9'92>gw'8'8"= &r%   c                    [        [        R                  " [        5      5      nSU-  S-   n[	        U[        R
                  S5      n0 0 pT[        X4U5        US   nU R                  UR                  R                  SSU-  -   5        U R                  [        S5         [        R                  " U5        S S S 5        g ! , (       d  f       g = f)N

zdef f(): passr;   r  r4   r5   lineno is out of bounds)r8   rX   r  r   rV  r  rS   r  r  co_firstlinenoassertRaisesRegexr  r  )r^   mod_lenr  rX  r  lr   s          r#   1test_findsource_on_func_with_out_of_bounds_lineno@TestBuggyCases.test_findsource_on_func_with_out_of_bounds_linenoS  s    g'',-/1S#,,/21RAv55q7{C##G-FGt$ HGGs   B==
Cc                    [        [        R                  " [        5      5      nSU-  S-   n[	        U[        R
                  S5      nS[        R                  00 pT[        X4U5        US   nU R                  UR                  SSU-  -   5        U R                  [        S5         [        R                  " U5        S S S 5        g ! , (       d  f       g = f)	Nr  zclass A: passr;   rU   rV  r4   r5   r  )r8   rX   r  r   rV  r  rU   rS   r  rn   r  r  r  )r^   r  r  rX  r  r  r  s          r#   2test_findsource_on_class_with_out_of_bounds_linenoATestBuggyCases.test_findsource_on_class_with_out_of_bounds_lineno^  s    g'',-/1S#,,/CLL)21RAf,,a'	k:##G-FGs# HGGs   #C
Cc                 Z    U R                  [        R                  R                  SS5        g )Nv   w   )r  rT  ClassWithMethodrL  ri   s    r#   test_getsource_on_method'TestBuggyCases.test_getsource_on_methodi  s     t33::CEr%   c                 Z    U R                  [        R                  R                  SS5        g )Nr   i=  )r  rT  ClassWithCodeObjectr  ri   s    r#   #test_getsource_on_class_code_object2TestBuggyCases.test_getsource_on_class_code_objectl  s     t77<<c3Gr%   c                 Z    U R                  [        R                  R                  SS5        g )N      )r  rT  cls135func136ri   s    r#   test_nested_funcTestBuggyCases.test_nested_funco  s    t{{22C=r%   c                 F    U R                  [        R                  SS5        g )N      )r  rT  cls149ri   s    r#   4test_class_definition_in_multiline_string_definitionCTestBuggyCases.test_class_definition_in_multiline_string_definitionr      t{{C5r%   c                 F    U R                  [        R                  SS5        g )N      )r  rT  rU  ri   s    r#   *test_class_definition_in_multiline_comment9TestBuggyCases.test_class_definition_in_multiline_commentu  r  r%   c                 Z    U R                  [        R                  R                  SS5        g )N      )r  rT  cls173cls175ri   s    r#   ,test_nested_class_definition_indented_string;TestBuggyCases.test_nested_class_definition_indented_stringx  s    t{{113<r%   c                     U R                  [        R                  SS5        U R                  [        R                  R                  SS5        g )N         )r  rT  cls183cls185ri   s    r#   test_nested_class_definition+TestBuggyCases.test_nested_class_definition{  4    t{{C5t{{113<r%   c                     U R                  [        R                  SS5        U R                  [        R                  R                  SS5        g )N         )r  rT  cls196cls200ri   s    r#   test_class_decorator#TestBuggyCases.test_class_decorator  r  r%   c                 Z    U R                  [        R                  R                  SS5        g )N      )r  rT  cls238cls239ri   s    r#   test_class_inside_conditional,TestBuggyCases.test_class_inside_conditional  s     
 	t{{113<r%   c                    U R                  [        R                  SS5        U R                  [        R                  R                  SS5        U R                  [        R                  R                  R                  SS5        U R                  [        R                  R
                  SS5        U R                  [        R                  R
                  R                  SS5        g )N                     )r  rT  cls203cls204cls205cls207ri   s    r#   test_multiple_children_classes-TestBuggyCases.test_multiple_children_classes  s    t{{C5t{{113<t{{1188#sCt{{113<t{{1188#sCr%   c                     U R                  [        R                  " 5       SS5        U R                  [        R                  SS5        U R                  [        R                  " 5       R	                  5       SS5        g )N                  )r  rT  func212cls213func219ri   s    r#   ,test_nested_class_definition_inside_function;TestBuggyCases.test_nested_class_definition_inside_function  sQ    t||~sC8t{{C5t{{}446SAr%   c                 6   [         R                  " 5        n[        [        R                  R                  US[        R                  -  5      SSS9 nUR                  [        R                  " S5      5        S S S 5        [        [        R                  R                  US[        R                  -  5      SSS9 nUR                  [        R                  " S5      5        S S S 5        [        U5         SS KnU R                  S	[        R                  " UR                  5      5        [         R"                  R%                  S
5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N9= f! , (       d  f       g = f)Nzinspect_actual%spyr  r  r  a?  
                    import inspect_other
                    class A:
                        def f(self):
                            pass
                    class A:
                        def f(self):
                            pass  # correct one
                    A.f = inspect_other.A.f
                    zinspect_other%spyzx
                    class A:
                        def f(self):
                            pass
                    r   correctinspect_actual)tempfileTemporaryDirectoryr  osr  r:   extsepwritetextwrapdedentr   r1  rs  rX   r  rV  r^  r_  pop)r^   tempdirr  r1  s       r#   (test_class_with_method_from_other_module7TestBuggyCases.test_class_with_method_from_other_module  s   ((*gbggll7,@299,LMG-01 	) 	 	- bggll7,?")),KLG-01 )  - w'%i):):>;K;K)LM  01 (- +*- -- - ('- +*sU   ;F
&E7AF
9&E(F
2AE9F

E%	!F
(
E6	2F
9
F	F


Fzsocket.accept is brokenc                    SS K nU R                  UR                  S 5        U R                  UR                  " [
        R                  " 5       5      SS5        U R                  [
        R                  SS5        U R                  [
        R                  R                  SS5        U R                  UR                  " [
        R                  " 5       R                  5       5      SS5        g )	Nr                        )	r(   
addCleanupr)   r  runrT  func225cls226func232)r^   r(   s     r#   2test_nested_class_definition_inside_async_functionATestBuggyCases.test_nested_class_definition_inside_async_function  s    
 	55t<w{{4<<>:CEt{{C5t{{22C=w{{4;;=+@+@+BCS#Nr%   c                     U R                  [        R                  SS5        U R                  [        R                  SS5        g )Ni(  i*  i6  i8  )r  rT  cls296cls310ri   s    r#   ,test_class_definition_same_name_diff_methods;TestBuggyCases.test_class_definition_same_name_diff_methods  s.    t{{C5t{{C5r%   c                     U R                  [        [        R                  5      SS5        U R                  [        [        R                  " 5       5      SS5        g )Niy  i|  r%  i  )r  nextrT  ge377func383ri   s    r#   test_generator_expression(TestBuggyCases.test_generator_expression  s:    tDJJ/c:tDLLN3S#>r%   r*   N),rU   rl   rm   rn   rT  r   r  r  r  r  r  r  r  r  r  r   r  r  endswithr  r  r  r  r  r  r  r  r  r  r  r  r  r   requires_docstringsr  r!  r-  r;  is_emscriptenis_wasirJ  rO  rU  rz   r*   r%   r#   r  r     s   L:>=4:4E
 __j99 F!,!5!5!>!>u!ECEDED
0>	%	$FH>66===   = !=DB
2< __0!O	O6?r%   r  c                   4   ^  \ rS rSrU 4S jrS rS rSrU =r$ )	TestNoEOLi  c                   > [         S-   U l        [        R                  " U R                  5        [	        [        R
                  R                  U R                  S[        R                  -  5      SSS9 nUR                  S5        S S S 5        [        U R                  5         SS K
nS S S 5        WU l        [        TU ]5  5         g ! , (       d  f       NF= f! , (       d  f       N5= f)N_dirzinspect_fodder3%spyr  r  r  zclass X:
    pass # No EOLr   )r   r:  r4  mkdirr  r  r:   r5  r6  r   inspect_fodder3r   superr  )r^   r  mod3	__class__s      r#   r  TestNoEOL.setUp  s    
"'',,t||-BRYY-NO),-GG12) 4<<(* ) ) ) )(s   4C#C
C
C%c                 D    [         R                  " U R                  5        g r    )shutilrmtreer:  ri   s    r#   tearDownTestNoEOL.tearDown  s    dll#r%   c                 R    U R                  U R                  R                  SS5        g )Nr4   r5   )r  r   Xri   s    r#   
test_classTestNoEOL.test_class  s     t0022Aq9r%   )r   r:  )	rU   rl   rm   rn   r  rh  rl  rz   __classcell__rc  s   @r#   r\  r\    s    	$: :r%   r\  c                       \ rS rSr\rS rSrg)TestComplexDecoratori  c                 R    U R                  U R                  R                  SS5        g )Ni  i  )r  r   complex_decoratedri   s    r#   test_parens_in_decorator-TestComplexDecorator.test_parens_in_decorator  s     t00BBCMr%   r*   N)rU   rl   rm   rn   rT  r   rt  rz   r*   r%   r#   rq  rq    s    LNr%   rq  c                   *    \ rS rSrSrS rS rS rSrg)_BrokenDataDescriptori  z*
A broken data descriptor. See bug #1785.
c                      [        S5      eNzbroken data descriptorr  r"   s    r#   r   _BrokenDataDescriptor.__get__      566r%   c                      [         er    )RuntimeErrorrz  s    r#   __set___BrokenDataDescriptor.__set__  s    r%   c                      [        S5      ery  r  rz  s    r#   ra  !_BrokenDataDescriptor.__getattr__  r|  r%   r*   N)	rU   rl   rm   rn   r  r   r  ra  rz   r*   r%   r#   rw  rw    s    77r%   rw  c                   $    \ rS rSrSrS rS rSrg)_BrokenMethodDescriptori  z,
A broken method descriptor. See bug #1785.
c                      [        S5      eNzbroken method descriptorr  rz  s    r#   r   _BrokenMethodDescriptor.__get__      788r%   c                      [        S5      er  r  rz  s    r#   ra  #_BrokenMethodDescriptor.__getattr__  r  r%   r*   N)rU   rl   rm   rn   r  r   ra  rz   r*   r%   r#   r  r    s    99r%   r  c                 ^    [         R                  " U 5       Vs/ s H  oS S PM	     sn$ s  snf Nr  )rX   classify_class_attrs)r  ts     r#   attrs_wo_objsr    s+    "77<=<abqE<===s   *c                      \ rS rSrS rSSS/ / S0 4S jrS rS rS rS r	\
R                  " \S	5      S
 5       r\\
R                  " \S	5      S 5       5       r\\
R                  " \S	5      S 5       5       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)*TestClassesAndFunctionsi   c                      " S S[         5      n " S SU5      n " S SU5      n " S SX#5      nXBX1[         4n[        R                  " U5      nU R                  XV5        g )	Nc                       \ rS rSrSrg)4TestClassesAndFunctions.test_newstyle_mro.<locals>.Ai  r*   Nr-  r*   r%   r#   rV  r    s    Dr%   rV  c                       \ rS rSrSrg)4TestClassesAndFunctions.test_newstyle_mro.<locals>.Bi  r*   Nr-  r*   r%   r#   Br        Dr%   r  c                       \ rS rSrSrg)4TestClassesAndFunctions.test_newstyle_mro.<locals>.Ci  r*   Nr-  r*   r%   r#   rp  r    r  r%   rp  c                       \ rS rSrSrg)4TestClassesAndFunctions.test_newstyle_mro.<locals>.Di  r*   Nr-  r*   r%   r#   Dr        tr%   r  )r   rX   getmror  )r^   rV  r  rp  r  rF  gots          r#   test_newstyle_mro)TestClassesAndFunctions.test_newstyle_mro  sJ      !'nnQ'r%   Nc
                 *   [         R                  " U5      u  pppnU R                  X5        U R                  X5        U R                  X5        U R                  X5        U R                  X5        U R                  X5        U R                  UU	5        g r    )rX   getfullargspecr  )r^   routineargs_e	varargs_evarkw_e
defaults_eposonlyargs_ekwonlyargs_ekwonlydefaults_eann_er"   r  r  defaults
kwonlyargskwonlydefaultsanns                    r#   assertFullArgSpecEquals/TestClassesAndFunctions.assertFullArgSpecEquals  s     ""7+ 	Hu
C&,(.2:e$r%   c           	         U R                  [        R                  / SS/SS0S9  U R                  [        R                  S/S[        0S9  U R                  [        R
                  / S/S9  U R                  [        R                  / SQS	S
/S9  U R                  [        R                  / SQSSS	S
/S9  U R                  [        R                  / SQSS	S
/SSS.S9  g )Narg1arg2r4   )r  r  r  )r  rK  )r  r-   rm  r   r  r   r  r"   r   )r  r  r  r4   r5   r  r  r  )r   r  )r  r  r  )	r  rT  	keyworded	annotatedrD  keyword_only_argall_markers all_markers_with_args_and_kwargsall_markers_with_defaultsri   s    r#   test_getfullargspec+TestClassesAndFunctions.test_getfullargspec  s    $$T^^R639(7=aj 	% 	B 	$$T^^fX,2T? 	% 	<$$T%:%:B38' 	% 	; 	$$T%5%57K36* 	% 	> 	$$T%J%J%9/5-536*	 	% 	> 	$$T%C%CEY0736*<=A6F 	% 	Hr%   c                     [         R                  " [        R                  5      S 5       nU R	                  USS/5        U R	                  [         R
                  " U5      SS/5        g )Nc                     g r    r*   ru  r  s     r#   hamETestClassesAndFunctions.test_argspec_api_ignores_wrapped.<locals>.ham5      r%   ru  r  )r   r   r   r   r  r  )r^   r  s     r#    test_argspec_api_ignores_wrapped8TestClassesAndFunctions.test_argspec_api_ignores_wrapped3  sY    		"	 
#	 	$$S3*5$$Y%6%6s%;&)3Z	1r%   c                     S n[         R                  " S[         R                  R                  5      n[         R                  " U4S9Ul        U R                  US/5        g )Nc                      g r    r*   r*   r%   r#   testHTestClassesAndFunctions.test_getfullargspec_signature_attr.<locals>.test>      r%   r   r<   )rX   	ParameterPOSITIONAL_ONLY	Signature__signature__r  )r^   r  
spam_params      r#   "test_getfullargspec_signature_attr:TestClassesAndFunctions.test_getfullargspec_signature_attr=  sL    	&&vw/@/@/P/PQ
$..:-H$$TF84r%   c                    SS jn[         R                  " U5      nU R                  UR                  UR                  5        S n[         R                  " U5      nU R                  UR                  UR                  5        g )Nc                     g r    r*   r-   s    r#   r  ITestClassesAndFunctions.test_getfullargspec_signature_annos.<locals>.testF      Tr%   c                      g r    r*   r*   r%   r#   r  r  J      Dr%   )r-   r   returnr  )rX   r  r  __annotations__annotations)r^   r  specs      r#   #test_getfullargspec_signature_annos;TestClassesAndFunctions.test_getfullargspec_signature_annosE  s`    )%%d+--t/?/?@%%d+--t/?/?@r%   6Signature information for builtins requires docstringsc                 2   U R                  [        R                  R                  SS/5        U R                  [        R                  " [        R
                  " 5       5      R                  SS/5        U R                  [        R                  S/SS/S SS.S9  g )	Nr^   ra   r  dir_fdfollow_symlinksT)r  r  )r  r  r  )r  _picklePicklerdumpioBytesIOr4  statri   s    r#   #test_getfullargspec_builtin_methods;TestClassesAndFunctions.test_getfullargspec_builtin_methodsN  s}     	$$W__%9%9FE?K$$W__RZZ\%B%G%G&RWY$$WWH#%67)-$G	 	% 	Ir%   c                     [         R                  " S5      nUR                  n[        R                  " U5      nU R                  UR                  S   S5        g )N	_testcapir   avocado)r   import_module&docstring_with_signature_with_defaultsrX   r  r  r  )r^   r  builtinr  s       r#    test_getfullargspec_builtin_func8TestClassesAndFunctions.test_getfullargspec_builtin_func[  sH     "//<	BB%%g.q)95r%   c                    [         R                  " S5      nUR                  nU R                  [        5         [
        R                  " U5        S S S 5        UR                  nUR                  5       nUR                  [        4UR                  [        4UR                  [        4UR                  [        4UR                  [        4UR                  [        4UR                  [        4UR                   ["        4UR$                  [        4UR&                  [        4UR(                  [        4UR*                  [        4[,        R,                  [        4[.        R0                  [        4SR0                  [        4[2        R4                  [        4[3        5       R4                  [        4[2        R6                  [        4[3        5       R6                  [        4[8        R8                  R:                  S   [        4[8        R8                  R<                  [        4[>        R:                  S   ["        4[>        R@                  ["        4/n SS K!nURE                  [F        RH                  [        45        U HY  u  p'U RM                  U5         U RO                  [
        R                  " U5      [
        R                  " U5      5        S S S 5        M[     g ! , (       d  f       GN= f! [J         a     N~f = f! , (       d  f       M  = f)Nr  r8  utcnow__class_getitem__r   )(r   r  docstring_no_signaturer  r  rX   r  DocStringNoSignatureTestdocstring_no_signature_noargsr   docstring_no_signature_or   r   r   meth_noargs_classr   meth_o_classr   meth_noargs_staticmeth_o_staticmeth_noargs_coexistmeth_o_coexisttimerC  lowerrW   add__contains__r   r  r  rq  r  _statr9   r  S_IMODErK  rD  r  )r^   r  r  r  ra   testsr  templates           r#   -test_getfullargspec_builtin_func_no_signatureETestClassesAndFunctions.test_getfullargspec_builtin_func_no_signatured  sF    "//<	22y)""7+ * 0000244kB//8__./ZZ%__./ZZ%""$45{+##[1'$$&67-YY$YY()XX'(WWk"UYY${+U-''13CD%%'78]]./=##[11
4	1 LL$,,/0!&Gg&  !7!7!@!(!7!7!AC '& "'O *)B  	 	 '&s)   KK" ;K2
K"
K/.K/2
L	c                 `   [        5        H[  n[        R                  " U5      n[        UR                  5      n[        U5      nU R                  U5        U R                  X45        M]     [        R                  " [        5      n[        UR                  5      nU R                  U[        5        g r    )
rC   rX   r  rD  r  sortedrT   r  rL    unsorted_keyword_only_parametersr^   r  	signaturer  sorted_ls        r#   8test_getfullargspec_definition_order_preserved_on_kwonlyPTestClassesAndFunctions.test_getfullargspec_definition_order_preserved_on_kwonly  s    GIB..r2IY))*AayHOOAQ) J **+NO	%%&<=r%   c                     " S S[         5      n[        U5      nU R                  SS[         4US5        U R                  SS[         4US5        U R                  S	SU4US
5        U R                  SSU4US5        U R                  SSU4US5        U R                  SSU4USU-  5        U R                  SSU4US5        U R                  SSU4US5        U R                  SSU4US5        U R                  SSU4US5         " S SU5      n[        U5      nU R                  S	SU4US
5        U R                  SSU4US5        U R                  SSU4US5        U R                  SSU4US5        U R                  SSU4US5        U R                  SSU4US5        U R                  SSU4US5        U R                  SSU4US5         " S SU5      n[        U5      nU R                  S	SU4US
5        U R                  SSU4US5        U R                  SSU4US5        U R                  SSU4US5        U R                  SSU4US5        U R                  SSU4US5        U R                  SSU4US5        U R                  SSU4US5         " S  S!X45      n[        U5      nU R                  S	SU4US
5        U R                  SSU4US5        U R                  SSU4US5        U R                  SSU4US5        U R                  SSU4US5        U R                  SSU4US5        U R                  SSU4US5        U R                  SSU4US5        g )"Nc                       \ rS rSrS r\" \5      rS r\" \5      rS r\	" \5      r
S rS rSr\" 5       r\" 5       rSrg	)
9TestClassesAndFunctions.test_classify_newstyle.<locals>.Ai  c                      g r    r*   r*   r%   r#   s;TestClassesAndFunctions.test_classify_newstyle.<locals>.A.s      Tr%   c                     g r    r*   r  s    r#   r   ;TestClassesAndFunctions.test_classify_newstyle.<locals>.A.c  s    r%   c                     g r    r*   ri   s    r#   getp>TestClassesAndFunctions.test_classify_newstyle.<locals>.A.getp      Dr%   c                     g r    r*   ri   s    r#   r  ;TestClassesAndFunctions.test_classify_newstyle.<locals>.A.m      r%   c                     g r    r*   ri   s    r#   m1<TestClassesAndFunctions.test_classify_newstyle.<locals>.A.m1      $r%   1r*   N)rU   rl   rm   rn   r  r  r   r
  r   r  r>   r  r'  datablobrw  ddr  mdrz   r*   r%   r#   rV  r    sA    QAAA AH&(B(*Br%   rV  __new__static methodmissing __new__r   rL  zmissing __init__r  zmissing static methodr   class methodmissing class methodr>   r  zmissing propertyr  zmissing plain method: %rr'  missing plain methodr+  datazmissing datar-  zmissing method descriptorr,  zmissing data descriptorc                       \ rS rSrS rSrg)9TestClassesAndFunctions.test_classify_newstyle.<locals>.Bi  c                     g r    r*   ri   s    r#   r  ;TestClassesAndFunctions.test_classify_newstyle.<locals>.B.m  r%  r%   r*   N)rU   rl   rm   rn   r  rz   r*   r%   r#   r  r6    s    r%   r  c                        \ rS rSrS rS rSrg)9TestClassesAndFunctions.test_classify_newstyle.<locals>.Ci  c                     g r    r*   ri   s    r#   r  ;TestClassesAndFunctions.test_classify_newstyle.<locals>.C.m  r%  r%   c                     g r    r*   ri   s    r#   r   ;TestClassesAndFunctions.test_classify_newstyle.<locals>.C.c  r%  r%   r*   N)rU   rl   rm   rn   r  r   rz   r*   r%   r#   rp  r:    s    r%   rp  c                       \ rS rSrS rSrg)9TestClassesAndFunctions.test_classify_newstyle.<locals>.Di  c                     g r    r*   ri   s    r#   r'  <TestClassesAndFunctions.test_classify_newstyle.<locals>.D.m1  r)  r%   r*   N)rU   rl   rm   rn   r'  rz   r*   r%   r#   r  r@    s    r%   r  )r   r  rs  )r^   rV  attrsr  rp  r  s         r#   test_classify_newstyle.TestClassesAndFunctions.test_classify_newstyle  s   	+ 	+( a y/6:E'	)z8V4e=OPsOQ/8OPsNA.7MNsJ*E3EFsHa(%058	:tXq)52HIz61-unEtXq)52MNtVQ'0IJ	 	 a sOQ/8OPsNA.7MNsJ*E3EFsHa(%1GHtXq)52HIz61-unEtXq)52MNtVQ'0IJ	 	
 a sOQ/8OPsHa(%1GHsJ*E3EFsHa(%1GHtXq)52HIz61-unEtXq)52MNtVQ'0IJ	 	 a sOQ/8OPsHa(%1GHsJ*E3EFsHa(%1GHtXq)52HIz61-unEtXq)52MNtVQ'0IJr%   c                    [        [        5       H@  n[        [        U5      n[        U[        5      (       d  M*  [
        R                  " U5        MB     [        [        5      nU R                  SS[        4US5        U R                  SS[        4US5        U R                  SS[        4US	5        U R                  S
S[        4US	5        U R                  SS[        4US	5        g )Nr.  r/  r0  r9  r1  r2  r8  rL  r3  __add____and__)dir__builtins__getattr
isinstancer   rX   r  r  boolrs  r   )r^   r  r  rC  s       r#   test_classify_builtin_types3TestClassesAndFunctions.test_classify_builtin_types  s     %DlD1G'4((,,W5 &
 d#y/48%'	)|^S95,	.z8S15,	.y(C0%,	.y(D15,	.r%   c                 H    " S S[         5      n " S SUS9n[        R                  " SSX"R                  S   5      nU R	                  U[        R
                  " U5      5        [        R                  " SSUS5      nU R	                  U[        R
                  " U5      5        g )	Nc                   (   ^  \ rS rSrU 4S jrSrU =r$ )ITestClassesAndFunctions.test_classify_DynamicClassAttribute.<locals>.Metai  c                 0   > US:X  a  g[         TU ]  U5      $ )Nr  r   ra  ra  r^   r  rc  s     r#   ra  UTestClassesAndFunctions.test_classify_DynamicClassAttribute.<locals>.Meta.__getattr__  s    5=!w*400r%   r*   rU   rl   rm   rn   ra  rz   rn  ro  s   @r#   MetarR        1 1r%   rX  c                   8    \ rS rSr\R
                  S 5       rSrg)GTestClassesAndFunctions.test_classify_DynamicClassAttribute.<locals>.VAi  c                     g)Nr  r*   ri   s    r#   r  KTestClassesAndFunctions.test_classify_DynamicClassAttribute.<locals>.VA.ham      r%   r*   N)rU   rl   rm   rn   r   DynamicClassAttributer  rz   r*   r%   r#   VAr[        (( )r%   r`  r  r  r4  r   )r   rX   	Attributer  rs  r  )r^   rX  r`  should_find_dcashould_find_gas        r#   #test_classify_DynamicClassAttribute;TestClassesAndFunctions.test_classify_DynamicClassAttribute  s    	14 	1
	4 	 "++E62{{5?QRow'C'CB'GH **5&$Gng&B&B2&FGr%   c                    ^  " U4S jS[         5      m " U4S jS[         5      n[        R                  " SSXR                  5      nU R	                  U[        R
                  " U5      5        g )Nc                   (   > \ rS rSrU 4S jrS rSrg)DTestClassesAndFunctions.test_classify_overrides_bool.<locals>.NoBooli  c                    > T" 5       $ r    r*   )r^   rb   NoBools     r#   __eq__KTestClassesAndFunctions.test_classify_overrides_bool.<locals>.NoBool.__eq__  s
    xr%   c                     [        S5      e)Nz,This object does not specify a boolean valueNotImplementedErrorri   s    r#   __bool__MTestClassesAndFunctions.test_classify_overrides_bool.<locals>.NoBool.__bool__  s    )BD Dr%   r*   N)rU   rl   rm   rn   rl  rq  rz   rk  s   r#   rk  ri    s     Dr%   rk  c                   &   > \ rS rSr Y " 5       rSrg)CTestClassesAndFunctions.test_classify_overrides_bool.<locals>.HasNBi  r*   N)rU   rl   rm   rn   r,  rz   rs  s   r#   HasNBru    s
    Br%   rv  r,  r4  )r   rX   rb  r,  rs  r  )r^   rv  should_find_attrrk  s      @r#   test_classify_overrides_bool4TestClassesAndFunctions.test_classify_overrides_bool  sR    	DV 	D	F 	 #,,T65((K&(D(DU(KLr%   c                      " S S[         5      n " S SUS9n[        R                  " SSUS5      nU R                  U[        R                  " U5      5        g )	Nc                       \ rS rSrSrS rSrg)MTestClassesAndFunctions.test_classify_metaclass_class_attribute.<locals>.Metai%  slapc                 
    / SQ$ )N)rc  rl   rU   fishr*   ri   s    r#   __dir__UTestClassesAndFunctions.test_classify_metaclass_class_attribute.<locals>.Meta.__dir__'      FFr%   r*   N)rU   rl   rm   rn   r  r  rz   r*   r%   r#   rX  r|  %  s    DGr%   rX  c                       \ rS rSrSrg)NTestClassesAndFunctions.test_classify_metaclass_class_attribute.<locals>.Classi)  r*   Nr-  r*   r%   r#   Classr  )  r  r%   r  r  r  r4  r}  r   rX   rb  rs  r  r^   rX  r  should_finds       r#   'test_classify_metaclass_class_attribute?TestClassesAndFunctions.test_classify_metaclass_class_attribute$  sK    	G4 	G	d 	''fEk7#?#?#FGr%   c                      " S S[         5      n " S SUS9n[        R                  " SSUS5      nU R                  U[        R                  " U5      5        g )	Nc                   .   ^  \ rS rSrS rU 4S jrSrU =r$ )DTestClassesAndFunctions.test_classify_VirtualAttribute.<locals>.Metai/  c                 
    / SQ$ )N)rc  rl   rU   BOOMr*   r  s    r#   r  LTestClassesAndFunctions.test_classify_VirtualAttribute.<locals>.Meta.__dir__0  r  r%   c                 0   > US:X  a  g[         TU ]  U5      $ )Nr  r7  )ra  _Meta__getattrrU  s     r#   ra  PTestClassesAndFunctions.test_classify_VirtualAttribute.<locals>.Meta.__getattr__2  s    &=w(..r%   r*   rU   rl   rm   rn   r  ra  rz   rn  ro  s   @r#   rX  r  /  s    G/ /r%   rX  c                       \ rS rSrSrg)ETestClassesAndFunctions.test_classify_VirtualAttribute.<locals>.Classi6  r*   Nr-  r*   r%   r#   r  r  6  r  r%   r  r  r  r4  r7  r  r  s       r#   test_classify_VirtualAttribute6TestClassesAndFunctions.test_classify_VirtualAttribute.  sI    	/4 	/	d 	''bAk7#?#?#FGr%   c                   ^	^
  " S S[         5      m	 " S S[         5      m
 " U	U
4S jST	T
5      n " S ST	S	9n " S
 SX!S	9n[        R                  " SST	S5      n[        R                  " SST
S5      n[        R                  " SSUS5      n[        R                  " U5      nXEU4 H  nU R	                  X5        M     g )Nc                   .   ^  \ rS rSrS rU 4S jrSrU =r$ )STestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes.<locals>.Meta1i<  c                 
    / SQ$ )N)rc  rl   rU   oner*   r  s    r#   r  [TestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes.<locals>.Meta1.__dir__=      EEr%   c                 0   > US:X  a  g[         TU ]  U5      $ )Nr  r4   rT  rU  s     r#   ra  _TestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes.<locals>.Meta1.__getattr__?      %<w*400r%   r*   r  ro  s   @r#   Meta1r  <      F1 1r%   r  c                   .   ^  \ rS rSrS rU 4S jrSrU =r$ )STestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes.<locals>.Meta2iC  c                 
    / SQ$ )N)rc  rl   rU   twor*   r  s    r#   r  [TestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes.<locals>.Meta2.__dir__D  r  r%   c                 0   > US:X  a  g[         TU ]  U5      $ )Nr  r5   rT  rU  s     r#   ra  _TestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes.<locals>.Meta2.__getattr__F  r  r%   r*   r  ro  s   @r#   Meta2r  C  r  r%   r  c                   8   >^  \ rS rSrUU4S jrU 4S jrSrU =r$ )STestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes.<locals>.Meta3iJ  c           
         > [        [        [        / SQTR                  U 5      -   TR                  U 5      -   5      5      5      $ )N)rc  rl   rU   three)rD  r  rW   r  )r  r  r  s    r#   r  [TestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes.<locals>.Meta3.__dir__K  sC    F3'WMM#&(').s);(< $= > ? ?r%   c                 0   > US:X  a  g[         TU ]  U5      $ )Nr  r  rT  rU  s     r#   ra  _TestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes.<locals>.Meta3.__getattr__N  s    '>w*400r%   r*   r  )rc  r  r  s   @r#   Meta3r  J  s    ?1 1r%   r  c                       \ rS rSrSrg)TTestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes.<locals>.Class1iR  r*   Nr-  r*   r%   r#   Class1r  R  r  r%   r  r  c                       \ rS rSrSrg)TTestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes.<locals>.Class2iT  r*   Nr-  r*   r%   r#   Class2r  T  r  r%   r  r  r4  r4   r  r5   r  r  )r   rX   rb  r  rs  )r^   r  r  r  should_find1should_find2should_find3ccasfr  r  s            @@r#   ,test_classify_VirtualAttribute_multi_classesDTestClassesAndFunctions.test_classify_VirtualAttribute_multi_classes;  s    	1D 	1	1D 	1	1 	1E5 	1	u 		V 	 ((qA((qA((&%C**62|<BMM"" =r%   c                      " S S[         5      n " S SUS9n[        R                  " U5       Vs/ s H  o3S   PM	     nnU R                  SU5        g s  snf )Nc                       \ rS rSrS rSrg)KTestClassesAndFunctions.test_classify_class_attrs_with_buggy_dir.<locals>.Mi_  c                 
    / SQ$ N)rc  rU   missingr*   r  s    r#   r  STestClassesAndFunctions.test_classify_class_attrs_with_buggy_dir.<locals>.M.__dir__`      ;;r%   r*   NrU   rl   rm   rn   r  rz   r*   r%   r#   Mr  _      <r%   r  c                       \ rS rSrSrg)KTestClassesAndFunctions.test_classify_class_attrs_with_buggy_dir.<locals>.Cib  r*   Nr-  r*   r%   r#   rp  r  b  r  r%   rp  r  r   r  )r   rX   r  rt  r^   r  rp  r-   rC  s        r#   (test_classify_class_attrs_with_buggy_dir@TestClassesAndFunctions.test_classify_class_attrs_with_buggy_dir^  sS    	< 	<	! 	&;;A>?>!1>?E* @   Ac                 F    " S S[         5      nS nU" [        R                  5      nU" [        R                  5      nU R	                  [        R
                  " X5      SUR                  S   4/5        U R	                  [        R
                  " X5      SUR                  S   4/5         " S SU5      nU R	                  [        R
                  " XS5      SUR                  S   4/5        U R	                  [        R
                  " XT5      SUR                  S   4/5        g )Nc                   0    \ rS rSr\" 5       r\" 5       rSrg)>TestClassesAndFunctions.test_getmembers_descriptors.<locals>.Aih  r*   N)	rU   rl   rm   rn   rw  r,  r  r-  rz   r*   r%   r#   rV  r  h  s    &(B(*Br%   rV  c                 6   ^ ^  " S S[         5      mUU 4S jnU$ )Nc                       \ rS rSrSrg)XTestClassesAndFunctions.test_getmembers_descriptors.<locals>.pred_wrapper.<locals>.Emptyio  r*   Nr-  r*   r%   r#   Emptyr  o  s    r%   r  c                 j   > S[        U 5      ;   a  [        TU R                  5      (       a  gT" U 5      $ )NrU   F)rI  r   rU   )ru  r  preds    r#   r   ZTestClassesAndFunctions.test_getmembers_descriptors.<locals>.pred_wrapper.<locals>.wrappedq  s+    Q'GE1::,F,F Awr%   r   )r  r   r  s   ` @r#   pred_wrapperITestClassesAndFunctions.test_getmembers_descriptors.<locals>.pred_wrapperl  s      Nr%   r-  r,  c                       \ rS rSrSrg)>TestClassesAndFunctions.test_getmembers_descriptors.<locals>.Bi  r*   Nr-  r*   r%   r#   r  r    r  r%   r  )r   rX   r   r   r  rr  r  )r^   rV  r  r   r   r  s         r#   test_getmembers_descriptors3TestClassesAndFunctions.test_getmembers_descriptorsg  s   	+ 	+		 *'*D*DE'(@(@A++ABAJJt$%&	(++A@AJJt$%&	(	 	 	++ABAJJt$%&	(++A@AJJt$%&	(r%   c                     " S S5      nU R                  SUR                  4[        R                  " U5      5        U R	                  SUR                  4[        R                  " U[        R
                  5      5        U" 5       nU R                  SUR                  4[        R                  " U5      5        U R                  SUR                  4[        R                  " U[        R
                  5      5        g )Nc                       \ rS rSrS rSrg)9TestClassesAndFunctions.test_getmembers_method.<locals>.Bi  c                     g r    r*   ri   s    r#   r  ;TestClassesAndFunctions.test_getmembers_method.<locals>.B.f  r)  r%   r*   NrU   rl   rm   rn   r  rz   r*   r%   r#   r  r    r   r%   r  r  )rs  r  rX   rr  rt  rs   )r^   r  rm  s      r#   test_getmembers_method.TestClassesAndFunctions.test_getmembers_method  s    	 	 	sACCj'"4"4Q"78#qssW%7%77;K;K%LMCsACCj'"4"4Q"78sACCj'"4"4Q8H8H"IJr%   c                     " S S5      nU" S5      nU R                  [        R                  " U5      SSUR                  4/5        U R                  [        R                  " U[        R                  5      SUR                  4/5        g )Nc                   &    \ rS rSrS rS rS rSrg)FTestClassesAndFunctions.test_getmembers_custom_dir.<locals>.CorrectDiri  c                     Xl         g r    r`  r_  s     r#   r   OTestClassesAndFunctions.test_getmembers_custom_dir.<locals>.CorrectDir.__init__  s     	r%   c                      U R                   S-   $ r  r  ri   s    r#   rL  MTestClassesAndFunctions.test_getmembers_custom_dir.<locals>.CorrectDir.method  s    yy1}$r%   c                 
    SS/$ )Nr`  rL  r*   ri   s    r#   r  NTestClassesAndFunctions.test_getmembers_custom_dir.<locals>.CorrectDir.__dir__  s    ))r%   r  N)rU   rl   rm   rn   r   rL  r  rz   r*   r%   r#   
CorrectDirr    s    !%*r%   r  r  )r`  r  rL  r  rX   rr  rL  rs   )r^   r  cds      r#   test_getmembers_custom_dir2TestClassesAndFunctions.test_getmembers_custom_dir  s}    	* 	* ]++B/ryy!2
 	 	++B0@0@Aryy!D
 	r%   c                     " S S5      nU" 5       nU R                  [        R                  " U5      SSUR                  4/5        U R                  [        R                  " U[        R                  5      SUR                  4/5        g )Nc                   $    \ rS rSrSrS rS rSrg)LTestClassesAndFunctions.test_getmembers_custom_broken_dir.<locals>.BrokenDiri  r4   c                      U R                   S-   $ r  )existingri   s    r#   rL  STestClassesAndFunctions.test_getmembers_custom_broken_dir.<locals>.BrokenDir.method  s    }}q((r%   c                 
    / SQ$ )N)rL  r  r  r*   ri   s    r#   r  TTestClassesAndFunctions.test_getmembers_custom_broken_dir.<locals>.BrokenDir.__dir__  s    88r%   r*   N)rU   rl   rm   rn   r  rL  r  rz   r*   r%   r#   	BrokenDirr    s    H)9r%   r  )r  r4   rL  r  )r^   r  bds      r#   !test_getmembers_custom_broken_dir9TestClassesAndFunctions.test_getmembers_custom_broken_dir  s{    	9 	9 [++B/ryy!2
 	 	++B0@0@Aryy!D
 	r%   c                 t     " S S5      nU" 5       nU R                  [        R                  " U5      S/5        g )Nc                       \ rS rSrSrS rSrg)TTestClassesAndFunctions.test_getmembers_custom_duplicated_dir.<locals>.DuplicatedDiri  r4   c                 
    SS/$ )Nr`  r*   ri   s    r#   r  \TestClassesAndFunctions.test_getmembers_custom_duplicated_dir.<locals>.DuplicatedDir.__dir__  s    ''r%   r*   N)rU   rl   rm   rn   r`  r  rz   r*   r%   r#   DuplicatedDirr    s    D(r%   r  )r`  r4   )r  rX   rr  )r^   r  r,  s      r#   %test_getmembers_custom_duplicated_dir=TestClassesAndFunctions.test_getmembers_custom_duplicated_dir  s8    	( 	(
 _++B/2
 	r%   c                 \    " S S[         5      n " S SUS9n " S S5      nU R                  S[        R                  " U5      5        U R                  S	[        R                  " U" 5       5      5        U" 5       nU R                  S
UR                  4[        R                  " U5      5        g )Nc                   (   ^  \ rS rSrU 4S jrSrU =r$ )CTestClassesAndFunctions.test_getmembers_VirtualAttribute.<locals>.Mi  c                 0   > US:X  a  g[         TU ]  U5      $ )Nr  	scrambledrT  )r  r  rc  s     r#   ra  OTestClassesAndFunctions.test_getmembers_VirtualAttribute.<locals>.M.__getattr__  s    6>&w*400r%   r*   rW  ro  s   @r#   r  r    rY  r%   r  c                   8    \ rS rSr\R
                  S 5       rSrg)CTestClassesAndFunctions.test_getmembers_VirtualAttribute.<locals>.Ai  c                     gr   r*   ri   s    r#   r  HTestClassesAndFunctions.test_getmembers_VirtualAttribute.<locals>.A.eggs  r^  r%   r*   N)rU   rl   rm   rn   r   r_  r  rz   r*   r%   r#   rV  r    ra  r%   rV  r  c                       \ rS rSrS rSrg)CTestClassesAndFunctions.test_getmembers_VirtualAttribute.<locals>.Bi  c                     g r    r*   )r^   	attributes     r#   ra  OTestClassesAndFunctions.test_getmembers_VirtualAttribute.<locals>.B.__getattr__  rc  r%   r*   Nrd  r*   r%   r#   r  r    rf  r%   r  )r  r  )r  r   ra  )r   rs  rX   rr  ra  )r^   r  rV  r  rm  s        r#    test_getmembers_VirtualAttribute8TestClassesAndFunctions.test_getmembers_VirtualAttribute  s    	1 	1
	! 		 	 	+W-?-?-BC&(:(:13(?@C}amm4g6H6H6KLr%   c                     " S S5      nU" 5       n[         R                  " U5      n[         R                  " U5      nU R                  S[         R                  " US5      4U5        U R                  S[         R                  " US5      4U5        U R                  S[         R                  " US5      4U5        U R                  S[         R                  " US5      4U5        g )Nc                   H    \ rS rSr\S 5       r\R                  S 5       rSr	g)9TestClassesAndFunctions.test_getmembers_static.<locals>.Ai  c                     [         er    ro  ri   s    r#   r  >TestClassesAndFunctions.test_getmembers_static.<locals>.A.name      ))r%   c                     [         er    ro  ri   s    r#   r  >TestClassesAndFunctions.test_getmembers_static.<locals>.A.eggs  r$  r%   r*   N)
rU   rl   rm   rn   r  r  r   r_  r  rz   r*   r%   r#   rV  r!    s,    * *((* )*r%   rV  r  r  )rX   getmembers_staticrs  getattr_static)r^   rV  r-   instance_membersclass_memberss        r#   test_getmembers_static.TestClassesAndFunctions.test_getmembers_static  s    	* 	* C"44Q711!4vw55a@ACSTvw55a@ACSTvw55a@A=Qvw55a@A=Qr%   c                      " S S[         5      n " S SUS9n[        R                  " U5       Vs/ s H  o3S   PM	     nnU R                  SU5        g s  snf )Nc                       \ rS rSrS rSrg)ATestClassesAndFunctions.test_getmembers_with_buggy_dir.<locals>.Mi  c                 
    / SQ$ r  r*   r  s    r#   r  ITestClassesAndFunctions.test_getmembers_with_buggy_dir.<locals>.M.__dir__  r  r%   r*   Nr  r*   r%   r#   r  r/    r  r%   r  c                       \ rS rSrSrg)ATestClassesAndFunctions.test_getmembers_with_buggy_dir.<locals>.Ci  r*   Nr-  r*   r%   r#   rp  r3    r  r%   rp  r  r   r  )r   rX   rr  rt  r  s        r#   test_getmembers_with_buggy_dir6TestClassesAndFunctions.test_getmembers_with_buggy_dir  sR    	< 	<	! 	&11!454!145E* 6r  c                    S[         S[        4S jnU R                  [        R                  " U5      [         [        S.5        SSS.Ul        U R                  [        R                  " U5      SSS.5        U R                  [        R                  " US[        5       S9U[        S.5        U R                  [        R                  " US[        5       S	9U[        S.5        [        nU R                  [        R                  " U5      [         [        S.5        U R                  [        R                  " UR                  5      [         [        S.5        U R                  [        R                  " UR                  5      [         [        UR                  S
.5        U R                  [        R                  " UR                  5      [         SUR                  UR                  S.5        U R                  [        R                  " UR                  5      SSSS.5        U R                  [        R                  " [        5      0 5        U R                  [        R                  " UR                  5      0 5        U R                  [        R                  " UR                  5      0 5        U R                  [        R                  " USS9[         [        S.5        U R                  [        R                  " UR                  SS9[         [        S.5        U R                  [        R                  " UR                  SS9[         [        UR                  S
.5        U R                  [        R                  " UR                  SS9[         [        UR                  UR                  S.5        U R                  [        R                  " UR                  SS9[         [        UR                  S.5        U R                  [        R                  " [        SS90 5        U R                  [        R                  " UR                  SS90 5        U R                  [        R                  " UR                  SS90 5        U R                  [        R                  " USS9[         [        S.5        U R                  [        R                  " UR                  SS9[         [        S.5        U R                  [        R                  " UR                  SS9[         [        UR                  S
.5        U R                  [        R                  " UR                  SS9[         SUR                  UR                  S.5        U R                  [        R                  " UR                  SS9SSSS.5        U R                  [        R                  " [        SS90 5        U R                  [        R                  " UR                  SS90 5        U R                  [        R                  " UR                  SS90 5        S nU" UR                  5      nU R                  U" SS5      UR                  SS5      5        U R                  UR                  UR                  R                  5        U R                  [        R                  " U5      [         [        UR                  S
.5        U R                  [        R                  " USS9[         [        UR                  S
.5        U R                  [        R                  " USS9[         [        UR                  S
.5        g )Nr-   rm  c                     g r    r*   rl  s     r#   r6   PTestClassesAndFunctions.test_get_annotations_with_stock_annotations.<locals>.foo  r   r%   rl  r6   rC  Teval_strr  r:  globalsr-   rm  r  r-   rm  r   r  r   MyClassr-   rm  r   r:  Fc                 F   ^  [         R                  " T 5      U 4S j5       nU$ )Nc                 "   > T" U S-  US-  5      $ r  r*   r-   rm  r  s     r#   wrapperiTestClassesAndFunctions.test_get_annotations_with_stock_annotations.<locals>.times_three.<locals>.wrapper      !A#qs|#r%   r   r  rE  s   ` r#   times_threeXTestClassesAndFunctions.test_get_annotations_with_stock_annotations.<locals>.times_three  #    __R $ !$Nr%   r4   ru  r  xxx)r   rC  r  rX   get_annotationsr  r  r   r?  r  	function2	function3UnannotatedClassunannotated_functionassertIsNot__globals__)r^   r6   isarI  r   s        r#   +test_get_annotations_with_stock_annotationsCTestClassesAndFunctions.test_get_annotations_with_stock_annotations  s{   ####005Ss7KL$)u5005U7OP00tFHU]`gjWkl00tVXV^ahkXlm'005Ss7KL00=Ss?ST00>cPS_b_j_j@kl00?sQV]`]h]htwtt  BA  	B00?uSX_hAij0092>001E1EFK001I1IJBO00tDCVYFZ[00tLTW^aNbc00MUX_bnqnynyOz{00NVY`cjmjuju  BE  BM  BM  QN  	O00NVY`cjmjujuPvw004H"M001E1EPTUWYZ001I1ITXY[]^00uESWZG[\00uMUX_bOcd00NVY`corozozP{|00OWZafmpmxmx  EH  EP  EP  RQ  	R00OW\choxQyz005I2N001E1EPUVXZ[001I1ITYZ\^_	 cll+C#++a*?@,,cll.F.FG0093Z]ZeZe;fg004HPSZ]ilititJuv005IQT[^jmjujuKvwr%   c                 0   [         nU R                  [        R                  " U5      SSS.5        U R                  [        R                  " UR                  5      SSS.5        U R                  [        R                  " UR
                  5      SSSS.5        U R                  [        R                  " UR                  5      SSSSS.5        U R                  [        R                  " UR                  5      SSS	S
.5        U R                  [        R                  " UR                  5      0 5        U R                  [        R                  " UR                  5      0 5        U R                  [        R                  " USS9[        [        S.5        U R                  [        R                  " UR                  SS9[        [        S.5        U R                  [        R                  " UR
                  SS9[        [        UR                  S.5        U R                  [        R                  " UR                  SS9[        SUR                  UR                  S.5        U R                  [        R                  " UR                  SS9SSSS
.5        U R                  [        R                  " UR                  SS90 5        U R                  [        R                  " UR                  SS90 5        U R                  [        R                  " USS9SSS.5        U R                  [        R                  " UR                  SS9SSS.5        U R                  [        R                  " UR
                  SS9SSSS.5        U R                  [        R                  " UR                  SS9SSSSS.5        U R                  [        R                  " UR                  SS9SSS	S
.5        U R                  [        R                  " UR                  SS90 5        U R                  [        R                  " UR                  SS90 5        [        nU R                  [        R                  " U5      0 5        U R                  [        R                  " USS90 5        U R                  [        R                  " USS90 5        S nU" UR
                  5      nU R                  U" SS5      UR	                  SS5      5        U R                  UR                  UR
                  R                  5        U R                  [        R                  " U5      SSSS.5        U R                  [        R                  " USS9[        [        UR                  S.5        U R                  [        R                  " USS9SSSS.5        U R                  [        R                  " UR                  5      SS05        U R                  [        R                  " UR                  SS9S[        05        g )Nr   rC  rl  r?  r=  'str'r>  'int'	'MyClass'r@  TrA  Fc                 F   ^  [         R                  " T 5      U 4S j5       nU$ )Nc                 "   > T" U S-  US-  5      $ r  r*   rD  s     r#   rE  nTestClassesAndFunctions.test_get_annotations_with_stringized_annotations.<locals>.times_three.<locals>.wrapperC  rG  r%   r   rH  s   ` r#   rI  ]TestClassesAndFunctions.test_get_annotations_with_stringized_annotations.<locals>.times_threeB  rK  r%   r4   ru  r  rL  mytype)r   r  rX   rM  r?  r  rN  rO  rP  rQ  r   rC  r   rR  rS  MyClassWithLocalAnnotations)r^   rT  isa2rI  r   s        r#   0test_get_annotations_with_stringized_annotationsHTestClassesAndFunctions.test_get_annotations_with_stringized_annotations#  s   ,005U7OP00=UQV?WX00>eRWcl@mn00?uSZajv  BA  	B00?wU\cnAop001E1EFK001I1IJBO00tDCVYFZ[00tLTW^aNbc00MUX_bnqnynyOz{00NVY`elolwlw  DG  DO  DO  QP  	Q00NV[bgnwPxy001E1EPTUWYZ001I1ITXY[]^00uEUY^G_`00uMUZafOgh00NV[bgs|P}~00OW\cjqz  GP  RQ  	R00OW^els~Q  	A001E1EPUVXZ[001I1ITYZ\^_/006;00ErJ00FK	 cll+C#++a*?@,,cll.F.FG009U^g;hi004HPSZ]ilititJuv005IQV]bnwKxy 	001P1PQTWYaSbc001P1P[_`cfhkblmr%   c                 L   [         n[        R                  " UR                  SS9nUR                  R                  nU R                  US   US   5        U R                  US   R                  S   [        US      5        U R                  US   R                  S   US   5        g )	NTrA  ru  r   r  r4   r3   r5   )	r   rX   rM  rV  __type_params__r  r  __args__r   )r^   ann_module695A_annotationsA_type_paramss       r#   1test_pep695_generic_class_with_future_annotationsITestClassesAndFunctions.test_pep695_generic_class_with_future_annotationsS  s    =//$O%77mC(-*:;s+44Q7a@P9QRmC(11!4mA6FGr%   c                     [         R                  " [        R                  SS9nU R	                  U[
        [        [        S.5        g )NTrA  ru  r  r3   )rX   rM  r   r  r  r   rC  bytes)r^   B_annotationss     r#   Etest_pep695_generic_class_with_future_annotations_and_local_shadowing]TestClassesAndFunctions.test_pep695_generic_class_with_future_annotations_and_local_shadowing[  s6    //133d
 	c%(HIr%   c                     [         n[        R                  " UR                  SS9nU R	                  [        UR                  5       5      [        UR                  R                  5      5        g NTrA  )r   rX   rM  rp  r  rW   valuesre  )r^   rg  C_annotationss      r#   Mtest_pep695_generic_class_with_future_annotations_name_clash_with_global_varseTestClassesAndFunctions.test_pep695_generic_class_with_future_annotations_name_clash_with_global_varsa  sN    =//$O$$&'//0	
r%   c                    [         n[        R                  " UR                  SS9nUR                  R                  nU R                  UR                  5       1 Sk5        U R                  US   US   5        U R                  US   [        US      5        U R                  US   R                  US	   5        U R                  US
   R                  US	   5        g )NTrA  >   ru  r  r3   zzr  ru  r   r  r4   r3   r5   ry  )
r   rX   rM  generic_functionre  r  keysr  r   
__origin__)r^   rg  generic_func_annotationsfunc_t_paramss       r#   5test_pep_695_generic_function_with_future_annotationsMTestClassesAndFunctions.test_pep_695_generic_function_with_future_annotationsi  s    =#*#:#:**T$
  &66FF$))+-L	
 	.s3]15EF1#6}Q?O8PQ.s3>>a@PQ.t4??qAQRr%   c           	          U R                  [        [        R                  " [        R
                  SS9R                  5       5      [        [        R
                  R                  5      5        g rs  )r  rW   rX   rM  r   generic_function_2rt  re  ri   s    r#   Qtest_pep_695_generic_function_with_future_annotations_name_clash_with_global_varsiTestClassesAndFunctions.test_pep_695_generic_function_with_future_annotations_name_clash_with_global_varsw  sT    ''9LL! &(	 5HHXX
	
r%   c                    [         n[        R                  " UR                  R                  SS9nUR                  R                  R
                   Vs0 s H  nUR                  U_M     nnU R                  UUS   US   S S.5        g s  snf )NTrA  FooBar)ru  r  r  )r   rX   rM  r  generic_methodre  rU   r  )r^   rg  generic_method_annotationsparamparamss        r#   3test_pep_695_generic_method_with_future_annotationsKTestClassesAndFunctions.test_pep_695_generic_method_with_future_annotations  s    =%,%<%<OO**T&
"
 '77GG
G NNE!G 	 
 	&-fUmtD	
	
s   Bc           	         U R                  [        [        R                  " [        R
                  R                  SS9R                  5       5      [        [        R
                  R                  R                  5      5        g rs  )	r  rW   rX   rM  r   r  generic_method_2rt  re  ri   s    r#   Otest_pep_695_generic_method_with_future_annotations_name_clash_with_global_varsgTestClassesAndFunctions.test_pep_695_generic_method_with_future_annotations_name_clash_with_global_vars  s`    ''9;;LL! &(	 577HHXX
	
r%   c                 v    U R                  [        R                  " [        R                  SS9S[
        05        g )NTrA  ru  )r  rX   rM  r   ErC  ri   s    r#   Ytest_pep_695_generic_method_with_future_annotations_name_clash_with_global_and_local_varsqTestClassesAndFunctions.test_pep_695_generic_method_with_future_annotations_name_clash_with_global_and_local_vars  s2    ##577$ #J		
r%   c                    [         R                  " 5       nU R                  [        UR                  R                  5       5      [        UR                  R                  5      5        U R                  [        UR                  R                  5       5      [        UR                  R                  R                  5      5        U R                  [        UR                  R                  5       5      [        UR                  R                  5      5        U R                  [        UR                  R                  5       5      R                  UR                  R                  5      [        5       5        U R                  UR                  S[        05        U R                  [        UR                  R                  5       5      [        UR                  R                  5      5        g )Nru  )r   nestedr  rW   F_annotationsrt  Fre  F_meth_annotationsr  assertNotEqualintersectionG_annotationsrC  r}  generic_func)r^   resultss     r#   @test_pep_695_generics_with_future_annotations_nested_in_functionXTestClassesAndFunctions.test_pep_695_generics_with_future_annotations_nested_in_function  sU   7>>@%%,,./		))*	
 	**1134		((889	
 	**1134		))*	
 	**1134AA'))B[B[\E	

 	..c
;00779:$$445	
r%   r*   ).rU   rl   rm   rn   r  r  r  r  r  r  r  r  r
   r  r   r  r  r  rD  rN  re  rx  r  r  r  r  r  r  r  r  r  r  r+  r4  rU  rb  rj  rp  rv  r  r  r  r  r  r  rz   r*   r%   r#   r  r     s\   	( BF,0T24259*,	%H015A __)MO	IO	I __)MO6O 6 __)MO-CO -C^	>OKb.(HMHH!#F+(@	K$(
M$R"+1xf.n`HJ
S




r%   r  c                        \ rS rSrS rS rSrg)TestFormatAnnotationi  c                    SSK JnJnJn  U R	                  [
        R                  " U5      S5        U R	                  [
        R                  " U5      S5        U R	                  [
        R                  " US5      S5        U R	                  [
        R                  " US5      S5        U R	                  [
        R                  " US5      S5        g )	Nr   )rV  r  ann1zUnion[List[str], int]%Union[List[testModule.typing.A], int]testModule.typingrV  rb   testModule.typing.A)test.typinganndata.ann_module9rV  r  r  r  rX   formatannotation)r^   rV  r  r  s       r#   test_typing_replacement,TestFormatAnnotation.test_typing_replacement  s    ??11#68OP11$79`a11!5HI3O11!W=?TU$$T+>?3	
r%   c                    SSK JnJn  U R                  [        R
                  " [        5      " [        5      S5        U R                  [        R
                  " S 5      " U5      S5         " S S5      nSUl        U R                  [        R
                  " U5      " U5      S5        U R                  [        R
                  " [        5      " U5      S5        U R                  [        R
                  " U5      " U5      S	5        g )
Nr   )rV  r  r   r  c                       \ rS rSrSrg)?TestFormatAnnotation.test_formatannotationrelativeto.<locals>.Bi  r*   Nr-  r*   r%   r#   r  r    s    r%   r  r  rV  r  )	r  rV  r  r  rX   formatannotationrelativetor   r   rl   )r^   rV  r  r  s       r#   test_formatannotationrelativeto4TestFormatAnnotation.test_formatannotationrelativeto  s    : 	..v6t<	
 	..t4Q7!	

 	*..q1!4	

 	..v6q9!	
 	..q1$73	
r%   r*   N)rU   rl   rm   rn   r  r  rz   r*   r%   r#   r  r    s    

 
r%   r  c                   ,    \ rS rSrS rS rS rS rSrg)TestIsMethodDescriptori  c                 d    " S S5      n " S SU5      n " S S5      n " S S5      n " S	 S
5      n " S SUU5      nU R                  [        R                  " U" 5       5      S5        U R                  [        R                  " U" 5       5      S5        U R                  [        R                  " U" 5       5      S5        U R                  [        R                  " U" 5       5      S5        U R                  [        R                  " U" 5       5      S5        U R                  [        R                  " U" 5       5      S5        U R                  [        R                  " U5      5        U R                  [        R                  " U5      5        U R                  [        R                  " U5      5        g )Nc                       \ rS rSrS rSrg)HTestIsMethodDescriptor.test_custom_descriptors.<locals>.MethodDescriptori  c                     g r    r*   r^   r  s     r#   r   PTestIsMethodDescriptor.test_custom_descriptors.<locals>.MethodDescriptor.__get__      4r%   r*   NrU   rl   rm   rn   r   rz   r*   r%   r#   MethodDescriptorr        'r%   r  c                       \ rS rSrSrg)KTestIsMethodDescriptor.test_custom_descriptors.<locals>.MethodDescriptorSubi  r*   Nr-  r*   r%   r#   MethodDescriptorSubr    r  r%   r  c                       \ rS rSrS rSrg)OTestIsMethodDescriptor.test_custom_descriptors.<locals>.DataDescriptorWithNoGeti  c                     g r    r*   r  s     r#   r  WTestIsMethodDescriptor.test_custom_descriptors.<locals>.DataDescriptorWithNoGet.__set__  r  r%   r*   NrU   rl   rm   rn   r  rz   r*   r%   r#   DataDescriptorWithNoGetr    r  r%   r  c                        \ rS rSrS rS rSrg)PTestIsMethodDescriptor.test_custom_descriptors.<locals>.DataDescriptorWithGetSeti  c                     g r    r*   r  s     r#   r   XTestIsMethodDescriptor.test_custom_descriptors.<locals>.DataDescriptorWithGetSet.__get__  r  r%   c                     g r    r*   r  s     r#   r  XTestIsMethodDescriptor.test_custom_descriptors.<locals>.DataDescriptorWithGetSet.__set__  r  r%   r*   N)rU   rl   rm   rn   r   r  rz   r*   r%   r#   DataDescriptorWithGetSetr    s    ''r%   r  c                        \ rS rSrS rS rSrg)STestIsMethodDescriptor.test_custom_descriptors.<locals>.DataDescriptorWithGetDeletei  c                     g r    r*   r  s     r#   r   [TestIsMethodDescriptor.test_custom_descriptors.<locals>.DataDescriptorWithGetDelete.__get__   r  r%   c                     g r    r*   r  s     r#   
__delete__^TestIsMethodDescriptor.test_custom_descriptors.<locals>.DataDescriptorWithGetDelete.__delete__  s    dr%   r*   N)rU   rl   rm   rn   r   r  rz   r*   r%   r#   DataDescriptorWithGetDeleter    s    '*r%   r  c                       \ rS rSrSrg)ITestIsMethodDescriptor.test_custom_descriptors.<locals>.DataDescriptorSubi  r*   Nr-  r*   r%   r#   DataDescriptorSubr    s    r%   r  z6__get__ and no __set__/__delete__ => method descriptorzB__get__ (inherited) and no __set__/__delete__ => method descriptorz3__set__ (and no __get__) => not a method descriptorz.__get__ and __set__ => not a method descriptorz1__get__ and __delete__ => not a method descriptorz:__get__, __set__ and __delete__ => not a method descriptor)rT   rX   r   r]   )r^   r  r  r  r  r  r  s          r#   test_custom_descriptors.TestIsMethodDescriptor.test_custom_descriptors  sw   	( 	(	"2 		( 	(	( 	(	+ 	+	 7 ;	
 	&&'7'9:D	F 	&&':'<=$	% 	&&'>'@AA	C 	&&'?'AB<	> 	&&'B'DE?	A 	&&'8':;H	J
 	334DEF334GHI334EFGr%   c                    [         R                  n " S S5      n " S S5      nS nS nU R                  [        R                  " U5      S5        U R                  [        R                  " UR
                  S   5      S	5        U R                  [        R                  " UR
                  S
   5      S5        U R                  [        R                  " UR
                  S   5      S5        U R                  [        R                  " UR
                  S   5      S5        U R                  [        R                  " U" 5       R                  5      5        U R                  [        R                  " U" 5       R                  5      5        U R                  [        R                  " U" 5       R                  5      5        U R                  [        R                  " UR                  5      5        U R                  [        R                  " UR                  5      5        U R                  [        R                  " UR                  5      5        U R                  [        R                  " U5      5        U R                  [        R                  " U5      5        U R                  [        R                  " [        R                  " U5      5      5        g )Nc                   J    \ rS rSrS r\S 5       r\S 5       r\	S 5       r
Srg)>TestIsMethodDescriptor.test_builtin_descriptors.<locals>.Owneri$  c                     g r    r*   ri   s    r#   instance_methodNTestIsMethodDescriptor.test_builtin_descriptors.<locals>.Owner.instance_method%      tr%   c                     g r    r*   r  s    r#   rP  KTestIsMethodDescriptor.test_builtin_descriptors.<locals>.Owner.class_method&      #'r%   c                      g r    r*   r*   r%   r#   rS  LTestIsMethodDescriptor.test_builtin_descriptors.<locals>.Owner.static_method(      !%r%   c                     g r    r*   ri   s    r#   
a_propertyITestIsMethodDescriptor.test_builtin_descriptors.<locals>.Owner.a_property*  s    "&r%   r*   N)rU   rl   rm   rn   r  r
  rP  r  rS  r  r  rz   r*   r%   r#   Ownerr  $  s/    +' '% %& &r%   r  c                       \ rS rSrSrSrg)DTestIsMethodDescriptor.test_builtin_descriptors.<locals>.Slotermeyeri,  )a_slotr*   Nrn  r*   r%   r#   Slotermeyerr  ,  s    !Ir%   r  c                      g r    r*   r*   r%   r#   r  ATestIsMethodDescriptor.test_builtin_descriptors.<locals>.function.  r  r%   c                      g r    r*   r*   r%   r#   r   ATestIsMethodDescriptor.test_builtin_descriptors.<locals>.<lambda>0      4r%   z-a builtin slot wrapper is a method descriptorrP  z+a classmethod object is a method descriptorrS  z,a staticmethod object is a method descriptorr  z%a property is not a method descriptorr  z!a slot is not a method descriptor)r   rG  rT   rX   r   r  r]   r  rP  rS  r   r  )r^   builtin_slot_wrapperr  r  r  a_lambdas         r#   test_builtin_descriptors/TestIsMethodDescriptor.test_builtin_descriptors"  s   "{{	' 	'	" 	"	 	&&';<;	= 	&&u~~n'EF9	; 	&&u~~o'FG:	<
 	&&u~~l'CD3	5 	&&{';';H'EF/	1 	33EG4K4KLM33EG4H4HIJ33EG4I4IJK33E4I4IJK33E4F4FGH33E4G4GHI33H=>33H=>33I4E4Eh4OPQr%   c                      " S S[         5      n " S SUS9nU R                  [        R                  " U5      S5        g )Nc                       \ rS rSrS rSrg)RTestIsMethodDescriptor.test_descriptor_being_a_class.<locals>.MethodDescriptorMetaiS  c                     g r    r*   r  s     r#   r   ZTestIsMethodDescriptor.test_descriptor_being_a_class.<locals>.MethodDescriptorMeta.__get__T  r  r%   r*   Nr  r*   r%   r#   MethodDescriptorMetar  S  r  r%   r  c                       \ rS rSrSrg)XTestIsMethodDescriptor.test_descriptor_being_a_class.<locals>.ClassBeingMethodDescriptoriU  r*   Nr-  r*   r%   r#   ClassBeingMethodDescriptorr  U  r  r%   r  r  z3classes (instances of type) are explicitly excluded)r   r]   rX   r   )r^   r  r  s      r#   test_descriptor_being_a_class4TestIsMethodDescriptor.test_descriptor_being_a_classR  s>    	(4 	(	3G 	
 	&&'ABA	Cr%   c                 L    " S S5      nU R                  [        R                  " U" 5       5      5        U R                  [        R                  " U5      5        U R                  [        R                  " S/5      5        U R                  [        R                  " S5      5        g )Nc                       \ rS rSrSrg)9TestIsMethodDescriptor.test_non_descriptors.<locals>.Testi_  r*   Nr-  r*   r%   r#   Testr  _  r  r%   r  r7  )r]   rX   r   r^   r  s     r#   test_non_descriptors+TestIsMethodDescriptor.test_non_descriptors^  st    	 	33DF;<33D9:33RD9:33B78r%   r*   N)	rU   rl   rm   rn   r  r  r  r
  rz   r*   r%   r#   r  r    s    +HZ.R`
C9r%   r  c                   ,    \ rS rSrS rS rS rS rSrg)TestIsDataDescriptorig  c                     " S S5      n " S S5      n " S S5      n " S S5      nU R                  [        R                  " U" 5       5      S	5        U R                  [        R                  " U" 5       5      S
5        U R                  [        R                  " U" 5       5      S5        U R                  [        R                  " U" 5       5      S5        g )Nc                       \ rS rSrSS jrSrg)GTestIsDataDescriptor.test_custom_descriptors.<locals>.NonDataDescriptorij  Nc                     g r    r*   )r^   valuer   s      r#   r   OTestIsDataDescriptor.test_custom_descriptors.<locals>.NonDataDescriptor.__get__k  s    r%   r*   r    r  r*   r%   r#   NonDataDescriptorr  j  s    5r%   r  c                       \ rS rSrS rSrg)ETestIsDataDescriptor.test_custom_descriptors.<locals>.DataDescriptor0il  c                     g r    r*   )r^   r  r  s      r#   r  MTestIsDataDescriptor.test_custom_descriptors.<locals>.DataDescriptor0.__set__m      Dr%   r*   Nr  r*   r%   r#   DataDescriptor0r  l  s    0r%   r  c                       \ rS rSrS rSrg)ETestIsDataDescriptor.test_custom_descriptors.<locals>.DataDescriptor1in  c                     g r    r*   )r^   r  s     r#   r  PTestIsDataDescriptor.test_custom_descriptors.<locals>.DataDescriptor1.__delete__o      r%   r*   N)rU   rl   rm   rn   r  rz   r*   r%   r#   DataDescriptor1r  n  s    ,r%   r   c                       \ rS rSrSrSrg)ETestIsDataDescriptor.test_custom_descriptors.<locals>.DataDescriptor2ip  Nr*   r  r*   r%   r#   DataDescriptor2r"  p  s    Gr%   r#  z-class with only __get__ not a data descriptorz'class with __set__ is a data descriptorz*class with __delete__ is a data descriptorz.class with __set__ = None is a data descriptor)r]   rX   r   rT   )r^   r  r  r   r#  s        r#   r  ,TestIsDataDescriptor.test_custom_descriptorsi  s    	6 	6	1 	1	- 	-	 	112C2EFH	J001BCA	C001BCD	F001BCH	Jr%   c                 x     " S S5      nU R                  [        R                  " UR                  5      S5        g )Nc                       \ rS rSrSrSrg)/TestIsDataDescriptor.test_slot.<locals>.Slottedi|  r6   r*   Nrn  r*   r%   r#   Slottedr'  |  s    Ir%   r)  za slot is a data descriptor)rT   rX   r   r6   )r^   r)  s     r#   	test_slotTestIsDataDescriptor.test_slot{  s,    	 	00=5	7r%   c                 x     " S S5      nU R                  [        R                  " UR                  5      S5        g )Nc                   $    \ rS rSr\S 5       rSrg)6TestIsDataDescriptor.test_property.<locals>.Propertiedi  c                     g r    r*   ri   s    r#   r  ATestIsDataDescriptor.test_property.<locals>.Propertied.a_property  r   r%   r*   N)rU   rl   rm   rn   r  r  rz   r*   r%   r#   
Propertiedr.    s     r%   r1  za property is a data descriptor)rT   rX   r   r  )r^   r1  s     r#   test_property"TestIsDataDescriptor.test_property  s0    	 	 	001F1FG9	;r%   c                     " S S[         5      nS nS nU R                  [        R                  " U" 5       R                  5      S5        U R                  [        R                  " U" 5       R
                  5      S5        U R                  [        R                  " U" 5       R                  5      S5        U R                  [        R                  " U5      S5        U R                  [        R                  " U5      S	5        g )
Nc                   :    \ rS rSrS r\S 5       r\S 5       rSr	g)1TestIsDataDescriptor.test_functions.<locals>.Testi  c                     g r    r*   ri   s    r#   r  ATestIsDataDescriptor.test_functions.<locals>.Test.instance_method  r  r%   c                     g r    r*   r  s    r#   rP  >TestIsDataDescriptor.test_functions.<locals>.Test.class_method  r  r%   c                      g r    r*   r*   r%   r#   rS  ?TestIsDataDescriptor.test_functions.<locals>.Test.static_method  r  r%   r*   N)
rU   rl   rm   rn   r  r
  rP  r  rS  rz   r*   r%   r#   r  r6    s!    +' '% %r%   r  c                      g r    r*   r*   r%   r#   r  5TestIsDataDescriptor.test_functions.<locals>.function  r  r%   c                      g r    r*   r*   r%   r#   r   5TestIsDataDescriptor.test_functions.<locals>.<lambda>  r  r%   z*a instance method is not a data descriptorz'a class method is not a data descriptorz(a static method is not a data descriptorz#a function is not a data descriptorz!a lambda is not a data descriptor)r   r]   rX   r   r  rP  rS  )r^   r  r  r  s       r#   test_functions#TestIsDataDescriptor.test_functions  s    	&6 	&	11$&2H2HIE	G11$&2E2EFB	D11$&2F2FGC	E11(;>	@11(;<	>r%   r*   N)	rU   rl   rm   rn   r  r*  r2  rA  rz   r*   r%   r#   r  r  g  s    J$7;>r%   r  c                   V    \ 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)TestGetClosureVarsi  c                     S n[        5       nSU0nS[        0nS[        0nS1n[        R                  " X4XV5      nU R                  [        R                  " U" U5      5      U5        g )Nc                    ^  U 4S jnU$ )Nc                 2   > [        U T[        [        5        g r    print_global_refunbound_ref	local_refnonlocal_refs    r#   r  =TestGetClosureVars.test_name_resolution.<locals>.f.<locals>.g  s    i{KHr%   r*   rN  r  s   ` r#   r  2TestGetClosureVars.test_name_resolution.<locals>.f  s    IHr%   rN  rJ  rI  rK  r   rJ  rI  rX   ClosureVarsr  getclosurevarsr^   r  _argnonlocal_varsglobal_varsbuiltin_varsunbound_namesrF  s           r#   test_name_resolution'TestGetClosureVars.test_name_resolution  sj    	 x'.$k2'&&&}'3D//$8(Cr%   c                     S n[        5       nSU0nS[        0nS[        0nS1n[        R                  " X4XV5      nU R                  [        R                  " U" U5      5      U5        g )Nc                    ^  U 4S jnU$ )Nc              3   B   >#    [        U T[        [        5        S v   g 7fr    rH  rL  s    r#   r  ?TestGetClosureVars.test_generator_closure.<locals>.f.<locals>.g  s     i{KHs   r*   rP  s   ` r#   r  4TestGetClosureVars.test_generator_closure.<locals>.f  s     Hr%   rN  rJ  rI  rK  rR  rU  s           r#   test_generator_closure)TestGetClosureVars.test_generator_closure  sj    	
 x'.$k2'&&&}'3D//$8(Cr%   c                      " S S5      n[        5       nSU0nS[        0nS[        0nS1n[        R                  " X4XV5      nU R                  [        R                  " U" 5       R                  U5      5      U5        g )Nc                       \ rS rSrS rSrg)1TestGetClosureVars.test_method_closure.<locals>.Ci  c                    ^ U4S jnU$ )Nc                 2   > [        U T[        [        5        g r    rH  rL  s    r#   r  >TestGetClosureVars.test_method_closure.<locals>.C.f.<locals>.g  s    )\;Lr%   r*   )r^   rN  r  s    ` r#   r  3TestGetClosureVars.test_method_closure.<locals>.C.f  s    Mr%   r*   Nr  r*   r%   r#   rp  rf    s    r%   rp  rN  rJ  rI  rK  )r   rJ  rI  rX   rS  r  rT  r  )r^   rp  rV  rW  rX  rY  rZ  rF  s           r#   test_method_closure&TestGetClosureVars.test_method_closure  su    	 	
 x'.$k2'&&&}'3D//d<hGr%   c                    ^  " S S5      mU4S jnST0nS[         0nS[        0nS1n[        R                  " X#XE5      nU R	                  [        R
                  " U5      U5        g )Nc                   "    \ rS rSr\" 5       rSrg)DTestGetClosureVars.test_attribute_same_name_as_global_var.<locals>.Ci  r*   N)rU   rl   rm   rn   r   rJ  rz   r*   r%   r#   rp  ro    s	     (Kr%   rp  c                  :   > [        T R                  [        5        g r    )rI  rJ  )rp  s   r#   r  DTestGetClosureVars.test_attribute_same_name_as_global_var.<locals>.f  s    !---r%   rJ  rI  )rJ  rI  rX   rS  r  rT  )r^   r  rW  rX  rY  rZ  rF  rp  s          @r#   &test_attribute_same_name_as_global_var9TestGetClosureVars.test_attribute_same_name_as_global_var  sg    	# 	#	.a$k2'&&&}'3D//2H=r%   c                 `  ^ ^^	 S m	S nS nS nU4S jmUU	U 4S jnU" S5      nU" S5      nU" US	5      nT R                  T	" U5      S
S05        T R                  T	" U5      S
S05        T R                  T	" U5      S	US.5        T R                  T	" S " S5      5      S
S05        T" U5        g )Nc                 B    [         R                  " U 5      R                  $ r    )rX   rT  	nonlocalsr  s    r#   _nonlocal_vars=TestGetClosureVars.test_nonlocal_vars.<locals>._nonlocal_vars  s    ))!,666r%   c                    ^  U 4S jnU$ )Nc                    > TU -   $ r    r*   r  ru  s    r#   r  FTestGetClosureVars.test_nonlocal_vars.<locals>.make_adder.<locals>.add  s    1ur%   r*   )ru  r  s   ` r#   
make_adder9TestGetClosureVars.test_nonlocal_vars.<locals>.make_adder  s    Jr%   c                    ^ ^ UU 4S j$ )Nc                    > T" TU 5      $ r    r*   )r  r  r   s    r#   r   FTestGetClosureVars.test_nonlocal_vars.<locals>.curry.<locals>.<lambda>  s    T4 0r%   r*   )r   r  s   ``r#   curry4TestGetClosureVars.test_nonlocal_vars.<locals>.curry  s	    00r%   c                 
    X:  $ r    r*   rl  s     r#   	less_than8TestGetClosureVars.test_nonlocal_vars.<locals>.less_than  	    5Lr%   c                 0   >^  U 4S jnUTl         U" U5      $ )Nc                    >^  T" U 4S j5      $ )Nc                     > T" T5      " U 5      $ r    r*   )ru  r  s    r#   r   MTestGetClosureVars.test_nonlocal_vars.<locals>.Y.<locals>.g.<locals>.<lambda>  s    AaDGr%   r*   )r  les   `r#   r  ;TestGetClosureVars.test_nonlocal_vars.<locals>.Y.<locals>.g  s    +,,r%   )g_ref)r  r  Ys   ` r#   r  0TestGetClosureVars.test_nonlocal_vars.<locals>.Y  s    -AGQ4Kr%   c                 N   > TR                  T" U 5      STR                  05        g )Nr  )r  r  )r   r  rx  r^   s    r#   check_y_combinatorATestGetClosureVars.test_nonlocal_vars.<locals>.check_y_combinator  s     ^D1C>Br%   r4   r5   r  ru  )r  r   c                    ^  U 4S j$ )Nc                    > TU -   $ r    r*   r|  s    r#   r   ITestGetClosureVars.test_nonlocal_vars.<locals>.<lambda>.<locals>.<lambda>  s	    QUr%   r*   ru  s   `r#   r   7TestGetClosureVars.test_nonlocal_vars.<locals>.<lambda>  s    ?r%   r  )r  )
r^   r~  r  r  r  incadd_twogreater_than_fiver  rx  s
   `       @@r#   test_nonlocal_vars%TestGetClosureVars.test_nonlocal_vars  s    	7	
	1			C mQ-!)Q/,sAh703(;(9:"#Y7	9)BA(FGq	#	
r%   c                     S n[         R                  " 0 0 0 [        5       5      nU R                  [         R                  " S 5      U5        U R                  [         R                  " U5      U5        g )Nc                      g r    r*   r*   r%   r#   r6   9TestGetClosureVars.test_getclosurevars_empty.<locals>.foo	  r   r%   c                      gNTr*   r*   r%   r#   r   >TestGetClosureVars.test_getclosurevars_empty.<locals>.<lambda>	  s    r%   )rX   rS  rW   r  rT  )r^   r6   _emptys      r#   test_getclosurevars_empty,TestGetClosureVars.test_getclosurevars_empty	  sS    $$RR7//=vF//4f=r%   c                      " S S5      nU R                  [        [        R                  S5        U R                  [        [        R                  [        5        U R                  [        [        R                  0 5        g )Nc                       \ rS rSrSrg)7TestGetClosureVars.test_getclosurevars_error.<locals>.Ti		  r*   Nr-  r*   r%   r#   Tr  		      r%   r  r4   )r  r  rX   rT  rD  )r^   r  s     r#   test_getclosurevars_error,TestGetClosureVars.test_getclosurevars_error	  sO    )W%;%;Q?)W%;%;TB)W%;%;R@r%   c                 .    Sn0 n[        X5        US   U4$ )Nzdef f(): print(path)r  )r;   )r^   r  r  s      r#   _private_globals#TestGetClosureVars._private_globals	  s!    )T#w{r%   c                     U R                  5       u  pUR                  SS 5        [        R                  " 0 0 S[        0S15      nU R                  [        R                  " U5      U5        g )NrJ  rI  r  )r  r9  rX   rS  rI  r  rT  r^   r  r  rF  s       r#   test_builtins_fallback)TestGetClosureVars.test_builtins_fallback	  sW    %%'
~t$&&r2I//2H=r%   c                     U R                  5       u  pSS0US'   [        R                  " 0 0 SS0S15      nU R                  [        R                  " U5      U5        g )Nr  r4   rJ  rI  )r  rX   rS  r  rT  r  s       r#   test_builtins_as_dict(TestGetClosureVars.test_builtins_as_dict	  sW    %%'$QZ>&&r2qzG9E//2H=r%   c                     U R                  5       u  p[        US'   [        R                  " 0 0 S[        R                  0S15      nU R                  [        R                  " U5      U5        g )NrJ  r  rI  )r  r4  rX   rS  r  r  rT  r  s       r#   test_builtins_as_module*TestGetClosureVars.test_builtins_as_module 	  sX    %%'>&&r2rww/?'K//2H=r%   r*   N)rU   rl   rm   rn   r[  rb  rk  rr  r  r  r  r  r  r  r  rz   r*   r%   r#   rD  rD    s>    DDH>$L>A>>>r%   rD  c                   X    \ rS rSrSS jrSS jrS rS rS rS r	S	 r
S
 rS rS rSrg)TestGetcallargsFunctionsi'	  Nc                     [        U=(       d    0 US9n[        SU-  S U5      n[        SU-  S U5      nU R                  XE5        g )Nr   func(%s)inspect.getcallargs(func, %s))rq  rS   r  )r^   r   call_params_stringlocsr1r2s         r#   assertEqualCallArgs,TestGetcallargsFunctions.assertEqualCallArgs)	  sL    DJBT**114>14FF r%   c                    [        U=(       d    0 US9n [        SU-  S U5        U R                  S5         [        SU-  S U5        U R                  S5        U R	                  [        W5      [        W5      5        U R                  [        U5      [        U5      5        AAg ! [         a  nUn S nAN~S nAff = f! [         a  nUn S nANuS nAff = f)Nr   r  zException not raisedr  )rq  rS   failr   r  r   r  rC  )r^   r   call_param_stringr  r   ex1ex2s          r#   assertEqualException-TestGetcallargsFunctions.assertEqualException0	  s    DJBT*	.//t< II,-	.03DDd
 II,-d3ic+S3s8,  	C	  	C	s.   B# B< #
B9-B44B9<
CCCc                      Sn[        X!-  5      $ )z+Create a function that returns its locals()zlambda %s: locals())rS   )r^   r  r  s      r#   makeCallable%TestGetcallargsFunctions.makeCallableC	  s    $D$%%r%   c                    U R                  S5      n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                  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                  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                  US5        U R                  US5        U R                  US5        g )Na, b=122, 3a=2zb=3, a=2z2, b=3z*(2,)z*[2]z*(2, 3)z*[2, 3]z	**{"a":2}zb=3, **{"a":2}z2, **{"b":3}z**{"b":3, "a":2}z*collections.UserList([2])z*collections.UserList([2, 3])z**collections.UserDict(a=2)z2, **collections.UserDict(b=3)z b=2, **collections.UserDict(a=3)r  r  r^   r  s     r#   
test_plain#TestGetcallargsFunctions.test_plainH	  s9   h'  C(  F+  E*  J/  H-  G,  F+  I.  I.  K0  $45  N3  $67  $@A  $CD  $AB  $DE  $FGr%   c                     U R                  S5      n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                  US5        g )Nz
a, b=1, *cr  r  2, 3, 4z*(2,3,4)z	2, *[3,4]z 2, 3, *collections.UserList([4])r  r  s     r#   test_varargs%TestGetcallargsFunctions.test_varargs_	  ss    l+  C(  F+  I.  J/  K0  $FGr%   c                 j   U R                  S5      n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                  US5        U R                  US5        U R                  US	5        U R                  US
5        g )Nza, b=1, **cr  z2, b=3, c=4zb=3, a=2, c=4zc=4, **{"a":2, "b":3}z2, c=4, **{"b":3}zb=2, **{"a":3, "c":4}z%**collections.UserDict(a=2, b=3, c=4)z#2, c=4, **collections.UserDict(b=3)z%b=2, **collections.UserDict(a=3, c=4)r  r  s     r#   
test_varkw#TestGetcallargsFunctions.test_varkwh	  s    m,  E*  M2  O4  $;<  $78  $;<  $KL  $IJ  $KLr%   c                     U R                  S5      n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                  US5        g )N**cr8  za=1za=1, b=2zc=3, **{"a": 1, "b": 2}z **collections.UserDict(a=1, b=2)z%c=3, **collections.UserDict(a=1, b=2)r  r  s     r#   test_varkw_only(TestGetcallargsFunctions.test_varkw_onlyt	  su    e$  B'  E*  J/  $=>  $FG  $KLr%   c                    U R                  S5      n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                  US5        U R                  US5        U R                  US	5        U R                  S
5      nU R                  US5        U R                  US5        U R                  US5        g )Nza=3, *, c, d=2zc=3zc=3, a=3za=2, c=4z4, c=4r8  3za=3zd=4z	*, c, d=2zc=3, d=4zd=4, c=3)r  r  r  r  s     r#   test_keyword_only*TestGetcallargsFunctions.test_keyword_only~	  s    ./  E*  J/  J/  H-!!!R(!!!S)!!!U+!!!U+k*  E*  J/  J/r%   c                    U R                  S5      n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                  US5        U R                  US5        U R                  S	5      n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                  US5        g )Nza, b=2, *f, **gz2, 3, 7z	2, 3, x=8z2, 3, x=8, *[(4,[5,6]), 7]z2, x=8, *[3, (4,[5,6]), 7], y=9zx=8, *[2, 3, (4,[5,6])], y=9z@x=8, *collections.UserList([2, 3, (4,[5,6])]), **{"y":9, "z":10}zP2, x=8, *collections.UserList([3, (4,[5,6])]), **collections.UserDict(y=9, z=10)za, b=2, *f, x, y=99, **gz%2, x=8, *[3, (4,[5,6]), 7], y=9, z=10z"x=8, *[2, 3, (4,[5,6])], y=9, z=10zEx=8, *collections.UserList([2, 3, (4,[5,6])]), q=0, **{"y":9, "z":10}zU2, x=8, *collections.UserList([3, (4,[5,6])]), q=0, **collections.UserDict(y=9, z=10)r  r  s     r#   test_multiple_features/TestGetcallargsFunctions.test_multiple_features	  s   /0  I.  K0  $@A  $EF  $BC   %I 	J   %. 	/ 89  K0  $@A  $KL  $HI   %N 	O   %. 	/r%   c                    U R                  S5      nU R                  S5      nU R                  S5      n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                  US5        U R                  US5        U R                  US5        U R                  US5        X#4 H  n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                  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                  US5        U R                  US5        U R                  US5        M     U R                  S5      nU R                  US5        U R                  US5        U R                  S5      n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                  US5        U R                  US5        S nU R                  [        S 5         [        R
                  " U5        S S S 5        S! nU R                  [        S"5         [        R
                  " U5        S S S 5        U R                  [        S#5         [        R                  " S$[        R                  R                  S%S&9  S S S 5        U R                  [        S'5         [        R                  " S(S)S%S&9  S S S 5        U R                  [        S*5         [        R                  " S+S,S-9  S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nv= f! , (       d  f       g = f).Nr8  za, br  r*  rR  z1,x=1r  zb=3r  z1, 2, 3, a=1z2, 3, 4, c=5z2, 3, 4, a=1, c=5zc=2z2, c=3z	2, 3, c=4z2, c=4, b=3u   **{u"πι": 4}z1, a=2z1, **{"a":2}z	1, 2, b=3z1, c=3, a=2r  z1, 2z1, 2, a=1, b=2z	*, a, b=0za=1, a=3za=1, c=3za=1, a=3, b=4za=1, b=2, a=3, b=4za=1, a=2, a=3, b=4c                     g r    r*   r  s    r#   f50TestGetcallargsFunctions.test_errors.<locals>.f5	  s    dr%   zmissing 1 required keyword-onlyc                     g r    r*   r@  s      r#   f60TestGetcallargsFunctions.test_errors.<locals>.f6	  r  r%   z'a', 'b' and 'c'z6variadic keyword parameters cannot have default valuesr6   r7  kinddefaultz%value 5 is not a valid Parameter.kindr.   r  zname must be a str, not a int{   r  r  )	r  r  r  r  rX   getcallargs
ValueErrorr  VAR_KEYWORD)	r^   f0f1f2r  f3f4r  r  s	            r#   test_errors$TestGetcallargsFunctions.test_errors	  s   r"v&x(!!"c*!!"e,!!"g.!!"b)!!"c*!!"e,!!"e,!!"b)!!"e,A%%a3%%a8%%a8%%a)<=%%a/%%a2%%a5%%a7%%a)AB%%a2%%a8%%a5%%a7! $ u%!!"f-!!"&67{+!!"f-!!"&67!!"j1!!"j1!!"o6!!"&:;!!"&:; 	##I$EG#G	##I/AB# C ##J%;< e'*;*;*G*G&(*<
 ##J$KMe!R8M ##I#BDc*D D+G G CB< <
M MD Ds<   'N5O/O!O(O95
O
O
O%(
O69
Pr*   r    )rU   rl   rm   rn   r  r  r  r  r  r  r  r  r  r   rz   r*   r%   r#   r  r  '	  s9    !&&
H.H
MM0 /0H+r%   r  c                   .   ^  \ rS rSrS rU 4S jrSrU =r$ )TestGetcallargsMethodsi	  c                 F     " S S[         5      nXl        U" 5       U l        g )Nc                       \ rS rSrSrg))TestGetcallargsMethods.setUp.<locals>.Fooi	  r*   Nr-  r*   r%   r#   r  r  	  r  r%   r  )r   r  inst)r^   r  s     r#   r  TestGetcallargsMethods.setUp	  s    	& 	E	r%   c                    > [         [        U ]
  nU" SU-   5      U R                  l        U R
                  R                  $ )Nzself, )ra  r  r  r  rL  r  )r^   r  mkrc  s      r#   r  #TestGetcallargsMethods.makeCallable	  s5    )4=X	12yyr%   )r  r  )rU   rl   rm   rn   r  r  rz   rn  ro  s   @r#   r  r  	  s       r%   r  c                   R   ^  \ rS rSrU 4S jrSU 4S jjrSU 4S jjrSS jrSrU =r	$ )TestGetcallargsUnboundMethodsi	  c                 V   > [         [        U ]  U5        U R                  R                  $ r    )ra  r  r  r  rL  )r^   r  rc  s     r#   r  *TestGetcallargsUnboundMethods.makeCallable 
  s!    +T?	Jxxr%   c                 F   > [         [        U ]
  " U R                  XU5      6 $ r    )ra  r  r  _getAssertEqualParamsr^   r   r  r  rc  s       r#   r  1TestGetcallargsUnboundMethods.assertEqualCallArgs
  s*    2DM''$GI 	Ir%   c                 F   > [         [        U ]
  " U R                  XU5      6 $ r    )ra  r  r  r  r  s       r#   r  2TestGetcallargsUnboundMethods.assertEqualException
  s*    2DN''$GI 	Ir%   c                 L    [        U=(       d    0 U R                  S9nUSU-   U4$ )N)r  zinst,)rq  r  )r^   r   r  r  s       r#   r  3TestGetcallargsUnboundMethods._getAssertEqualParams
  s)    DJBTYY/g 22D99r%   r*   r    )
rU   rl   rm   rn   r  r  r  r  rz   rn  ro  s   @r#   r  r  	  s    II: :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\" 5       S 5       rSrg)TestGetattrStatici
  c                     " S S[         5      nU" 5       nU R                  [        R                  " US5      UR                  5        U R                  [        R                  " USS 5      UR                  5        U R                  [        5         [        R                  " US5        S S S 5        U R                  [        R                  " USS5      S5        g ! , (       d  f       N7= f)Nc                   "    \ rS rSr\" 5       rSrg)+TestGetattrStatic.test_basic.<locals>.Thingi
  r*   NrU   rl   rm   rn   r   ru  rz   r*   r%   r#   Thingr  
  	    Ar%   r  ru  r  r  )r   r  rX   r(  ru  r  r  r^   r  things      r#   
test_basicTestGetattrStatic.test_basic
  s    	F 	 //s;UWWE//sDA577K~.""5#. / 	//sA>B /.s   C
C&c                      " S S[         5      n " S SU5      nU" 5       nU R                  [        R                  " US5      UR                  5        g )Nc                   "    \ rS rSr\" 5       rSrg)/TestGetattrStatic.test_inherited.<locals>.Thingi!
  r*   Nr  r*   r%   r#   r  r&  !
  r  r%   r  c                       \ rS rSrSrg)4TestGetattrStatic.test_inherited.<locals>.OtherThingi#
  r*   Nr-  r*   r%   r#   
OtherThingr(  #
  r  r%   r)  ru  r   r  rX   r(  ru  )r^   r  r)  	somethings       r#   test_inherited TestGetattrStatic.test_inherited 
  sD    	F 		 	 L	//	3?Ir%   c                      " S S[         5      nU" S5      nU R                  [        R                  " US5      S5        U?U R                  [        R                  " US5      S5        g )Nc                       \ rS rSrSrS rSrg)3TestGetattrStatic.test_instance_attr.<locals>.Thingi*
  r5   c                     Xl         g r    r  r^   ru  s     r#   r   <TestGetattrStatic.test_instance_attr.<locals>.Thing.__init__,
  s    r%   r  N)rU   rl   rm   rn   ru  r   rz   r*   r%   r#   r  r0  *
  s    Ar%   r  r  ru  r5   r*  r   s      r#   test_instance_attr$TestGetattrStatic.test_instance_attr)
  sX    	F 	 a//s;Q?G//s;Q?r%   c                      " S S[         5      nU" 5       nU R                  [        R                  " US5      UR                  5        g )Nc                   $    \ rS rSr\S 5       rSrg).TestGetattrStatic.test_property.<locals>.Thingi4
  c                     [        S5      eNzI'm pretending not to existr  ri   s    r#   ru  0TestGetattrStatic.test_property.<locals>.Thing.x5
  s    $%BCCr%   r*   N)rU   rl   rm   rn   r  ru  rz   r*   r%   r#   r  r8  4
  s    D Dr%   r  ru  r*  r   s      r#   r2  TestGetattrStatic.test_property3
  s:    	DF 	D //s;UWWEr%   c                    ^  " S S[         5      nU" 5       m " U4S jS[         5      nU" 5       nU R                  [        R                  " US5      T5        g )Nc                       \ rS rSrS rSrg)KTestGetattrStatic.test_descriptor_raises_AttributeError.<locals>.descriptori<
  c                      [        S5      er:  r  )r  s    r#   r   STestGetattrStatic.test_descriptor_raises_AttributeError.<locals>.descriptor.__get__=
  s    $%BCCr%   r*   Nr  r*   r%   r#   
descriptorr?  <
  s    Dr%   rB  c                      > \ rS rSr Y rSrg)FTestGetattrStatic.test_descriptor_raises_AttributeError.<locals>.Thingi@
  r*   NrU   rl   rm   rn   ru  rz   )descs   r#   r  rD  @
  s    Ar%   r  ru  )r   r  rX   r(  )r^   rB  r  r!  rF  s       @r#   %test_descriptor_raises_AttributeError7TestGetattrStatic.test_descriptor_raises_AttributeError;
  sJ    	D 	D |	F 	//s;TBr%   c                      " S S[         5      nU R                  [        R                  " US5      UR                  5        g )Nc                   "    \ rS rSr\" 5       rSrg)4TestGetattrStatic.test_classAttribute.<locals>.ThingiF
  r*   Nr  r*   r%   r#   r  rK  F
  r  r%   r  ru  r*  r^   r  s     r#   test_classAttribute%TestGetattrStatic.test_classAttributeE
  s1    	F 	 	//s;UWWEr%   c                      " S S[         5      nU R                  [        R                  " US5      UR                  S   5        g )Nc                   F    \ rS rSr\R
                  S 5       r\" 5       rSr	g);TestGetattrStatic.test_classVirtualAttribute.<locals>.ThingiL
  c                     U R                   $ r    )_xri   s    r#   ru  =TestGetattrStatic.test_classVirtualAttribute.<locals>.Thing.xM
  s    wwr%   r*   N)
rU   rl   rm   rn   r   r_  ru  r   rS  rz   r*   r%   r#   r  rQ  L
  s!    (( )Br%   r  ru  )r   r  rX   r(  r  rL  s     r#   test_classVirtualAttribute,TestGetattrStatic.test_classVirtualAttributeK
  s6    	F 	 	//s;U^^C=PQr%   c                      " S S[         5      n " S SU5      nU R                  [        R                  " US5      UR                  5        g )Nc                   "    \ rS rSr\" 5       rSrg)>TestGetattrStatic.test_inherited_classattribute.<locals>.ThingiU
  r*   Nr  r*   r%   r#   r  rY  U
  r  r%   r  c                       \ rS rSrSrg)CTestGetattrStatic.test_inherited_classattribute.<locals>.OtherThingiW
  r*   Nr-  r*   r%   r#   r)  r[  W
  r  r%   r)  ru  r*  r^   r  r)  s      r#   test_inherited_classattribute/TestGetattrStatic.test_inherited_classattributeT
  s=    	F 		 	 	//
C@%''Jr%   c                 F    " S S[         5      nU" 5       nU R                  [        R                  " US5      UR                  5        U R                  [        R                  " US5      S5        U?U R                  [        R                  " US5      UR                  5        g )Nc                   $    \ rS rSrSrS/rS rSrg)+TestGetattrStatic.test_slots.<locals>.Thingi]
  r.   ru  c                     SU l         g Nr6   r  ri   s    r#   r   4TestGetattrStatic.test_slots.<locals>.Thing.__init__`
  	    r%   r  N)rU   rl   rm   rn   r  ro  r   rz   r*   r%   r#   r  ra  ]
  s    AIr%   r  ru  r  r.   r*  r   s      r#   
test_slotsTestGetattrStatic.test_slots\
  s{    	F 	
 //s;UWWE//s;UCG//s;UWWEr%   c                 p    " S S[         5      n " S S[        US9nU R                  [        R                  " US5      S5         " S S	U5      n " S
 S[        US9nU R                  [        R                  " US5      S5         " S SU5      nU R                  [        R                  " US5      S5        g )Nc                       \ rS rSrSrSrg).TestGetattrStatic.test_metaclass.<locals>.metaij
  r6   r*   N)rU   rl   rm   rn   r`  rz   r*   r%   r#   metarj  j
  s    Dr%   rk  c                       \ rS rSrSrg)/TestGetattrStatic.test_metaclass.<locals>.Thingil
  r*   Nr-  r*   r%   r#   r  rm  l
  r  r%   r  r  r`  r6   c                       \ rS rSrSrg)-TestGetattrStatic.test_metaclass.<locals>.subip
  r*   Nr-  r*   r%   r#   subro  p
  r  r%   rp  c                       \ rS rSrSrSrg)4TestGetattrStatic.test_metaclass.<locals>.OtherThingir
  r  r*   NrE  r*   r%   r#   r)  rr  r
      Ar%   r)  c                       \ rS rSrSrg)9TestGetattrStatic.test_metaclass.<locals>.OtherOtherThingiv
  r*   Nr-  r*   r%   r#   OtherOtherThingru  v
  r  r%   rv  ru  r  r   r   r  rX   r(  )r^   rk  r  rp  r)  rv  s         r#   test_metaclass TestGetattrStatic.test_metaclassi
  s    	4 		Fd 	//v>F	$ 		3 	//
FCUK	j 	 	//EqIr%   c                     U R                  [        R                  " SSS 5      S 5        U R                  [        R                  " SS5      S 5        g )Nr4   r6   r  )r  rX   r(  r  ri   s    r#   test_no_dict_no_slots'TestGetattrStatic.test_no_dict_no_slots{
  s>    //5$?FG225'BDIr%   c                     [        [        SS9 nU R                  [        R                  " US5      [        U5      R                  5        S S S 5        g ! , (       d  f       g = f)Nr  r  r  )r  r  r  rX   r(  r   r  )r^   handles     r#   %test_no_dict_no_slots_instance_member7TestGetattrStatic.test_no_dict_no_slots_instance_member
  sA    (W-W33FFCT&\EVEVW .--s   ;A
A!c                      " S S[         5      n " S SU5      nU R                  [        R                  " U" 5       S5      UR                  5        g )Nc                        \ rS rSrS/rS rSrg)5TestGetattrStatic.test_inherited_slots.<locals>.Thingi
  ru  c                     SU l         g rc  r  ri   s    r#   r   >TestGetattrStatic.test_inherited_slots.<locals>.Thing.__init__
  re  r%   r  N)rU   rl   rm   rn   ro  r   rz   r*   r%   r#   r  r  
  s    Ir%   r  c                       \ rS rSrSrg):TestGetattrStatic.test_inherited_slots.<locals>.OtherThingi
  r*   Nr-  r*   r%   r#   r)  r  
  r  r%   r)  ru  r*  r\  s      r#   test_inherited_slots&TestGetattrStatic.test_inherited_slots
  s?    	F 	
	 	 	//
cBEGGLr%   c                   ^  " S S[         5      m " U4S jS[         5      nU" 5       nSUR                  S'   U R                  [        R                  " US5      S5        S Tl        U R                  [        R                  " US5      UR                  S   5        T?S Tl        U R                  [        R                  " US5      UR                  S   5        g )	Nc                       \ rS rSrS rSrg)5TestGetattrStatic.test_descriptor.<locals>.descriptori
  c                     gr  r*   r   s      r#   r   =TestGetattrStatic.test_descriptor.<locals>.descriptor.__get__
      r%   r*   Nr  r*   r%   r#   rB  r  
      r%   rB  c                   &   > \ rS rSr Y " 5       rSrg).TestGetattrStatic.test_descriptor.<locals>.Fooi
  r*   NrU   rl   rm   rn   r  rz   rB  s   r#   r  r  
  
    Ar%   r  r4   r  c                     g r    r*   )r  r=   vs      r#   r   3TestGetattrStatic.test_descriptor.<locals>.<lambda>
  s    Tr%   c                     g r    r*   )r  r=   r   s      r#   r   r  
      r%   )r   r  r  rX   r(  r  r  )r^   r  r6   rB  s      @r#   test_descriptor!TestGetattrStatic.test_descriptor
  s    	 		& 	 e S//S91= 2
//S93<<;LM 4
//S93<<;LMr%   c                    ^  " S S[         5      m " U4S jS[        5      n " S S[         US9nU R                  [        R                  " US5      UR
                  S   5        g )	Nc                       \ rS rSrS rSrg)DTestGetattrStatic.test_metaclass_with_descriptor.<locals>.descriptori
  c                     gr  r*   r   s      r#   r   LTestGetattrStatic.test_metaclass_with_descriptor.<locals>.descriptor.__get__
  r  r%   r*   Nr  r*   r%   r#   rB  r  
  r  r%   rB  c                   &   > \ rS rSr Y " 5       rSrg)>TestGetattrStatic.test_metaclass_with_descriptor.<locals>.metai
  r*   Nr  r  s   r#   rk  r  
  r  r%   rk  c                       \ rS rSrSrg)?TestGetattrStatic.test_metaclass_with_descriptor.<locals>.Thingi
  r*   Nr-  r*   r%   r#   r  r  
  r  r%   r  r  r  )r   r   r  rX   r(  r  )r^   rk  r  rB  s      @r#   test_metaclass_with_descriptor0TestGetattrStatic.test_metaclass_with_descriptor
  sO    	 		4 		Fd 	//s;T]]3=OPr%   c                     " S S[         5      n " S SU5      nU" 5       nU R                  [        R                  " US5      S5        U R	                  UR
                  5        U R                  [        R                  " US5      S5        g )Nc                       \ rS rSrSrSrg)6TestGetattrStatic.test_class_as_property.<locals>.Basei
  r  r*   Nr  r*   r%   r#   Baser  
      Cr%   r  c                   (    \ rS rSrSr\S 5       rSrg);TestGetattrStatic.test_class_as_property.<locals>.Somethingi
  Fc                     SU l         [        $ r  )executedr   ri   s    r#   rc  ETestGetattrStatic.test_class_as_property.<locals>.Something.__class__
  s     $r%   r  N)rU   rl   rm   rn   r  r  rc  rz   r*   r%   r#   	Somethingr  
  s    H r%   r  r6   r  )r   r  rX   r(  r]   r  )r^   r  r  r   s       r#   test_class_as_property(TestGetattrStatic.test_class_as_property
  sq    	6 		 	 ;//%@!D**+//	5A1Er%   c                      " S S[         5      n " S S[        5      n " S SX!S9nU R                  [        R                  " U" 5       S5      S	5        U R                  [        R                  " US5      S	5        g )
Nc                   $    \ rS rSr\S 5       rSrg)4TestGetattrStatic.test_mro_as_property.<locals>.Metai
  c                     [         4$ r    r   ri   s    r#   __mro__<TestGetattrStatic.test_mro_as_property.<locals>.Meta.__mro__
  s
    y r%   r*   N)rU   rl   rm   rn   r  r  rz   r*   r%   r#   rX  r  
  s    ! !r%   rX  c                       \ rS rSrSrSrg)4TestGetattrStatic.test_mro_as_property.<locals>.Basei
  r  r*   Nr  r*   r%   r#   r  r  
  r  r%   r  c                       \ rS rSrSrg)9TestGetattrStatic.test_mro_as_property.<locals>.Somethingi
  r*   Nr-  r*   r%   r#   r  r  
  r  r%   r  r  r6   r  rw  )r^   rX  r  r  s       r#   test_mro_as_property&TestGetattrStatic.test_mro_as_property
  sd    	!4 	!
	6 		 	 	//	UCQG//	5A1Er%   c                   ^ U mSTl          " U4S jS[        5      nU" 5       nSUl        U R                  [        R
                  " US5      S5        U R                  TR                   5         " S SU5      nU" 5       nS	Ul        U R                  [        R
                  " US5      S5        U R                  TR                   5        g )
NFc                   0   > \ rS rSrSr\U 4S j5       rSrg)4TestGetattrStatic.test_dict_as_property.<locals>.Fooi
  r  c                    > STl         0 $ r  calledr^   r  s    r#   r  =TestGetattrStatic.test_dict_as_property.<locals>.Foo.__dict__
      "	r%   r*   NrU   rl   rm   rn   r-   r  r  rz   r  s   r#   r  r  
      A r%   r  r  r-   r  c                       \ rS rSrSrg)4TestGetattrStatic.test_dict_as_property.<locals>.Bari
  r*   Nr-  r*   r%   r#   r  r  
      r%   r  r  )r  rq  r-   r  rX   r(  r]   )r^   r  r6   r  r.   r  s        @r#   test_dict_as_property'TestGetattrStatic.test_dict_as_property
  s    	$ 	 e//S91=%#e//S91=%r%   c                 `  ^ U mSTl          " U4S jS[        5      n " S S[        5      n " S SU5      nU" 5       nU R                  [        R                  " US5      S	5        U4Ul        U R                  [        R                  " US5      S
5        U R                  TR                   5        g )NFc                   0   > \ rS rSrSr\U 4S j5       rSrg)/TestGetattrStatic.test_mutated_mro.<locals>.Fooi
  r  c                    > STl         0 $ r  r  r  s    r#   r  8TestGetattrStatic.test_mutated_mro.<locals>.Foo.__dict__
  r  r%   r*   Nr  r  s   r#   r  r  
  r  r%   r  c                       \ rS rSrSrSrg)/TestGetattrStatic.test_mutated_mro.<locals>.Bari
  r  r*   NrU   rl   rm   rn   r-   rz   r*   r%   r#   r  r  
  rs  r%   r  c                       \ rS rSrSrg)/TestGetattrStatic.test_mutated_mro.<locals>.Bazi
  r*   Nr-  r*   r%   r#   Bazr  
  r  r%   r  r-   r  r  )r  rq  r  rX   r(  	__bases__r]   )r^   r  r  r  bazr  s        @r#   test_mutated_mro"TestGetattrStatic.test_mutated_mro
  s    	$ 		$ 	 	#e//S91=//S91=%r%   c                   ^ U mSTl          " U4S jS[        5      n " S S[        5      nU" 5       nU" 5       Ul        U R	                  [
        R                  " US5      S5        U R                  TR                   5        g )NFc                   0   >^  \ rS rSrSU U4S jjrSrU =r$ )9TestGetattrStatic.test_custom_object_dict.<locals>.Customi  c                 2   > STl         [        TU ]	  X5        g r  )r  ra  get)r^   keyr  rc  r  s      r#   r  =TestGetattrStatic.test_custom_object_dict.<locals>.Custom.get  s    "C)r%   r*   r    )rU   rl   rm   rn   r  rz   rn  )rc  r  s   @r#   Customr    s    * *r%   r  c                       \ rS rSrSrSrg)6TestGetattrStatic.test_custom_object_dict.<locals>.Fooi  r  r*   Nr  r*   r%   r#   r  r    rs  r%   r  r-   r  )r  rq  r   r  r  rX   r(  r]   )r^   r  r  r6   r  s       @r#   test_custom_object_dict)TestGetattrStatic.test_custom_object_dict
  sf    	*T 	*
	& 	ex//S91=%r%   c                      " S S[         5      n " S SUS9nU" 5       nU R                  [        R                  " US5      S5        U R	                  UR
                  5        g )Nc                   $    \ rS rSr\S 5       rSrg)?TestGetattrStatic.test_metaclass_dict_as_property.<locals>.Metai  c                     SU l         g r  r  ri   s    r#   r  HTestGetattrStatic.test_metaclass_dict_as_property.<locals>.Meta.__dict__  s	     $r%   r  NrU   rl   rm   rn   r  r  rz   r*   r%   r#   rX  r    r  r%   rX  c                       \ rS rSrSrS rSrg)@TestGetattrStatic.test_metaclass_dict_as_property.<locals>.Thingi  Fc                     SU l         g Nr7  r   ri   s    r#   r   ITestGetattrStatic.test_metaclass_dict_as_property.<locals>.Thing.__init__  s	    	r%   r  N)rU   rl   rm   rn   r  r   rz   r*   r%   r#   r  r    s    Hr%   r  r  r   r7  )r   r  rX   r(  r]   r  )r^   rX  r  r   s       r#   test_metaclass_dict_as_property1TestGetattrStatic.test_metaclass_dict_as_property  sR    	%4 	%
	d 	 7//&A2F(r%   c                 p    [        5       nU R                  [        R                  " [        SU5      U5        g )Nversion)r   rR  rX   r(  r^  )r^   sentinels     r#   test_moduleTestGetattrStatic.test_module  s+    8//YI!	#r%   c                     " S S[         5      n " S S[         US9n " S SUS9nU R                  [        5         [        R                  " US5        S S S 5        U R                  UR                  5        g ! , (       d  f       N*= f)	Nc                   $    \ rS rSr\S 5       rSrg)WTestGetattrStatic.test_metaclass_with_metaclass_with_dict_as_property.<locals>.MetaMetai$  c                 "    SU l         [        SS9$ )NTr7  r  )r  rq  ri   s    r#   r  `TestGetattrStatic.test_metaclass_with_metaclass_with_dict_as_property.<locals>.MetaMeta.__dict__%  s     $}$r%   r  Nr  r*   r%   r#   MetaMetar	  $  s    % %r%   r	  c                       \ rS rSrSrSrg)STestGetattrStatic.test_metaclass_with_metaclass_with_dict_as_property.<locals>.Metai*  Fr*   N)rU   rl   rm   rn   r  rz   r*   r%   r#   rX  r	  *  s    Hr%   rX  r  c                       \ rS rSrSrg)TTestGetattrStatic.test_metaclass_with_metaclass_with_dict_as_property.<locals>.Thingi-  r*   Nr-  r*   r%   r#   r  r
	  -  r  r%   r  r   )r   r  r  rX   r(  r]   r  )r^   r	  rX  r  s       r#   3test_metaclass_with_metaclass_with_dict_as_propertyETestGetattrStatic.test_metaclass_with_metaclass_with_dict_as_property#  sh    	%t 	%	48 		d 	 ~.""5&1 /( /.s   A88
Bc                    ^ U mSTl          " U4S jS5      nU R                  [        5         [        R                  " U" 5       S5        S S S 5        U R                  TR                   5        g ! , (       d  f       N*= f)NFc                   "   > \ rS rSrU 4S jrSrg)6TestGetattrStatic.test_custom___getattr__.<locals>.Fooi8  c                    > STl         0 $ r  r  r^   r`  r  s     r#   ra  BTestGetattrStatic.test_custom___getattr__.<locals>.Foo.__getattr__9      "	r%   r*   Nrd  r  s   r#   r  r	  8       r%   r  whateverr  r  r  rX   r(  r]   r^   r  r  s     @r#   test_custom___getattr__)TestGetattrStatic.test_custom___getattr__4  s]    	 	
 ~.""35*5 / 	% /.   A..
A<c                    ^ U mSTl          " U4S jS5      nU R                  [        5         [        R                  " U" 5       S5        S S S 5        U R                  TR                   5        g ! , (       d  f       N*= f)NFc                   "   > \ rS rSrU 4S jrSrg);TestGetattrStatic.test_custom___getattribute__.<locals>.FooiF  c                    > STl         0 $ r  r  r	  s     r#   __getattribute__LTestGetattrStatic.test_custom___getattribute__.<locals>.Foo.__getattribute__G  r	  r%   r*   N)rU   rl   rm   rn   r	  rz   r  s   r#   r  r	  F  r	  r%   r  really_could_be_anythingr	  r	  s     @r#   test_custom___getattribute__.TestGetattrStatic.test_custom___getattribute__B  s^    	 	
 ~.""35*DE / 	% /.r	  c                      " S S5      nU" 5       Ul         [        R                  " U5      n[        R                  " UR                   SS5        A[
        R                  " 5         U R                  U" 5       5        g )Nc                       \ rS rSrSrg)KTestGetattrStatic.test_cache_does_not_cause_classes_to_persist.<locals>.FooiX  r*   Nr-  r*   r%   r#   r  r&	  X      4r%   r  r	  
irrelevant)r   weakrefrefrX   r(  gccollectrW  )r^   r  weakref_to_classs      r#   ,test_cache_does_not_cause_classes_to_persist>TestGetattrStatic.test_cache_does_not_cause_classes_to_persistP  sU     	u";;s+s||ZF


*,-r%   r*   N) rU   rl   rm   rn   r"  r,  r4  r2  rG  rM  rU  r]  rf  rx  r{  r  r  r  r  r  r  r  r  r  r  r  r	  r	  r"	  r	   r.	  rz   r*   r%   r#   r  r  
  s    
CJ@FCFRKFJ$JX
MN,QF F&.&,& ) #
)"&& .  .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g)TestGetGeneratorStateia  c                 "    S nU" 5       U l         g )Nc               3   8   #    [        S5       H  n U v   M	     g 7fNr  r}   numbers    r#   number_generator5TestGetGeneratorState.setUp.<locals>.number_generatord  s     ( #r   	generator)r^   r7	  s     r#   r  TestGetGeneratorState.setUpc  s    	 *+r%   c                 B    [         R                  " U R                  5      $ r    )rX   getgeneratorstater:	  ri   s    r#   _generatorstate%TestGetGeneratorState._generatorstatei      ((88r%   c                 `    U R                  U R                  5       [        R                  5        g r    )r  r>	  rX   GEN_CREATEDri   s    r#   test_created"TestGetGeneratorState.test_createdl  s!    --/1D1DEr%   c                     [        U R                  5        U R                  U R                  5       [        R
                  5        g r    )rR  r:	  r  r>	  rX   GEN_SUSPENDEDri   s    r#   test_suspended$TestGetGeneratorState.test_suspendedo  s-    T^^--/1F1FGr%   c                     U R                    H  nM     U R                  U R                  5       [        R                  5        g r    )r:	  r  r>	  rX   
GEN_CLOSEDr~   s     r#   test_closed_after_exhaustion2TestGetGeneratorState.test_closed_after_exhaustions  s2    A  --/1C1CDr%   c                     U R                  [        5         U R                  R                  [        5        S S S 5        U R	                  U R                  5       [        R                  5        g ! , (       d  f       N== fr    )r  r~  r:	  rE   r  r>	  rX   rJ	  ri   s    r#   %test_closed_after_immediate_exception;TestGetGeneratorState.test_closed_after_immediate_exceptionx  sO    |,NN  . ---/1C1CD -,    A--
A;c                     U R                   R                  5         U R                  U R                  5       [        R
                  5        g r    )r:	  r  r  r>	  rX   rJ	  ri   s    r#   test_closed_after_close-TestGetGeneratorState.test_closed_after_close}  s1    --/1C1CDr%   c                 ~   ^  U 4S jnU" 5       T l         [        T R                   5        [        T R                   5        g )Nc               3      >#    [        S5       Hc  n TR                  TR                  5       [        R                  5        U v   TR                  TR                  5       [        R                  5        Me     g 7fr4	  )r7   r  r>	  rX   GEN_RUNNINGr6	  r^   s    r#   running_check_generatorCTestGetGeneratorState.test_running.<locals>.running_check_generator  sW     (  !5!5!79L9LM  !5!5!79L9LM #s   A4A7)r:	  rR  )r^   rX	  s   ` r#   test_running"TestGetGeneratorState.test_running  s-    
	N
 12T^^T^^r%   c                     SR                  5       nU HI  n[        [        U5      nU R                  U[	        U5      5        U R                  U[        U5      5        MK     g )Nz0GEN_CREATED GEN_RUNNING GEN_SUSPENDED GEN_CLOSEDr  rK  rX   rs  reprrC  r^   namesr  states       r#   test_easy_debugging)TestGetGeneratorState.test_easy_debugging  sJ    BHHJDGT*EMM$U,MM$E
+ r%   c           	      N   S
S jnU" / SQ5      nU R                  [        R                  " U5      S / SQS.5        [        U5        U R                  [        R                  " U5      S / SQSSS.5        [        U5        U R                  [        R                  " U5      S / SQSSS.5        [        U5        U R                  [        R                  " U5      S / SQSSSS	.5         [        U5        U R                  [        R                  " U5      0 5        g ! [         a     N3f = f)Nc              3   :   #    SnU  H  nUS:X  a  SnUv   M     g 7fNr  r  r  r*   lstr-   rm  r  r   s        r#   each;TestGetGeneratorState.test_getgeneratorlocals.<locals>.each  s%     A6A    r  r-   rh	  r4   r-   rh	  r  rm  r5   r  r  r-   rh	  r  rm  r   r    r  rX   getgeneratorlocalsrR  StopIterationr^   ri	  numberss      r#   test_getgeneratorlocals-TestGetGeneratorState.test_getgeneratorlocals  s   	 y/33G<#I6	8W33G<#IA(*	+ 	W33G<#IA(*	+ 	W33G<#IA(r3	4	M 	33G<bA  		s   %D 
D$#D$c                     S nU" 5       nU R                  [        R                  " U5      0 5         [        U5        U R                  [        R                  " U5      0 5        g ! [         a     N3f = f)Nc               3      #    Sv   g 7fr  r*   r*   r%   r#   	yield_oneFTestGetGeneratorState.test_getgeneratorlocals_empty.<locals>.yield_one  s
     Gr   ro	  r^   rx	  r  s      r#   test_getgeneratorlocals_empty3TestGetGeneratorState.test_getgeneratorlocals_empty  sf    	k33C8"=	I 	33C8"=  		s   A$ $
A10A1c                 6   U R                  [        [        R                  S5        U R                  [        [        R                  S 5        U R                  [        [        R                  [        5        U R                  [        [        R                  S5        g )Nr4   c                     gr  r*   r  s    r#   r   ETestGetGeneratorState.test_getgeneratorlocals_error.<locals>.<lambda>      4r%   r5   r  )r  r  rX   rp	  rW   ri   s    r#   test_getgeneratorlocals_error3TestGetGeneratorState.test_getgeneratorlocals_error  sb    )W%?%?C)W%?%?P)W%?%?E)W%?%?Gr%   r9	  N)rU   rl   rm   rn   r  r>	  rC	  rG	  rK	  rN	  rR	  rZ	  rb	  rt	  r{	  r	  rz   r*   r%   r#   r1	  r1	  a  sE    ,9FHE
E
E ,B:	>Hr%   r1	  c                   P    \ 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)TestGetCoroutineStatei  c                 V   ^ [         R                  S 5       mU4S jnU" 5       U l        g )Nc               3   8   #    [        S5       H  n U v   M	     g 7fr4	  r}   r5	  s    r#   number_coroutine5TestGetCoroutineState.setUp.<locals>.number_coroutine  s     ( #r   c                  0   >#    T " 5       I S h  vN   g  N7fr    r*   )r	  s   r#   	coroutine.TestGetCoroutineState.setUp.<locals>.coroutine  s     "$$$s   )r   r	  )r^   r	  r	  s     @r#   r  TestGetCoroutineState.setUp  s'    		 
		%"r%   c                 8    U R                   R                  5         g r    )r	  r  ri   s    r#   rh  TestGetCoroutineState.tearDown  s    r%   c                 B    [         R                  " U R                  5      $ r    )rX   getcoroutinestater	  ri   s    r#   _coroutinestate%TestGetCoroutineState._coroutinestate  r@	  r%   c                 `    U R                  U R                  5       [        R                  5        g r    )r  r	  rX   CORO_CREATEDri   s    r#   rC	  "TestGetCoroutineState.test_created  s!    --/1E1EFr%   c                     U R                   R                  S 5        U R                  U R                  5       [        R
                  5        g r    )r	  sendr  r	  rX   CORO_SUSPENDEDri   s    r#   rG	  $TestGetCoroutineState.test_suspended  s3    D!--/1G1GHr%   c                       U R                   R                  S 5        M  ! [         a     Of = fU R                  U R	                  5       [
        R                  5        g r    )r	  r	  rq	  r  r	  rX   CORO_CLOSEDri   s    r#   rK	  2TestGetCoroutineState.test_closed_after_exhaustion  sV    ##D)  !  	--/1D1DEs     
--c                     U R                  [        5         U R                  R                  [        5        S S S 5        U R	                  U R                  5       [        R                  5        g ! , (       d  f       N== fr    )r  r~  r	  rE   r  r	  rX   r	  ri   s    r#   rN	  ;TestGetCoroutineState.test_closed_after_immediate_exception  sO    |,NN  . ---/1D1DE -,rP	  c                     U R                   R                  5         U R                  U R                  5       [        R
                  5        g r    )r	  r  r  r	  rX   r	  ri   s    r#   rR	  -TestGetCoroutineState.test_closed_after_close  s1    --/1D1DEr%   c                     SR                  5       nU HI  n[        [        U5      nU R                  U[	        U5      5        U R                  U[        U5      5        MK     g )Nz4CORO_CREATED CORO_RUNNING CORO_SUSPENDED CORO_CLOSEDr]	  r_	  s       r#   rb	  )TestGetCoroutineState.test_easy_debugging  J    FLLNDGT*EMM$U,MM$E
+ r%   c                 &  ^ [         R                  S 5       mT" 5       mSU4S jjnU" 5       nU R                  [        R                  " U5      S TS.5        UR                  S 5        U R                  [        R                  " U5      S TSS.5        g )Nc               3      #    S v   g 7fr    r*   r*   r%   r#   gencoro>TestGetCoroutineState.test_getcoroutinelocals.<locals>.gencoro  s     r   c                 *   >#    SnTI S h  vN   g  N7fr   r*   )r-   rm  r	  s     r#   r   ;TestGetCoroutineState.test_getcoroutinelocals.<locals>.func   s     AMMs   )r-   r	  r   )r-   r	  rm  r    )r   r	  r  rX   getcoroutinelocalsr	  )r^   r   r  r	  s      @r#   test_getcoroutinelocals-TestGetCoroutineState.test_getcoroutinelocals  s    		 
	 )	 v33D9#8	:		$33D9#fE	Gr%   )r	  N)rU   rl   rm   rn   r  rh  r	  rC	  rG	  rK	  rN	  rR	  rb	  r	  rz   r*   r%   r#   r	  r	    s:    %9GIFF
F,G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g)TestGetAsyncGenStatei  c                 "    S nU" 5       U l         g )Nc                 :   #    [        S5       H  n U 7v   M
     g 7fr4	  r}   r5	  s    r#   number_asyncgen3TestGetAsyncGenState.setUp.<locals>.number_asyncgen  s     ( #rk	  asyncgen)r^   r	  s     r#   r  TestGetAsyncGenState.setUp  s    	 ()r%   c                 T   #    U R                   R                  5       I S h  vN   g  N7fr    )r	  acloseri   s    r#   asyncTearDown"TestGetAsyncGenState.asyncTearDown  s     mm""$$$s   (&(c                 B    [         R                  " U R                  5      $ r    )rX   getasyncgenstater	  ri   s    r#   _asyncgenstate#TestGetAsyncGenState._asyncgenstate  s    ''66r%   c                 `    U R                  U R                  5       [        R                  5        g r    )r  r	  rX   AGEN_CREATEDri   s    r#   rC	  !TestGetAsyncGenState.test_created  s!    ,,.0D0DEr%   c                    #    [        U R                  5      I S h  vN nU R                  U R                  5       [        R
                  5        U R                  US5        g  NE7fr  )anextr	  r  r	  rX   AGEN_SUSPENDEDr^   r  s     r#   rG	  #TestGetAsyncGenState.test_suspended  sJ     DMM**,,.0F0FG" +s   A#A!AA#c                 `  #    SnU R                  [        5         US-
  =n(       a+  [        U R                  5      I S h  vN   US-
  =n(       a  M+  S S S 5        U R	                  US5        U R	                  U R                  5       [        R                  5        g  N[! , (       d  f       NQ= f7f)Nr  r4   )r  StopAsyncIterationr	  r	  r  r	  rX   AGEN_CLOSED)r^   	countdowns     r#   rK	  1TestGetAsyncGenState.test_closed_after_exhaustion#  s     	12(1},),DMM***  )1},), 3 	A&,,.0C0CD + 32s.   B.%BB BA	B.B
B+'B.c                   #    U R                  [        5         U R                  R                  [        5      I S h  vN   S S S 5        U R	                  U R                  5       [        R                  5        g  N;! , (       d  f       N?= f7fr    )r  r~  r	  athrowr  r	  rX   r	  ri   s    r#   rN	  :TestGetAsyncGenState.test_closed_after_immediate_exception+  s\     |,--&&|444 -,,.0C0CD 5 -,s,   B
#A9A7A9 7B
7A99
BB
c                 f  ^ #    U 4S jnU" 5       T l         [        T R                   5      I S h  vN   T R                  T R                  5       [        R
                  5        [        T R                   5      I S h  vN   T R                  T R                  5       [        R
                  5        g  N~ N57f)Nc                    >#    [        S5       Hd  n TR                  TR                  5       [        R                  5        U 7v   TR                  TR                  5       [        R                  5        Mf     g 7fr4	  )r7   r  r	  rX   AGEN_RUNNINGrW	  s    r#   running_check_asyncgenATestGetAsyncGenState.test_running.<locals>.running_check_asyncgen1  sW     (  !4!4!68L8LM  !4!4!68L8LM #s   A5A8)r	  r	  r  r	  rX   r	  )r^   r	  s   ` r#   rZ	  !TestGetAsyncGenState.test_running0  s     	N
 /0DMM""",,.0F0FGDMM""",,.0F0FG	 	# 	#s"   +B1B-A
B19B/:4B1/B1c                     SR                  5       nU HI  n[        [        U5      nU R                  U[	        U5      5        U R                  U[        U5      5        MK     g )Nz4AGEN_CREATED AGEN_RUNNING AGEN_SUSPENDED AGEN_CLOSEDr]	  r_	  s       r#   rb	  (TestGetAsyncGenState.test_easy_debugging>  r	  r%   c           	        #    S
S jnU" / SQ5      nU R                  [        R                  " U5      S / SQS.5        [        U5      I S h  vN   U R                  [        R                  " U5      S / SQSSS.5        [        U5      I S h  vN   U R                  [        R                  " U5      S / SQSSS.5        [        U5      I S h  vN   U R                  [        R                  " U5      S / SQSSSS	.5        U R	                  [
        5         [        U5      I S h  vN   S S S 5        U R                  [        R                  " U5      0 5        g  GN N N N:! , (       d  f       N>= f7f)Nc                <   #    SnU  H  nUS:X  a  SnU7v   M     g 7frf	  r*   rg	  s        r#   ri	  9TestGetAsyncGenState.test_getasyncgenlocals.<locals>.eachG  s%     A6A s   r  rl	  r4   rm	  r5   r  r  rn	  r    r  rX   getasyncgenlocalsr	  r  r	  rr	  s      r#   test_getasyncgenlocals+TestGetAsyncGenState.test_getasyncgenlocalsF  s=    	 y/227;#I6	8Gn227;#IA(*	+ Gn227;#IA(*	+ Gn227;#IA(r3	4 12.   3227;R@ 	 	 	
 ! 32sa   A	E0E?E0E?E0EAE0E"E#E'0E0E0E0E
E-)E0c                   #    S nU" 5       nU R                  [        R                  " U5      0 5        [        U5      I S h  vN   U R                  [        R                  " U5      0 5        U R	                  [
        5         [        U5      I S h  vN   S S S 5        U R                  [        R                  " U5      0 5        g  N N5! , (       d  f       N9= f7f)Nc                    #    S7v   g 7fr  r*   r*   r%   r#   rx	  DTestGetAsyncGenState.test_getasyncgenlocals_empty.<locals>.yield_oneb  s
     Gs   	r	  rz	  s      r#   test_getasyncgenlocals_empty1TestGetAsyncGenState.test_getasyncgenlocals_emptya  s     	k2237<Cj2237<12* 32237<	 	  32s;   ?CC?CCCC0CC
CCc                 6   U R                  [        [        R                  S5        U R                  [        [        R                  S 5        U R                  [        [        R                  [        5        U R                  [        [        R                  S5        g )Nr4   c                     gr  r*   r  s    r#   r   CTestGetAsyncGenState.test_getasyncgenlocals_error.<locals>.<lambda>n  s    $r%   r	  )r  r  rX   r	  rW   ri   s    r#   test_getasyncgenlocals_error1TestGetAsyncGenState.test_getasyncgenlocals_errorl  sb    )W%>%>B)W%>%>O)W%>%>D)W%>%>Fr%   r	  N)rU   rl   rm   rn   r  r	  r	  rC	  rG	  rK	  rN	  rZ	  rb	  r	  r	  r	  rz   r*   r%   r#   r	  r	    sD    *%7F#
EE
H,A6	=Gr%   r	  c                       \ rS rSrSrg)MySignatureis  r*   Nr-  r*   r%   r#   r	  r	  s       	r%   r	  c                       \ rS rSrSrg)MyParameterix  r*   Nr-  r*   r%   r#   r	  r	  x  r	  r%   r	  c                      \ rS rSr\S 5       rS rS rS rS r	S r
S rS	 rS
 r\\R                   " \S5      S 5       5       r\\R                   " \S5      S 5       5       r\S 5       r\R                   " \S5      S 5       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(\R                   " \S5      S# 5       r)\R                   " \S5      S$ 5       r*S% r+S& r,S' r-S( r.S) r/S* r0S+ r1S, r2S- r3S. r4S/ r5S0 r6S1 r7S2 r8S3 r9S4 r:S5 r;\R                   " \S5      S6 5       r<\R                   " \S5      S7 5       r=S8 r>S9 r?S: r@S; rAS< rBS= rCS> rDS? rES@ rFSArGgB)CTestSignatureObjecti  c                     [         R                  " U 40 UD6n[        S UR                  R	                  5        5       5      UR
                  UR                  L a  S4$ UR
                  4$ )Nc              3     #    U  H  nUR                   UR                  UR                  L a  S OUR                  UR                  UR                  L a  S OUR                  [	        UR
                  5      R                  5       4v   M     g7f).N)r  r  empty
annotationrC  r  r  ).0r  s     r#   	<genexpr>0TestSignatureObject.signature.<locals>.<genexpr>  sp      J
 2I zz$}};$//5;;>=B=M=M5::,,.	0
 2Is   BB
.)rX   r  tupler<   rt  return_annotationr	  )r   kwsigs      r#   r  TestSignatureObject.signature  sw    ++ J
 251F1F1HJ J --:I 	I 251F1FI 	Ir%   c                    [         R                  n[         R                  nU R                  [	        U" 5       5      S5        U R                  [        U" 5       R                  5      S5        SSS.S jjn[         R                  " U5      nU R                  [        U5      R                  S5      5        U R                  S[        U5      ;   5        SS jn[         R                  " U5      nU R                  [        U5      R                  S5      5        U R                  S	[        U5      ;   5        UR                  S
   nUR                  S   nUR                  S   n	UR                  S   n
UR                  S   nUR                  S   nUR                  S   nUR                  S   nU" XyXU45        U" XyX45        U" XxU45        U" XxU45        U" XU45        U" X45        U" XX45        U" X45        U" XU45        U" XU45        U R                  [        S5         U" XXU45        S S S 5        U R                  [        S5         U" X{XU45        S S S 5        U R                  [        S5         U" XXU45        S S S 5        U R                  [        S5         U" XyXU45        S S S 5        UR                  SS9nU R                  [        S5         U" XyXU45        S S S 5        U R                  [        S5         U" X45        S S S 5        U R                  [        S5         U" X45        S S S 5        U R                  [        S5         U" XxU	45        S S S 5        U R                  [        S5         U" XzU	45        S S S 5        U R                  [        S5         U" X45        S S S 5        g ! , (       d  f       GN= f! , (       d  f       GNy= f! , (       d  f       GNa= f! , (       d  f       GNI= f! , (       d  f       GN"= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)N()zmappingproxy(OrderedDict())r  )kodc                   g r    r*   )popkpkdkor	  r"   r   s          r#   r  7TestSignatureObject.test_signature_object.<locals>.test  r  r%   z
<Signaturez
(po, /, pkc                    g r    r*   )pods    r#   test28TestSignatureObject.test_signature_object.<locals>.test2  r  r%   z(pod=42, /)r	  r
  r 
  r
  r"   r
  r	  r   zwrong parameter orderr  zduplicate parameter namezfollows default argument)d   )r7  )rX   r  r  r  rC  r^	  r<   r  rT   r  r  r  replace)r^   SPr  r	  r
  sig2r	  r
  r 
  r
  r"   r
  r	  r   kwargs2s                   r#   test_signature_object)TestSignatureObject.test_signature_object  s   QS4(acnn-/LM	B 	 %S	,,\:;S	12	   'T
--l;<d34^^D!ooe$^^D!nnU#~~f%^^D!nnU#)	24V
$%	22
	2B-	2C.	3C.	3*	3c
"# 	
3)	3F
	4b/##J0GHrt() I ##J0GHr() I ##J0GHt() I ##J0GHrtR() I ..f.-##J0JKrtb)* L ##J0JKsiL L ##J0JKsiL L ##J0JKrm L ##J0JKrm L ##J0JKsiL LK9 IH IH IH IH LK LK LK LK LK LKsx   "N8O
6O O.P 
P+
P$P5<Q%
Q8
O

O
O+.
O= 
P
P!$
P25
Q
Q
Q%c                    0 S.SSSSS04S jjn[         R                  " USS9n[        R                  " U5      n[	        [
        R                  S-   5       HW  nU R                  US	S
9   [
        R                  " [
        R                  " X45      5      nU R                  X55        S S S 5        MY     [        R                  " U5      n[        S[        R                  R                  S9n[        R                  " UR                   US9n[#        5       R%                  UR'                  5       UR(                  S9nU R+                  [-        U["        5      5        U R+                  [-        UR                   S   [        5      5        [	        [
        R                  S-   5       H  nU R                  USS
9   [
        R                  " [
        R                  " X5      5      nU R                  X5        U R+                  [-        U["        5      5        U R+                  [-        UR                   S   [        5      5        S S S 5        M     g ! , (       d  f       GM   = f! , (       d  f       M  = f)Nr   r   r4   r  r7  r  c                    g r    r*   r-   rm  r   r	  s       r#   r6   =TestSignatureObject.test_signature_object_pickle.<locals>.foo      dr%   r  F)
pickle_versubclassr3   )r  r  )r<   r	  T)r   r  rX   r  r7   pickleHIGHEST_PROTOCOLrD  loadsdumpsr  r	  r  r  r  OrderedDictr<   r	  r

  rt  r	  rT   rL  )	r^   r6   foo_partialr	  versig_pickledmyparammyparamsmysigs	            r#   test_signature_object_pickle0TestSignatureObject.test_signature_object_pickle  s   :1:2e*:''q1,00145Cu=$ll6<<+AB  2 >= 6 $3W->->-N-NO**3>>WE%%1B8;8M8M & O
5+67
5#3#3C#8+FG00145Ct<$ll6<<+CD  4
; DE
;+A+A#+F+6!8 9	 =< 6 >= =<s   *<I3BI
I	
I)	c                    S n[         R                  " U5      nU R                  [        5         SUl        S S S 5        U R                  [
        5         S UR                  S'   S S S 5        g ! , (       d  f       N<= f! , (       d  f       g = f)Nc                     g r    r*   r  s    r#   r  =TestSignatureObject.test_signature_immutability.<locals>.test  r  r%   r.   r-   )rX   r  r  r  r6   r  r<   r^   r  r	  s      r#   test_signature_immutability/TestSignatureObject.test_signature_immutability  si    	%~.CG / y)"&CNN3 *) /. *)s   A-A>-
A;>
Bc                 L    S nU R                  U R                  U5      S5        g )Nc                      g r    r*   r*   r%   r#   r  9TestSignatureObject.test_signature_on_noarg.<locals>.test   r  r%   r*   .r  r  r  s     r#   test_signature_on_noarg+TestSignatureObject.test_signature_on_noarg  s     	-y9r%   c                 P    SS jnU R                  U R                  U5      S5        g )Nc                     g r    r*   rl  s     r#   r  9TestSignatureObject.test_signature_on_wargs.<locals>.test  r  r%   ))r-   ..positional_or_keyword)rm  .r6   r7
  r  )rm  r6   r  r  r0
  r  s     r#   test_signature_on_wargs+TestSignatureObject.test_signature_on_wargs  s%    	-	 r%   c                     S[         S[        S[        4S jnU R                  U R	                  U5      SS[         S4SS[        S44[        45        g )Nr-   rm  r  c                     g r    r*   rl  s     r#   r  ;TestSignatureObject.test_signature_on_wkwonly.<locals>.test  r  r%   .keyword_only)floatrC  r   r  r  r  s     r#   test_signature_on_wkwonly-TestSignatureObject.test_signature_on_wkwonly  sZ    	e 	s 	s 	-e^<c>:< 	!r%   c                     SSS.SSSSSSS	[         4S
 jjjnU R                  U R                  U5      SSSSSS	S[         S44S45        g )Nr  )r  rm  r6   r"   r.   r   r  r   c                    g r    r*   )r-   rm  r   r  r"   r   s         r#   r  @TestSignatureObject.test_signature_on_complex_args.<locals>.test  r  r%   r6
  )rm  r  r6   r7
  )r"   .r.   r   )r   .r  r=
  )r  r  .r=
  .r   r  )r   r  r  r  s     r#   test_signature_on_complex_args2TestSignatureObject.test_signature_on_complex_args  sn    	S 	e 	e 	% 	3 	-CDA?<$c3>@ 	 r%   c                   ^^ S mS m " UU4S jS5      nU R                  U R                  T5      S5        U R                  U R                  T5      S5        U R                  U R                  UR                  5      S5        U R                  U R                  UR                  5      S5        U R                  U R                  UR                  5      S5        U R                  U R                  UR
                  5      S5        g )Nc                      g r    r*   rz  s    r#   test_args_onlyGTestSignatureObject.test_signature_without_self.<locals>.test_args_only!  r  r%   c                      g r    r*   r"   r   s     r#   test_args_kwargs_onlyNTestSignatureObject.test_signature_without_self.<locals>.test_args_kwargs_only$  r  r%   c                      > \ rS rSr\S 5       r\S 5       r\R                  " \S5      r
\R                  "  YS5      r\R                  " \S5      r\R                  "  Y S5      rSrg):TestSignatureObject.test_signature_without_self.<locals>.Ai'  c                      g r    r*   rz  s    r#   test_classmethodKTestSignatureObject.test_signature_without_self.<locals>.A.test_classmethod(  r   r%   c                      g r    r*   rz  s    r#   test_staticmethodLTestSignatureObject.test_signature_without_self.<locals>.A.test_staticmethod,  r   r%   r4   r*   N)rU   rl   rm   rn   r
  rR
  r  rU
  r   r   r  r  r  r  rz   )rM
  rI
  s   r#   rV  rP
  '  sv        ((*:Q?B((.1=B((*;a@B((*?CBr%   rV  )r   .r   )r  r  r  r  r  r  )r^   rV  rM
  rI
  s     @@r#   test_signature_without_self/TestSignatureObject.test_signature_without_self   s    			D 	D 	7G	I(=>F	G 	-G	I-G	I-G	I-G	Hr%   r  c                   ^ ^	 [         R                  " S5      nU 4S jnU 4S jnU" UR                  5      m	U	4S jnT R                  U" S5      S5        T R                  U" S5      S5        T R                  U" S	5      S
5        T R                  U" S5      S5        T R                  U" S5      S 5        T R                  U" S5      S5        T R                  U" S5      S5        T R                  U" S5      S5        T R                  U" S5      [        R
                  5        T R                  U" S5      [        R
                  S-
  5        U" [        5        U" [        R                  R                  5        [        R                  " [        R                  " 5       5      nU" UR                  5        U" [        R                  5        U" SR                  5        U" [        R                  5        U" 0 R                  5        U" [         R"                  5        U" [$        R&                  5        U" SR&                  5        U" [(        R"                  5         " S S5      nT R                  U" 5       " S5      [$        5        T R                  U" 5       " SS0 5      R*                  S5        T R-                  [.        S5         U" U" 5       5        S S S 5        U" [        R0                  5        U" [2        R4                  5        U" UR6                  5        [8        R:                  nU" U5      nT R                  [=        UR>                  5      SS/5        g ! , (       d  f       N= f)Nr  c                   > [         R                  " U 5      nTR                  [        U[         R                  5      5        TR                  [        UR                  R                  5       5      S   R                  S5        U$ )zAUse this to test unbound methods (things that should have a self)r   r^   )
rX   r  rT   rL  r  r  rD  r<   rt  r  r   r  r^   s     r#   test_unbound_methodKTestSignatureObject.test_signature_on_builtins.<locals>.test_unbound_methodI  sa    ))!,IOOJy'2C2CDET)"6"6"="="?@CHH&Qr%   c                 (  > [         R                  " U 5      nTR                  [        U[         R                  5      5        UR
                  (       a@  TR                  [        UR
                  R                  5       5      S   R                  S5        U$ )zRUse this to test bound methods or normal callables (things that don't expect self)r   r^   )
rX   r  rT   rL  r  r<   r  rD  rt  r  r\
  s     r#   test_callableETestSignatureObject.test_signature_on_builtins.<locals>.test_callableP  sk    ))!,IOOJy'2C2CDE####D)=)=)D)D)F$G$J$O$OQWXr%   c                 6   > TR                   U    R                  $ r    )r<   r  )r  r  s    r#   r>   9TestSignatureObject.test_signature_on_builtins.<locals>.pY  s    I006>>>r%   r  r  rm  s   bytesr  gQ	@r=   #   nr  Tr  Flocalr  r^  r`   r4   s   abcc                       \ rS rSr\rSrg)DTestSignatureObject.test_signature_on_builtins.<locals>.ThisWorksNowi  r*   N)rU   rl   rm   rn   r   r   rz   r*   r%   r#   ThisWorksNowrh
    s    Hr%   ri
  rV  r*   no signature foundr^   buffer) r   r  r  r  r^  maxsizer   r  r  r  r  StringIOrn  	maketransrq  fromkeysr   r   r   rG  minrU   r  r  __delitem__r  r  #docstring_with_signature_but_no_doc	bytearray__release_buffer__rD  r<   )
r^   r  r]
  r`
  r>   r  ri
  rL  r	  r  s
   `        @r#   test_signature_on_builtins.TestSignatureObject.test_signature_on_builtinsC  s    "//<			 ")"R"RS	>3+3*3&3$3&3&3'7Q'53;;/53;;?3f 	GOO001OOBKKM*aff 	eoo&f&&' 	dmm$bkk" 	DMM*CKK(qkk" 	cll#	 	 	*C0R4==sC##J0DE,.) F 	D,,-H//0 	iCCD --!&)cnn-/AB FEs   M
M#c                 Z   [         R                  " S5      nUR                  nS nU" U5      nU R                  [        R
                  " U5      [        R
                  " U5      5        S[        4S jnU R                  [        R
                  " USS9[        R
                  " U5      5        g )Nr  c                 V   ^  [         R                  " T 5      S[        4U 4S jj5       nU$ )Nr  c                     > T" U 0 UD6$ r    r*   r   s     r#   rE  \TestSignatureObject.test_signature_on_decorated_builtins.<locals>.decorator.<locals>.wrapper      T,V,,r%   r   r   r   r   rE  s   ` r#   	decoratorKTestSignatureObject.test_signature_on_decorated_builtins.<locals>.decorator  *    __T"-C - #-Nr%   r  c                      g r    r*   rL
  s     r#   wrapper_likeNTestSignatureObject.test_signature_on_decorated_builtins.<locals>.wrapper_like  s    $r%   Ffollow_wrapped)r   r  r  r  rX   r  r   )r^   r  r   r~
  decorated_funcr
  s         r#   $test_signature_on_decorated_builtins8TestSignatureObject.test_signature_on_decorated_builtins  s     "//<	??	 #4**40 **>:	< 	7S6**>:?A **<8	:r%   c                    [         R                  " S5      nU R                  [        S5         [        R
                  " UR                  5        S S S 5        U R                  [        S5         [        R
                  " [        5        S S S 5        UR                  nUR                  5       nUR                  [        4UR                  [        4UR                  [        4UR                  [        4UR                  [        4UR                  [        4UR                  [        4UR                   [        4UR"                  [        4UR$                  [        4UR&                  [        4UR(                  [        4[*        R*                  [        4[        R,                  [        4SR,                  [        4[.        R0                  [        4[/        5       R0                  [        4[.        R2                  [        4[/        5       R2                  [        4[4        R4                  R6                  S   [8        4[4        R4                  R:                  [        4[<        R6                  S   [>        4[<        R@                  [        4/n SS K!nURE                  [F        RH                  [        45        U HY  u  pgU RM                  U5         U RO                  [        R
                  " U5      [        R
                  " U5      5        S S S 5        M[     g ! , (       d  f       GN= f! , (       d  f       GN= f! [J         a     Nf = f! , (       d  f       M  = f)Nr  zno signature found for builtinr8  r  r  r   )(r   r  r  r  rX   r  r  rC  r  r  r   r  r   r   r   r  r  r   r  r  r  r  r  rW   r  r  r   r  r   r  rq  r   r  r  r9   r  r	  rK  rD  r  )r^   r  r  ra   r
  r  r  r  s           r#   'test_signature_on_builtins_no_signature;TestSignatureObject.test_signature_on_builtins_no_signature  s|   !//<	##J$DFi>>?F ##J$DFc"F 0000244kB//8__./ZZ%__k*ZZ ""K0v&##[1'$$&67-YY$YY()XX{#WWk"UYY{+U(''13CD%%{3]]./=##V,1
4	1 LL$,,/0!&Gg&  !2!27!;!(!2!28!<> '& "'YF FF FD  	 	 '&s5   !L,L?L,  ;L<
L
L),
L98L9<
M	c                     [         R                  " S5      nUR                  R                  nU R	                  [        [        R                  " U5      5      S5        g )Nr  z(self, /, x=1))r   r  %DocStringUnrepresentableSignatureTestwith_defaultr  rC  rX   r  )r^   r  meths      r#   $test_signature_parsing_with_defaults8TestSignatureObject.test_signature_parsing_with_defaults  sF     "//<	>>KKW..t457GHr%   c                     U R                  [        S5         [        R                  " S5        S S S 5        g ! , (       d  f       g = f)Nis not a callable objectr7  )r  r  rX   r  ri   s    r#   test_signature_on_non_function2TestSignatureObject.test_signature_on_non_function  s.    ##I/IJb! KJJs	   7
Ac                    ^ SS.S jn " S S5      n[         R                  R                  U5      n[         R                  R                  U" U5      5      nU R                  XC5        [         R                  " U" U5      5      nU R                  XC5        U" U5      nU?U R                  U R	                  U5      S5        [         R                  mU4S jn[        R                  R                  SU5         U" U5      nU R                  [         R                  " U5      5        SUl        U R                  [         R                  " U5      5        U R                  [         R                  " U5      U5        S S S 5        g ! , (       d  f       g = f)	NTkwonlyc                    g r    r*   r-   rm  r
  	kwonlyreqr"   r   s         r#   r   ITestSignatureObject.test_signature_from_functionlike_object.<locals>.func  r  r%   c                        \ rS rSrS rS rSrg)MTestSignatureObject.test_signature_from_functionlike_object.<locals>.funclikei  c                     UR                   U l         UR                  U l        UR                  U l        UR                  U l        UR                  U l        Xl        g r    rU   r  r  __defaults____kwdefaults__r   r   s     r#   r   VTestSignatureObject.test_signature_from_functionlike_object.<locals>.funclike.__init__  G     $ $'+';';$$($5$5!&*&9&9# 	r%   c                 &    U R                   " U0 UD6$ r    r   r  s      r#   r   VTestSignatureObject.test_signature_from_functionlike_object.<locals>.funclike.__call__      yy$1&11r%   r  r  r
  r
  rU   r   NrU   rl   rm   rn   r   r   rz   r*   r%   r#   funcliker
        
!2r%   r
  r   c                 8   > [        U S5      (       a  gT" U 5      $ )N_builtinmockTr   )ra   _orig_isdescs    r#   _isdescLTestSignatureObject.test_signature_from_functionlike_object.<locals>._isdesc  s    sN++$$r%   zinspect.ismethoddescriptor)rX   r  from_callabler  r  r
  r   r  r  rh  r]   r
  rT   )	r^   r   r
  sig_funcsig_funclikeflr
  builtin_funcr
  s	           @r#   'test_signature_from_functionlike_object;TestSignatureObject.test_signature_from_functionlike_object  s7   $( 		2 	2  $$2248((66x~F0(($80
 d^O+ 	! 11	%
 ]]  !=wG#D>LW77EF(,L%OOG66|DEW..|<hG HGGs   6B E??
Fc                    ^ SS.S jm " U4S jS5      nU R                  [        [        R                  " U5      5      S5        g )NTr
  c                    g r    r*   r
  s         r#   r   CTestSignatureObject.test_signature_functionlike_class.<locals>.func#  r  r%   c                      > \ rS rSrS r Y R                   r  Y R
                  r Y R                  r Y R                  r Y R                  rSr	g)GTestSignatureObject.test_signature_functionlike_class.<locals>.funclikei&  c                     g r    r*   )r^   markers     r#   r   PTestSignatureObject.test_signature_functionlike_class.<locals>.funclike.__init__'  r)  r%   r*   N)
rU   rl   rm   rn   r   r  r  r
  r
  rz   r   s   r#   r
  r
  &  s=     }}H}}H"22O,,L!00Nr%   r
  z(marker))r  rC  rX   r  )r^   r
  r   s     @r#   !test_signature_functionlike_class5TestSignatureObject.test_signature_functionlike_class  s9     %) 		1 	1 	W..x89:Fr%   c                     " S S5      nU R                  U R                  U" 5       R                  5      S[        45        U R                  U R                  U" 5       R                  5      S5        U R                  U R                  U5      S5        U R                  [        S5         U R                  U" 5       5        S S S 5        g ! , (       d  f       g = f)Nc                   8    \ rS rSrS rS	S\4S jjrS rS rSr	g)
:TestSignatureObject.test_signature_on_method.<locals>.Testi3  c                      g r    r*   rz  s    r#   r   CTestSignatureObject.test_signature_on_method.<locals>.Test.__init__4  r)  r%   r  c                     g r    r*   r^   r  r  s      r#   r'  =TestSignatureObject.test_signature_on_method.<locals>.Test.m16  r)  r%   c                      g r    r*   rz  s    r#   m2=TestSignatureObject.test_signature_on_method.<locals>.Test.m28  r)  r%   c                     g r    r*   r  s    r#   r   CTestSignatureObject.test_signature_on_method.<locals>.Test.__call__:  r)  r%   r*   Nr4   )
rU   rl   rm   rn   r   r   r'  r
  r   rz   r*   r%   r#   r  r
  3  s    # r%   r  r  ..r7
  )r  r4   .r7
  rW
  zinvalid method signature)r  r  r'  r   r
  r  r  r	  s     r#   test_signature_on_method,TestSignatureObject.test_signature_on_method2  s    	 	 			2F	 
 			2	  	-	  ##J0JKNN46" LKKs   (C
Cc                      " S S5      n[         R                  " U" 5       R                  5      S 5       nU R                  U R	                  U5      S[
        45        g )Nc                   &    \ rS rSrSS\4S jjrSrg)ETestSignatureObject.test_signature_wrapped_bound_method.<locals>.TestiO  r  c                     g r    r*   r
  s      r#   r'  HTestSignatureObject.test_signature_wrapped_bound_method.<locals>.Test.m1P  r)  r%   r*   Nr
  )rU   rl   rm   rn   r   r'  rz   r*   r%   r#   r  r
  O  s    #  r%   r  c                      g r    r*   rL
  s     r#   m1dDTestSignatureObject.test_signature_wrapped_bound_method.<locals>.m1dR  r  r%   r
  )r   r   r'  r  r  r   )r^   r  r
  s      r#   #test_signature_wrapped_bound_method7TestSignatureObject.test_signature_wrapped_bound_methodM  sV    	 	 
	#	 
$	,F	 r%   c                 J   [         R                  (       d%  U R                  U R                  [        5      S5         " S S5      nU" 5       R
                  nU R                  U R                  U5      S5        UR
                  nU R                  U R                  U5      S5        g )N))r  ..positional_only.c                   ,    \ rS rSr\SS.S j5       rSrg)?TestSignatureObject.test_signature_on_classmethod.<locals>.Testi`  r4   )r  c                    g r    r*   )r  r  r  s      r#   r6   CTestSignatureObject.test_signature_on_classmethod.<locals>.Test.fooa  r   r%   r*   N)rU   rl   rm   rn   r
  r6   rz   r*   r%   r#   r  r
  `  s    '(  r%   r  ))r
  )r  r4   .r=
  .)r   r
   r  r  r
  r6   r^   r  r
  s      r#   test_signature_on_classmethod1TestSignatureObject.test_signature_on_classmethodZ  s    ++T^^K8!"	 	
 vzz-	 
 xx-	 r%   c                 J   [         R                  (       d%  U R                  U R                  [        5      S5         " S S5      nU" 5       R
                  nU R                  U R                  U5      S5        UR
                  nU R                  U R                  U5      S5        g )Nr
  c                   $    \ rS rSr\S 5       rSrg)@TestSignatureObject.test_signature_on_staticmethod.<locals>.Testiw  c                    g r    r*   rO  s     r#   r6   DTestSignatureObject.test_signature_on_staticmethod.<locals>.Test.foox  r   r%   r*   N)rU   rl   rm   rn   r  r6   rz   r*   r%   r#   r  r
  w  s     r%   r  ))r  ..r7
  )rK  ..r=
  .)r   r
   r  r  r  r6   r
  s      r#   test_signature_on_staticmethod2TestSignatureObject.test_signature_on_staticmethodq  s    ++T^^L9!"	 	
 vzz-	 
 xx-	 r%   c                 J   SSK Jn  S nU R                  U R                  U" U5      5      S5        U R	                  [
        S5         [        R                  " U" US5      5        S S S 5        U R	                  [
        S5         [        R                  " U" USS95        S S S 5        S nU R                  U R                  U" U5      5      S	5        U R                  U R                  U" US5      5      S
5        U R                  U R                  U" USSS95      S5        U R                  U R                  U" USSS95      S5        U R                  U R                  U" USSSS95      S5        U R                  U R                  U" USS95      S5        S nU R                  U R                  U" US5      5      S5        U R                  U R                  U" USS95      S5        U R                  U R                  U" USSS5      5      S5        U R                  U R                  U" USSSSS95      S5        U R                  U R                  U" USSSSSS95      S5        U R                  U R                  U" USS95      S5        U R                  U R                  U" USSS95      S5        S[        SS4S  jn[        R                  " U5      =o2l        U R                  U R                  U" U" US5      5      5      S!SS"[        S#44S45        U R                  U R                  U" U" US5      S5      5      SS"[        S#44S45        S$ nU" U" US%S9S&S9nU R                  U R                  U5      S'5        U R                  U" 5       S&5        S( nU" U" USS&S9S)S9nU R                  U R                  U5      S*5        U R                  U" S%S9S+5        S, nU" U" US&S&S-9S%S)S.9nU R                  U R                  U5      S/5        [        R                  " U5      R                  S0S1S29nU R                  U" UR                  0 UR                  D6S35        SBS4 jnU" US5S9n[        R                  " U5      R                  S1S9nU R                  U" UR                  0 UR                  D6S65        [        R                  " U5      R                  S1S75      nU R                  U" UR                  0 UR                  D6S85        [        R                  " U5      R                  S1S7S9nU R                  U" UR                  0 UR                  D6S85        [        R                  " U5      R                  S7S9nU R                  U" UR                  0 UR                  D6S95        U" US%S&S9n[        R                  " U5      R                  S75      nU R                  U" UR                  0 UR                  D6S:5        S; n[        R                  " U5      nU R                  [        U5      S<5        U R                  U R                  U" US5      5      S=5        U R                  U R                  U" USS5      5      S>5        U R                  U R                  U" USSS5      5      S?5        U R                  U R                  U" USSSS95      S@5        U R                  U R                  U" USSS95      SA5        g ! , (       d  f       GN= f! , (       d  f       GN{= f)CNr   )r  c                      g r    r*   r*   r%   r#   r  ;TestSignatureObject.test_signature_on_partial.<locals>.test  r  r%   r/
  has incorrect argumentsr4   r  c                    g r    r*   r  s       r#   r  r
    r  r%   ))r6
  rm  ..r7
  r   ..r=
  r  ..r=
  .))r
  r
  r
  .r5   r
  ))r
  r   r5   .r=
  r
  .)rm  r   ))r6
  rm  r4   .r=
  r
  r
  .))r
  r
  r
  .))r-   r4   .r=
  rm  ..r=
  r
  r
  .c                    g r    r*   )r-   rm  r"   r   s       r#   r  r
    r  r%   ))r   r
  r   .))r
  r
  r   .r  Tr  )r  rm  ))r   rm  r   .r=
  r   .rm  ))r6
  r   r
  r   .)rm  r  r   r  r7  c                     g r    r*   r@  s      r#   r  r
    r  r%   r
  .r7
  c                     U $ r    r*   r  s    r#   r6   :TestSignatureObject.test_signature_on_partial.<locals>.foo  s    Hr%   r     )))r-   r  .r=
  .c                 
    XU4$ r    r*   r@  s      r#   r6   r        7Nr%   r2  )))rm  r2  .r=
  r
  .)r4   r2  r  c                
    XX#4$ r    r*   r  s       r#   r6   r    s    :r%   )r  r   )rm  r  ))r6
  )rm  r  .r=
  )r   r  .r=
  )r  r2  .r=
  .   r  rl  )r  r  r  r2  c                 
    XU4$ r    r*   r@  s      r#   r6   r    r  r%   r  )r  r5   r  r  )r  r  r  )r4   r  r  )r  r  r  c                    g r    r*   )r-   rm  r   r  r   s        r#   r6   r  3  r  r%   z(a, b, /, c, d, **kwargs)))rm  ..r
  r   ..r7
  r  ..r7
  r   .))r  r  r   .))r  r   .))r   r  .r=
  r
  r   .))r
  r  r
  r   .r  )r   r  r  r  r  r  rX   r   r  bindr"   r   rC  )r^   r  r  r	  r6   _foobas          r#   test_signature_on_partial-TestSignatureObject.test_signature_on_partial  s   %	 	6	B##J0IJgdA./ K ##J0IJgda01 K	 	6	  	a(89	  	a1(=>	  	Q(?@	  	a1(BC	  	(:;	 	 	a(89	  	(:;	  	aA(>?	  	aAD(IJ	  	aAA(KL	  	(:;	  	(BC	 	 	 	 $+#4#4T#:: a0@(ABCc+BCE	
 	a0@!(DEc+BCE		wsb)R0-	 
 	$	wsA,3-	  	[1	wsbB/2<-	  t$))C2)6rww4"))46GH	sb!t$))B)/rww4"))4kBt$))"b1rww4"))4lCt$))")3rww4"))4lCt$))B)/rww4"))4kBtrR(t$))"-rww4"))4lC	$S#>?Q8	 	Q(:;	 	Q1(=>	
 	QQ(?@	 	Q!(<=	A KJ KJs   \\
\
\"c                   ^ SSK Jm   " U4S jS5      nU R                  [        S5         [        R
                  " UR                  5        S S S 5         " U4S jS5      nU R                  U R                  UR                  SS9S	5        U R                  U R                  U" 5       R                  SS9S
5         " U4S jS5      nU R                  U R                  UR                  SS9S5        g ! , (       d  f       N= f)Nr   r   c                   .   > \ rS rSrS r Y " \5      rSrg)ATestSignatureObject.test_signature_on_partialmethod.<locals>.SpamiZ  c                      g r    r*   r*   r%   r#   r  FTestSignatureObject.test_signature_on_partialmethod.<locals>.Spam.test[  r)  r%   r*   NrU   rl   rm   rn   r  r  rz   r  s   r#   Spamr  Z  s    %Cr%   r  r
  c                   0   > \ rS rSrSS jr Y " \SS9rSrg)r  ib  c                    g r    r*   )itr-   r   s      r#   r  r  c  r)  r%   r4   r
  r*   N)r  r   r  r  s   r#   r  r  b  s    *Cr%   FrA  )))r  ..r7
  r6
  r   r4   .r=
  r   ))r6
  r  r   c                   4   > \ rS rSrSS jr Y " \S5      rSrg)r  ir  c                     g r    r*   r2  s     r#   r  r  s  r)  r%   r4   r*   N)r^   anno)rU   rl   rm   rn   r  r  rz   r  s   r#   r  r  r  s     dA&Ar%   )))r^   .r!  r7
  .)	r   r   r  r  rX   r  r  r  r  )r^   r  r   s     @r#   test_signature_on_partialmethod3TestSignatureObject.test_signature_on_partialmethodW  s    +	& 	&
 ##J0IJdhh' K	+ 	+
 	5A"	# 	

UC"	#
	' 	' 	?	 3 KJs   !C22
D c                 v    S nSUl         U R                  [        [        R                  " U5      5      S5        g )Nc                     g r    r*   r  s    r#   r6   ETestSignatureObject.test_signature_on_fake_partialmethod.<locals>.foo}  r  r%   r   z(a))__partialmethod__r  rC  rX   r  r^   r6   s     r#   $test_signature_on_fake_partialmethod8TestSignatureObject.test_signature_on_fake_partialmethod|  s-     &W..s34e<r%   c                   ^ S m " U4S jS5      nT" U" 5       R                   5      nU R                  U R                  UR                   5      S5        U R                  U R                  U" 5       R                   5      S5        U R                  U R                  UR                   SS9S5        U R                  U R                  U5      S5        S	 m " U4S
 jS5      nU R                  U R                  UR                  5      S5        U R                  U R                  U" 5       R                  5      S5        S nUR                  Ul        U R                  U R                  U5      S5        g )Nc                 V   ^  [         R                  " T 5      S[        4U 4S jj5       nU$ )Nr  c                     > T" U 0 UD6$ r    r*   r   s     r#   rE  STestSignatureObject.test_signature_on_decorated.<locals>.decorator.<locals>.wrapper  r{
  r%   r|
  r}
  s   ` r#   r~
  BTestSignatureObject.test_signature_on_decorated.<locals>.decorator  r
  r%   c                   (   > \ rS rSr Y S 5       rSrg)<TestSignatureObject.test_signature_on_decorated.<locals>.Fooi  c                     g r    r*   r^   r-   rm  s      r#   r.   @TestSignatureObject.test_signature_on_decorated.<locals>.Foo.bar  r   r%   r*   N)rU   rl   rm   rn   r.   rz   r~
  s   r#   r  r1         r%   r  ))r^   ..r7
  r6
  r
  .))r6
  r
  .Fr
  r   c                    ^  [         R                  " T 5      S[        4U 4S jj5       n[        R                  " T 5      n[        UR                  R                  5       5      SS  nUR                  US9Ul	        U$ )Nr  c                     > T" S/U Q70 UD6$ r  r*   r   s     r#   rE  r.    s    B0000r%   r4   r  )
r   r   r   rX   r  r	  r<   rt  r

  r  )r   rE  r	  
new_paramss   `   r#   r~
  r/    sk    __T"1C 1 #1##D)Cs~~4467;J$'KK:K$FG!Nr%   c                   (   > \ rS rSr Y S 5       rSrg)r1  i  c                     g r    r*   r3  s      r#   r   ETestSignatureObject.test_signature_on_decorated.<locals>.Foo.__call__  r   r%   r*   Nr   r5  s   r#   r  r1    r6  r%   )r
  .c                      g r    r*   r*   r%   r#   wrapped_foo_callITestSignatureObject.test_signature_on_decorated.<locals>.wrapped_foo_call  r  r%   )r.   r  r  r   __wrapped__)r^   r  r.   r@  r~
  s       @r#   test_signature_on_decorated/TestSignatureObject.test_signature_on_decorated  s>   		 	
 		"0	  			2	 
 	F	  	,	 		 	
 	5	 
 	7	 
	'*||$(89	 r%   c                 :  ^  " S S5      nU R                  U R                  U5      S5         " S S[        5      n " S SUS9nU R                  U R                  U5      S5        U R                  S5          " S	 S[        5      n " S
 SUS9nU R                  U" S5      S5        U R                  U R                  U5      S5        S S S 5        U R                  S5          " S S[        5      n " S SUS9nU R                  U" S5      S5        U R                  U R                  U5      S5        S S S 5        U R                  S5          " S S5      m " U4S jS[        5      n " S SUS9nU R                  U" S5      S5        U R                  U R                  U5      S5        S S S 5        U R                  S5          " S S[        5      n " S SUS9nU R	                  [
        5         U R                  U" S5      S5        S S S 5        U R	                  [
        5         U R                  U R                  U5      S5        S S S 5        S S S 5        U R                  S5          " S S[        5      n " S SUS9nU R                  U" S5      S5        U R                  U R                  U5      S5        S S S 5        U R                  S5          " S S[        5      n " S SUS9nU R                  U" SS/5      S 5        U R                  [        5         U R                  U R                  U5      U R                  S!R                  5      5        S S S 5        S S S 5        U R                  S"5          " S# S[        5      n " S$ SUS9nU R                  U" S%5      S&5        U R                  U" S%S'5      S5        [        R                  (       dX  U R                  [        5         U R                  U R                  U5      U R                  S(R                  5      5        S S S 5        S S S 5         " S) S[        5      n " S* SUS9nU R                  U R                  U5      S+5        U R                  U R                  U5      S,5         " S- S.[        5      n " S/ S[        US9n " S0 SUS9nU R                  U R                  U5      S,5        U R                  U R                  U5      S15        U R                  U R                  U5      S+5         " S2 S[        5      n " S3 SUS9nU R                  U R                  U5      S45        g ! , (       d  f       GN= f! , (       d  f       GN<= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN[= f! , (       d  f       GNe= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f)5Nc                       \ rS rSrS rSrg)6TestSignatureObject.test_signature_on_class.<locals>.Ci  c                     g r    r*   r^   r-   s     r#   r   ?TestSignatureObject.test_signature_on_class.<locals>.C.__init__  r)  r%   r*   NrU   rl   rm   rn   r   rz   r*   r%   r#   rp  rG    r   r%   rp  )r6
  .c                       \ rS rSrS rSrg)7TestSignatureObject.test_signature_on_class.<locals>.CMi  c                     g r    r*   r  r-   s     r#   r   @TestSignatureObject.test_signature_on_class.<locals>.CM.__call__  r)  r%   r*   Nr   r*   r%   r#   r  rN    r   r%   r  c                       \ rS rSrS rSrg)rG  i  c                     g r    r*   r^   rm  s     r#   r   rJ    r)  r%   r*   NrK  r*   r%   r#   rp  rG    r   r%   r  r
  c                   $    \ rS rSr\S 5       rSrg)rN  i  c                     U$ r    r*   rP  s     r#   r   rQ        Hr%   r*   NrU   rl   rm   rn   r
  r   rz   r*   r%   r#   r  rN         r%   c                       \ rS rSrS rSrg)rG  i  c                     g r    r*   rT  s     r#   r   rJ        r%   r*   NrK  r*   r%   r#   rp  rG        r%   r4   r  c                   $    \ rS rSr\S 5       rSrg)rN  i  c                     U $ r    r*   r  s    r#   r   rQ    rW  r%   r*   NrU   rl   rm   rn   r  r   rz   r*   r%   r#   r  rN         r%   c                       \ rS rSrS rSrg)rG  i  c                     g r    r*   rT  s     r#   r   rJ    r\  r%   r*   NrK  r*   r%   r#   rp  rG    r]  r%   
MethodTypec                       \ rS rSrS rSrg)6TestSignatureObject.test_signature_on_class.<locals>.Ai  c                     U$ r    r*   rI  s     r#   call;TestSignatureObject.test_signature_on_class.<locals>.A.call      Hr%   r*   NrU   rl   rm   rn   rh  rz   r*   r%   r#   rV  rf        r%   rV  c                   :   > \ rS rSr Y " 5       R                  rSrg)rN  i  r*   NrU   rl   rm   rn   rh  r   rz   rV  s   r#   r  rN        388r%   c                       \ rS rSrS rSrg)rG  i  c                     g r    r*   rT  s     r#   r   rJ    r\  r%   r*   NrK  r*   r%   r#   rp  rG    r]  r%   r  c                   <    \ rS rSr\R
                  " S S5      rSrg)rN  i  c                     X4$ r    r*   ru  r-   s     r#   r   @TestSignatureObject.test_signature_on_class.<locals>.CM.<lambda>	      1&r%   r5   r*   NrU   rl   rm   rn   r   r  r   rz   r*   r%   r#   r  rN        $,,-@!Dr%   c                       \ rS rSrS rSrg)rG  i
  c                     g r    r*   rT  s     r#   r   rJ    r\  r%   r*   NrK  r*   r%   r#   rp  rG  
  r]  r%   r5   r4   r   c                   <    \ rS rSr\R
                  " S S5      rSrg)rN  i  c                     X4$ r    r*   r^   ru  r-   s      r#   r   rv        qfr%   r5   r*   NrU   rl   rm   rn   r   r   r   rz   r*   r%   r#   r  rN        $223LaPr%   c                       \ rS rSrS rSrg)rG  i  c                     g r    r*   rT  s     r#   r   rJ    r\  r%   r*   NrK  r*   r%   r#   rp  rG    r]  r%   BuiltinMethodTypec                   ,    \ rS rSrSR                  rSrg)rN  i"  :r*   NrU   rl   rm   rn   r:   r   rz   r*   r%   r#   r  rN  "      88r%   c                       \ rS rSrS rSrg)rG  i$  c                     g r    r*   rT  s     r#   r   rJ  %  r\  r%   r*   NrK  r*   r%   r#   rp  rG  $  r]  r%   r-   bca:bcr8  MethodWrapperTypec                   ,    \ rS rSrSR                  rSrg)rN  i.  r5   r*   NrU   rl   rm   rn   __pow__r   rz   r*   r%   r#   r  rN  .      ;;r%   c                       \ rS rSrS rSrg)rG  i0  c                     g r    r*   rT  s     r#   r   rJ  1  r\  r%   r*   NrK  r*   r%   r#   rp  rG  0  r]  r%   r  r  r  r   c                   0   ^  \ rS rSrSS.U 4S jjrSrU =r$ )rN  i;  r4   r(  c                $   > [         TU ]  XX#5      $ r    ra  r.  mclsr  basesdctr6   rc  s        r#   r.  ?TestSignatureObject.test_signature_on_class.<locals>.CM.__new__<      wt5>>r%   r*   rU   rl   rm   rn   r.  rz   rn  ro  s   @r#   r  rN  ;      78 ? ?r%   c                       \ rS rSrS rSrg)rG  i>  c                     g r    r*   rT  s     r#   r   rJ  ?  r)  r%   r*   NrK  r*   r%   r#   rp  rG  >  r   r%   r>  ))r  ..r7
  r  ..r7
  r  ..r7
  )r6   r4   .r=
  .c                   6   ^  \ rS rSrSS.U 4S jjrS rSrU =r$ )8TestSignatureObject.test_signature_on_class.<locals>.CMMiM  r4   r(  c                $   > [         TU ]  XX#5      $ r    r  r  s        r#   r.  @TestSignatureObject.test_signature_on_class.<locals>.CMM.__new__N  r  r%   c                     [        XU5      $ r    r   )r  nmbsdts       r#   r   ATestSignatureObject.test_signature_on_class.<locals>.CMM.__call__P  s    BB''r%   r*   )rU   rl   rm   rn   r.  r   rz   rn  ro  s   @r#   CMMr  M  s    78 ? ?( (r%   r  c                   0   ^  \ rS rSrSS.U 4S jjrSrU =r$ )rN  iR  r5   r.   c                $   > [         TU ]  XX#5      $ r    r  )r  r  r  r  r.   rc  s        r#   r.  r  S  r  r%   r*   r  ro  s   @r#   r  rN  R  r  r%   c                       \ rS rSrS rSrg)rG  iU  c                     g r    r*   rT  s     r#   r   rJ  V  r)  r%   r*   NrK  r*   r%   r#   rp  rG  U  r   r%   )))r  ..r7
  )r  ..r7
  )r  ..r7
  .c                   0   ^  \ rS rSrSS.U 4S jjrSrU =r$ )rN  ij  r5   r  c                $   > [         TU ]  XU5      $ r    ra  r   )r  r  r  r  r.   rc  s        r#   r   @TestSignatureObject.test_signature_on_class.<locals>.CM.__init__k  s    w'S99r%   r*   rU   rl   rm   rn   r   rz   rn  ro  s   @r#   r  rN  j  s    78 : :r%   c                       \ rS rSrS rSrg)rG  im  c                     g r    r*   rT  s     r#   r   rJ  n  r)  r%   r*   NrK  r*   r%   r#   rp  rG  m  r   r%   ))r  r  r  )r.   r5   .r=
  .)r  r  r   rD  assertWarnsFutureWarningr  AssertionErrorr:   r   r
   r  )r^   rp  r  r  rV  s       @r#   test_signature_on_class+TestSignatureObject.test_signature_on_class  s   	 	 	*	 	 		" 	 	*	  \\-(T b  QqT1%T^^A.!" ) \\.)T b  QqT1%T^^A.!" * \\,' $T $b  QqT1%T^^A.!" ( \\)$ET Eb  !!-0  1v. 1!!-0  !2!%& 1 % \\/*QT Qb  QqT6*T^^A.!" + \\-.$T $b  QT{^V4"">2  !2DNN2774KL 3 / \\-.'T 'b  QqT1%Qq!Wa(//&&~6$$T^^A%6{{8ST 7 /	? 	?	" 	 	*	  	+	 	($ 	(
	? 	?	" 	 	,	  	+	  	*	 	: 	:	" 	 	+	 k )( *) (', 1000 %$ +** 32 /.. 76 /.s   7AU"AU)AU;.V13VV1)"VV1,AWAW';WW';A4X/;W9*X
U&)
U8;
V

V	V1
V.	)V11
W 
W
W$	W''
W69
X	X
Xc                 r  ^  " S S[         5      n " S SUS9nU R                  U R                  U5      S5        U R                  S5          " S S[         5      n " S	 SUS9nU R                  U" S
5      S
5        U R                  U R                  U5      S5        S S S 5        U R                  S5          " S S[         5      n " S SUS9nU R                  U" S
5      S
5        U R                  U R                  U5      S5        S S S 5        U R                  S5          " S S5      m " U4S jS[         5      n " S SUS9nU R                  U" S
5      S
5        U R                  U R                  U5      S5        S S S 5        U R                  S5          " S S[         5      n " S SUS9nU R                  U" S
5      S
5        U R                  U R                  U5      S5        U R                  U R                  UR                  5      S5        U R                  U R                  USS9[
        5        U R                  U R                  UR                  SS9[
        5        S S S 5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       g = f)Nc                   $    \ rS rSr\S 5       rSrg)STestSignatureObject.test_signature_on_class_with_wrapped_metaclass_call.<locals>.CMiy  c                     g r    r*   rP  s     r#   r   \TestSignatureObject.test_signature_on_class_with_wrapped_metaclass_call.<locals>.CM.__call__z  r   r%   r*   N)rU   rl   rm   rn   r   r   rz   r*   r%   r#   r  r  y       r%   r  c                       \ rS rSrS rSrg)RTestSignatureObject.test_signature_on_class_with_wrapped_metaclass_call.<locals>.Ci}  c                     g r    r*   rT  s     r#   r   [TestSignatureObject.test_signature_on_class_with_wrapped_metaclass_call.<locals>.C.__init__~  r)  r%   r*   NrK  r*   r%   r#   rp  r  }  r   r%   rp  r  rL  r
  c                   .    \ rS rSr\\S 5       5       rSrg)r  i  c                     U$ r    r*   rP  s     r#   r   r    	     Hr%   r*   N)rU   rl   rm   rn   r
  r   r   rz   r*   r%   r#   r  r        ! " r%   c                       \ rS rSrS rSrg)r  i  c                     g r    r*   rT  s     r#   r   r    r\  r%   r*   NrK  r*   r%   r#   rp  r    r]  r%   r4   r  c                   .    \ rS rSr\\S 5       5       rSrg)r  i  c                     U $ r    r*   r  s    r#   r   r    r  r%   r*   N)rU   rl   rm   rn   r  r   r   rz   r*   r%   r#   r  r        ! " r%   c                       \ rS rSrS rSrg)r  i  c                     g r    r*   rT  s     r#   r   r    r\  r%   r*   NrK  r*   r%   r#   rp  r    r]  r%   rd  c                   $    \ rS rSr\S 5       rSrg)RTestSignatureObject.test_signature_on_class_with_wrapped_metaclass_call.<locals>.Ai  c                     U$ r    r*   rI  s     r#   rh  WTestSignatureObject.test_signature_on_class_with_wrapped_metaclass_call.<locals>.A.call  rW  r%   r*   NrU   rl   rm   rn   r   rh  rz   r*   r%   r#   rV  r        ! "r%   rV  c                   :   > \ rS rSr Y " 5       R                  rSrg)r  i  r*   Nrn  ro  s   r#   r  r    rp  r%   c                       \ rS rSrS rSrg)r  i  c                     g r    r*   rT  s     r#   r   r    r\  r%   r*   NrK  r*   r%   r#   rp  r    r]  r%   rB  c                   .    \ rS rSr\\S 5       5       rSrg)r  i  c                     U$ r    r*   rI  s     r#   r   r    r  r%   r*   N)rU   rl   rm   rn   r   r   r   rz   r*   r%   r#   r  r        "! " #r%   c                       \ rS rSrS rSrg)r  i  c                     g r    r*   rT  s     r#   r   r    r\  r%   r*   NrK  r*   r%   r#   rp  r    r]  r%   Fr
  )r   r  r  rD  r   varargs_signature)r^   r  rp  rV  s      @r#   3test_signature_on_class_with_wrapped_metaclass_callGTestSignatureObject.test_signature_on_class_with_wrapped_metaclass_callx  sS   	 		" 	 	*	  \\-(T 
b  QqT1%T^^A.!" ) \\.)T 
b  QqT1%T^^A.!" * \\,' $T $b  QqT1%T^^A.!" (  \\,'T 
b  QqT1%T^^A.!" T^^AJJ7!" T^^Ae^D.0T^^AJJu^M.0) ('] )( *) ('  ('s4   AI27AJ"AJCJ(2
J
J
J%(
J6c           	      h  ^  " S S5      nU" S5        U R                  U R                  U5      S5        U R                  S5          " S S5      nU" S5        U R                  U R                  U5      S5        S S S 5        U R                  S5          " S S5      nU" S5        U R                  U R                  U5      S5        S S S 5        U R                  S	5          " S
 S5      m " U4S jS5      nU" S5        U R                  U R                  U5      S5        S S S 5        U R                  S5          " S S5      nU R                  [        5         U" S5        S S S 5        U R                  [        5         U R                  U R                  U5      S5        S S S 5        S S S 5        U R                  S5          " S S5      nU R                  U" S5      R
                  S5        U R                  U R                  U5      S5        S S S 5        U R                  S5          " S S5      nU" S5        U R                  U R                  U5      S5        U R                  U R                  UR                  5      S5        U R                  U R                  USS9[        5        [        R                  (       a,  U R                  [        SU R                  UR                  SS9  O.U R                  U R                  UR                  SS9[        5        S S S 5        g ! , (       d  f       GN= f! , (       d  f       GNw= f! , (       d  f       GN/= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       g = f)Nc                   $    \ rS rSr\S 5       rSrg)HTestSignatureObject.test_signature_on_class_with_wrapped_init.<locals>.Ci  c                     g r    r*   rT  s     r#   r   QTestSignatureObject.test_signature_on_class_with_wrapped_init.<locals>.C.__init__  r   r%   r*   N)rU   rl   rm   rn   r   r   rz   r*   r%   r#   rp  r    r  r%   rp  r4   r>  r
  c                   .    \ rS rSr\\S 5       5       rSrg)r  i  c                     g r    r*   r  rm  s     r#   r   r         r%   r*   N)rU   rl   rm   rn   r
  r   r   rz   r*   r%   r#   rp  r    s    ! " r%   r  c                   .    \ rS rSr\\S 5       5       rSrg)r  i  c                     g r    r*   r
  s    r#   r   r    r  r%   r*   N)rU   rl   rm   rn   r  r   r   rz   r*   r%   r#   rp  r    s    ! " r%   rd  c                   $    \ rS rSr\S 5       rSrg)HTestSignatureObject.test_signature_on_class_with_wrapped_init.<locals>.Ai  c                     g r    r*   rI  s     r#   rh  MTestSignatureObject.test_signature_on_class_with_wrapped_init.<locals>.A.call      r%   r*   Nr  r*   r%   r#   rV  r    s    ! "r%   rV  c                   :   > \ rS rSr Y " 5       R                  rSrg)r  i  r*   NrU   rl   rm   rn   rh  r   rz   ro  s   r#   rp  r    rp  r%   rL  r  c                   H    \ rS rSr\R
                  " \" S 5      S5      rSrg)r  i  c                     g r    r*   ru  s     r#   r   QTestSignatureObject.test_signature_on_class_with_wrapped_init.<locals>.C.<lambda>  r	  r%   r5   r*   N)	rU   rl   rm   rn   r   r  r   r   rz   r*   r%   r#   rp  r    s    $,,-=>O-PRSTr%   r   c                   J    \ rS rSr\S 5       r\R                  " \S5      rSr	g)r  i  c                     X4U l         g r    r  r  s      r#   _initNTestSignatureObject.test_signature_on_class_with_wrapped_init.<locals>.C._init  s    VDFr%   r5   r  N)
rU   rl   rm   rn   r   r  r   r   r   rz   r*   r%   r#   rp  r    s&    !$ "$$225!<r%   r|  rB  c                   .    \ rS rSr\\S 5       5       rSrg)r  i  c                     g r    r*   rI  s     r#   r   r    r  r%   r*   N)rU   rl   rm   rn   r   r   r   rz   r*   r%   r#   rp  r    s    "! " #r%   ))r7  r6
  .Fr
  rj
  )r  r  rD  r  r  r-   r   r  r   r
   r  r  r.  r^   rp  rV  s     @r#   )test_signature_on_class_with_wrapped_init=TestSignatureObject.test_signature_on_class_with_wrapped_init  s   	 	
 	
!*	 \\-(  aDT^^A.!" ) \\.)  aDT^^A.!" * \\,' 
$ $ aDT^^A.!" ( \\)$U U !!-0! 1!!-0  !2!%& 1 % \\/*= = QqTVVV,T^^A.!" + \\,'  aDT^^A.!" T^^AJJ7!"
 T^^Ae^D.0++&& 4NNAIIe ' 
   		%!P 131 ('{ )( *) ('$ 1000 %$ +* ('s{   4L%4L7 AM	: M?	M#M? "M-"M?AN*C2N#%
L47
M	
M
M*	%M?-
M<	7M??
N
N #
N1c                 *  ^ U R                  S5          " S S5      nU R                  U" S5      S5        U R                  U R                  U5      S5        S S S 5        U R                  S5          " S S5      nU R                  U" S5      S5        U R                  U R                  U5      S5        S S S 5        U R                  S5          " S	 S5      nU R                  U" S5      S5        U R                  U R                  U5      S5        S S S 5        U R                  S
5          " S S5      m " U4S jS5      nU R                  U" S5      S5        U R                  U R                  U5      S5        S S S 5        U R                  S5          " S S5      nU R                  U" S5      S5        U R                  U R                  U5      S5        S S S 5        U R                  S5          " S S5      nU R                  U" S5      S5        U R                  U R                  U5      S5        S S S 5        U R                  S5          " S S5      nU R                  U" S5      S5        U R                  U R                  U5      S5        U R                  U R                  UR                  5      S5        U R                  U R                  USS9[        5        U R                  U R                  UR                  SS9[        5        S S S 5        g ! , (       d  f       GN= f! , (       d  f       GN}= f! , (       d  f       GN2= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GND= f! , (       d  f       g = f)NFunctionTypec                   $    \ rS rSr\S 5       rSrg)GTestSignatureObject.test_signature_on_class_with_wrapped_new.<locals>.Ci/  c                     U$ r    r*   rP  s     r#   r.  OTestSignatureObject.test_signature_on_class_with_wrapped_new.<locals>.C.__new__0  rW  r%   r*   N)rU   rl   rm   rn   r   r.  rz   r*   r%   r#   rp  r  /  r  r%   rp  r4   rL  r
  c                   .    \ rS rSr\\S 5       5       rSrg)r  i:  c                     U$ r    r*   r  cls2r-   s      r#   r.  r	  ;  r  r%   r*   N)rU   rl   rm   rn   r
  r   r.  rz   r*   r%   r#   rp  r  :  r  r%   r  c                   .    \ rS rSr\\S 5       5       rSrg)r  iF  c                     U$ r    r*   rP  s     r#   r.  r	  G  r  r%   r*   N)rU   rl   rm   rn   r  r   r.  rz   r*   r%   r#   rp  r  F  r  r%   rd  c                   $    \ rS rSr\S 5       rSrg)GTestSignatureObject.test_signature_on_class_with_wrapped_new.<locals>.AiR  c                     U$ r    r*   r^   r  r-   s      r#   rh  LTestSignatureObject.test_signature_on_class_with_wrapped_new.<locals>.A.callS  rW  r%   r*   Nr  r*   r%   r#   rV  r  R  r  r%   rV  c                   :   > \ rS rSr Y " 5       R                  rSrg)r  iV  r*   NrU   rl   rm   rn   rh  r.  rz   ro  s   r#   rp  r  V      #((r%   r  c                   H    \ rS rSr\R
                  " \" S 5      S5      rSrg)r  i_  c                     X4$ r    r*   ru  r  r-   s      r#   r   PTestSignatureObject.test_signature_on_class_with_wrapped_new.<locals>.C.<lambda>`  s    PQvr%   r5   r*   N)	rU   rl   rm   rn   r   r  r   r.  rz   r*   r%   r#   rp  r  _  s    #++,<=U,VXYZr%   r|  r   c                   H    \ rS rSr\R
                  " \" S 5      S5      rSrg)r  ih  c                     X4$ r    r*   r  ru  r-   s      r#   r   r  i  s    VWU[r%   r5   r*   N)	rU   rl   rm   rn   r   r   r   r.  rz   r*   r%   r#   rp  r  h  s    #112BC[2\^_`r%   rB  c                   .    \ rS rSr\\S 5       5       rSrg)r  iq  c                     U$ r    r*   rP  s     r#   r.  r	  r  r  r%   r*   N)rU   rl   rm   rn   r   r   r.  rz   r*   r%   r#   rp  r  q  r  r%   ))r
  r6
  .Fr
  )rD  r  r  r.  r  r  s     @r#   (test_signature_on_class_with_wrapped_new<TestSignatureObject.test_signature_on_class_with_wrapped_new-  s   \\.) 
 QqT1%T^^A.!" * \\-(  QqT1%T^^A.!" ) \\.)  QqT1%T^^A.!" * \\,' # # QqT1%T^^A.!" ( \\)$[ [ QqT6*T^^A.!" % \\/*a a QqT6*T^^A.!" + \\,'  QqT1%T^^A.!" T^^AII6!"
 T^^Ae^D.0T^^AIIe^L.0% ('E *) )( *) (' %$ +* ('sZ   AL0AL*AL<*AMAM 1AM2CN
L'*
L9<
M
M 
M/2
N
Nc                 (  ^  " S S5      nU" S5        U R                  U R                  U5      S5        U R                  S5          " S S5      nU" S5        U R                  U R                  U5      S5        S S S 5        U R                  S5          " S S5      nU" S5        U R                  U R                  U5      S5        S S S 5        U R                  S	5          " S
 S5      m " U4S jS5      nU" S5        U R                  U R                  U5      S5        S S S 5        U R                  S5          " S S5      nU R                  [        5         U" S5        S S S 5        U R                  [        5         U R                  U R                  U5      S5        S S S 5        S S S 5        U R                  S5          " S S5      nU R                  U" S5      R
                  S5        U R                  U R                  U5      S5        S S S 5        g ! , (       d  f       GN= f! , (       d  f       GNl= f! , (       d  f       GN$= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nc                       \ rS rSrS rSrg)@TestSignatureObject.test_signature_on_class_with_init.<locals>.Ci  c                     g r    r*   rT  s     r#   r   ITestSignatureObject.test_signature_on_class_with_init.<locals>.C.__init__  r)  r%   r*   NrK  r*   r%   r#   rp  r%    r   r%   rp  r4   r>  r
  c                   $    \ rS rSr\S 5       rSrg)r%  i  c                     g r    r*   r  s     r#   r   r'    r  r%   r*   N)rU   rl   rm   rn   r
  r   rz   r*   r%   r#   rp  r%         r%   r  c                   $    \ rS rSr\S 5       rSrg)r%  i  c                     g r    r*   r
  s    r#   r   r'    r  r%   r*   N)rU   rl   rm   rn   r  r   rz   r*   r%   r#   rp  r%         r%   rd  c                       \ rS rSrS rSrg)@TestSignatureObject.test_signature_on_class_with_init.<locals>.Ai  c                     g r    r*   rI  s     r#   rh  ETestSignatureObject.test_signature_on_class_with_init.<locals>.A.call  r\  r%   r*   Nrk  r*   r%   r#   rV  r/    r]  r%   rV  c                   :   > \ rS rSr Y " 5       R                  rSrg)r%  i  r*   Nr  ro  s   r#   rp  r%    rp  r%   rL  r  c                   <    \ rS rSr\R
                  " S S5      rSrg)r%  i  c                     g r    r*   ru  s     r#   r   ITestSignatureObject.test_signature_on_class_with_init.<locals>.C.<lambda>  s    $r%   r5   r*   N)rU   rl   rm   rn   r   r  r   rz   r*   r%   r#   rp  r%    s    $,,->Br%   r   c                   @    \ rS rSrS r\R                  " \S5      rSrg)r%  i  c                     X4U l         g r    r  r  s      r#   r  FTestSignatureObject.test_signature_on_class_with_init.<locals>.C._init  s    VDFr%   r5   r  N)	rU   rl   rm   rn   r  r   r   r   rz   r*   r%   r#   rp  r%    s    $$225!<r%   r|  )r  r  rD  r  r  r-   r  s     @r#   !test_signature_on_class_with_init5TestSignatureObject.test_signature_on_class_with_init  s   	 	 	
!*	 \\-( 
 aDT^^A.!" ) \\.) 
 aDT^^A.!" * \\,' $ $ aDT^^A.!" ( \\)$C C !!-0! 1!!-0  !2!%& 1 % \\/*= =
 QqTVVV,T^^A.!" +*[ )( *) ('  1000 %$ +*sn   4H4H, AH>: I2	I#I2 "I!"I2AJ
H),
H;>
I
I	I2!
I/	+I22
J 
Jc                 	  ^ U R                  S5          " S S5      nU R                  U" S5      S5        U R                  U R                  U5      S5        S S S 5        U R                  S5          " S S5      nU R                  U" S5      S5        U R                  U R                  U5      S5        S S S 5        U R                  S5          " S	 S5      nU R                  U" S5      S5        U R                  U R                  U5      S5        S S S 5        U R                  S
5          " S S5      m " U4S jS5      nU R                  U" S5      S5        U R                  U R                  U5      S5        S S S 5        U R                  S5          " S S5      nU R                  U" S5      S5        U R                  U R                  U5      S5        S S S 5        U R                  S5          " S S5      nU R                  U" S5      S5        U R                  U R                  U5      S5        S S S 5        U R                  S5          " S S5      nU R                  U" 5       S5        U R                  [        U R                  U5        S S S 5        U R                  S5          " S S5      nU R                  U" 5       U[
        -  5        U R                  [        U R                  U5        S S S 5        U R                  S5          " S S5      nU R                  U" U5      S5        U R                  U R                  U5      U R                  UR                  5      5        S S S 5        U R                  S5          " S S5      nU R                  U" [
        5      U[
        -  5        U R                  [        U R                  U5        S S S 5        g ! , (       d  f       GN= f! , (       d  f       GN@= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNR= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNl= f! , (       d  f       GN= f! , (       d  f       g = f)Nr  c                       \ rS rSrS rSrg)?TestSignatureObject.test_signature_on_class_with_new.<locals>.Ci  c                     U$ r    r*   rP  s     r#   r.  GTestSignatureObject.test_signature_on_class_with_new.<locals>.C.__new__  rj  r%   r*   NrU   rl   rm   rn   r.  rz   r*   r%   r#   rp  r=    rl  r%   rp  r4   rL  r
  c                   $    \ rS rSr\S 5       rSrg)r=  i  c                     U$ r    r*   r  s      r#   r.  r?    rW  r%   r*   N)rU   rl   rm   rn   r
  r.  rz   r*   r%   r#   rp  r=    rY  r%   r  c                   $    \ rS rSr\S 5       rSrg)r=  i  c                     U$ r    r*   rP  s     r#   r.  r?    rW  r%   r*   N)rU   rl   rm   rn   r  r.  rz   r*   r%   r#   rp  r=    ra  r%   rd  c                       \ rS rSrS rSrg)?TestSignatureObject.test_signature_on_class_with_new.<locals>.Ai  c                     U$ r    r*   r  s      r#   rh  DTestSignatureObject.test_signature_on_class_with_new.<locals>.A.call  rj  r%   r*   Nrk  r*   r%   r#   rV  rF    rl  r%   rV  c                   :   > \ rS rSr Y " 5       R                  rSrg)r=  i  r*   Nr  ro  s   r#   rp  r=    r  r%   r  c                   <    \ rS rSr\R
                  " S S5      rSrg)r=  i  c                     X4$ r    r*   r  s      r#   r   HTestSignatureObject.test_signature_on_class_with_new.<locals>.C.<lambda>  s    qfr%   r5   r*   N)rU   rl   rm   rn   r   r  r.  rz   r*   r%   r#   rp  r=    s    #++,DaHr%   r|  r   c                   <    \ rS rSr\R
                  " S S5      rSrg)r=  i  c                     X4$ r    r*   r  s      r#   r   rL    s    QFr%   r5   r*   N)rU   rl   rm   rn   r   r   r.  rz   r*   r%   r#   rp  r=    s    #112JANr%   r  c                   ,    \ rS rSr\R
                  rSrg)r=  i  r*   N)rU   rl   rm   rn   rC  __subclasscheck__r.  rz   r*   r%   r#   rp  r=    s    //r%   Fr  c                   L    \ rS rSr\R
                  R                  \\5      rSr	g)r=  i  r*   N)
rU   rl   rm   rn   r   __or__r   r   r.  rz   r*   r%   r#   rp  r=    s    ++--c48r%   MethodDescriptorTypec                   2    \ rS rSr\R
                  S   rSrg)r=  i  rP  r*   N)rU   rl   rm   rn   r   r  r.  rz   r*   r%   r#   rp  r=    s    --(;<r%   TWrapperDescriptorTypec                   ,    \ rS rSr\R
                  rSrg)r=  i"  r*   N)rU   rl   rm   rn   r   rR  r.  rz   r*   r%   r#   rp  r=  "  s    ++r%   )rD  r  r  r  r  r   rP  r  s     @r#    test_signature_on_class_with_new4TestSignatureObject.test_signature_on_class_with_new  s   \\.)  QqT1%T^^A.!" * \\-( 
 QqT1%T^^A.!" ) \\.) 
 QqT1%T^^A.!" * \\,' # # QqT1%T^^A.!" ( \\)$I I QqT6*T^^A.!" % \\/*O O QqT6*T^^A.!" + \\-.0 0 QS%( j$..!< / \\-.9 9 QS!c'* j$..!< / \\01= = QqT4(T^^A.q?R?R0ST 2 \\12& & QsVQW- j$..!< 32s *) )( *) (' %$ +* /. /. 21 32s   AO0AO-AO?*APAP#1AP5AQ*A
QAQ+AQ=
O*-
O<?
P
P #
P25
Q
Q
Q(+
Q:=
Rc                      " S S5      n " S SU5      n " S SU5      n " S SU5      nU R                  U R                  U5      S	5        U R                  U R                  U5      S
5        U R                  U R                  U5      S5        g )Nc                       \ rS rSrSS jrSrg)9TestSignatureObject.test_signature_on_subclass.<locals>.Ai+  c                 ,    [         R                  U 5      $ r    r   r.  )r  r-   r"   r   s       r#   r.  ATestSignatureObject.test_signature_on_subclass.<locals>.A.__new__,      ~~c**r%   r*   Nr
  r@  r*   r%   r#   rV  r[  +      +r%   rV  c                       \ rS rSrS rSrg)9TestSignatureObject.test_signature_on_subclass.<locals>.Bi.  c                     g r    r*   rT  s     r#   r   BTestSignatureObject.test_signature_on_subclass.<locals>.B.__init__/  r)  r%   r*   NrK  r*   r%   r#   r  rb  .  r   r%   r  c                       \ rS rSrSS jrSrg)9TestSignatureObject.test_signature_on_subclass.<locals>.Ci1  c                 ,    [         R                  U 5      $ r    r]  )r  r-   rm  r"   r   s        r#   r.  ATestSignatureObject.test_signature_on_subclass.<locals>.C.__new__2  r_  r%   r*   Nr4   r5   r@  r*   r%   r#   rp  rf  1  r`  r%   rp  c                       \ rS rSrSrg)9TestSignatureObject.test_signature_on_subclass.<locals>.Di4  r*   Nr-  r*   r%   r#   r  rk  4  r  r%   r  r>  ))r-   r4   .r7
  rm  r5   .r7
  r   r   .))rl  r   r   .r0
  )r^   rV  r  rp  r  s        r#   test_signature_on_subclass.TestSignatureObject.test_signature_on_subclass*  s    	+ 	+	 		+ 	+	 	 	*	  	*	  	*	 r%   c                     SSK JnJn  U" S5      n " S SX   5      nU R                  U R	                  U5      SS[
        S44S 45        g )	Nr   )GenericTypeVarr  c                   &    \ rS rSrS\SS4S jrSrg)ATestSignatureObject.test_signature_on_generic_subclass.<locals>.AiK  r-   r  Nc                    g r    r*   rI  s     r#   r   JTestSignatureObject.test_signature_on_generic_subclass.<locals>.A.__init__L  r)  r%   r*   )rU   rl   rm   rn   r   r   rz   r*   r%   r#   rV  rt  K  s    S T r%   rV  r-   .r=
  )typingrq  rr  r  r  r   )r^   rq  rr  r  rV  s        r#   "test_signature_on_generic_subclass6TestSignatureObject.test_signature_on_generic_subclassF  sN    +CL	
 	 	*c>:< 	!r%   c                     " S S5      nU R                  [        [        R                  " U5      5      S5         " S SU5      nU R                  [        [        R                  " U5      5      S5         " S S[        5      n " S SU5      nU R                  U" SS	0 5      R
                  S5        U R                  [        S
5         U R                  [        R                  " U5      S 5        S S S 5        U R                  U" SS	0 5      R
                  S5        U R                  [        S
5         U R                  [        R                  " U5      S 5        S S S 5        g ! , (       d  f       Nx= f! , (       d  f       g = f)Nc                       \ rS rSrSrg)CTestSignatureObject.test_signature_on_class_without_init.<locals>.CiW  r*   Nr-  r*   r%   r#   rp  r|  W  r  r%   rp  r	  c                       \ rS rSrSrg)CTestSignatureObject.test_signature_on_class_without_init.<locals>.DiY  r*   Nr-  r*   r%   r#   r  r~  Y  r  r%   r  c                       \ rS rSrSrg)r|  i]  r*   Nr-  r*   r%   r#   rp  r|  ]  r  r%   c                       \ rS rSrSrg)r~  i^  r*   Nr-  r*   r%   r#   r  r~  ^  r  r%   rV  r*   zcallable.*is not supported)r  rC  rX   r  r   rU   r  r  )r^   rp  r  s      r#   $test_signature_on_class_without_init8TestSignatureObject.test_signature_on_class_without_initS  s    	W..q12D9W..q12D9 	3B00#6##J0LMW..q148 N3B00#6##J0LMW..q148 NM NM NMs   'E!1'E2!
E/2
F c                    SnU R                  [        [        R                  " [        R
                  5      5      U5         " S S[        R
                  5      n " S S5      n " S SX25      nU R                  [        [        R                  " U5      5      U5        U R                  [        [        R                  " U5      5      U5         " S S	U5      nU R                  [        [        R                  " U5      5      S
5         " S S[        5      n " S SXFS9nU R                  [        [        R                  " U5      5      S5        g )Nz=(file, protocol=None, fix_imports=True, buffer_callback=None)c                       \ rS rSrSrg)>TestSignatureObject.test_signature_on_builtin_class.<locals>.Pin  r*   Nr-  r*   r%   r#   r
  r  n  s    $r%   r
  c                       \ rS rSrSrg)GTestSignatureObject.test_signature_on_builtin_class.<locals>.EmptyTraitio  r*   Nr-  r*   r%   r#   
EmptyTraitr  o  s    $r%   r  c                       \ rS rSrSrg)?TestSignatureObject.test_signature_on_builtin_class.<locals>.P2ip  r*   Nr-  r*   r%   r#   P2r  p  s    r%   r  c                       \ rS rSrS rSrg)?TestSignatureObject.test_signature_on_builtin_class.<locals>.P3it  c                     g r    r*   )r^   r   s     r#   r   HTestSignatureObject.test_signature_on_builtin_class.<locals>.P3.__init__u  r)  r%   r*   NrK  r*   r%   r#   P3r  t  r   r%   r  z(spam)c                       \ rS rSrS rSrg)BTestSignatureObject.test_signature_on_builtin_class.<locals>.MetaPiy  c                     g r    r*   )r  r6   r.   s      r#   r   KTestSignatureObject.test_signature_on_builtin_class.<locals>.MetaP.__call__z  r)  r%   r*   Nr   r*   r%   r#   MetaPr  y  r   r%   r  c                       \ rS rSrSrg)?TestSignatureObject.test_signature_on_builtin_class.<locals>.P4i|  r*   Nr-  r*   r%   r#   P4r  |  r  r%   r  r  z
(foo, bar))r  rC  rX   r  r  r  r   )r^   rF  r
  r  r  r  r  r  s           r#   test_signature_on_builtin_class3TestSignatureObject.test_signature_on_builtin_classg  s    ,W..w?@(K&&%%W..q12H=W..r23X>	 	 	W..r23X>	D 		 	W..r23\Br%   c                 2  ^  " S S5      nU R                  U R                  U" 5       5      S5         " S S5      nU R                  [        S5         [        R                  " U" 5       5        S S S 5         " S SX!5      nU R                  U R                  U" 5       5      S5        U R                  S	5          " S
 S5      nU R                  U R                  U" 5       5      S5        S S S 5        U R                  S5          " S S5      nU R                  U R                  U" 5       5      S5        S S S 5        U R                  S5          " S S5      m " U4S jS5      nU R                  U" 5       " S5      S5        U R                  U R                  U" 5       5      S5        S S S 5        U R                  S5          " S S5      nU" 5       nU R                  [        5         U R                  U" S5      S5        S S S 5        U R                  [        5         U R                  U R                  U5      S5        S S S 5        S S S 5        U R                  S5          " S S5      nU R                  U" 5       " S5      S5        U R                  U R                  U" 5       5      S5        S S S 5        U R                  S5          " S S5      nU R                  U" 5       " SS/5      S5        U R                  U R                  U" 5       5      U R                  SR                  5      5        S S S 5        U R                  S5          " S S5      nU R                  U" 5       " S 5      S!5        [        R                  (       d?  U R                  U R                  U" 5       5      U R                  S"R                  5      5        S S S 5        U R                  S#5          " S$ S[        5      nU" 5       " SS%/S 5      nU R                  US S S&.5        U R                  [        U5      U5        [        R                  (       dC  U R                  U R                  U" 5       5      U R                  [        R                  5      5        S S S 5        U R                  S'5          " S( S[        5      nU R                  U" S)5      " SS/5      S5        U R                  U R                  U" 5       5      U R                  SR                  5      5        S S S 5        U R                  S*5          " S+ S[         5      nU R                  U" S%5      " S 5      S!5        [        R                  (       d?  U R                  U R                  U" 5       5      U R                  S"R                  5      5        S S S 5        U R                  S,5          " S- S5      nU" 5       nS. Ul        U R                  U" S5      S5        U R                  U R                  U5      S5        S S S 5        g ! , (       d  f       GN= f! , (       d  f       GNN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNm= f! , (       d  f       GN@= f! , (       d  f       GNJ= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNS= f! , (       d  f       GN= f! , (       d  f       GNT= f! , (       d  f       g = f)/Nc                       \ rS rSrS rSrg)CTestSignatureObject.test_signature_on_callable_objects.<locals>.Fooi  c                     g r    r*   rI  s     r#   r   LTestSignatureObject.test_signature_on_callable_objects.<locals>.Foo.__call__  r)  r%   r*   Nr   r*   r%   r#   r  r    r   r%   r  rL  c                       \ rS rSrSrg)DTestSignatureObject.test_signature_on_callable_objects.<locals>.Spami  r*   Nr-  r*   r%   r#   r  r    r  r%   r  r
  c                       \ rS rSrSrg)CTestSignatureObject.test_signature_on_callable_objects.<locals>.Bari  r*   Nr-  r*   r%   r#   r  r    r  r%   r  r
  c                   $    \ rS rSr\S 5       rSrg)ATestSignatureObject.test_signature_on_callable_objects.<locals>.Ci  c                     g r    r*   rP  s     r#   r   JTestSignatureObject.test_signature_on_callable_objects.<locals>.C.__call__  r  r%   r*   NrX  r*   r%   r#   rp  r    r*  r%   rp  r  c                   $    \ rS rSr\S 5       rSrg)r  i  c                     g r    r*   r  s    r#   r   r    r  r%   r*   Nr`  r*   r%   r#   rp  r    r-  r%   rd  c                       \ rS rSrS rSrg)ATestSignatureObject.test_signature_on_callable_objects.<locals>.Ai  c                     U$ r    r*   rI  s     r#   rh  FTestSignatureObject.test_signature_on_callable_objects.<locals>.A.call  rj  r%   r*   Nrk  r*   r%   r#   rV  r    rl  r%   rV  c                   :   > \ rS rSr Y " 5       R                  rSrg)r  i  r*   Nrn  ro  s   r#   rp  r    rp  r%   r4   r  c                   <    \ rS rSr\R
                  " S S5      rSrg)r  i  c                     X4$ r    r*   ru  s     r#   r   JTestSignatureObject.test_signature_on_callable_objects.<locals>.C.<lambda>  rw  r%   r5   r*   Nrx  r*   r%   r#   rp  r    ry  r%   r|  r   c                   <    \ rS rSr\R
                  " S S5      rSrg)r  i  c                     X4$ r    r*   r  s      r#   r   r    r  r%   r5   r*   Nr  r*   r%   r#   rp  r    r  r%   r  c                   ,    \ rS rSrSR                  rSrg)r  i  r  r*   Nr  r*   r%   r#   rp  r    r  r%   r-   r  r  r8  r  c                   ,    \ rS rSrSR                  rSrg)r  i  r5   r*   Nr  r*   r%   r#   rp  r    r  r%   r  r  r   ClassMethodDescriptorTypec                   2    \ rS rSr\R
                  S   rSrg)r  i  ro
  r*   N)rU   rl   rm   rn   rq  r  r   rz   r*   r%   r#   rp  r    s    ==4r%   r5   ri  rS  c                   ,    \ rS rSr\R
                  rSrg)r  i  r*   N)rU   rl   rm   rn   rC  r:   r   rz   r*   r%   r#   rp  r    r  r%   r  rU  c                   ,    \ rS rSr\R
                  rSrg)r  i  r*   N)rU   rl   rm   rn   r   r  r   rz   r*   r%   r#   rp  r    s    ;;r%   r   c                       \ rS rSrSrSrg)r  i  r   r*   Nrn  r*   r%   r#   rp  r    s    &	r%   c                     U $ r    r*   r  s    r#   r   HTestSignatureObject.test_signature_on_callable_objects.<locals>.<lambda>  s    1r%   )r  r  r  r  rX   rD  r  r  r:   r   r
   r  rq  r   ro
  rC  r   r   )r^   r  r  r  rp  r   resrV  s          @r#   "test_signature_on_callable_objects6TestSignatureObject.test_signature_on_callable_objects  sI   	 	 	.	 	 	##I/IJdf% K	$ 	 	.	  \\-( 
 T^^AC0!" ) \\.) 
 T^^AC0!" * \\,' $ $ QSVQ'T^^AC0!" ( \\)$E E A!!-0  1v. 1!!-0  !2!%& 1 % \\/*Q Q QSVV,T^^AC0!" + \\-.$ $ QS#t-v6T^^AC0$..2IJ / \\-.' ' QSVQ'//  !4dnna[[6QR / \\565D 5 #q!fa.CSaA,/T#Y*//  !4dnnT]]6ST 7 \\01$C $ QsVS$K0&9T^^AC0$..2IJ 2 \\12'C ' QqT!Wa(//  !4dnna[[6QR 3 \\01' 'A$AJQqT1%T^^A.!" 21O KJ )( *) ('" 1000 %$ +* /. /. 76 21 32 21s   X81X01YAY 'Z
'Y& Z
"Y8?Z
 AZA)Z.	A<[ B([A/[$'B[6A\
X-0
X?
Y
Y#&
Y5	0Z
8
Z	Z


Z
Z+.
Z= 
[
[!$
[36
\
\c                 .    " S S5      n[         R                  (       d!  U R                  U R                  U5      S5        U R                  U R                  U" 5       5      S5        U" 5       nSUl        U R                  U R                  U5      S5        g )Nc                       \ rS rSrSrS rSrg)ZTestSignatureObject.test_signature_on_callable_objects_with_text_signature_attr.<locals>.Ci  z(a, /, b, c=True)c                     g r    r*   r  s      r#   r   cTestSignatureObject.test_signature_on_callable_objects_with_text_signature_attr.<locals>.C.__call__  r)  r%   r*   N)rU   rl   rm   rn   __text_signature__r   rz   r*   r%   r#   rp  r    s    !4r%   rp  r/
  )))r-   ..r
  r
  )r   T.r7
  .z(x, y))))ru  ..r7
  )r  ..r7
  .)r   r
   r  r  r  )r^   rp  r   s      r#   ;test_signature_on_callable_objects_with_text_signature_attrOTestSignatureObject.test_signature_on_callable_objects_with_text_signature_attr  s    	 	
 ++T^^A.	:,	  C'*	 r%   c                     " S S5      nU" 5       nS Ul         U R                  U R                  U5      S5        U" 5       nX"l         U R                  [        S5         U R                  U5        S S S 5        g ! , (       d  f       g = f)Nc                       \ rS rSrS rSrg)>TestSignatureObject.test_signature_on_wrapper.<locals>.Wrapperi  c                     g r    r*   rT  s     r#   r   GTestSignatureObject.test_signature_on_wrapper.<locals>.Wrapper.__call__  r)  r%   r*   Nr   r*   r%   r#   Wrapperr    r   r%   r  c                     g r    r*   r  s    r#   r   ?TestSignatureObject.test_signature_on_wrapper.<locals>.<lambda>  r  r%   rL  wrapper loop)rB  r  r  r  r  )r^   r  rE  s      r#   test_signature_on_wrapper-TestSignatureObject.test_signature_on_wrapper  ss    	 	 ),0	  )%##J?NN7# @??s   A99
Bc                 L    U R                  U R                  SS j5      S5        g )Nc                     U $ r    r*   r  s    r#   r   ?TestSignatureObject.test_signature_on_lambdas.<locals>.<lambda>#  s    ar%   )))r-   r  .r7
  .rD
  r0
  ri   s    r#   test_signature_on_lambdas-TestSignatureObject.test_signature_on_lambdas"  s     9	 r%   c           	      v   [         R                  R                  5       [         R                  R                  5       [         R                  R	                  5       4 HJ  nU R                  US9   U R                  [        [        R                  " U5      5      S5        S S S 5        ML     g ! , (       d  f       M^  = f)Nr  z(*args, **kwargs))
r  r  r  r  	MagicMockrD  r  rC  rX   r  r^   r  s     r#   test_signature_on_mocks+TestSignatureObject.test_signature_on_mocks'  s     MM MM##%MM##%
D
 4(  W%6%6t%<!=?RS )(

 )(s   ,0B))
B8	c                 h   [         R                  R                  5       [         R                  R                  5       4 HO  nU R	                  US9   U R                  [        5         [        R                  " U5        S S S 5        S S S 5        MQ     g ! , (       d  f       N= f! , (       d  f       Mt  = f)Nr  )	r  r  NonCallableMockNonCallableMagicMockrD  r  r  rX   r  r  s     r#   #test_signature_on_noncallable_mocks7TestSignatureObject.test_signature_on_noncallable_mocks1  sy    MM))+MM..0
D 4(&&y1%%d+ 2 )(	

 21 )(s$   B"%B<B"
BB""
B1	c                 H   S[         S[        4S jnU R                  [        R                  " U5      S:H  5        U R                  [        R                  " U5      S:g  5        U R                  [        R                  " U5      [        :H  5        U R                  [        R                  " U5      [        :g  5        S[         S[        4S jnU R                  [        R                  " U5      [        R                  " U5      :H  5        U R                  [        R                  " U5      [        R                  " U5      :g  5        U R                  [        [        R                  " U5      5      [        [        R                  " U5      5      5        S[         S[         4S jnU R                  [        R                  " U5      [        R                  " U5      :H  5        U R                  [        R                  " U5      [        R                  " U5      :g  5        U R                  [        [        R                  " U5      5      [        [        R                  " U5      5      5        S[         4S jnU R                  [        R                  " U5      [        R                  " U5      :H  5        U R                  [        R                  " U5      [        R                  " U5      :g  5        U R                  [        [        R                  " U5      5      [        [        R                  " U5      5      5        SS.S[         S[        4S	 jjnU R                  [        R                  " U5      [        R                  " U5      :H  5        U R                  [        R                  " U5      [        R                  " U5      :g  5        U R                  [        [        R                  " U5      5      [        [        R                  " U5      5      5        S[        4S
 jnU R                  [        R                  " U5      [        R                  " U5      :H  5        U R                  [        R                  " U5      [        R                  " U5      :g  5        U R                  [        [        R                  " U5      5      [        [        R                  " U5      5      5        S[         S[        4S jnU R                  [        R                  " U5      [        R                  " U5      :H  5        U R                  [        R                  " U5      [        R                  " U5      :g  5        U R                  [        [        R                  " U5      5      [        [        R                  " U5      5      5        S[         S[        4S jnU R                  [        R                  " U5      [        R                  " U5      :H  5        U R                  [        R                  " U5      [        R                  " U5      :g  5        U R                  [        [        R                  " U5      5      [        [        R                  " U5      5      5        S nS nU R                  [        R                  " U5      [        R                  " U5      :H  5        U R                  [        R                  " U5      [        R                  " U5      :g  5        U R                  [        [        R                  " U5      5      [        [        R                  " U5      5      5        SS.S jnSS.S jnU R                  [        R                  " U5      [        R                  " U5      :H  5        U R                  [        R                  " U5      [        R                  " U5      :g  5        U R                  [        [        R                  " U5      5      [        [        R                  " U5      5      5        SS.S jnSS.S jnU R                  [        R                  " U5      [        R                  " U5      :H  5        U R                  [        R                  " U5      [        R                  " U5      :g  5        U R                  [        [        R                  " U5      5      [        [        R                  " U5      5      5        S nSS.S jnU R                  [        R                  " U5      [        R                  " U5      :H  5        U R                  [        R                  " U5      [        R                  " U5      :g  5        U R                  [        [        R                  " U5      5      [        [        R                  " U5      5      5        SS.S[         4S jjnSS.S[         4S jjnU R                  [        R                  " U5      [        R                  " U5      :H  5        U R                  [        R                  " U5      [        R                  " U5      :g  5        U R                  [        [        R                  " U5      5      [        [        R                  " U5      5      5        g )Nrm  r  c                    g r    r*   rl  s     r#   r6   8TestSignatureObject.test_signature_equality.<locals>.foo;  r  r%   r7  c                    g r    r*   rl  s     r#   r.   8TestSignatureObject.test_signature_equality.<locals>.barA  r  r%   c                    g r    r*   rl  s     r#   r.   r  G  r  r%   c                    g r    r*   rl  s     r#   r.   r  M  s    dr%   r
  c                    g r    r*   rl  s     r#   r.   r  S  s    $r%   c                    g r    r*   r-   r   s     r#   r.   r  Y  r  r%   c                     g r    r*   rl  s     r#   r.   r  _  r1  r%   c                     g r    r*   rm  r-   s     r#   r   9TestSignatureObject.test_signature_equality.<locals>.spamd  r  r%   c                     g r    r*   r@  s      r#   r6   r  j      Tr%   c                     g r    r*   r   rm  r-   s      r#   r.   r  k  r  r%   r4   r  c                     g r    r*   r@  s      r#   r6   r  q  r   r%   c                     g r    r*   r  s      r#   r.   r  r  r   r%   c                    g r    r*   posr-   rm  r   s       r#   r6   r  x  r1  r%   c                    g r    r*   r  r   rm  r-   s       r#   r.   r  y  r1  r%   c                    g r    r*   r  s       r#   r6   r    r   r%   c                    g r    r*   r  s       r#   r.   r    r1  r%   r   c                    g r    r*   )r  r-   rm  r   r"   r   s         r#   r6   r        tr%   c                    g r    r*   )r  r   rm  r-   r"   r   s         r#   r.   r    r  r%   )
r   r>
  r]   rX   r  rT   r   r  hashr  )r^   r6   r.   r   s       r#   test_signature_equality+TestSignatureObject.test_signature_equality:  sX   +++**3/256))#."45))#.);<**3/9<=+++))#.'2C2CC2HHI**3/73D3DS3IIJ""3'($w/@/@/E*F	H 	*))**3/73D3DS3IIJ))#.'2C2CC2HHI""3'($w/@/@/E*F	H 	#"**3/73D3DS3IIJ))#.'2C2CC2HHI""3'($w/@/@/E*F	H ..5.**3/73D3DS3IIJ))#.'2C2CC2HHI""3'($w/@/@/E*F	H 	(E'**3/73D3DS3IIJ))#.'2C2CC2HHI""3'($w/@/@/E*F	H 	)S(U(**3/73D3DS3IIJ))#.'2C2CC2HHI""3'($w/@/@/E*F	H)3)e)**40G4E4Ec4JJK))$/73D3DS3IIJ""4()40A0A#0F+G	I 	"!))#.'2C2CC2HHI**3/73D3DS3IIJ""3'($w/@/@/E*F	H ##))#.'2C2CC2HHI**3/73D3DS3IIJ""3'($w/@/@/E*F	H ( !())#.'2C2CC2HHI**3/73D3DS3IIJ""3'($w/@/@/E*F	H 	' !(**3/73D3DS3IIJ))#.'2C2CC2HHI""3'($w/@/@/E*F	H !;;$&;;))#.'2C2CC2HHI**3/73D3DS3IIJ""3'($w/@/@/E*F	Hr%   c           	          [         R                  n[         R                  nS n[         R                  " U5      nU" U" SUR                  5      /S9nU R                  [        U5      [        U5      5        U R                  [        U5      [        UR                  SS95      5        SS jnU R                  [        U5      [        [         R                  " U5      5      5        0 4S jnU R                  [        S	5         [        [         R                  " U5      5        S S S 5        S0 4S
 jnU R                  [        S	5         [        [         R                  " U5      5        S S S 5        g ! , (       d  f       NT= f! , (       d  f       g = f)Nc                     g r    r*   r  s    r#   r6   8TestSignatureObject.test_signature_hashable.<locals>.foo  r  r%   r-   r  r   r	  r  c                     g r    r*   r  s    r#   r.   8TestSignatureObject.test_signature_hashable.<locals>.bar  r%  r%   c                     g r    r*   r  s    r#   r6   r    r   r%   unhashable typec                     g r    r*   r  s    r#   r6   r    r)  r%   )r  r4   )rX   r  r  r  POSITIONAL_OR_KEYWORDr  r  r  r

  r  r  )r^   r
  r
  r6   foo_sig
manual_sigr.   s          r#   test_signature_hashable+TestSignatureObject.test_signature_hashable  s-   ##C(1S!*A*A#B"CD
gZ(89DM !3!3f!3!MN	P 	DM40A0A#0F+GH##I/@A""3'( B 	b##I/@A""3'( BA	 BA BAs     E. E?.
E<?
Fc                    SS S.S[         SS4S jjjnU R                  [        [        R                  " U5      5      S5        U R                  [        [        R                  " U5      5      [        R                  " U5      R                  5       5        SS S.S[         SS4S jjjnU R                  [        [        R                  " U5      5      S5        U R                  [        [        R                  " U5      5      [        R                  " U5      R                  5       5        S	 nU R                  [        [        R                  " U5      5      S
5        U R                  [        [        R                  " U5      5      [        R                  " U5      R                  5       5        S[        [           S[        [        [        4   4S jnU R                  [        [        R                  " U5      5      S5        U R                  [        [        R                  " U5      5      [        R                  " U5      R                  5       5        SSK	J
n  S[        [           SU[        [        4   4S jnU R                  [        [        R                  " U5      5      S5        U R                  [        [        R                  " U5      5      [        R                  " U5      R                  5       5        g )Nr
  r-   r  r7  c                    g r    r*   r-   rm  r   r   s       r#   r6   3TestSignatureObject.test_signature_str.<locals>.foo  r  r%   z*(a: int = 1, *, b, c=None, **kwargs) -> 42c                    g r    r*   )r-   rm  r   r"   r   s        r#   r6   r    r  r%   z.(a: int = 1, *args, b, c=None, **kwargs) -> 42c                      g r    r*   r*   r%   r#   r6   r    r  r%   r	  c                     g r    r*   r  s    r#   r6   r    r  r%   z#(a: list[str]) -> tuple[str, float]r   )Tuplec                     g r    r*   r  s    r#   r6   r    r  r%   z#(a: list[str]) -> Tuple[str, float]r
  )r   r  rC  rX   r  formatrD  r	  r>
  rw  r  )r^   r6   r  s      r#   test_signature_str&TestSignatureObject.test_signature_str  sC   	 	# 	B 	W..s34E	GW..s34 **3/668	:	T 	# 	 	W..s34I	KW..s34 **3/668	:	W..s34d;W..s34 **3/668	:	49 	sEz!2 	W..s34>	@W..s34 **3/668	: 	!	49 	sEz!2 	W..s34>	@W..s34 **3/668	:r%   c                    [         R                  n[         R                  nS nU R                  [	        [         R
                  " U5      5      S5        U R                  [	        [         R
                  " U5      5      [         R
                  " U5      R                  5       5        U" U" SUR                  5      /S9nU R                  [	        U5      S5        U R                  [	        U5      UR                  5       5        U" U" SUR                  5      U" SUR                  5      /S9nU R                  [	        U5      S5        U R                  [	        U5      UR                  5       5        U" U" SUR                  5      U" SUR                  5      /S9nU R                  [	        U5      S5        U R                  [	        U5      UR                  5       5        g )	Nc                   X4$ r    r*   )a_porm  r   s      r#   r  DTestSignatureObject.test_signature_str_positional_only.<locals>.test  
    <r%   z(a_po, /, *, b, **kwargs)r6   r  z(foo, /)r.   z(foo, /, **bar)z(foo, /, *bar))
rX   r  r  r  rC  r  r  r  r  VAR_POSITIONAL)r^   r
  r
  r  s       r#   "test_signature_str_positional_only6TestSignatureObject.test_signature_str_positional_only  s{   	  	W..t454	6W..t45 **40779	; Qua&7&789:TJ/TDKKM2Qua&7&78uamm46 7T$56TDKKM2Qua&7&78ua&6&679 :T$45TDKKM2r%   c                    SSK JnJn  SU[        S4   SUS   SS4S	 jnS
nSnU R	                  [
        R                  " U5      R                  5       U5        U R	                  [
        R                  " U5      R                  S S9U5        U R	                  [
        R                  " U5      R                  [        U5      S9U5        U R	                  [
        R                  " U5      R                  [        U5      S-
  S9U5        U R	                  [
        R                  " U5      R                  SS9U5        U R	                  [
        R                  " U5      R                  SS9U5        g )Nr   	AnnotatedLiteralru  rk  r  rl  r3   LiteralStringc                     g r    r*   rm  s      r#   r   7TestSignatureObject.test_signature_format.<locals>.func  r  r%   zE(x: Annotated[int, 'meta'], y: Literal['a', 'b'], z: 'LiteralString')zS(
    x: Annotated[int, 'meta'],
    y: Literal['a', 'b'],
    z: 'LiteralString'
)	max_widthr4   r   )	rw  r(  r)  r   r  rX   r  r  r8   )r^   r(  r)  r   expected_singlelineexpected_multilines         r#   test_signature_format)TestSignatureObject.test_signature_format  se   -	Ic6k* 	wx/@ 	_ 	 f
 	d#**,	
 	d#**T*:	
 	d#**S9L5M*N	
 	d#**S9L5MPQ5Q*R	
 	d#**Q*7	
 	d#**R*8	
r%   c           
          SSK JnJn  SUS   SU[        S4   SSS	[        S
S 4
S jnSnU R                  [        R                  " U5      R                  SS9U5        g )Nr   r'  r  rl  ru  rk  r3   r*  r   r  c                   g r    r*   )ru  r  r3   r   s       r#   r   ETestSignatureObject.test_signature_format_all_arg_types.<locals>.func  s     r%   z(
    x: Annotated[int, 'meta'],
    /,
    y: Literal['a', 'b'],
    *,
    z: 'LiteralString',
    **kwargs: object
) -> Noner   r-  )	rw  r(  r)  r   r   r  rX   r  r  )r^   r(  r)  r   r0  s        r#   #test_signature_format_all_arg_types7TestSignatureObject.test_signature_format_all_arg_types  s    -	 x 	f%	
 	 	 	 	d#**R*8	
r%   c                    SS jn[         R                  " U5      nUR                  nUR                  [	        UR                  5       5      SS  S9nU R                  [	        UR                  5      S/5        U R                  UR                  S   US   5        U R                  UR                  S5        UR                  SS9nU R                  [        UR                  5      0 5        [         R                  " U5      nUR                  n[        R                  " U[	        UR                  5       5      SS  S9nU R                  [	        UR                  5      S/5        U R                  UR                  S   US   5        U R                  UR                  S5        [        R                  " USS9nU R                  [        UR                  5      0 5        g )Nr7  c                     g r    r*   rl  s     r#   r  CTestSignatureObject.test_signature_replace_parameters.<locals>.test#  r  r%   r4   r  rm  r*   r  r7  )
rX   r  r<   r

  rD  rt  r  r	  rq  copy)r^   r  r	  r<   s       r#   !test_signature_replace_parameters5TestSignatureObject.test_signature_replace_parameters"  ss   	 %^^
kkT**;*;*=%>qr%BkCcnn-u5,jo>..3kkRk(cnn-r2%^^
ll34
0A0A0C+DQR+HIcnn-u5,jo>..3ll32.cnn-r2r%   c                 t   SS jn[         R                  " U5      nUR                  S S9nU R                  UR                  S 5        UR                  UR
                  S9nU R                  UR                  UR
                  5        UR                  SS9nU R                  UR                  S5        U R                  U[         R                  " U5      5        [         R                  " U5      n[        R                  " US S9nU R                  UR                  S 5        [        R                  " X"R
                  S9nU R                  UR                  UR
                  5        [        R                  " USS9nU R                  UR                  S5        U R                  U[         R                  " U5      5        g )Nr7  c                      g r    r*   r*   r%   r#   r  =TestSignatureObject.test_signature_replace_anno.<locals>.test9  r  r%   r  r;  )rX   r  r

  r  r	  r	  r  r<  r)
  s      r#   test_signature_replace_anno/TestSignatureObject.test_signature_replace_anno8  sI   	 %kkDk1c++T2kkCIIk6c++SYY7kkBk/..3g//56%ll3$7c++T2ll3))<c++SYY7ll3"5..3g//56r%   c                     S n[         R                  " S[         R                  R                  5      n[         R                  " U4S9=o1l        U R                  U[         R                  " U5      5        g )Nc                      g r    r*   r*   r%   r#   r  9TestSignatureObject.test_signature_replaced.<locals>.testO  r  r%   r   r  )rX   r  r  r  r  r  r  )r^   r  r  r	  s       r#   test_signature_replaced+TestSignatureObject.test_signature_replacedN  sZ    	 &&vw/@/@/P/PQ
#*#4#4#NN g//56r%   c                     " S S5      n " S SU5      nU R                  U R                  UR                  5      S5        U R                  U R                  UR                  5      U R                  UR                  5      5        g )Nc                   *    \ rS rSrSSS.SS jjjrSrg)	FTestSignatureObject.test_signature_on_mangled_parameters.<locals>.SpamiW  r  )	_Spam__p2c                    g r    r*   )r^   	_Spam__p1rL  s      r#   r6   JTestSignatureObject.test_signature_on_mangled_parameters.<locals>.Spam.fooX  r)  r%   r*   N)r5   )rN  r4   rL  r5   r  r*   r%   r#   r  rK  W  s    a  r%   r  c                       \ rS rSrSrg)ETestSignatureObject.test_signature_on_mangled_parameters.<locals>.HamiZ  r*   Nr-  r*   r%   r#   HamrQ  Z  r  r%   rR  ))r7  )rN  r5   r4   r7
  )rL  r  r5   r=
  .)r  r  r6   )r^   r  rR  s      r#   $test_signature_on_mangled_parameters8TestSignatureObject.test_signature_on_mangled_parametersV  sk    	 		$ 	 	1	  	10	2r%   c                      " S S[         R                  5      nSS jnUR                  U5      nU R                  X15        g )Nc                       \ rS rSrSrg)PTestSignatureObject.test_signature_from_callable_python_obj.<locals>.MySignatureig  r*   Nr-  r*   r%   r#   r	  rW  g      dr%   r	  c                    g r    r*   rl  s     r#   r6   HTestSignatureObject.test_signature_from_callable_python_obj.<locals>.fooh  r"  r%   rm  r4   rX   r  r
  assertIsInstancer^   r	  r6   r  s       r#   'test_signature_from_callable_python_obj;TestSignatureObject.test_signature_from_callable_python_objf  s1    2'++2 ++C0g3r%   c                      " S S[         R                  5      n " S S5      nUR                  U5      nU R                  X15        g )Nc                       \ rS rSrSrg)KTestSignatureObject.test_signature_from_callable_class.<locals>.MySignatureip  r*   Nr-  r*   r%   r#   r	  rc  p  rX  r%   r	  c                       \ rS rSrSrg)CTestSignatureObject.test_signature_from_callable_class.<locals>.fooiq  r*   Nr-  r*   r%   r#   r6   re  q  r'	  r%   r6   r\  r^  s       r#   "test_signature_from_callable_class6TestSignatureObject.test_signature_from_callable_classl  s5     	3'++2++C0g3r%   c                      " S S[         R                  5      nUR                  [        R                  5      nU R                  X!5        g )Nc                       \ rS rSrSrg)QTestSignatureObject.test_signature_from_callable_builtin_obj.<locals>.MySignatureix  r*   Nr-  r*   r%   r#   r	  rj  x  rX  r%   r	  )rX   r  r
  r  r  r]  )r^   r	  r	  s      r#   (test_signature_from_callable_builtin_obj<TestSignatureObject.test_signature_from_callable_builtin_obju  s4     	3'++2''8c/r%   c                 `   [        5        H[  n[        R                  " U5      n[        UR                  5      n[        U5      nU R                  U5        U R                  X45        M]     [        R                  " [        5      n[        UR                  5      nU R                  U[        5        g r    )
rC   rX   r  rD  r<   r  rT   r  rL   r  r  s        r#   3test_signature_definition_order_preserved_on_kwonlyGTestSignatureObject.test_signature_definition_order_preserved_on_kwonly|  s    GIB))"-IY))*AayHOOAQ) J %%&IJ	%%&<=r%   c                     [         R                  " S 5      R                  n[         R                  " S 5      R                  nU R                  X5        g )Nc                     g r    r*   r  s     r#   r   ITestSignatureObject.test_signater_parameters_is_ordered.<locals>.<lambda>  r  r%   c                     g r    r*   r|  s     r#   r   rr    r  r%   )rX   r  r<   r  )r^   p1p2s      r#   #test_signater_parameters_is_ordered7TestSignatureObject.test_signater_parameters_is_ordered  s>    01<<01<<B#r%   c                 n    " S S5      nSUS[         4S jnSUSSS[         4S jn[        R                  [        R                  R                  4 GHM  nU R                  US	9   U" U5      nU R                  UR                  [         5        U R                  UR                  S   R                  U5        U" U[        5       S
9nU R                  UR                  [         5        U R                  UR                  S   R                  U5        U" US[         0[        5       S9nU R                  UR                  [         5        U R                  UR                  S   R                  U5        U R                  UR                  S   R                  S5        S S S 5        GMP     g ! , (       d  f       GMc  = f)Nc                       \ rS rSrSrg)QTestSignatureObject.test_signature_annotations_with_local_namespaces.<locals>.Fooi  r*   Nr-  r*   r%   r#   r  rz    s    3r%   r  r6   r  c                     g r    r*   r(  s    r#   r   RTestSignatureObject.test_signature_annotations_with_local_namespaces.<locals>.func  r  r%   r.   r  c                     g r    r*   r6   r.   s     r#   func2STestSignatureObject.test_signature_annotations_with_local_namespaces.<locals>.func2  r  r%   signature_func)r  )r<  r  )r   rX   r  r  r
  rD  r  r	  r<   r	  r  )r^   r  r   r  r  sig1r
  sig3s           r#   0test_signature_annotations_with_local_namespacesDTestSignatureObject.test_signature_annotations_with_local_namespaces  sO   'c'c'4s4434&00'2C2C2Q2QRN~>%d+  !7!7=  !7!B!BCH%d68<  !7!7=  !7!B!BCH%eeS\&(S  !7!7=  !7!B!BCH  !7!B!BEJ ?> S>>s   $D2F$$
F4	c                    [         n[        R                  n[        R                  n[        R                  R                  n[        R
                  [        R                  R                  4 GHA  nU R                  US9   U R                  U" UR                  5      U" U" SU5      U" SU5      4S95        U R                  U" UR                  5      U" SU" SUSS9U" SUSS94S	95        U R                  U" UR                  5      U" SU" SUSS9U" SUS
S9U" SUSS94S	95        U R                  U" UR                  5      U" U" SUSS9U" SUS
S9U" SUSS94S95        [        (       d'  U R                  U" UR                  5      U" 5       5        U R                  U" UR                  5      U" U" SU5      U" SU5      U" SU5      4S95        U R                  U" UR                  SS9U" U" SU5      U" SU5      4S95        U R                  U" UR                  SS9U" UR                  U" SU[         S9U" SU["        S94S	95        U R                  U" UR                  SS9U" UR                  U" SU[         S9U" SUSS9U" SXAR                  S94S	95        U R                  U" UR                  SS9U" U" SUSS9U" SUSS9U" SUSS94S95        [$        [&        S.n[(        [*        S.nU R-                  [.        5         U" UR                  SUS9  S S S 5        U R                  U" UR                  SUS9U" [*        U" SU[         S9U" SU[(        S94S	95        U R                  U" UR                  SXgS9U" [*        U" SU[$        S9U" SU[(        S94S	95        S S S 5        GMD     g ! , (       d  f       N= f! , (       d  f       GMh  = f)Nr  r-   rm  r  r?  r   r	  rC  )r	  r<   rX  r   rY  rZ  TrA  )r   rC  )rC  r?  r;  r9  )r:  r<  r  )r   rX   r  r  r  r  r
  rD  r  r?  r  rN  rO  r
   rP  rQ  r   rC  r>
  complexr	  rq  r  	NameError)r^   rT  r	  parPORKr  globalnslocalnss           r#   test_signature_eval_str+TestSignatureObject.test_signature_eval_str  s   ,  66&00'2C2C2Q2QRN~>  "3;;/TNTN$   "3<<0*3Te<Te<$   "3==1*3Te<Tg>Ti@$   "3==1Tg>Tg>TkB$ ,+$$^C4H4H%I35Q  0H0H!ITNTNTN$   "3;;>TNTN$   "3<<$?*-++Tc:Tc:$   "3==4@*-++Tc:Te<TkkB$   "3==4@Te<Te<Ti@$ $)9"'D9&&y1"3<<$Q 2   "3<<$wO*.Tc:Te<$   "3<<$a*.Te<Te<$w ?> S` 21_ ?>s&   >J	ON2B
O2
O <O
O	c                     " S S5      nS nU" U5      nS Ul         [        R                  [        R                  R                  4 HF  nU R                  US9   U R                  U" U5      [        R                  " 5       5        S S S 5        MH     U R                  [        R                  " U5      0 5        g ! , (       d  f       M  = f)Nc                        \ rS rSrS rS rSrg)DTestSignatureObject.test_signature_none_annotation.<locals>.funclikei  c                     UR                   U l         UR                  U l        UR                  U l        UR                  U l        UR                  U l        Xl        g r    r
  r   s     r#   r   MTestSignatureObject.test_signature_none_annotation.<locals>.funclike.__init__  r
  r%   c                 &    U R                   " U0 UD6$ r    r   r  s      r#   r   MTestSignatureObject.test_signature_none_annotation.<locals>.funclike.__call__  r
  r%   r
  Nr
  r*   r%   r#   r
  r    r
  r%   r
  c                      g r    r*   r*   r%   r#   r6   ?TestSignatureObject.test_signature_none_annotation.<locals>.foo  r   r%   r  )r  rX   r  r  r
  rD  r  rM  )r^   r
  r6   r  s       r#   test_signature_none_annotation2TestSignatureObject.test_signature_none_annotation
  s    	2 	2  	sm"&00'2C2C2Q2QRN~>  !4g6G6G6IJ ?> S 	005r: ?>s   ,B88
C	c                 h    S U l          " S S5      nU R                  U R                  U5      S5        g )Nc                       \ rS rSrSrSrg)4TestSignatureObject.test_signature_as_str.<locals>.Si%  (a, b=2)r*   N)rU   rl   rm   rn   r  rz   r*   r%   r#   r
  r  %  s    &Mr%   r
  )r6
  rm  .)r  r  r  r^   r
  s     r#   test_signature_as_str)TestSignatureObject.test_signature_as_str#  s3    	' 	' 	*	 r%   c                      " S S5      nU R                  U R                  U5      S5         " S S5      nU R                  U R                  U5      S5        g )Nc                   $    \ rS rSr\S 5       rSrg)9TestSignatureObject.test_signature_as_callable.<locals>.Si/  c                     gNr  r*   r  s    r#   r  GTestSignatureObject.test_signature_as_callable.<locals>.S.__signature__0      !r%   r*   N)rU   rl   rm   rn   r
  r  rz   r*   r%   r#   r
  r  /  s    " "r%   r
  r  c                   $    \ rS rSr\S 5       rSrg)r  i9  c                      gr  r*   r*   r%   r#   r  r  :  r  r%   r*   N)rU   rl   rm   rn   r  r  rz   r*   r%   r#   r
  r  9  s    " "r%   r0
  r  s     r#   test_signature_as_callable.TestSignatureObject.test_signature_as_callable-  sV    	" 	"
 	*	 
	" 	"
 	*	 r%   c                      " S S5      n " S SU5      n " S SU5      nU R                  [        R                  " U5      [        R                  " U5      5        g )Nc                   .   ^  \ rS rSrU 4S jrS rSrU =r$ )@TestSignatureObject.test_signature_on_derived_classes.<locals>.BiF  c                 "   > [         TU ]  U 5      $ r    r  )r^   r"   r   rc  s      r#   r.  HTestSignatureObject.test_signature_on_derived_classes.<locals>.B.__new__G  s    wt,,r%   c                     Xl         g r    r  r	  s     r#   r   ITestSignatureObject.test_signature_on_derived_classes.<locals>.B.__init__I  s    "
r%   r  )rU   rl   rm   rn   r.  r   rz   rn  ro  s   @r#   r  r  F  s    -# #r%   r  c                   (   ^  \ rS rSrU 4S jrSrU =r$ )ATestSignatureObject.test_signature_on_derived_classes.<locals>.D1iL  c                 $   > [         TU ]  U5        g r    r  )r^   r  rc  s     r#   r   JTestSignatureObject.test_signature_on_derived_classes.<locals>.D1.__init__M  s     'r%   r*   r  ro  s   @r#   D1r  L  s    ( (r%   r  c                       \ rS rSrSrg)ATestSignatureObject.test_signature_on_derived_classes.<locals>.D2iP  r*   Nr-  r*   r%   r#   D2r  P  r  r%   r  )r  rX   r  )r^   r  r  r  s       r#   !test_signature_on_derived_classes5TestSignatureObject.test_signature_on_derived_classesC  sL    	# 	#	( 	(	 	 	**2.0A0A"0EFr%   c                 d     " S S5      nU R                  U R                  U" 5       5      S5        g )Nc                        \ rS rSrS rS rSrg)STestSignatureObject.test_signature_on_non_comparable.<locals>.NoncomparableCallableiV  c                     g r    r*   rI  s     r#   r   \TestSignatureObject.test_signature_on_non_comparable.<locals>.NoncomparableCallable.__call__W  r)  r%   c                     SS-    g )Nr4   r   r*   )r^   rb   s     r#   rl  ZTestSignatureObject.test_signature_on_non_comparable.<locals>.NoncomparableCallable.__eq__Y  s	    !r%   r*   N)rU   rl   rm   rn   r   rl  rz   r*   r%   r#   NoncomparableCallabler  V  s    r%   r  rL  r0
  )r^   r  s     r#    test_signature_on_non_comparable4TestSignatureObject.test_signature_on_non_comparableU  s0    	 	
 	(=(?@	 r%   r  N)HrU   rl   rm   rn   r  r  r
  r$
  r*
  r1
  r8
  r?
  rE
  rX
  r   r  r  r
   ru
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r  r"  r)  rC  r  r  r  r!  r9  rW  rn  rx  r  r  r  r  r  r  r  r  r  r  r  r$  r1  r6  r=  rB  rG  rS  r_  rf  rk  rn  rv  r  r  r  r  r  r  r  rz   r*   r%   r#   r	  r	    st   	I 	IJX98	':
 !
 "HF __)MOLCO LC\ __)MO:O :( 1> 1>f __)MOIOI
"3HjG&#6  . .M^# J=
E Nn `P0da3FV0p@"Da=F 8! __)MO9O9$ __)MOCOC.z"x .$ 
T,QHf)0":H34#
J
43,7,72 4 __)MO4O4 __)MO0O0
	>$
K(hT;2  ,G$ r%   r	  c                   N    \ rS rSrS rS rS rS rS rS r	\
S 5       rS	 rS
rg)TestParameterObjecti`  c                    [         R                  nU R                  UR                  UR                  s=:  =(       a=    UR
                  s=:  =(       a&    UR                  s=:  =(       a    UR                  :  Os  5        U R                  [        UR                  5      S5        U R                  S[        UR                  5      ;   5        g )Nr  )rX   r  rT   r  r  r#  KEYWORD_ONLYr  r  rC  r^	  )r^   r
  s     r#   test_signature_parameter_kinds2TestParameterObject.test_signature_parameter_kindsa  s    ))A,C,C J J((J J+,>>J J<=MMJ 	K 	Q../1BC)T!2C2C-DDEr%   c                    [         R                  " SS[         R                  R                  S9nU R                  UR                  S5        U R                  UR
                  S5        U R                  UR                  UR                  5        U R                  UR                  [         R                  R                  5        U R                  [        S5         [         R                  " SSSS9  S S S 5        U R                  [        S5         [         R                  " S[         R                  R                  S9  S S S 5        U R                  [        S5         [         R                  " S	[         R                  R                  S9  S S S 5        U R                  [        S
5         [         R                  " S [         R                  R                  S9  S S S 5        U R                  [        S5         [         R                  " S[         R                  R                  S9  S S S 5        U R                  [        S5         [         R                  " S[         R                  R                  S9  S S S 5        U R                  [        S5         [         R                  " SS[         R                  R                  S9  S S S 5        U R                  [        S5         [         R                  " SS[         R                  R                  S9  S S S 5        [         R                  " SS[         R                  R                  S9nU R                  [        S5         UR!                  [         R                  R                  S9  S S S 5        U R#                  [%        U5      R'                  S5      5        U R#                  S[%        U5      ;   5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNl= f! , (       d  f       GN2= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNH= f! , (       d  f       N= f)Nr6   r  r  r  z)value '123' is not a valid Parameter.kind123znot a valid parameter namer*  r  fromname must be a strzis not a valid parameter name$z.azcannot have default valuesr-   r7  z
<Parameterz"a=42")rX   r  r  r  r  r  r  r	  r	  r  r  r  r  r  r#  r  r

  rT   r^	  r  r^   r>   s     r#   test_signature_parameter_object3TestParameterObject.test_signature_parameter_objecti  s%   eR#*#4#4#D#DF'B'allAGG,!2!2!B!BC##J 1A BeRe<B ##J0LMc(9(9(E(EF N ##J0LMf7+<+<+H+HI N ##I/CDd):):)F)FG E ##J$CEc(9(9(E(EFE ##J$CEd):):)F)FGE ##J0LMc2#*#4#4#@#@B N ##J0LMc2#*#4#4#C#CE N c2#*#4#4#J#JL##J0LMII7,,;;I< N 	Q**<89DG+,GB B NM NM EDE EE E NM NM NMsl   O.O.O+$.O=0.P<.P!/P3/Q(Q
O
O(+
O:=
P
P!
P03
Q
Q
Q%c                    [         R                  nU" SUR                  S9nU R                  [	        U5      [	        U" SUR                  S95      5        U R                  [	        U5      [	        U" SUR                  SS95      5        U R                  [	        U5      [	        UR                  UR                  S95      5        g )Nr6   r  r7  r  )rX   r  r  r  r  r  r

  r#  )r^   r
  r6   s      r#   !test_signature_parameter_hashable5TestParameterObject.test_signature_parameter_hashable  s    A--.cD5q7H7H)I$JKDItAe!:K:K68-: (; 	<DI !2B2B!CD	Fr%   c           	      $   [         R                  nU" SS[         R                  R                  S9nU R                  X":H  5        U R	                  X":g  5        U R	                  US:H  5        U R                  US:g  5        U R                  U[
        :H  5        U R	                  U[
        :g  5        U R                  X!" SS[         R                  R                  S9:H  5        U R	                  X!" SS[         R                  R                  S9:g  5        g )Nr6   r7  r  )rX   r  r  rT   r]   r   )r^   r
  r>   s      r#   !test_signature_parameter_equality5TestParameterObject.test_signature_parameter_equality  s    eRg&7&7&D&DE b!R Y'i(Qub$+$5$5$B$BD D 	Ear%,%6%6%C%CE E 	Fr%   c                 L
   [         R                  " SS[         R                  R                  S9nU R                  UR	                  5       U5        U R                  UR	                  5       U5        U R                  [        R                  " U5      U5        U R                  [        R                  " U5      U5        UR	                  SS9nU R                  UR                  S5        UR	                  UR                  S9nU R                  X!5        [        R                  " USS9nU R                  UR                  S5        [        R                  " X3R                  S9nU R                  X15        UR	                  SS9nU R                  UR                  S5        U R                  X!5        [        R                  " USS9nU R                  UR                  S5        U R                  X15        U R                  [        S5         UR	                  UR                  S9nS S S 5        U R                  [        S5         [        R                  " X3R                  S9nS S S 5        UR	                  SS S	9nU R                  UR                  S 5        U R                  X!5        [        R                  " USS S	9nU R                  UR                  S 5        U R                  X15        UR	                  SUR                  S	9nU R                  UR                  UR                  5        [        R                  " USUR                  S	9nU R                  UR                  UR                  5        UR	                  SUR                  S9nU R                  UR                   UR                  5        U R                  X!5        [        R                  " USUR                  S9nU R                  UR                   UR                  5        U R                  X15        U R                  [        S
5         UR	                  UR                  S9nS S S 5        U R                  [        S
5         [        R                  " X3R                  S9nS S S 5        UR	                  UR                  S9nU R                  X!5        [        R                  " X3R                  S9nU R                  X15        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f)Nr6   r7  r  r4   r  r.   r
  zname is a required attribute)r  r  z<value <class 'inspect._empty'> is not a valid Parameter.kindr  )rX   r  r  rR  r

  r  r<  r	  r	  r  r  r  r  r  r  r  r  )r^   r>   ru  p3s       r#    test_signature_parameter_replace4TestParameterObject.test_signature_parameter_replace  s   eR#*#4#4#A#AC 	a(a(a!,a!,YY!Y$*ZZ288Z,\\!**\\"2ZZUZ#%(B"\\"5)%(B"##J$BD*BD ##J$BDbxx0BD ZZUDZ1bjj$'B"\\"5$7bjj$'B"ZZUBHHZ5bjj"((+\\"5"((;bjj"((+ZZ)A)AZB"":":;B"\\"br/G/GH"":":;B"##J%DE *BE ##J%DE bxx0BE
 ZZR__Z-\\"??3MD DD D.E EE Es0   S <S2'TT 
S/2
T
T
T#c                     U R                  [        S5         [        R                  " S [        R                  R                  S9  S S S 5        g ! , (       d  f       g = f)Nr  r  )r  r  rX   r  r  ri   s    r#   (test_signature_parameter_positional_only<TestParameterObject.test_signature_parameter_positional_only  s<    ##I/CDd):):)J)JK EDDs   .A
Ac                    U R                  [        S5         [        R                  " S[        R                  R                  S9  S S S 5        [        R                  " S[        R                  R
                  S9nU R                  UR                  [        R                  R                  5        U R                  UR                  S5        g ! , (       d  f       N= f)NzYimplicit arguments must be passed as positional or keyword arguments, not positional-onlyz.0r  	implicit0)	r  r  rX   r  r  r  r  r  r  )r^   r  s     r#   !test_signature_parameter_implicit5TestParameterObject.test_signature_parameter_implicit  s    ##J%:; d):):)J)JK	; !!w((>>@W%6%6%F%FG[1; ;s   .C
Cc                 6   [         R                  " S[         R                  R                  S9nU R                  [        5         SUl        S S S 5        U R                  [        5         SUl        S S S 5        g ! , (       d  f       N4= f! , (       d  f       g = f)Nr   r  r.   r  )rX   r  r  r  r  r6   r  r  s     r#   %test_signature_parameter_immutability9TestParameterObject.test_signature_parameter_immutability  sk    f7+<+<+I+IJ~.AE / ~.AF /. /. /.s   A9(B
9
B

Br*   N)rU   rl   rm   rn   r  r  r  r  r  r  r   r  r  rz   r*   r%   r#   r  r  `  s?    F+-ZFF ? BL 
2 
2r%   r  c                       \ rS rSr\S 5       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 5       rS rSrg)TestSignatureBindi  c                     [         R                  " U 5      nUR                  " U0 UD6n U " UR                  0 UR                  D6$ ! [
         a  n[        UeS nAff = fr    )rX   r  r  r"   r   r  r  )r   r"   r   r	  r  r   s         r#   rh  TestSignatureBind.call  sZ    %XXt&v&	(.BII.. 	( a'	(s   A 
AAAc                    S nU R                  U R                  U5      S5        U R                  [        S5         U R                  US5        S S S 5        U R                  [        S5         U R                  USSS9  S S S 5        U R                  [        S5         U R                  USS9  S S S 5        g ! , (       d  f       Nn= f! , (       d  f       NO= f! , (       d  f       g = f)Nc                      gr  r*   r*   r%   r#   r  9TestSignatureBind.test_signature_bind_empty.<locals>.test  s    r%   r7  too many positional argumentsr4   r  r  )got an unexpected keyword argument 'spam'r  rh  r  r  r  s     r#   test_signature_bind_empty+TestSignatureBind.test_signature_bind_empty  s    	 	4"-##I/NOIIdA P##I/NOIIdABI' P##BD IIdI#D D	 POOOD Ds#   B6,CC6
C
C
C&c           	         S nU R                  U R                  U5      S0 45        U R                  U R                  US5      S0 45        U R                  U R                  USS5      S0 45        U R                  U R                  USS9SS	S045        U R                  U R                  USSS9SS	S045        U R                  U R                  US
S9SSS
045        U R                  U R                  USSSS9SS	S045        g )Nc                      X4$ r    r*   rL
  s     r#   r  7TestSignatureBind.test_signature_bind_var.<locals>.test%  r"  r%   r*   r4   r
  r5   ri  r.   r(  r6   r  rz  r"   r  rh  r  s     r#   test_signature_bind_var)TestSignatureBind.test_signature_bind_var$  s   	  	42r(34+dBZ84A.=4U3b5%.5IJ46u~8NO4b1B3EF4A59 5%.1	3r%   c                 J   S nU R                  U R                  USSS5      S5        U R                  [        S5         U R                  USSSS5        S S S 5        U R                  [        S5         U R                  US5        S S S 5        U R                  [        S	5         U R                  U5        S S S 5        SS jnU R                  U R                  USSS5      S5        U R                  U R                  USS5      S5        SS jnU R                  U R                  US
SS9S5        U R                  U R                  US
S9S5        U R                  U R                  US
S9S5        g ! , (       d  f       GN#= f! , (       d  f       GN= f! , (       d  f       N= f)Nc                 
    XU4$ r    r*   r@  s      r#   r  =TestSignatureBind.test_signature_bind_just_args.<locals>.test2  r  r%   r4   r5   r  r  r  r  z missing a required argument: 'b'z missing a required argument: 'a'r  c                 
    XU4$ r    r*   r@  s      r#   r  r  B  r  r%   )r4   r5   r  c                 
    XU4$ r    r*   r@  s      r#   r  r  G  r  r%   r  r  )r  r5   r  r  )r  r5   r  r
  )r4   r  r  rD
  r  r  s     r#   test_signature_bind_just_args/TestSignatureBind.test_signature_bind_just_args1  sg   	 	4Aq19=##I/NOIIdAq!Q' P ##I$FHIIdAH ##I$FHIIdOH	4Aq19=4A.
;	424kB42.
;42.
;) POH HH Hs#   E02F#F0
E?
F
F"c                     S nU R                  U R                  U5      S5        U R                  U R                  USSS5      S5        g )Nc                      U $ r    r*   rz  s    r#   r  ATestSignatureBind.test_signature_bind_varargs_order.<locals>.testN  s    Kr%   r*   r4   r5   r  r  r  r  s     r#   !test_signature_bind_varargs_order3TestSignatureBind.test_signature_bind_varargs_orderM  s@    	 	4"-4Aq19=r%   c           
         SS jnU R                  U R                  USSSSS5      S5        U R                  U R                  USS5      S5        U R                  U R                  USSS	9S
5        U R                  U R                  USSS9S5        U R                  [        S5         U R                  USSSSS9  S S S 5        g ! , (       d  f       g = f)Nr  c                 
    XX#4$ r    r*   )r-   rm  r   r"   s       r#   r  DTestSignatureBind.test_signature_bind_args_and_varargs.<locals>.testU  s    = r%   r4   r5   r  r  )r4   r5   r  )r  r  )r4   r5   r  r*   r  )r5   r4   r  r*   r
  z multiple values for argument 'c'r
  r  r  r  s     r#   $test_signature_bind_args_and_varargs6TestSignatureBind.test_signature_bind_args_and_varargsT  s    	! 	4Aq!Q79JK4A.>412MB4a0-@##I%GIIIdAq!qI)I I Is   'C
Cc                     S nU R                  U R                  U5      0 5        U R                  U R                  USSS9SSS.5        g )Nc                      U $ r    r*   )r   s    r#   r  ?TestSignatureBind.test_signature_bind_just_kwargs.<locals>.testb  s    Mr%   r.   r  r6   r   r  r  s     r#   test_signature_bind_just_kwargs1TestSignatureBind.test_signature_bind_just_kwargsa  sH    	 	4"-4U?!&6	8r%   c                    SS jnU R                  U R                  USS5      SSS0 45        U R                  U R                  USSSSS9SSSSSS.45        U R                  U R                  USSSSS9SSSSSS.45        U R                  U R                  USSSSS	9SSSSSS.45        U R                  U R                  USSSSS
9SSSSSS.45        U R                  U R                  USSSSSS9SSSSSS.45        U R                  U R                  USSSSS9SSSSS045        U R                  U R                  USSSS9SSS0 45        g )Nr  c                 
    XX#4$ r    r*   r  s       r#   r  CTestSignatureBind.test_signature_bind_args_and_kwargs.<locals>.testj  s    ?"r%   r4   r5   r.   r  r  )rm  r-   r6   r   )r-   rm  r6   r   )rm  r6   r   r  )rm  r   r6   r   r(  r6   r  )r   r-   rm  r  r  r  s     r#   #test_signature_bind_args_and_kwargs5TestSignatureBind.test_signature_bind_args_and_kwargsi  s   	# 	4A.Aq">4A5uEQ5%#@A	C41u5IQ5%#@A	C41u5IQ5%#@A	C4aUGQ5%#@A	C4a1%eLQ5%#@A	C4Aqe<QE5>2	441Q7Q2	(r%   c           
         S nU R                  [        S5         U R                  US5        S S S 5        U R                  U R                  USS9S5        SS.S jnU R                  [        S5         U R                  US5        S S S 5        S nU R                  U R                  USSS	9S
5        U R                  U R                  USSS9S
5        U R                  [        S5         U R                  USSSS9  S S S 5        U R                  [        S5         U R                  USS5        S S S 5        U R                  [        S5         U R                  USSSS	9  S S S 5        U R                  [        S5         U R                  USSSS9  S S S 5        U R                  [        S5         U R                  US5        S S S 5        S nU R                  U R                  USSS	9SS0 45        U R                  U R                  USSS9SS0 45        U R                  U R                  USSSS9SSSS045        U R                  U R                  USSSS9SSSS045        U R                  [        S5         U R                  USSS9  S S S 5        U R                  U R                  USSSSS9SSSSS.45        g ! , (       d  f       GN= f! , (       d  f       GNO= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNn= f! , (       d  f       N= f)Nc                     U $ r    r*   r(  s    r#   r  :TestSignatureBind.test_signature_bind_kwonly.<locals>.test~      Jr%   r  r4   r(  c                    U$ r    r*   )r-   r6   r.   s      r#   r  r    r   r%   z"missing a required argument: 'bar'c                    X4$ r    r*   r~  s     r#   r  r    s	    8Or%   r5   r  ri  )r.   r6   r  r  )r.   r6   r   r  )r.   r   z/missing a required keyword-only argument: 'bar'c                
    XU4$ r    r*   )r6   r.   bins      r#   r  r    s    S= r%   r~  r   )r   r6   r.   z"missing a required argument: 'foo')r   r.   )r.   r$  r   )r$  r   )r  r  rh  r  r  s     r#   test_signature_bind_kwonly,TestSignatureBind.test_signature_bind_kwonly}  s!   	##I%DFIIdAF 	4Q/3 	##I%IKIIdAK	42F;4QA6?##BD IIdqrI2D
 ##I%DFIIdAq!F ##I%DFIIdAqaI(F ##BD IIdA15I1D
 ##I&78 IIdA8
	!42Q2J?4QA6Ar
C4>Q0	24eBQ0	2##I$HJIIdAI.J 	4qrBQ2 67	9eF FK KD D
F FF FD D
8 8J Js_   J;2K(KK1L<L-L'7L9;
K

K
K.1
L 
L
L$'
L69
Mc                 Z   SS.S jn[         R                  " U5      nUR                  SSSSSS	S
9nU R                  [	        UR
                  R                  5       5      SSSSSSS	S.445        U R                  UR                  SSSS	S
.5        U R                  UR                  S5        g )Nr	
  r3   c                    g r    r*   )r-   rm  r3   r"   r   s        r#   r  =TestSignatureBind.test_signature_bind_arguments.<locals>.test  r  r%   r  r  r2  rP  rn  <   )rm  r   r"   r   r-   r  )r"   )r  )rm  r2  r   )r   r"   r   )r  r  )	rX   r  r  r  r	  	argumentsitemsr   r"   r^   r  r	  r  s       r#   test_signature_bind_arguments/TestSignatureBind.test_signature_bind_arguments  s     # 	%XXb"br"X= 	r||1134#_i#2rR%HIK	L 	!B"E	G(+r%   c                 |   SSS.S jjnU R                  U R                  USSSS	S
S9SSSS	S
0 45        U R                  U R                  USS5      SSSSS0 45        U R                  U R                  USSSS	S9SSSSS	0 45        U R                  U R                  USSSS	SS9SSSSS	SS045        U R                  U R                  USSSSSS	S9SSSSS	SS045        U R                  U R                  USSSSS	SS9SSSSS	SS045        U R                  U R                  USSSS9SSSSSSS045        U R                  [        S5         U R                  USSS9  S S S 5        SS jnU R                  [        S5         U R                  USSS9  S S S 5        g ! , (       d  f       ND= f! , (       d  f       g = f)Nr  r7  rn  r  c                   XX#XE4$ r    r*   )r   b_poc_por6   r.   r   s         r#   r  CTestSignatureBind.test_signature_bind_positional_only.<locals>.test  s    t#55r%   r4   r5   r  r     r~  r  )r6   r.   r5  r5  r2     )r5  r6   r.   )r5  z3missing a required positional-only argument: 'a_po')r   r4  c                    X4$ r    r*   r5  d_pos     r#   without_var_kwargsQTestSignatureBind.test_signature_bind_positional_only.<locals>.without_var_kwargs  s
    :r%   zCpositional-only arguments passed as keyword arguments: 'c_po, d_po'r7  rV  r:  )r  r7  )r  r  r  )r^   r  r<  s      r#   #test_signature_bind_positional_only5TestSignatureBind.test_signature_bind_positional_only  s   	6r 	6 	4Aq!;Q1a,	. 	4A.Q2r2.	0 	4A1!<Q1a,	. 	4A1!"EQ1a&"6	8 	4ArqIQAq62,7	9 	4ArqabIQAq62,7	9 	4AA6Q2rFA;7	9 ##I/deIIdI+ f	 ##Q
 II(rI;	
 
 fe
 
s   FF-
F*-
F;c                     S n[         R                  " U5      nUR                  SSS5      nU R                  UR                  S5        UR                  SSSS9nU R                  UR                  S5        g )Nc                     g r    r*   )r-   r^   rm  s      r#   r  ATestSignatureBind.test_signature_bind_with_self_arg.<locals>.test  r  r%   r4   r5   r  r  rT  )rX   r  r  r  r"   r/  s       r#   !test_signature_bind_with_self_arg3TestSignatureBind.test_signature_bind_with_self_arg  se    	%XXaA),XXaa1X%),r%   c                    S n[         R                  " U5      nU R                  [        S5         UR	                  SSS9  S S S 5        S nU R                  U R                  USS9SS	S045        [         R                  " U5      nUR	                  SS9nU R                  UR                  S
S	S005        g ! , (       d  f       N{= f)Nc                     X4$ r    r*   r-   r"   s     r#   r  ?TestSignatureBind.test_signature_bind_vararg_name.<locals>.test  s	    7Nr%   z)got an unexpected keyword argument 'args'r   r4   rG  c                      X4$ r    r*   rL
  s     r#   r  rH    r"  r%   rz  r*   r"   r   )rX   r  r  r  r  r  rh  r-  r/  s       r#   test_signature_bind_vararg_name1TestSignatureBind.test_signature_bind_vararg_name  s    	%##BD HHqqH!D
	 4a02{2CD%XX1X61+'>?D Ds   B66
Cc                     S nUR                   R                  S   n[        R                  " U0 5      n[	        [        S5      5      nU R                  [        U R                  X45      5      1 Sk5        g )Nc                  8    [        S [        S5       5       5      $ )Nc              3   *   #    U  H	  oU-  v   M     g 7fr    r*   )r	  r3   s     r#   r	  WTestSignatureBind.test_signature_bind_implicit_arg.<locals>.make_set.<locals>.<genexpr>  s     /h1uhs   r  )rW   r7   r*   r%   r#   make_setDTestSignatureBind.test_signature_bind_implicit_arg.<locals>.make_set  s    /eAh///r%   r4   r  >   r   r4   r  r  r  )	r  	co_constsr   r  iterr7   r  rW   rh  )r^   rP  gencomp_codegencomp_funciterators        r#    test_signature_bind_implicit_arg2TestSignatureBind.test_signature_bind_implicit_arg  s[    	0((2215)),;a>TYY|>?AQRr%   c                     S n[         R                  " U5      nUR                  SSS9nU R                  UR                  SS05        U R                  SUR                  R                  5       5        g )Nc                &    XR                  U 5      4$ r    )r  )r.   r   s     r#   r6   ATestSignatureBind.test_signature_bind_posonly_kwargs.<locals>.foo  s    

3''r%   pos-onlykeywordr  r.   )r.   r\  )rX   r  r  r  r   rs  r-  r.  )r^   r6   r	  results       r#   "test_signature_bind_posonly_kwargs4TestSignatureBind.test_signature_bind_posonly_kwargs  sb    	( $*)4	(:;)6+;+;+A+A+CDr%   r*   N)rU   rl   rm   rn   r  rh  r  r  r  r
  r  r  r  r%  r0  r>  rC  rJ  r   rW  r_  rz   r*   r%   r#   r  r    so    ( ($3<8>*8((69p,#<J-@$ S SEr%   r  c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
TestBoundArgumentsi  c                     S n[         R                  " U5      R                  S5      nU R                  [        S5         [        U5        S S S 5        g ! , (       d  f       g = f)Nc                     g r    r*   r  s    r#   r6   ITestBoundArguments.test_signature_bound_arguments_unhashable.<locals>.foo  r  r%   r4   r  )rX   r  r  r  r  r  r^   r6   r  s      r#   )test_signature_bound_arguments_unhashable<TestBoundArguments.test_signature_bound_arguments_unhashable  sE    s#((+##I/@AH BAAs   A
A"c                    S n[         R                  " U5      R                  S5      nU R                  X":H  5        U R	                  X":g  5        U R                  U[
        :H  5        U R	                  U[
        :g  5        [         R                  " U5      R                  S5      nU R                  X#:H  5        U R	                  X#:g  5        [         R                  " U5      R                  S5      nU R	                  X$:H  5        U R                  X$:g  5        SUR                  S'   U R                  X$:H  5        U R	                  X$:g  5        S n[         R                  " U5      R                  S5      nU R	                  X&:H  5        U R                  X&:g  5        S n[         R                  " U5      nUR                  SSS9nUR                  SSS9nU R                  X:H  5        U R	                  X:g  5        g )	Nc                     g r    r*   r  s    r#   r6   GTestBoundArguments.test_signature_bound_arguments_equality.<locals>.foo#  r  r%   r4   r5   r-   c                     g r    r*   r
  s    r#   r.   GTestBoundArguments.test_signature_bound_arguments_equality.<locals>.bar5  r  r%   c                     g r    r*   rl  s     r#   r6   rk  :  r)  r%   rl  r  )rX   r  r  rT   r]   r   r-  )	r^   r6   r  ba2ba3r.   ba4r	  ba1s	            r#   'test_signature_bound_arguments_equality:TestBoundArguments.test_signature_bound_arguments_equality"  s   s#((+!"i(y)$))!,	"#$))!,#	"c	"#$))!,#	"$hhah hhah 
#$r%   c                    0 S.SSSSS04S jjn[         R                  " U5      nUR                  SS	0 S
9n[        [        R
                  S-   5       HV  nU R                  US9   [        R                  " [        R                  " X45      5      nU R                  X55        S S S 5        MX     g ! , (       d  f       Mj  = f)Nr
  r   r4   r  r7  r  c                    g r    r*   r
  s       r#   r6   ETestBoundArguments.test_signature_bound_arguments_pickle.<locals>.fooB  r
  r%   r  r2  r(  )r
  )
rX   r  r  r7   r
  r
  rD  r
  r
  r  )r^   r6   r	  r  r
  
ba_pickleds         r#   %test_signature_bound_arguments_pickle8TestBoundArguments.test_signature_bound_arguments_pickleA  s    :1:2e*:$XXb"X#00145C-#\\&,,r*?@
  0 .- 6--s   %<B..
B=	c                     0 S.SSSSS04S jjn[         R                  " U5      nUR                  SS	0 S
9nU R                  [	        U5      S5        g )Nr
  r   r4   r  r7  r  c                    g r    r*   r
  s       r#   r6   CTestBoundArguments.test_signature_bound_arguments_repr.<locals>.fooL  r
  r%   r  r2  r(  z <BoundArguments \(a=20,.*\}\}\)>)rX   r  r  assertRegexr^	  r^   r6   r	  r  s       r#   #test_signature_bound_arguments_repr6TestBoundArguments.test_signature_bound_arguments_reprK  sO    :1:2e*:$XXb"X#b#FGr%   c           
      R   S0 S.SS jjjn[         R                  " U5      nUR                  S5      nUR                  5         U R	                  [        UR                  R                  5       5      SSSS0 4S	0 4/5        UR                  S
SSSS9nUR                  5         U R	                  [        UR                  R                  5       5      SSSS0 4S	SS04/5        S n[         R                  " U5      nUR                  S5      nUR                  5         U R	                  [        UR                  R                  5       5      S/5        S n[         R                  " U5      nUR                  5       nUR                  5         U R	                  [        UR                  R                  5       5      / 5        SS jn[         R                  " U5      nUR                  5       nUR                  5         U R	                  [        UR                  R                  5       5      S/5        g )Nr4   r
  r   c                    g r    r*   )r-   rm  r   r"   r	  s        r#   r6   MTestBoundArguments.test_signature_bound_arguments_apply_defaults.<locals>.fooR  s    dr%   r  )r-   r  r[  )r"   r*   r	  r  r2  )r  r,  )rm  r  )r"   )r2  r  c                     g r    r*   rl  s     r#   r6   r  e  r   r%   c                      g r    r*   r*   r%   r#   r6   r  n  r   r%   c                     g r    r*   r  s    r#   r6   r  u  r  r%   )r-   r   r
  )r   r4   r  )	rX   r  r  apply_defaultsr  rD  r-  r.  bind_partialr  s       r#   -test_signature_bound_arguments_apply_defaults@TestBoundArguments.test_signature_bound_arguments_apply_defaultsQ  s   2222$XXb\
##%&,b	D":F	H XXb"bAX&
##%&	?S"Is1gO	Q 	$b!
##%&K	
 	$XXZ
bll0023R8 	 $XXZ
bll0023m_Er%   c                     S n[         R                  " U5      R                  S5      nU R                  [	        UR
                  5      [        5        g )Nc                     g r    r*   r  s    r#   r6   MTestBoundArguments.test_signature_bound_arguments_arguments_type.<locals>.foo|  r  r%   r4   )rX   r  r  r  r   r-  rq  rf  s      r#   -test_signature_bound_arguments_arguments_type@TestBoundArguments.test_signature_bound_arguments_arguments_type{  s7    s#((+d2<<($/r%   r*   N)rU   rl   rm   rn   rg  rs  ry  r  r  r  rz   r*   r%   r#   rb  rb    s#    %>1H(FT0r%   rb  c                        \ rS rSrS rS rSrg)TestSignaturePrivateHelpersi  c                 z    [         R                  " U5      u  nnU R                  XB5        U R                  XS5        g r    )rX   "_signature_strip_non_python_syntaxr  )r^   rE  clean_signatureself_parametercomputed_clean_signaturecomputed_self_parameters         r#   _strip_non_python_syntax4TestSignaturePrivateHelpers._strip_non_python_syntax  s;     66u=	$ #1C0Ar%   c                    U R                  SSS5        U R                  SSS5        U R                  SSS 5        U R                  SSS 5        U R                  SSS 5        U R                  S	S	S 5        U R                  S S S 5        g )
NzZ($module, /, path, mode, *, dir_fd=None, effective_ids=False,
       follow_symlinks=True)zR(module, /, path, mode, *, dir_fd=None, effective_ids=False, follow_symlinks=True)r   z($module, word, salt, /)z(module, word, salt, /)z(x, y=None, z=None, /)z(x, y=None, z=None)z!(x,
    y=None,
      z = None  )r8  )r  ri   s    r#   &test_signature_strip_non_python_syntaxBTestSignaturePrivateHelpers.test_signature_strip_non_python_syntax  s    %%E=	 	%%&%	
 	%%$$	
 	%%!!	
 	%%1!	
 	%%	
 	%%	r%   r*   N)rU   rl   rm   rn   r  r  rz   r*   r%   r#   r  r    s    B$r%   r  c                   d   \ rS rSr\S 5       r\\R                  " \	S5      SS0 0 S4S j5       5       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-\.R^                  S) 5       r0Sr1g*)+TestSignatureDefinitionsi  c                     U R                  S5      (       + =(       d)    U R                  S5      =(       a    U R                  S5      $ )Nr  __)r  rW  r
  s    r#   	is_public"TestSignatureDefinitions.is_public  s1    ??3''X4??4+@+XT]]SWEXXr%   r  r*   c           
      4  ^  U=(       d
    [        5       n[        U5      n [        UR                  5      n[	        UR                  5       5       GH	  u  pX;  a  M  [        U
5      (       d  M  [        U
[        5      (       a+  [        U
[        5      (       a  X;  a  UR                  U	5        X;  aC  X;  a>  T R                  SU	S9   T R                  [        R                  " U
5      5        S S S 5        [        U
[        5      (       d  M  T R                  U	S9   T R!                  U
UR#                  U	S5      UR#                  U	S5      5        S S S 5        GM     U H`  n	T R                  SU	S9   Xy   n
T R%                  U
R&                  5        T R)                  [*        [        R                  U
5        S S S 5        Mb     U H`  n	T R                  SU	S9   Xy   n
T R                  U
R&                  5        T R)                  [*        [        R                  U
5        S S S 5        Mb     g ! [         a    [        U 4S jU 5       5      n GNf = f! , (       d  f       GNi= f! , (       d  f       GM#  = f! , (       d  f       GM&  = f! , (       d  f       M  = f)Nc              3   X   >#    U  H  nTR                  U5      (       d  M  Uv   M!     g 7fr    )r  )r	  r  r^   s     r#   r	  GTestSignatureDefinitions._test_module_has_signatures.<locals>.<genexpr>  s     Dt~~d/Cs   *	*	supported)r  r   r*   noneunsupported)rW   vars__all__r  r  r.  callablerL  r   
issubclassBaseExceptionr  rD  assertIsNotNonerX   r  %_test_builtin_methods_have_signaturesr  rW  r  r  r  )r^   moduleno_signatureunsupported_signaturemethods_no_signaturemethods_unsupported_signaturegood_exceptionsr  r`	  r  ra   s   `          r#   _test_module_has_signatures4TestSignatureDefinitions._test_module_has_signatures  s    $,su&\	E'E  
+ID C==3%%3..+  &'D,M\\+t\<(():):3)?@ =#t$$\\t\,>>s044T2>9==dBGI -, ,* !Dfd3h!!#"8"89!!*g.?.?E 43 !
 *DmT:h$$S%;%;<!!*g.?.?E ;: *9  	EDDDE	E =< -, 43
 ;:sC   H* &I4I"2AI5AJ*II
I	"
I2	5
J	
J	c           
      j   [        U5      nU H  n[        XS 5      n[        U5      (       a  [        U[        5      (       a  M6  XR;  d  M=  XS;  d  MD  U R                  SUS9   U R                  [        R                  " U5      5        S S S 5        M     U Hn  nU R                  SUS9   U R                  [        X5      R                  5        U R                  [        [        R                  [        X5      5        S S S 5        Mp     U Hn  nU R                  SUS9   U R                  [        X5      R                  5        U R                  [        [        R                  [        X5      5        S S S 5        Mp     g ! , (       d  f       GM  = f! , (       d  f       GM
  = f! , (       d  f       M  = f)Nr  )rL  r  r  )r  rK  r  rL  r   rD  r  rX   r  rW  r  r  r  )r^   r  r  r  r  r  ra   s          r#   r  >TestSignatureDefinitions._test_builtin_methods_have_signatures  sD   #YD#T*CC==JsD$9$9'D,M\\+d\;(():):3)?@ <;  !DfT2!!'#"4"G"GH!!*g.?.?AST 32 ! *DmD9$$WS%7%J%JK!!*g.?.?AST :9 * <; 32 :9s&   "&E=)AFAF#=
F	
F 	#
F2	c                     1 Skn1 SknX-  nS1n1 SknX-  nS1S1S.n1 Sk1 SkS	1S
1SS11 SkS.nU R                  [        XXV5        g )N>   r   rC  rq  r   rn  ra  rs
  >   rI  rS  rR  r  r7   slicerK  r	  >   maxrp
  __build_class__updaterc  )rq  r   >   hexfindr>  r  rfindrindexrW  r  r9  	__round__castr  >   r  r>  r  r  r  rW  rn
  r  )rs
  rn  rq  r   
memoryviewrC  )r  r\  )r^   r  needs_groupsr  needs_varargsr  r  s          r#   test_builtins_have_signatures6TestSignatureDefinitions.test_builtins_have_signatures  s}    T0$!(	9% J"m 

 hcG=!5/g)
% 	(($	Er%   c                 F    S1nS1S1S1S.nU R                  [        UUS9  g )NCellTyper	  rE   )AsyncGeneratorTypeCoroutineTypeGeneratorType)r  r  )r  r   )r^   r  r  s      r#    test_types_module_has_signatures9TestSignatureDefinitions.test_types_module_has_signatures  s>    !+#+*%Y%Y 

 	((&;%9 	) 	;r%   c                     SS1nUS Vs1 s H  n[        [        U5      (       d  M  UiM     sn-  nU R                  [        U5        g s  snf )N	getsizeofset_asyncgen_hooks)
getobjects)r   r^  r  r^   r  r  s      r#   test_sys_module_has_signatures7TestSignatureDefinitions.test_sys_module_has_signatures&  sN    #%9:. 0.$#C. . 0 	0((l;0
   A	A	c                 .    SS K nU R                  U5        g r  )r  r  )r^   r  s     r#   test_abc_module_has_signatures7TestSignatureDefinitions.test_abc_module_has_signatures,  s    ((-r%   c                 .    SS K nU R                  U5        g r  )atexitr  )r^   r  s     r#   !test_atexit_module_has_signatures:TestSignatureDefinitions.test_atexit_module_has_signatures0      ((0r%   c                 6    SS K nSS10nU R                  UUS9  g )Nr   StreamReadercharbuffertyper  )codecsr  )r^   r  r  s      r#   !test_codecs_module_has_signatures:TestSignatureDefinitions.test_codecs_module_has_signatures4  s,     .1A0BC((%9 	) 	;r%   c                 \    SS1nS1nSS10nS1S1S1S.nU R                  [        XX45        g )	Nr
  defaultdictdequer  r  r9  rn
  )r  r
  
UserString)r  r  )r^   r  r  r  r  s        r#   &test_collections_module_has_signatures?TestSignatureDefinitions.test_collections_module_has_signatures:  sU    %}5!(	H: 
 Y!7&-)
%
 	(($	Er%   c                 B    SS K nU R                  UR                  5        g r  )r  r  r  )r^   r  s     r#   *test_collections_abc_module_has_signaturesCTestSignatureDefinitions.test_collections_abc_module_has_signaturesI  s    ((9r%   c                 .    SS K nU R                  U5        g r  )errnor  )r^   r  s     r#    test_errno_module_has_signatures9TestSignatureDefinitions.test_errno_module_has_signaturesM  s    ((/r%   c                     SS K n1 SknUS Vs1 s H  n[        X5      (       d  M  UiM     sn-  nU R                  XS9  g s  snf )Nr   >   enabledump_tracebackdump_traceback_later)registerr  )faulthandlerr   r  )r^   r  r  r  s       r#   'test_faulthandler_module_has_signatures@TestSignatureDefinitions.test_faulthandler_module_has_signaturesQ  sP     T< "B<4%,\%@ #'< "B 	B(((c"Bs
   AAc                 6    S1nU R                  [        U5        g )Nreduce)r  r   )r^   r  s     r#   $test_functools_module_has_signatures=TestSignatureDefinitions.test_functools_module_has_signaturesX  s     z((LAr%   c                 4    SS K nS1nU R                  X5        g )Nr   set_threshold)r+	  r  )r^   r+	  r  s      r#   test_gc_module_has_signatures6TestSignatureDefinitions.test_gc_module_has_signatures\  s    '(((:r%   c                 8    S1 Sk0nU R                  [        US9  g )NBufferedRWPair>   peekr  read1r6  readinto	readinto1r  )r  r  )r^   r  s     r#   test_io_module_has_signatures6TestSignatureDefinitions.test_io_module_has_signaturesa  s*    Y 
 	((%9 	) 	;r%   c                 6    SS K nSS1nU R                  X5        g )Nr   islicerepeat)	itertoolsr  )r^   r  r  s      r#   $test_itertools_module_has_signatures=TestSignatureDefinitions.test_itertools_module_has_signaturesh  s     (+((Ar%   c                 .    SS K nU R                  U5        g r  )localer  )r^   r  s     r#   !test_locale_module_has_signatures:TestSignatureDefinitions.test_locale_module_has_signaturesm  r  r%   c                 .    SS K nU R                  U5        g r  )marshalr  )r^   r  s     r#   "test_marshal_module_has_signatures;TestSignatureDefinitions.test_marshal_module_has_signaturesq  s    ((1r%   c                 .    SS K nU R                  U5        g r  )operatorr  )r^   r  s     r#   #test_operator_module_has_signatures<TestSignatureDefinitions.test_operator_module_has_signaturesu      ((2r%   c                     SS1nUS Vs1 s H  n[        [        U5      (       d  M  UiM     sn-  nU R                  [        US9  g s  snf )Nchmodutime)get_terminal_sizeposix_spawnposix_spawnpregister_at_fork	startfiler  )r   r4  r  )r^   r  r  s      r#   test_os_module_has_signatures6TestSignatureDefinitions.test_os_module_has_signaturesy  sc    !(' 2."". ,0 r4  #'."" 	" 	((CX(Y	""s
   AAc                 R    [         R                  " S5      nU R                  U5        g )Npwd)r   r  r  )r^   r-  s     r#   test_pwd_module_has_signatures7TestSignatureDefinitions.test_pwd_module_has_signatures  s     ))%0((-r%   c                 <    SS K nSS10nU R                  UUSS1S9  g )Nr   MatchgrouperrorPatternError)r  r  )rer  )r^   r5  r  s      r#   test_re_module_has_signatures6TestSignatureDefinitions.test_re_module_has_signatures  s2     ''3((%9!(. 9 	) 	;r%   c                 .    SS K nU R                  U5        g r  )signalr  )r^   r9  s     r#   !test_signal_module_has_signatures:TestSignatureDefinitions.test_signal_module_has_signatures  r  r%   c                 .    SS K nU R                  U5        g r  )r  r  )r^   r  s     r#   test_stat_module_has_signatures8TestSignatureDefinitions.test_stat_module_has_signatures  s    ((.r%   c                 .    SS K nU R                  U5        g r  )stringr  )r^   r@  s     r#   !test_string_module_has_signatures:TestSignatureDefinitions.test_string_module_has_signatures  r  r%   c                 .    SS K nU R                  U5        g r  )symtabler  )r^   rD  s     r#   #test_symtable_module_has_signatures<TestSignatureDefinitions.test_symtable_module_has_signatures  r!  r%   c                 .    SS K nU R                  U5        g r  )	sysconfigr  )r^   rH  s     r#   $test_sysconfig_module_has_signatures=TestSignatureDefinitions.test_sysconfig_module_has_signatures  s    ((3r%   c                     SS K nU R                  U5        U R                  [        R                  " UR
                  5      5        g r  )	threadingr  r  rX   r  __excepthook__)r^   rL  s     r#   $test_threading_module_has_signatures=TestSignatureDefinitions.test_threading_module_has_signatures  s2    ((3W..y/G/GHIr%   c                 4    SS K nS1nU R                  X5        g )Nr   RLock)_threadr  )r^   rR  r  s      r#   !test_thread_module_has_signatures:TestSignatureDefinitions.test_thread_module_has_signatures  s    y((?r%   c                     1 SknUS Vs1 s H  n[        [        U5      (       d  M  UiM     sn-  nU R                  [        U5        g s  snf )N>   ctimegmtimeasctimestrftimestrptime	localtimeget_clock_info)clock_getresclock_settimeclock_settime_nspthread_getcpuclockid)r   r  r  r  s      r#   test_time_module_has_signatures8TestSignatureDefinitions.test_time_module_has_signatures  s\    
 	&$& #' tT" &$ 	$ 	((|<	$r  c                 .    SS K nU R                  U5        g r  )tokenizer  )r^   rd  s     r#   #test_tokenize_module_has_signatures<TestSignatureDefinitions.test_tokenize_module_has_signatures  r!  r%   c                 .    SS K nU R                  U5        g r  )tracemallocr  )r^   rh  s     r#   &test_tracemalloc_module_has_signatures?TestSignatureDefinitions.test_tracemalloc_module_has_signatures  s    ((5r%   c                 N    SS K n1 SknSSS10nS1 Sk0nU R                  XUUS9  g )	Nr   >   Textrr  	ParamSpecTypeVarTupleParamSpecArgsTypeAliasTypeParamSpecKwargsrq  r  r  rl  >   r  r>  r  r  r  rW  rn
  r  )r  r  )rw  r  )r^   rw  r  r  r  s        r#   !test_typing_module_has_signatures:TestSignatureDefinitions.test_typing_module_has_signatures  sQ    L +-@A 
 h)
% 	((%9.K 	) 	Mr%   c                 4    SS1nU R                  [        US9  g )Nwarnwarn_explicitr  )r  r   )r^   r  s     r#   #test_warnings_module_has_signatures<TestSignatureDefinitions.test_warnings_module_has_signatures  s!    !' 9((I^(_r%   c                 6    SS K nSS1nU R                  X5        g )Nr   ReferenceTyper*	  )r)	  r  )r^   r)	  r  s      r#   "test_weakref_module_has_signatures;TestSignatureDefinitions.test_weakref_module_has_signatures  s    '/((?r%   c                    S nSUl         [        R                  " U5      nU R                  U5        U R	                  [        U5      S5        SUl         [        R                  " U5      nU R	                  [        U5      S5        SUl         [        R                  " U5      nU R	                  [        U5      S5        SUl         [        R                  " U5      nU R	                  [        U5      S	5        S
Ul         U R                  [        5         [        R                  " U5        S S S 5        SUl         U R                  [        5         [        R                  " U5        S S S 5        SUl         U R                  [        5         [        R                  " U5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N[= f! , (       d  f       g = f)Nc                      g r    r*   rL
  s     r#   r   NTestSignatureDefinitions.test_python_function_override_signature.<locals>.func  r  r%   z(($self, a, b=1, *args, c, d=2, **kwargs)z*(self, /, a, b=1, *args, c, d=2, **kwargs)z+($self, a, b=1, /, *args, c, d=2, **kwargs)z*(self, a, b=1, /, *args, c, d=2, **kwargs)z"(self, a=1+2, b=4-3, c=1 | 3 | 16)z(self, a=3, b=1, c=19)z(self, a=1,
b=2,


   c=3)z(self, a=1, b=2, c=3)z(self, x=does_not_exist)z(self, x=sys, y=inspect)z(self, 123))r  rX   r  r  r  rC  r  r  )r^   r   r	  s      r#   'test_python_function_override_signature@TestSignatureDefinitions.test_python_function_override_signature  sb   	"L%S!S#OP"O%S#OP"F%S#;<"B%S#:;"<z*d# +"<z*d# +"/z*d# +* +* +* +*s$   F'F8G	'
F58
G	
Gc                     SSK Jn   " S SU5      nUR                  nU R                  US5        [        R
                  " U5      nU R                  [        U5      S5        g )Nr   )BufferedReaderc                       \ rS rSrSrSrg)VTestSignatureDefinitions.test_base_class_have_text_signature.<locals>.MyBufferedReaderi  zbuffer reader class.r*   N)rU   rl   rm   rn   r  rz   r*   r%   r#   MyBufferedReaderr    s    &r%   r  z&(raw, buffer_size=DEFAULT_BUFFER_SIZE)z(raw, buffer_size=8192))test.typinganndata.ann_module7r  r  r  rX   r  rC  )r^   r  r  text_signaturer	  s        r#   #test_base_class_have_text_signature<TestSignatureDefinitions.test_base_class_have_text_signature  sX     	B	'~ 	' (::)QR 01S#<=r%   N)2rU   rl   rm   rn   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.  r6  r:  r=  rA  rE  rI  rN  rS  ra  re  ri  rr  rw  r{  r  r   rX  r  rz   r*   r%   r#   r  r    s,    Y Y __)MO  r%'r "1FO 1FfU$E8	;<.1;E:0dB;
;B
123Z.;1/134J
@
	=36M`@
$<   	> !	>r%   r  c                   *    \ rS rSrS r\S 5       rSrg)NTimesUnwrappablei  c                     Xl         S U l        g r    )re
  _next)r^   re
  s     r#   r   NTimesUnwrappable.__init__   s    
r%   c                     U R                   S::  a  [        S5      eU R                  c  [        U R                   S-
  5      U l        U R                  $ )Nr   zUnwrapped too many timesr4   )re
  r   r  r  ri   s    r#   rB  NTimesUnwrappable.__wrapped__  sA    66Q;677::*466A:6DJzzr%   )r  re
  N)rU   rl   rm   rn   r   r  rB  rz   r*   r%   r#   r  r    s      r%   r  c                   >    \ rS rSrS rS rS rS rS rS r	S r
S	rg
)
TestUnwrapi  c                     S n[         R                  " SS9" U5      nU R                  [        R                  " U5      U5        g )Nc                 
    X-   $ r    r*   rl  s     r#   r   (TestUnwrap.test_unwrap_one.<locals>.func  r  r%   r  )rl
  )r   	lru_cacher  rX   unwrap)r^   r   rE  s      r#   test_unwrap_oneTestUnwrap.test_unwrap_one  s3    	%%b1$7gnnW-t4r%   c                     S nUn[        S5       H  n[        R                  " U5      S 5       nM!     U R                  UR                  U5        U R                  [        R                  " U5      U5        g )Nc                 
    X-   $ r    r*   rl  s     r#   r   ,TestUnwrap.test_unwrap_several.<locals>.func  r  r%   r  c                      g r    r*   r*   r%   r#   rE  /TestUnwrap.test_unwrap_several.<locals>.wrapper  r   r%   )r7   r   r   rR  rB  r  rX   r  )r^   r   rE  r  s       r#   test_unwrap_severalTestUnwrap.test_unwrap_several  sd    	)B__W% &  	,,d3gnnW-t4r%   c                     S n[         R                  " U5      S 5       n[         R                  " U5      S 5       nSUl        [        R                  " US S9nU R                  XB5        g )Nc                 
    X-   $ r    r*   rl  s     r#   func1#TestUnwrap.test_stop.<locals>.func1   r  r%   c                      g r    r*   r*   r%   r#   r  #TestUnwrap.test_stop.<locals>.func2"  r  r%   c                      g r    r*   r*   r%   r#   rE  %TestUnwrap.test_stop.<locals>.wrapper%  r  r%   r4   c                     [        U S5      $ )N	stop_herer
  rw  s    r#   r   &TestUnwrap.test_stop.<locals>.<lambda>*  s    71k3Jr%   )stop)r   r   r  rX   r  r  )r^   r  r  rE  	unwrappeds        r#   	test_stopTestUnwrap.test_stop  sd    				 
 				 
 	NN7)JM	i'r%   c                    S nXl         U R                  [        S5         [        R                  " U5        S S S 5        S nXl         X!l         U R                  [        S5         [        R                  " U5        S S S 5        U R                  [        S5         [        R                  " U5        S S S 5        g ! , (       d  f       N= f! , (       d  f       NU= f! , (       d  f       g = f)Nc                      g r    r*   r*   r%   r#   r  $TestUnwrap.test_cycle.<locals>.func1.  r  r%   r  c                      g r    r*   r*   r%   r#   r  $TestUnwrap.test_cycle.<locals>.func23  r  r%   )rB  r  r  rX   r  )r^   r  r  s      r#   
test_cycleTestUnwrap.test_cycle-  s    !##J?NN5! @ 	!!##J?NN5! @##J?NN5! @? @? @???s#   B9$C
C9
C

C
C)c                    ^ S mS Tl          " U4S jS5      nU R                  [        R                  " U" 5       5      5        g )Nc                      g r    r*   r*   r%   r#   r   (TestUnwrap.test_unhashable.<locals>.func<  r  r%   c                       > \ rS rSrSr Y rSrg)%TestUnwrap.test_unhashable.<locals>.Ci>  Nr*   )rU   rl   rm   rn   __hash__rB  rz   r   s   r#   rp  r  >  s    HKr%   rp  )rB  rW  rX   r  )r^   rp  r   s     @r#   test_unhashableTestUnwrap.test_unhashable;  s3    	 	 	'..-.r%   c                     [        [        R                  " 5       S-   5      nU R                  [        S5         [
        R                  " U5        S S S 5        g ! , (       d  f       g = f)Nr4   r  )r  r^  getrecursionlimitr  r  rX   r  )r^   ra   s     r#   test_recursion_limitTestUnwrap.test_recursion_limitC  sC     5 5 7! ;<##J?NN3 @??s   A
A&c                    U R                  [        R                  " [        5      [        5        U R                  [        R                  " [        5      [        5        U R                  [        R                  " [
        5      [
        5        U R                  [        R                  " [	        [
        5      5      [
        5        U R                  [        R                  " [        [        5      5      [        5        g r    )r  rX   r  r  r  r
  ri   s    r#   test_wrapped_descriptor"TestUnwrap.test_wrapped_descriptorH  s    gnn%679JKgnn\2LAgnn[1;?gnn\+%>?Mgnn[%>?Nr%   r*   N)rU   rl   rm   rn   r  r  r  r  r  r  r  rz   r*   r%   r#   r  r    s&    5	5("/ 
Or%   r  c                   b    \ rS rSrS rS r\R                  " \SL S5      S 5       r	S r
S rS	rg)
TestMainiP  c                    [         R                  " S5      n[        SSS5      u  p#nUR                  5       R	                  5       nU R                  US S [        R                  " U5      R	                  5       5        U R                  US5        g )Nr  -mrX   r   r%   )	importlibr  r   decoder  r  rX   r  )r^   r  rcrF   errr  s         r#   test_only_sourceTestMain.test_only_sourceQ  su    ((4'i(24

'')sW%6%6v%>%I%I%KLc"r%   c                     S nSUl         U R                  [        5         [        R                  " U5        S S S 5        g ! , (       d  f       g = f)Nc                      g r    r*   r*   r%   r#   r6   )TestMain.test_custom_getattr.<locals>.foo[  r  r%   r7  )r  r  r  rX   r  r(  s     r#   test_custom_getattrTestMain.test_custom_getattrZ  s7    	y)c" *))s   A  
ANz6threads required to test __qualname__ for source filesc                     [        SSS5      u  pnUR                  5       R                  5       nU R                  US S [        R
                  " [        5      R                  5       5        U R                  US5        g )Nr  rX   z%concurrent.futures:ThreadPoolExecutorr   r%   )r   r  r  r  rX   r  r   )r^   r  rF   r  r  s        r#   test_qualname_sourceTestMain.test_qualname_sourcea  sm     (i%LN

'')s **+=>IIK	Mc"r%   c                     [        SSS5      u  pnUR                  5       R                  5       nU R                  US/5        g )Nr  rX   r^  z#Can't get info for builtin modules.)r   r  r  r  )r^   r  rF   r  r  s        r#   test_builtinsTestMain.test_builtinsl  s?    +D),13

'')!F GHr%   c                 V   [         R                  " S5      n[        R                  " 5       n[	        / UQSPSPSPSP76 u  p4nUR                  5       nU R                  UR                  R                  U5        U R                  UR                  U5        U R                  UR                  R                  U5        U R                  UR                  U5        U R                  UR                  R                  U5        U R                  UR                  U5        U R                  US5        g )Nr  r  rX   z	--detailsr%   )r  r  r   !optim_args_from_interpreter_flagsr   r  rs  __spec__r  rU   originr  cached
__cached__r  )r^   r  r"   r  rF   r  outputs          r#   test_detailsTestMain.test_detailsr  s    ((488:' A At AY A(2A4?Afoo**F3foov.foo,,f5foov.foo,,f5f''0c"r%   r*   )rU   rl   rm   rn   r  r  r  r  r   r  r  r  rz   r*   r%   r#   r  r  P  sA    ## __'4/DF#F#I#r%   r  c                   h    \ rS rSr\R
                  " S5      r\R
                  " S5      rS rS r	Sr
g)
TestReloadi  z def foo():
    print("Bla")
    z#def foo():
    print("Oh no!")
    c                     [         R                  " U5      n[        USS9 nU R                  UR	                  5       R                  S5      UR                  S5      5        S S S 5        g ! , (       d  f       g = f)Nr  r  T)rX   r  r  r  r  r  )r^   r  r  inspected_srcr  s        r#   assertInspectEqualTestReload.assertInspectEqual  sZ    ))&1$)S
%%d+((. *))s   ?A))
A7c                 X   [        SU R                  5       u  p[        R                  " U5      nU R	                  X#5        [        USSS9 nUR                  U R                  5        S S S 5        U R	                  X#5        S S S 5        g ! , (       d  f       N(= f! , (       d  f       g = f)N
reload_bugr  r  r  )r   
src_beforer  r  r  r  r6  	src_after)r^   r  r  r  r  s        r#   test_getsource_reload TestReload.test_getsource_reload  s}    \4??;|,,T2F##D1dC'2c		$..) 3##D1 <; 32 <;s#   5BB
(B

B	B
B)r*   N)rU   rl   rm   rn   r7  r8  r  r  r  r  rz   r*   r%   r#   r  r    s4     " 	J
  ! 	I
2r%   r  c                       \ rS rSr\R
                  \R                  S.S jrS r\	R                  " \(       + S5      S 5       rSrg)	TestRepli  )stdoutr  c          	         [         R                  R                  [         R                  R                  [        R
                  5      S5      nUSS/nUR                  U5        UR                  S[        [         R                  5      5      nSUS'   [        R                  " U4[        R
                  S[        R                  XS.UD6$ )	z}Run the Python REPL with the given arguments.

kw is extra keyword args to pass to subprocess.Popen. Returns a Popen
object.
z<stdin>z-Ez-ienvvt100TERMT)
executabletextstdinr  r  )r4  r  r:   dirnamer^  r  extend
setdefaultrq  environ
subprocessPopenPIPE)r^   r  r  r"   r	  stdin_fnamecmd_liner  s           r#   
spawn_replTestRepl.spawn_repl  s     ggll277??3>>#BINt, mmE4

#34F &+.>>%)&0oo'-	&
 #%& 	&r%   c                     U R                  5       nUR                  R                  U5        [        U5      nUR                  S:w  a  [        S5      eU$ )zSpawn a new Python interpreter, pass the given
input source code from the stdin and return the
result back. If the interpreter exits non-zero, it
raises a ValueError.r   zProcess didn't exit properly.)r  r  r6  r   
returncoder  )r^   r  processr  s       r#   run_on_interactive_mode TestRepl.run_on_interactive_mode  sK     //#F#W%"<==r%   ztest requires subprocessc                 t    U R                  [        R                  " S5      5      nSnU R                  X!5        g )Nz        def f():
            print(0)
            return 1 + 2

        import inspect
        print(f"The source is: <<<{inspect.getsource(f)}>>>")
        z<The source is: <<<def f():
    print(0)
    return 1 + 2
>>>)r	  r7  r8  rs  )r^   r  rF  s      r#   rz  TestRepl.test_getsource  s6    --hoo ? /  Uh'r%   r*   N)rU   rl   rm   rn   r  r  STDOUTr  r	  r  r  r   rz  rz   r*   r%   r#   r  r    s@    '1z?P?P &8 __//1KL( M(r%   r  __main__)r(   r\  r  r<  r   r   r+	  r  rX   r  r  r4  r  os.pathr   r  r
  rf  r  r^  r  r  r   r2  r7  rw  r   r  r  unittest.mockr   r)	  concurrent.futuresr   rK  test.supportr   r   r	   r
   r   test.support.import_helperr   r   test.support.os_helperr   r   test.support.script_helperr   r   r   r   r   r  r   test.test_inspectr   r   r   rT  r   r   r   r   r  r  rW  r$   r?  r;  r+   rC   rL   r  r  r  rN   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\  rq  r   rw  r  r  r  r  r  r  rJ  rD  r  r  r  r  r1	  r	  requires_working_socketIsolatedAsyncioTestCaser	  r  r	  r  r	  r	  r  r  rb  r  r  r  r  r  r  r  rU   mainr*   r%   r#   <module>r     s         	   	  	 
      
           5 O N 8 E 3 [ [ D  3 5 7 < > C ,,
JcrlG 7
( 
mmo,
$	 $M#R#R#T  M"" M0     # & # & 2 2SAZ SAl
B>: B>H8H%% 8 7 7
R9} R9h'6(++ '6R
Ex00 
E0 07] 7OBM OBb
C 
Cf?] f?R: :&N= N7F 79f 9>@
h// @
F-
8,, -
`q9X.. q9h5>8,, 5>p hD>** D>NG+x00 G+R 5  :$: :(L.)) L.^
dHH-- dHNAGH-- AGH 	  "cG8;; cG #cGL	'## 	
	'## 	^# (++ ^# BGh(++ hVLE)) LE^d0** d0L-("3"3 -^M>x00 M>`
 AO"" AOH/#x   /#d2"" 2<8(x   8(z zMMO uM  s   >R RR