
    Ki                    v    U d Z ddlmZ ddlZddlmZ ddlmZ ddlm	Z	 i Z
ded	<   dd
Zi Zded<   	 	 	 	 ddZy)z1Signature and dependency parameter introspection.    )annotationsN)Callable)Any   )
Dependencyz+dict[Callable[..., Any], inspect.Signature]_signature_cachec                    | t         v r	t         |    S t        | dd      }t        |t        j                        r|t         | <   |S t        j
                  |       }|t         | <   |S )z&Get a cached signature for a function.__signature__N)r   getattr
isinstanceinspect	Signature	signature)functionsignature_attrr   s      f/home/jay/workspace/scripts/.codegraph-venv/lib/python3.12/site-packages/uncalled_for/introspection.pyget_signaturer      sf    ##))X=N.'"3"34%3"!!(+I!*X    z4dict[Callable[..., Any], dict[str, Dependency[Any]]]_parameter_cachec                    | t         v r	t         |    S i }t        |       }|j                  j                         D ]/  \  }}t	        |j
                  t              s!|j
                  ||<   1 |t         | <   |S )z8Find parameters whose defaults are Dependency instances.)r   r   
parametersitemsr   defaultr   )r   dependenciesr   name	parameters        r   get_dependency_parametersr       s|     ##))/1Lh'I$//557 3ii''4!*!2!2L3 ".Xr   )r   Callable[..., Any]returnzinspect.Signature)r   r   r   zdict[str, Dependency[Any]])__doc__
__future__r   r   collections.abcr   typingr   baser   r   __annotations__r   r   r    r   r   <module>r'      sM    7 "  $  @B = B JL F K r   