
    bi@                         d dl Z 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%y)    N)curryis_valid_argsis_partial_argsis_aritynum_required_argshas_varargshas_keywords)builtins)raisesc                     | j                  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       X/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/toolz/tests/test_inspect_args.py	make_funcr      sQ    ""3',B
A8L>	/A>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 y )N c                               S N fs   r   <lambda>z test_make_func.<locals>.<lambda>   s	    ac r   c                        d      S N   r   r   s   r   r    z test_make_func.<locals>.<lambda>       QqT 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>(       Qq!QZ 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*k***)\***"e,A3J3)\***(E2AQ4K4q6M6Q7N7qA;;)/000*e4AQ4K4q6M6Q7N7qA;;)/000r   Fc                 R   | 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 y )Nc                      | ||      S r   r   r   argskwargsorig_check_valids      r   r    ztest_is_valid.<locals>.<lambda>4       0@tV0T 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   2   s   "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                 l   | 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       } |       } | |      J y )!Nc                      | ||      S r   r   r5   s      r   r    z#test_is_valid_py3.<locals>.<lambda>w   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y)+test_is_valid_py3.<locals>.RaisesValueErrorc                      y r   r   selfs    r   __call__z4test_is_valid_py3.<locals>.RaisesValueError.__call__       r   c                     t        d      NzTesting Python 3.4r0   rV   s    r   __signature__z9test_is_valid_py3.<locals>.RaisesValueError.__signature__       122r   N__name__
__module____qualname__rX   propertyr]   r   r   r   RaisesValueErrorrT          			3 
	3r   rd   )r   r]   )rD   rE   r   rd   r8   s       @r   test_is_valid_py3rf   u   s   "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q!Q!q)))q!Q1aAq!4
BBB$%Aq>Z'''q!
***qA*,,,q!Q/0Aq>Z'''q!
***qA*,,,q!QAOq>U"""3 3 	Aq>!!!r   c                  H    t        t        d       t        t        d       y NTrD   rE   )rF   r   rf   r   r   r   test_is_partialrj      s    o$?/dCr   c                      dd} t        j                  | d      }t        |d       t        |d       t        j                  | d      }t        |d       t        |d       y )NTc                     	  t        |       |i |  t        | g| di |  t        | fi ||   t        | g|i |        t        | t        d             sy |S # t        $ r Y yt        $ r Y yw xY w)Nc                       y 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$K((E$((!E$!&!4((E$(((*dD$67 	 		s   AA! A! !	A7,A76A7)rE   ri   FT)	functoolspartialrF   rf   )rq   rD   s     r   test_is_valid_curryru      sU     ##KDAKkd;+$?##KEBKke<+%@r   c                     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 y )Nc                      y 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_keywordry      s    B###GR(((B///Gfd^4===1b"%%%1gr***1b64.1111g~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        |       J y )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y)/test_has_unknown_args.<locals>.RaisesValueErrorc                      y 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]   )r   rd   s     r   test_has_unknown_argsr      s   q>U"""sy}%...y+,555y)***y,-666y!89:::y-.%777y!678EAAA'AAOq>U"""3 3 	Aq>!!!r   c                      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 y )	Nc                       y r   r   r   r   r   r    z(test_num_required_args.<locals>.<lambda>  rn   r   r   c                      y r   r   r&   s    r   r    z(test_num_required_args.<locals>.<lambda>  rn   r   r#   c                      y r   r   r'   r6   s     r   r    z(test_num_required_args.<locals>.<lambda>  rn   r   c                      y r   r   r'   r7   s     r   r    z(test_num_required_args.<locals>.<lambda>  rn   r   c                      y r   r   )r'   r*   r6   r7   s       r   r    z(test_num_required_args.<locals>.<lambda>  rn   r   r(   )r   r   dictr   r   r   test_num_required_argsr     s    \*a///^,11123q88856!;;;?@AEEES!Q&&&T"***r   c                  V   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              t
        j                  d   dk\  k(  sJ t        t              J y )	Nc                       y r   r   r   r   r   r    z#test_has_keywords.<locals>.<lambda>  rn   r   Fc                      y r   r   r&   s    r   r    z#test_has_keywords.<locals>.<lambda>  rn   r   r#   c                      y r   r   r&   s    r   r    z#test_has_keywords.<locals>.<lambda>  rn   r   c                       y r   r   r7   s    r   r    z#test_has_keywords.<locals>.<lambda>  rn   r      )r#   )r	   intsortedmaxr   sysversion_info	bytearrayr   r   r   test_has_keywordsr     s    %...'5000()))-...!1!1!!4!:;;;	"***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 y )Nc                       y r   r   r   r   r   r    z"test_has_varargs.<locals>.<lambda>'  rn   r   Fc                       y r   r   )r6   s    r   r    z"test_has_varargs.<locals>.<lambda>(  rn   r   c                       y r   r   r   s    r   r    z"test_has_varargs.<locals>.<lambda>)  rn   r   )r   r   r   r   r   r   test_has_varargsr   &  sW    |$---)***,-666ss###r   c                  4   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 y )Nr   c                       y r   r   r   r   r   r    ztest_is_arity.<locals>.<lambda>/  rn   r   r#   c                       y r   r   r   r   r   r    ztest_is_arity.<locals>.<lambda>0  rn   r   Fc                      y r   r   r&   s    r   r    ztest_is_arity.<locals>.<lambda>1  rn   r   r-   c                      y r   r   r=   s      r   r    ztest_is_arity.<locals>.<lambda>2  rn   r   c                      y r   r   r   s     r   r    ztest_is_arity.<locals>.<lambda>3  rn   r   c                      y r   r   r   s     r   r    ztest_is_arity.<locals>.<lambda>4  rn   r   r(   )r   allr   ranger   r   r   test_is_arityr   .  s    A|$$$A|$---A~&&&A+,,,A,-666A/0E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 y )Nc                      | ||      S r   r   )_funcr6   r7   r8   s      r   r    z1test_introspect_curry_valid_py3.<locals>.<lambda><  s    1A%v1V 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   :  s   "VKIk*+Aq>>q!q!Qq!Q"""q!Q1%...q$/5888qtqtQqtQ"""qtQ1%...qtq!U***qtq!!!q1vq!U***q1v###q1vq!!!q1vqA&&&q1vq!$---Ik*A3Aq>U"""qA%'''I./0Aq>>q!qtQqAw"""qAqz1%%%qAq!}a(((qAq!}***q1vq1vq!U***q1v###r   c                  &    t        t        d       y rh   )r   r   r   r   r   !test_introspect_curry_partial_py3r   b  s    #DQr   c                  0   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 y )
Nr   r   Fr'   r#   r   r(   r-   z*args, **kwargs)r   r   r   r   r   r   r	   r   s    r   test_introspect_curry_py3r   f  s   IbM"AQ1$$$Aq>>q>U"""?e###IcN#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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 ]W  }|j                  }t        |      j                         D ]-  \  }} ||||      s||vrg ||<   ||   j                  |       / Y |r}g }t        |j                               D ]@  \  }}	dj                  |dj!                  t        |	                  }
|j                  |
       B d	}t#        |d
j!                  |      z         y )Nc                 V    t        | |      rj                  t        | |             y y r   )hasattraddgetattr)modattrdenylists     r   add_denylistz5test_introspect_builtin_modules.<locals>.add_denylist  s%    3LLd+, r   
basestringNoneType__metaclass__sequenceiteratorc                 x   |j                  d      r|j                  d      sy|j                  d      s|j                  d      ry	 t        |t              ry	 	 t        |      xr5 |j                  d uxr% | |j                  v xr t        |di       duxr |vS # t        $ r Y Nw xY w# t        $ r Y y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(=??,-{1K	$. /	TN -t3-4??2- (b"5TA- H,	.  		  		s%   	B AB- 	B*)B*-	B98B9z
{}:
    {}z
    z4Missing introspection for the following callables:

z

)r
   rs   	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     sT   iHeOOU__eoou}}ND uH- <(:&?+-.& G .,,s)//+ 	.JD$'4.')')GG$ ''-		.. $W]]_5 	!NGU&&wfUm0LMCOOC 	! KWv{{8'<<== r   c                      G d d      }  | 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                  | = y )Nc                   (    e Zd Zd Zd Zed        Zy)-test_inspect_signature_property.<locals>.AddXc                     || _         y r   rx   rW   r   s     r   __init__z6test_inspect_signature_property.<locals>.AddX.__init__  	    DIr   c                 ,    | | j                   |i |z   S r   rx   )rW   addxr6   r7   s       r   rX   z6test_inspect_signature_property.<locals>.AddX.__call__  s    )$))T4V444r   c                    t        j                  | j                        }t        |j                  j                               }t         j                  j                  }t        j                  d|      }|g|z   }|j                  |      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__  sm    ##DII.C#..//12F$$::D((6HZ&(F;;&;11r   N)r`   ra   rb   r   rX   rc   r]   r   r   r   AddXr     s     		5 
	2 
	2r   r   c                     | S r   r   r&   s    r   r    z1test_inspect_signature_property.<locals>.<lambda>  s    ! r   r   r'   r   Fr   c                      y r   r   rx   s    r   r    z1test_inspect_signature_property.<locals>.<lambda>  rn   r   r#   )	r   r   	Signaturer   r   r   _sigs
expand_sig
signatures)r   r   r   s      r   test_inspect_signature_propertyr     s    
2 2  D


D
!C'##&'"3"3"I"IJ#w00FFG0I J J J J T"e+++#..3D/EFHETT"a'''r   c                      G d d      } d } | |      }t        j                  |      t        j                  |      k(  sJ d}t        j                  j                  dkD  rd}t        j                  j
                  dk(  rt        j                  j                  dkD  rd}t        j                  j
                  d	k(  rt        j                  j                  d
kD  rd}t        j                  j
                  d	kD  rd}|r7t        |       J t        j                  dd f      ft        j                  | <   t        |       dk(  sJ y )Nc                   (    e Zd Zd Zd Zed        Zy).test_inspect_wrapped_property.<locals>.Wrappedc                     || _         y r   rx   r   s     r   r   z7test_inspect_wrapped_property.<locals>.Wrapped.__init__  r   r   c                 &     | j                   |i |S r   rx   )rW   r6   r7   s      r   rX   z7test_inspect_wrapped_property.<locals>.Wrapped.__call__  s    499d-f--r   c                     | j                   S r   rx   rV   s    r   __wrapped__z:test_inspect_wrapped_property.<locals>.Wrapped.__wrapped__  s    99r   N)r`   ra   rb   r   rX   rc   r  r   r   r   Wrappedr    s     		. 
	 
	r   r  c                     | S r   r   r&   s    r   r    z/test_inspect_wrapped_property.<locals>.<lambda>  s    Q r   Tr-   F   rL      r(   r   c                      y r   r   rx   s    r   r    z/test_inspect_wrapped_property.<locals>.<lambda>  rn   r   r#   )r   r   r   r   majorminormicror   r   r   r   )r  r   wrappedinspectbrokens       r   test_inspect_wrapped_propertyr    s   	 	 DdmGT"g&7&7&@@@@
 M
!
#(8(8(>(>(B
#(8(8(>(>(B
" )111%*%5%5q:K6L%M$O!W%***r   rr   )&rs   r   r   r   r   r   toolz.functoolzr   r   r   r   r   r   r	   toolz._signaturesr
   _signaturesr   toolz.utilsr   r   r2   rF   rf   rj   ru   ry   r   r   r   r   r   r   r   r   r   r   r  r   r   r   <module>r     s        
 K K K & ! 	10 , @#F #0E S"lD
A0
@"4+
+$	& 1>% %$PR:0>fB!+r   