
    [cX>                         d dl Z d dlZd dlZd dlZd dlZd dlmZmZmZm	Z	m
Z
mZmZ d dlmZ d dlmZ d dlmZ ddZd Zedfd	Zedfd
Zd Zd Zd Zd Zd Zd Zd Zd ZedfdZd Z d Z!d Z"d Z#d Z$dS )    N)curryis_valid_argsis_partial_argsis_aritynum_required_argshas_varargshas_keywords)builtins)raisesTc                     |                      d          sd| z  } |rd}nd}i }t          d| d|t                      |           |d         S )N(z(%s)z1raise ValueError("function should not be called")zreturn Truezdef funcz:
    func)
startswithexecglobals)param_stringraise_if_calledbodyds       =lib/python3.11/site-packages/toolz/tests/test_inspect_args.py	make_funcr      sh    ""3'' -, B
AD,,,	5wyy!DDDV9    c                      t          d           t          t           fd          sJ t          t           fd          sJ t          dd                         sJ t          t           fd          sJ t          dd             d          sJ   d	          sJ   dd
          sJ   dd
          sJ t          t           fd          sJ t          dd             d          sJ   d	          sJ   dd
          sJ   dd
          sJ t          t           fd          sJ d S )N c                                    S N fs   r   <lambda>z test_make_func.<locals>.<lambda>   s    aacc r   c                        d          S N   r   r   s   r   r    z test_make_func.<locals>.<lambda>       QQqTT r   F)r   c                        d          S r"   r   r   s   r   r    z test_make_func.<locals>.<lambda>    r$   r   zx, y=1r#   x   r'   yc                        ddd          S Nr#   r(      r   r   s   r   r    z test_make_func.<locals>.<lambda>'       QQq!QZZ r   z(x, y=1)c                        ddd          S r,   r   r   s   r   r    z test_make_func.<locals>.<lambda>.   r.   r   )r   r   
ValueError	TypeErrorr   s   @r   test_make_funcr2      s   "A*kkkk*****)\\\\*****"e,,,A133JJJ)\\\\*****(E222A1Q44KKK1q666MMM1Q77NNN1qA;;;)////00000*e444A1Q44KKK1q666MMM1Q77NNN1qA;;;)////0000000r   Fc                    | fd} t          d          } | |          sJ  | |d          du sJ  | |d          du sJ t          d          } | |          |u sJ  | |d          sJ  | |d          sJ  | |dd          du sJ  | |dd          du sJ  | |dd          du sJ  | |dd	          du sJ t          d
          } | |          sJ  | |d          sJ  | |d          sJ  | |dd          du sJ  | |dd          du sJ  | |dd          du sJ  | |dd	          du sJ t          d          } | |          sJ  | |d          sJ  | |dd          sJ  | |d          du sJ t          d          } | |          sJ  | |d          sJ  | |dd	          sJ  | |d          du sJ t          d          } | |          |u sJ  | |d          sJ  | |dd          sJ  | |d          sJ  | |dd          du sJ  | |dd          du sJ t          d          } | |          |u sJ  | |d          sJ  | |d          sJ  | |dd          sJ  | |ddd          sJ  | |ddd          du sJ t          d          } | |          |u sJ  | |d          |u sJ  | |dd          sJ  | |dd          |u sJ  | |dd          du sJ  | |ddd          du sJ  | |ddd          du sJ  | d          du sJ d S )Nc                      | ||          S r   r   r   argskwargsorig_check_valids      r   r    ztest_is_valid.<locals>.<lambda>3       0@0@tV0T0T r   r   r#   Fr&   r'   r(   r*   r)   zx=1*args**kwargszx, *argszx, y=1, **kwargsr-   r'   r*   zza, b, c=3, d=4)c)eb)r   check_valid
incompleter   r8   s      @r   test_is_validrF   1   s   "TTTTK"A;q>>;q!%%%%;qA%''''#A;q>>Z'''';q!;qA;q!q!!!U****;q!q!!!U****;q!Q5((((;qA###u,,,,%A;q>>;q!;qA;q!q!!!U****;q!q!!!U****;q!Q5((((;qA###u,,,,'A;q>>;q!;q!Q;qA%''''*A;q>>;qA;qA######;q!%%%%*A;q>>Z'''';q!;q!Q;qA;q!q!!!U****;q!q!!!U****$%%A;q>>Z'''';q!;qA;q!Q;qAa((((((;q!Q!$$$----"##A;q>>Z'''';q!
****;q!Q;q!q!!!Z////;q!q!!!U****;q!Q!$$$----;q!Q!$$$----;q>>U""""""r   c                    | fd} t          d          } | |          |u sJ  | |d          sJ  | |d          sJ  | |dd          sJ  | |dd          du sJ  | |dd          du sJ t          d	          } | |          |u sJ  | |d          sJ  | |d          sJ  | |dd          sJ  | |ddd          sJ  | |dd          sJ  | |dd          du sJ t          d
          } | |          sJ  | |d          du sJ  | |d          sJ  | |d          du sJ t          d          } | |          |u sJ  | |d          |u sJ  | |d          |u sJ  | |dd          sJ  | |dd          sJ  | |dd          du sJ  | |dd          du sJ  | |ddd          du sJ t          d          } | |          |u sJ  | |dd          |u sJ  | |d          sJ  | |dd          sJ  | |dd          sJ  | |ddd          sJ  | |ddd          du sJ  | |ddd          du sJ t          d          } | |          |u sJ  | |d          |u sJ  | |dd          sJ t          d          } | |          |u sJ  | |d          |u sJ  | |dd          |u sJ  | |ddd          |u sJ  | |dddd          sJ  | |ddddddddd
  
        |u sJ t          d          } | |          |u sJ  | |d          |u sJ  | |d          |u sJ  | |dd          sJ t          d          } | |          |u sJ  | |d          |u sJ  | |d          |u sJ  | |dd          sJ d|_         | |          du sJ  G d d t                    } |            } | |          J d S )!Nc                      | ||          S r   r   r5   s      r   r    z#test_is_valid_py3.<locals>.<lambda>v   r9   r   z	x, *, y=1r#   r&   r(   r:   Fr>   zx, *args, y=1z*, y=1zx, *, yr)   )r*   r>   zx=1, *, y, z=3r-   r=   zw, x=2, *args, y, z=4z%a, b, c=3, d=4, *args, e=5, f=6, g, h   )g   )rK   h         	   za: int, b: floatrA   z(a: int, b: float) -> float"   c                   *    e Zd Zd Zed             ZdS )+test_is_valid_py3.<locals>.RaisesValueErrorc                     d S r   r   selfs    r   __call__z4test_is_valid_py3.<locals>.RaisesValueError.__call__       Dr   c                      t          d          NzTesting Python 3.4r0   rV   s    r   __signature__z9test_is_valid_py3.<locals>.RaisesValueError.__signature__       1222r   N__name__
__module____qualname__rX   propertyr]   r   r   r   RaisesValueErrorrT      <        	 	 			3 	3 
	3 	3 	3r   rd   )r   r]   object)rD   rE   r   rd   r8   s       @r   test_is_valid_py3rg   t   s   "TTTTK+A;q>>Z'''';q!;qA;q!q!!!!!!;q!Q5((((;q!q!!!U****/""A;q>>Z'''';q!;qA;q!q!!!!!!;q!Q!$$$$$$;q!Q;q!q!!!U****(A;q>>;q!%%%%;qA;qA%'''')A;q>>Z'''';q!
****;qA*,,,,;q!q!!!!!!;qA######;q!Q5((((;q!q!!!U****;q!qA&&&%////"##A;q>>Z'''';q!q!!!Z////;qA;q!q!!!!!!;qA######;qAa((((((;q!qA&&&%////;q!Q!$$$----)**A;q>>Z'''';q!
****;q!q!!!!!!9::A;q>>Z'''';q!
****;q!Q:----;q!Q!$$$
2222;q!Q!q))))));q!Q1aAq!44
BBBB$%%A;q>>Z'''';q!
****;qA*,,,,;q!Q/00A;q>>Z'''';q!
****;qA*,,,,;q!QAO;q>>U""""3 3 3 3 36 3 3 3 	A;q>>!!!!!r   c                  ^    t          t          d           t          t          d           d S NTrD   rE   )rF   r   rg   r   r   r   test_is_partialrk      s.    o$????/dCCCCCCr   c                      dd} t          j        | d          }t          |d           t          |d           t          j        | d          }t          |d           t          |d           d S )NTc                 "   	  t          |           |i |  t          | g|R  di |  t          | fi ||   t          | g|R i |             t          | t          d                     sd S |S # t          $ r Y dS t          $ r Y dS w xY w)Nc                      d S r   r   r   r   r   r    z:test_is_valid_curry.<locals>.check_curry.<locals>.<lambda>        r   TFr   )r   
isinstancetyper0   r1   )r   r6   r7   rE   s       r   check_curryz(test_is_valid_curry.<locals>.check_curry   s    	E$KK((((E$(((((!E$!!&!!4(((E$((((((***dD$6$677 t 	 	 	44 	 	 	55	s   A.A4 2A4 4
B	BB)rE   rj   FT)	functoolspartialrF   rg   )rr   rD   s     r   test_is_valid_curryrv      s        #KDAAAKkd;;;;+$????#KEBBBKke<<<<+%@@@@@@r   c                  V   dd} t          | di           sJ t          | di           sJ t          | ddd i          sJ t          | ddd i          du sJ t          | di           sJ t          | di           sJ t          | ddd i          sJ t          | ddd i          du sJ d S )Nc                     d S r   r   r   s    r   r   ztest_func_keyword.<locals>.f   s    r   r   r   r   F)r   r   r   s    r   test_func_keywordrz      s       B#####GR(((((B/////Gfd^44====1b"%%%%%1gr*****1b64.111111g~66%??????r   c                     t          d          du sJ t          t                    sJ t          t          d                    du sJ t          t          d                    du sJ t          t          d                    sJ t          t          d                    du sJ t          t          d                    sJ t          t          d                    du sJ t          t          d	                    du sJ t          d          } d
| _        t          |           du sJ  G d dt                    } |            } t          |           J d S )Nr#   Fr   zx, y, zr;   r<   zx, y, *args, **kwargsz	x, y, z=1zx, y, z=1, **kwargsrR   c                   *    e Zd Zd Zed             ZdS )/test_has_unknown_args.<locals>.RaisesValueErrorc                     d S r   r   rV   s    r   rX   z8test_has_unknown_args.<locals>.RaisesValueError.__call__  rY   r   c                      t          d          r[   r\   rV   s    r   r]   z=test_has_unknown_args.<locals>.RaisesValueError.__signature__  r^   r   Nr_   r   r   r   rd   r}     re   r   rd   )r   mapr   r]   rf   )r   rd   s     r   test_has_unknown_argsr      s   q>>U""""sy}}%%....y++,,5555y))*****y,,--6666y!899:::::y--..%7777y!67788EAAAA'AAOq>>U""""3 3 3 3 36 3 3 3 	Aq>>!!!!!r   c                  B   t          d           dk    sJ t          d           dk    sJ t          d           dk    sJ t          d           dk    sJ t          d           dk    sJ t          t                    dk    sJ t          t                    J d S )	Nc                      d S r   r   r   r   r   r    z(test_num_required_args.<locals>.<lambda>      T r   r   c                     d S r   r   r&   s    r   r    z(test_num_required_args.<locals>.<lambda>      t r   r#   c                     d S r   r   r'   r6   s     r   r    z(test_num_required_args.<locals>.<lambda>  s    d r   c                     d S r   r   r'   r7   s     r   r    z(test_num_required_args.<locals>.<lambda>  ro   r   c                     d S r   r   )r'   r*   r6   r7   s       r   r    z(test_num_required_args.<locals>.<lambda>  s    4 r   r(   )r   r   dictr   r   r   test_num_required_argsr     s    \\**a////^^,,11112233q88885566!;;;;??@@AEEEES!!Q&&&&T""*****r   c                     t          d           du sJ t          d           du sJ t          dd          sJ t          d           sJ t          t                    sJ t          t                    sJ t          t                    sJ t          t                    du sJ t          t
                    J d S )Nc                      d S r   r   r   r   r   r    z#test_has_keywords.<locals>.<lambda>  s     r   Fc                     d S r   r   r&   s    r   r    z#test_has_keywords.<locals>.<lambda>  s    $ r   r#   c                     d S r   r   r&   s    r   r    z#test_has_keywords.<locals>.<lambda>  s    D r   c                      d S r   r   r7   s    r   r    z#test_has_keywords.<locals>.<lambda>  s     r   )r#   )r	   intsortedmaxr   	bytearrayr   r   r   test_has_keywordsr     s    %%....''50000((()))))--.....%%%%	""*****r   c                      t          d           du sJ t          d           sJ t          d           du sJ t          t                    sJ t          t                    J d S )Nc                      d S r   r   r   r   r   r    z"test_has_varargs.<locals>.<lambda>%      t r   Fc                      d S r   r   )r6   s    r   r    z"test_has_varargs.<locals>.<lambda>&  r   r   c                      d S r   r   r   s    r   r    z"test_has_varargs.<locals>.<lambda>'       r   )r   r   r   r   r   r   test_has_varargsr   $  s    ||$$----))*****,,--6666ss#####r   c                     t          dd           sJ t          dd           du sJ t          dd           sJ t          dd           sJ t          dd	           du sJ t          dd
           du sJ t          dt                    sJ t          dt                    du sJ t          dt                    J d S )Nr   c                      d S r   r   r   r   r   r    ztest_is_arity.<locals>.<lambda>-  r   r   r#   c                      d S r   r   r   r   r   r    ztest_is_arity.<locals>.<lambda>.  r   r   Fc                     d S r   r   r&   s    r   r    ztest_is_arity.<locals>.<lambda>/  s     r   r-   c                     d S r   r   r=   s      r   r    ztest_is_arity.<locals>.<lambda>0  r   r   c                     d S r   r   r   s     r   r    ztest_is_arity.<locals>.<lambda>1  r   r   c                     d S r   r   r   s     r   r    ztest_is_arity.<locals>.<lambda>2  s    4 r   r(   )r   allr   ranger   r   r   test_is_arityr   ,  s    A||$$$$$A||$$----A~~&&&&&A++,,,,,A,,--6666A//00E9999AsAsu$$$$Au%%%%%r   c                    | fd} t          j        t          d                    } | |          sJ  | |d          sJ  | |dd          sJ  | |ddd          sJ  | |dddd          du sJ  | |d	          du sJ  |  |d                    sJ  |  |d          d          sJ  |  |d          dd          sJ  |  |d          ddd          du sJ  |  |d          d
          du sJ  |  |d          d          sJ  |  |d
          d          du sJ  |  |d
          d          sJ  |  |d          d          sJ  |  |d          dd          sJ  |  |d          dd          du sJ t          j        t          d          dd
          } | |          du sJ  | |d          du sJ t          j        t          d                    } | |          sJ  | |d          sJ  |  |d          d          sJ  |  |dd          d          sJ  |  |ddd          d          sJ  |  |dddd          d          sJ  |  |dddd          d          sJ  |  |d
                    sJ  |  |d
          d          du sJ  |  |d
          d          sJ d S )Nc                      | ||          S r   r   )_funcr6   r7   r8   s      r   r    z1test_introspect_curry_valid_py3.<locals>.<lambda>:  s    1A1A%v1V1V r   	x, y, z=0r#   r(   r-   rN   FT)invalid_keywordr&   r:   rI   zx, y, *args, zr   )toolzr   r   rC   s      @r   test_introspect_curry_valid_py3r   8  s'   "VVVVKIk**++A;q>>;q!;q!Q;q!Q""""";q!Q1%%....;q$///58888;qqtt;qqttQ;qqttQ""""";qqttQ1%%....;qqttq!!!U****;qqttq!!!!!!;qq1vvvq!!U****;qq1vvv######;qq1vvvq!!!!!;qq1vvvqA&&&&&&;qq1vvvq!$$----Ik**A333A;q>>U"""";qA%''''I.//00A;q>>;q!;qqttQ;qqAww""""";qqAqzz1%%%%%;qqAq!}}a(((((;qqAq!}}******;qq1vvv;qq1vvvq!!U****;qq1vvv########r   c                  2    t          t          d           d S ri   )r   r   r   r   r   !test_introspect_curry_partial_py3r   `  s    #DQQQQQQr   c                     t          j        t          d                    } t          |           dk    sJ t	          d|           sJ t          |           du sJ t          |           du sJ t          j        t          d                    } t          |           dk    sJ t	          d|           du sJ t	          d|           du sJ t          |           du sJ t          |           sJ t          j        t          d                    } t          |           dk    sJ t	          d|           du sJ t	          d|           du sJ t	          d|           du sJ t	          d|           du sJ t          |           du sJ t          |           sJ t          j        t          d	                    } t          |           dk    sJ t          |           sJ t          |           sJ d S )
Nr   r   Fr'   r#   r   r(   r-   z*args, **kwargs)r   r   r   r   r   r   r	   r   s    r   test_introspect_curry_py3r   d  s   IbMM""AQ1$$$$Aq>>q>>U""""??e####IcNN##AQ1$$$$Aq>>U""""Aq>>U""""q>>U""""??Ik**++AQ1$$$$Aq>>U""""Aq>>U""""Aq>>U""""Aq>>U""""q>>U""""??I/0011AQ1$$$$q>>??r   c            	      ^   t           t          t          t          t          t          j        t          j        t          j        t          j        g	} t                      fd} |t           d            |t           d            |t           d            |t           d           fd}i }| D ]a}|j
        }t          |                                          D ]6\  }} ||||          r$||vrg ||<   ||                             |           7b|rg }t          |                                          D ]P\  }}	d                    |d                    t          |	                              }
|                    |
           Qd	}t#          |d
                    |          z             d S )Nc                 r    t          | |          r%                    t          | |                     d S d S r   )hasattraddgetattr)modattrdenylists     r   add_denylistz5test_introspect_builtin_modules.<locals>.add_denylist  sA    3 	-LLd++,,,,,	- 	-r   
basestringNoneType__metaclass__sequenceiteratorc                    |                     d          r|                     d          sdS |                     d          s|                    d          rdS 	 t          |t                    rdS n# t          $ r Y nw xY w	 t          |          o(|j        d uo| |j        v ot          |di           duo|vS # t          $ r Y dS w xY w)N___F__pyx_unpickle_	_cython__r   T)	r   endswith
issubclassBaseExceptionr1   callablera   r   AttributeError)modnamenamer   r   s      r   
is_missingz3test_introspect_builtin_modules.<locals>.is_missing  s   ??3 	(=(= 	5??,-- 	{1K1K 	5	$.. u 	 	 	D		TNN -t3-4?2- (b"55TA- H,	.
  	 	 	55	s$   A3 3
B ?B 7B< <
C
	C
z
{}:
    {}z
    z4Missing introspection for the following callables:

z

)r
   rt   	itertoolsoperatorr   	functoolz	itertoolz	dicttoolzrecipessetr`   varsitemsappendr   formatjoinAssertionError)modsr   r   missingr   r   r   r   messagesnamesmsgmessager   s               @r   test_introspect_builtin_modulesr     s   iHeOU_eou}ND uuH- - - - - L<(((L:&&&L?+++L-...    & G . .,s))//++ 	. 	.JD$z'4.. .') *')GG$ ''---		.
  >$W]]__55 	! 	!NGU&&wfUmm0L0LMMCOOC    JWv{{8'<'<<===> >r   c                      G d dt                     }  | d           }t          j        |          }|t          j        t          j        dt          j        j                  t          j        dt          j        j                  g          k    sJ t          |           du sJ t          j        dd	 f          ft          j	        | <   t          |           d
k    sJ t          j	        | = d S )Nc                   0    e Zd Zd Zd Zed             ZdS )-test_inspect_signature_property.<locals>.AddXc                     || _         d S r   ry   rW   r   s     r   __init__z6test_inspect_signature_property.<locals>.AddX.__init__      DIIIr   c                 "    | | j         |i |z   S r   ry   )rW   addxr6   r7   s       r   rX   z6test_inspect_signature_property.<locals>.AddX.__call__  s    )$)T4V4444r   c                    t          j        | j                  }t          |j                                                  }t           j        j        }t          j        d|          }|g|z   }|                    |          S )Nr   
parameters)	inspect	signaturer   listr   values	ParameterPOSITIONAL_OR_KEYWORDreplace)rW   sigparamskindnewparams        r   r]   z;test_inspect_signature_property.<locals>.AddX.__signature__  sl    #DI..C#.//1122F$:D(66HZ&(F;;&;111r   N)r`   ra   rb   r   rX   rc   r]   r   r   r   AddXr     sM        	 	 		5 	5 	5 
	2 	2 
	2 	2 	2r   r   c                     | S r   r   r&   s    r   r    z1test_inspect_signature_property.<locals>.<lambda>  s    ! r   r   r'   r   Fr   c                     d S r   r   ry   s    r   r    z1test_inspect_signature_property.<locals>.<lambda>  s     r   r#   )
rf   r   r   	Signaturer   r   r   _sigs
expand_sig
signatures)r   r   r   s      r   test_inspect_signature_propertyr    s   
2 2 2 2 2v 2 2 2  4D

D
!
!C'#&'"3"IJJ#w0FGG0I J J J J J J J T""e++++#.3D3D/EFFHETT""a''''r   c                  6    G d dt                     } d } | |          }t          j        |          t          j        |          k    sJ t          |           J t	          j        dd f          ft          j        | <   t          |           dk    sJ d S )Nc                   0    e Zd Zd Zd Zed             ZdS ).test_inspect_wrapped_property.<locals>.Wrappedc                     || _         d S r   ry   r   s     r   r   z7test_inspect_wrapped_property.<locals>.Wrapped.__init__  r   r   c                      | j         |i |S r   ry   )rW   r6   r7   s      r   rX   z7test_inspect_wrapped_property.<locals>.Wrapped.__call__  s    49d-f---r   c                     | j         S r   ry   rV   s    r   __wrapped__z:test_inspect_wrapped_property.<locals>.Wrapped.__wrapped__  s
    9r   N)r`   ra   rb   r   rX   rc   r  r   r   r   Wrappedr    sM        	 	 		. 	. 	. 
	 	 
	 	 	r   r	  c                     | S r   r   r&   s    r   r    z/test_inspect_wrapped_property.<locals>.<lambda>  s    Q r   r   c                     d S r   r   ry   s    r   r    z/test_inspect_wrapped_property.<locals>.<lambda>  s    4 r   r#   )rf   r   r   r   r   r   r   )r	  r   wrappeds      r   test_inspect_wrapped_propertyr    s    	 	 	 	 	& 	 	 	 ;DgdmmGT""g&7&@&@@@@@W%%---!&!116G6G2H!I!I KEWW%%******r   rs   )%rt   r   r   r   r   toolz.functoolzr   r   r   r   r   r   r	   toolz._signaturesr
   _signaturesr   toolz.utilsr   r   r2   rF   rg   rk   rv   rz   r   r   r   r   r   r   r   r   r   r  r  r   r   r   <module>r     s4             K K K K K K K K K K K K K K K K K K & & & & & & ! ! ! ! ! !      	 	 	 	1 1 10 , @# @# @# @#F #0E S" S" S" S"lD D D
A A A0
@ 
@ 
@" " "4+ + +	+ 	+ 	+$ $ $	& 	& 	& 1>% %$ %$ %$ %$PR R R  :0> 0> 0>f  B+ + + + +r   