
    ":h              	          d dl Z d dlmZmZmZ d dlmZ d dlmZm	Z	 d dl
mZ d dlZ e j                  ej                        Zdedee	   fdZ G d	 d
e	      ZdeddfdZdej(                  dede j*                  deej,                     fdZy)    N)CallableOptionalType)nodes)DynamicClassDefContextPlugin)dataclassesversionreturnc                     t         S )N)MarshmallowDataclassPlugin)r
   s    m/var/www/html/turnos/venv/lib/python3.12/site-packages/ccxt/static_dependencies/marshmallow_dataclass/mypy.pypluginr      s    %%    c                   :    e Zd Zdedeeegdf      fdZdefdZy)r   fullnamer   Nc                     |dk(  rt         S y )Nzmarshmallow_dataclass.NewType)new_type_hookselfr   s     r   get_dynamic_class_hookz1MarshmallowDataclassPlugin.get_dynamic_class_hook   s     66  r   c                 .    |dk(  rt         j                  S y )Nzmarshmallow_dataclass.dataclass)r	   dataclass_class_maker_callbackr   s     r   get_class_decorator_hookz3MarshmallowDataclassPlugin.get_class_decorator_hook   s    88===r   )	__name__
__module____qualname__strr   r   r   r   r    r   r   r   r      s6    	(23T9:	; r   r   ctxc                 N   t        | j                  dt              }t        |t        j
                        sy|j                  }t        |t        j                        sy| j                  j                  | j                  t	        j                  t        j                  |             y)zs
    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      sj     388UM
:Cc5==)88DdENN+GG!!#((E,A,A%**d,STr   r$   r,   sigc                    g }i }t        | j                  | j                        D ]  \  }}||j                  |       |||<     	  |j                  |i |}	 |j                  |   S # t
        $ r Y yw xY w# t        $ r Y yw xY w)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$   r,   r0   r4   kwargsarg_name	arg_value
bound_argss           r   r#   r#   .   s     DF"4>>499= ))KK	"(F8	)
SXXt.v.
##D))    s$   A) A8 )	A54A58	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>rI      s     + +  6 $ !!!"7"?"?@&C &DL & U- U$ U
.. #*1*;*;er   