
    uYf                     |   d dl Zd dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dlm
Z
 d d	lmZ d d
lmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ  edD  ch c]  } d| z  	 c}       Z eddh      ZdedefdZdeddfdZ G d de      Zdedej,                  e   fdZyc c} w )    N)expr_to_unanalyzed_type)AssignmentStmt)CallExpr)ClassDef)
MemberExpr)NameExpr)StrExpr)Var)ClassDefContext)MethodContext)Plugin)make_simplified_union)FunctionLike)Instance)
ProperType)Type)vdvarderzenvier.env.Env.%sz	envier.Enz
envier.Envctxreturnc                 8   | j                   d   d   }t        |t              r0t        | j                  d   d   | j
                  j                        S t        |t              sJ |       t        |j                  D ch c]  }|j                   c}      S c c}w )Nr   )	arg_types
isinstancer   r   argsapioptionsr   r   itemsret_type)r   arg_type_s      K/var/www/highfloat_scraper/venv/lib/python3.12/site-packages/envier/mypy.py_envier_attr_callbackr$      sv    }}Q"H(H%&sxx{1~swwGGh-7x7- hnn!E!**!EFF!Es   =Bc                 T   | j                   j                  j                  D ]z  }t        |t              r(|j
                  }t        |j                        dk7  sft        |t              rVt        j                  t        t        j                  t        |j                        j                        j                  t         vr|j                  \  }t        |t              rt        |j"                  t$              sJ |       | j&                  j)                  t+        |j,                  d   | j&                  j.                              |j"                  _        d|_        =t        |t4              sO|j6                  D ch c]  }|j                   c}t         z  s|d|j8                  j:                  v sd |j                  j                  D        D ]*  }d|j                  D ch c]  }|j<                   c}v s* n  y t        |j
                  t>              sJ |j
                         | j                   j8                  j:                  jA                  |j<                        | j                   j8                  j:                  |j
                  jB                  <   } y c c}w c c}w )N   r   F__item__c              3   B   K   | ]  }t        |t              s|  y wN)r   r   ).0r"   s     r#   	<genexpr>z._envier_base_class_callback.<locals>.<genexpr>D   s     Uz!^7T!Us   )"clsdefsbodyr   r   rvaluelenlvaluesr   tcastr   r   calleeexprfullname_envier_base_classesnoder
   r   	anal_typer   r   r   typeis_inferred_defr   base_type_exprsinfonamesnamer	   popvalue)r   stmtdeclattrr"   ss         r#   _envier_base_class_callbackrF   &   s   !! 'WdN+;;DDLL!Q&!$166(AFF:t{{$C$H$HIRR+,
 llGTdH-*TYY2LRdRL WW..'		!cggooFDIIN $)D h'
 %)$8$8 

$%)3tyy)FUTYY^^U A!aii%@aff%@@  "!((G4>ahh>4 69WW\\5G5G5K5KDII5V""188>>2O'W4 &As   >J &J%
c                       e Zd Zdedej
                  ej                  egef      fdZ	dedej
                  ej                  e
gdf      fdZy)EnvierPluginr6   r   c                      |t         v rt        S y r)   )_envier_attr_makersr$   selfr6   s     r#   get_method_hookzEnvierPlugin.get_method_hookR   s     ** )(    Nc                      |t         v rt        S y r)   )r7   rF   rK   s     r#   get_base_class_hookz EnvierPlugin.get_base_class_hook]   s     ++ /.rN   )__name__
__module____qualname__strr2   OptionalCallabler   r   rM   r   rP    rN   r#   rH   rH   Q   s_    			
AJJ45	6		
AJJ0$67	8rN   rH   versionc                     t         S r)   )rH   )rX   s    r#   pluginrZ   h   s    rN   )typingr2   mypy.exprtotyper   
mypy.nodesr   r   r   r   r   r	   r
   mypy.pluginr   r   r   mypy.typeopsr   
mypy.typesr   r   r   r   	frozensetrJ   r7   r$   rF   rH   rT   rZ   )ms   0r#   <module>rc      s     3 %   !    ' %  . #  !   &>?1?  !+|!<= G} G G(W_ (W (WV6 .C AFF<0 e @s   +B9