
    E#i              	       $   S SK r S SKJrJrJr  S SKJr  S SKJrJ	r	  S SK
Jr  S SKr\ R                  " \R                  5      rS\S\\	   4S jr " S	 S
\	5      rS\SS4S jrS\R(                  S\S\ R*                  S\\R,                     4S jrg)    N)CallableOptionalType)nodes)DynamicClassDefContextPlugin)dataclassesversionreturnc                     [         $ )N)MarshmallowDataclassPlugin)r
   s    m/home/james-whalen/.local/lib/python3.13/site-packages/ccxt/static_dependencies/marshmallow_dataclass/mypy.pypluginr      s    %%    c                   F    \ rS rSrS\S\\\/S4      4S jrS\4S jr	Sr
g)r      fullnamer   Nc                     US:X  a  [         $ g )Nzmarshmallow_dataclass.NewType)new_type_hookselfr   s     r   get_dynamic_class_hook1MarshmallowDataclassPlugin.get_dynamic_class_hook   s     66  r   c                 0    US:X  a  [         R                  $ g )Nzmarshmallow_dataclass.dataclass)r	   dataclass_class_maker_callbackr   s     r   get_class_decorator_hook3MarshmallowDataclassPlugin.get_class_decorator_hook   s    88===r    )__name__
__module____qualname____firstlineno__strr   r   r   r   r   __static_attributes__r   r   r   r   r      s6    	(23T9:	; r   r   ctxc                 d   [        U R                  S[        5      n[        U[        R
                  5      (       d  gUR                  n[        U[        R                  5      (       d  gU R                  R                  U R                  [        R                  " [        R                  U5      5        g)zg
Dynamic class hook for :func:`marshmallow_dataclass.NewType`.

Uses the type of the ``typ`` argument.
typN)_get_arg_by_namecall_NEW_TYPE_SIG
isinstancer   RefExprnodeTypeInfoapiadd_symbol_table_nodenameSymbolTableNodeGDEF)r%   r'   infos      r   r   r      sp     388UM
:Cc5==))88DdENN++GG!!#((E,A,A%**d,STr   r)   r1   sigc                    / n0 n[        U R                  U R                  5       H  u  pVUc  UR                  U5        M  XdU'   M!      UR                  " U0 UD6n UR                  U   $ ! [
         a     gf = f! [         a     gf = f)z
Get value of argument from a call.

:return: The argument value, or ``None`` if it cannot be found.

.. warning::
    This probably doesn't yet work for calls with ``*args`` and/or ``*kwargs``.
N)zip	arg_namesargsappendbind	TypeError	argumentsKeyError)r)   r1   r5   r9   kwargsarg_name	arg_value
bound_argss           r   r(   r(   .   s     DF"4>>499=KK	"(8	  >
XXt.v.
##D))    s$   	A+ A; +
A87A8;
BB)inspecttypingr   r   r   mypyr   mypy.pluginr   r   mypy.pluginsr	   marshmallow_dataclass	signatureNewTyper*   r#   r   r   r   CallExpr	Signature
Expressionr(   r   r   r   <module>rN      s     + +  6 $ !!"7"?"?@&C &DL & U- U$ U
.. #*1*;*;er   