o
    m9:j                     @   s^   d dl Z d dlmZ de jdeee jdf eef fddZde jded	ede j	fd
dZ
dS )    N)Anysigreturn.c                 C   sd   t | j }d}d}|D ]}|j}|tjjtjjfv rd}|tjjtjj	fv r,|d7 }q|||fS )zr
    Returns tuple(sig.parameters.values()), if any has VAR_POSITIONAL or VAR_KEYWORD, and the max_positional
    Fr   T   )
tuple
parametersvalueskindinspect	ParameterVAR_POSITIONALVAR_KEYWORDPOSITIONAL_ONLYPOSITIONAL_OR_KEYWORD)r   paramshas_var_argsmax_positionalpr	    r   [/home/nk/hobo-godmode/plappi-mvp/.venv/lib/python3.10/site-packages/torch/utils/_inspect.py_signature_metadata   s   
r   argskwargsc                 O   s  t | \}}}|r| j|i |S t|}||kr#td| d| i }d}|D ]}	|	j}
|	j}|tjju rb|
|v rCtd|
 d||k rR|| ||
< |d7 }q)|	j	tjj
u ratd|
 dq)|tjju r||k r|
|v rxtd|
 d|| ||
< |d7 }q)|
|v r||
 ||
< q)|	j	tjj
u rtd|
 dq)|tjju r|
|v r||
 ||
< q)|	j	tjj
u rtd|
 dq)|D ]}
|
| jvrtd	|
 dqt| |S )
z
    Fast path for inspect.Signature.bind() for signatures without
    VAR_POSITIONAL or VAR_KEYWORD parameters. Falls back to sig.bind()
    for signatures that contain *args or **kwargs.
    z,Too many positional arguments: expected max z, got r   zAGot some positional-only arguments passed as keyword arguments: ''r   zMissing required argument 'zMultiple values for argument 'z$Got an unexpected keyword argument ')r   bindlen	TypeErrornamer	   r
   r   r   defaultemptyr   KEYWORD_ONLYr   BoundArguments)r   r   r   r   r   r   len_args	argumentsarg_ir   r   r	   r   r   r   
_fast_bind   s\   



r%   )r
   typingr   	Signaturer   r   boolintr   r!   r%   r   r   r   r   <module>   s     
