
    g                         d dl mZ d dlmZ ddlZddlZ	 ddlmZmZ d Z
d Zd Zd	 Zd
 Zy# e$ r ddl	mZmZ Y w xY w)   )matchers)contains_strict    N)	signature	Parameterc                 "   t        | |      }t        j                  |       rTt        j                  |      s?t	        | j
                  j                  |      t              st        j                  |d       }	 t        |      S # t        $ r Y y w xY wN)getattrinspectisclassismethod
isinstance__dict__getstaticmethod	functoolspartialr   	Exception)objmethod_namemethods      F/var/www/openai/venv/lib/python3.12/site-packages/mockito/signature.pyget_signaturer      sw    S+&F 	  (3<<++K8,G""640   s   7
B 	BBc                 *     | j                   |i | | S r	   )bind)sigargskwargss      r   match_signaturer       s    CHHdfJ    c                    t        |t              rt        |      dk(  ry t        |       }| j                  j                         D cg c]3  \  }}|j                  t        j                  t        j                  fvr|5 }}}| j                  |      }  | j                  |r|d d   | S |  | S t        |t        j                        }t        j                  |v }|r/|j                         }|j!                  t        j                         |s|rg	  | j"                  |i | |rPt        |       sEt%        |       }	t        |      t'        |      z
  }
t        |      }|
|z   }|dz   |	kD  rt)        d      | S  | j"                  |i | | S c c}}w # t(        $ r4}t+        |      }d|v rt)        d      d|v r d|v r d	|v r Y d }~| S d }~ww xY w)
Nr   )
parametersz%no keyword argument for **kwargs leftztoo many positional argumentszno argument for *args leftzmultiple values for argumentztoo many keyword argumentsz"got an unexpected keyword argument)r   Ellipsislenhas_var_keywordr"   itemskindr   KEYWORD_ONLYVAR_KEYWORDreplacebind_partialr   ARGS_SENTINELKWARGS_SENTINELcopypopr   positional_argumentsint	TypeErrorstr)r   r   r   
has_kwargsnpparamsargs_providedkwargs_providedpos_argslen_args
len_kwargsprovided_argseerrors                  r   %match_signature_allowing_placeholdersrA   %   s   
 tX& t9>$S)

 !$ 4 4 6 < 61VVI$:$:$-$9$9$; ;  6 < kkVk, 	
49>\ J] 9=>\ JU (h.D.DE #22f<[[]FJJx//0 OE$)&) #?3+?3C8H"4y3}+==H!$VJ$,z$9M %q(83'CE E J CHHd%f%Ji<.  	A2e;#$@AA1U:/5875@ A* J;	s   8FF 	G)G

Gc           	          t        | j                  j                         D cg c]3  \  }}|j                  t        j
                  t        j                  fv r|5 c}}      S c c}}w r	   )r%   r"   r'   r(   r   POSITIONAL_ONLYPOSITIONAL_OR_KEYWORD)r   r6   r7   s      r   r1   r1   m   sf    cnn224 @4da66i77'==? ? 4 @ A A @s   8A#
c                 V    t        d | j                  j                         D              S )Nc              3   ^   K   | ]%  \  }}|j                   t        j                  u r| ' y wr	   )r(   r   r*   ).0r6   r7   s      r   	<genexpr>z"has_var_keyword.<locals>.<genexpr>s   s.      33TQ&&I111 3s   +-)anyr"   r'   )r   s    r   r&   r&   r   s(     3S^^113 3 3 3r    ) r   utilsr   r   r   r   r   ImportErrorfuncsigsr   r   rA   r1   r&    r    r   <module>rO      sM     "  .,"
EPA
3Q  .--.s   . >>