
    +h              	          U 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 d dlmZ d dlmZ d dlmZ ddlmZ  ej2                  d      Zeed<    ej2                  d      Zeed<    ej2                  d      Zeed<    ej2                  d      Zeed<    ej2                  d      Z eed<    ej2                  d      Z!eed<    ej2                  d      Z"eed<    ej2                  d      Z#eed<    ej2                  d      Z$eed<    ej2                  d      Zeed<    ej2                  d       Z%eed <    ej2                  d!      Z&eed!<    ej2                  d"      Z'eed"<    ej2                  d#      Z(eed#<    ej2                  d$      Z)eed$<    ej2                  d%      Z*eed%<    ej2                  d&      Z+eed&<    ej2                  d'      Z,eed'<   d(Z-d)Z.d*Z/d+Z0i d,ed-d.hfd/ed0d1hfd2ed3d4hfd5ed6d7hfd8e%d9d:hfd;e&d<d=hfd>e(d?d@hfdAe dBhfdCe!d+hfdDe"h dEfdFe#h dGfdHe$dIdJhfdKe)h dLfdMe*dNdOhfdPe'dQdRhfdSe+dTdUhfdVe,dWhfZ1ee2eeee2   f   f   edX<   dYedZed[e3fd\Z4d]ee   dZed[e3fd^Z5d_ed`edaed[ee   fdbZ6dce	d[ee   fddZ7deeeeef   d[ee   fdfZ8dge2d[ee   fdhZ9yi)j    )Dict)List)Optional)Set)Tuple)Union)ClassDef)
Expression)FuncDef)
MemberExpr)NameExpr)
SymbolNode)	TypeAlias)TypeInfo)SemanticAnalyzerPluginInterface)CallableType)get_proper_type)Instance)UnboundType   )utilCOLUMNRELATIONSHIPREGISTRYCOLUMN_PROPERTY	TYPEENGNE
TYPEENGINEMAPPEDDECLARATIVE_BASEDECLARATIVE_METAMAPPED_DECORATORSYNONYM_PROPERTYCOMPOSITE_PROPERTYDECLARED_ATTRMAPPER_PROPERTYAS_DECLARATIVEAS_DECLARATIVE_BASEDECLARATIVE_MIXINQUERY_EXPRESSIONzbuiltins.objectzbuiltins.strzbuiltins.listz sqlalchemy.orm.attributes.MappedColumnzsqlalchemy.sql.schema.Columnzsqlalchemy.sql.ColumnRelationshipPropertyz1sqlalchemy.orm.relationships.RelationshipPropertyz#sqlalchemy.orm.RelationshipPropertyregistryz sqlalchemy.orm.decl_api.registryzsqlalchemy.orm.registryColumnPropertyz(sqlalchemy.orm.properties.ColumnPropertyzsqlalchemy.orm.ColumnPropertySynonymPropertyz/sqlalchemy.orm.descriptor_props.SynonymPropertyzsqlalchemy.orm.SynonymPropertyCompositePropertyz1sqlalchemy.orm.descriptor_props.CompositePropertyz sqlalchemy.orm.CompositePropertyMapperPropertyz(sqlalchemy.orm.interfaces.MapperPropertyzsqlalchemy.orm.MapperProperty
TypeEnginez"sqlalchemy.sql.type_api.TypeEngineMappeddeclarative_base>   sqlalchemy.orm.declarative_base(sqlalchemy.orm.decl_api.declarative_base+sqlalchemy.ext.declarative.declarative_baseDeclarativeMeta>   sqlalchemy.orm.DeclarativeMeta'sqlalchemy.orm.decl_api.DeclarativeMeta*sqlalchemy.ext.declarative.DeclarativeMetamappedz'sqlalchemy.orm.decl_api.registry.mappedzsqlalchemy.orm.registry.mappedas_declarative>   sqlalchemy.orm.as_declarative&sqlalchemy.orm.decl_api.as_declarative)sqlalchemy.ext.declarative.as_declarativeas_declarative_basez4sqlalchemy.orm.decl_api.registry.as_declarative_basez+sqlalchemy.orm.registry.as_declarative_basedeclared_attrz%sqlalchemy.orm.decl_api.declared_attrzsqlalchemy.orm.declared_attrdeclarative_mixinz)sqlalchemy.orm.decl_api.declarative_mixinz sqlalchemy.orm.declarative_mixinquery_expressionzsqlalchemy.orm.query_expression_lookupinfotype_idreturnc                     | j                   D ],  }t        j                  |j                  d      \  }}||k(  s, n y|y|j                  |v S NNNF)mrorD   getnamefullname)rE   rF   mrcheck_type_id	fullnamess        L/var/www/html/venv/lib/python3.12/site-packages/sqlalchemy/ext/mypy/names.pyhas_base_type_idrS      sV    hh #*;;rww#E yG#
 ;;)##    rK   c                     | D ],  }t         j                  |j                  d      \  }}||k(  s, n y|y|j                  |v S rI   rD   rL   rM   rN   )rK   rF   rO   rP   rQ   s        rR   
mro_has_idrW      sR     #*;;rww#E yG#
 ;;)##rT   type_clsapic                 \   |j                  | j                  |       }|t        |j                  t              rEt        |j                  j                        }t        |t              rt        |j                        S y t        |j                  t              rt        |j                        S y N)lookup_qualifiedrM   
isinstancenoder   r   targetr   type_id_for_named_nodetyper   )rX   rY   rZ   symtarget_types        rR   type_id_for_unbound_typere      s     

uzz5
1C
chh	*)#((//:K+x0-k.>.>??  (+)#((33rT   calleec                    t        | t        t        f      r;t        | j                  t              r| j                  j
                  r|t        | j                  j
                  t              rXt        | j                  j
                  j                        }t        |t              rt        |j
                  j                        S y t        | j                  t              rOt        | j                  j                        }t        |t              rt        |j
                  j                        S y t        | j                  t              rt        |       S y r\   )r^   r   r   r_   r   rb   r   r   ret_typer   type_id_for_fullnamerN   r   r`   r   ra   )rf   rh   rd   s      rR   type_id_for_calleerj      s    &:x01fkk7+{{Jv{{/?/?$N*6;;+;+;+D+DEh1/0F0FGGY/)&++*<*<=K+x0+K,<,<,E,EFF  X.)&11rT   r_   c                 t    t         j                  | j                  d      \  }}||y | j                  |v r|S y )NrJ   rV   )r_   rF   rQ   s      rR   ra   ra      s>     !TYY=GY)+	)	#rT   rN   c                 x    | j                  d      }|d   }t        j                  |d      \  }}||y | |v r|S y )N.rJ   )splitrD   rL   )rN   tokens	immediaterF   rQ   s        rR   ri   ri      sK    ^^C Fr
I Y=GY)+	Y	rT   N):typingr   r   r   r   r   r   
mypy.nodesr	   r
   r   r   r   r   r   r   mypy.pluginr   
mypy.typesr   r   r   r    r   symbolr   int__annotations__r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   NAMED_TYPE_BUILTINS_OBJECTNAMED_TYPE_BUILTINS_STRNAMED_TYPE_BUILTINS_LISTNAMED_TYPE_SQLA_MAPPEDrD   strboolrS   rW   re   rj   ra   ri    rT   rR   <module>r      s          !  !  !    7 # &  " dkk(# #DKK/c /J'# '"t{{#45 5$++k*
C *dkk(# ##$67 # 7#$67 # 7#$67 # 7"t{{#45 5#$67 # 7%$++&:; C ; T[[1s 1"t{{#45 5!dkk"23 3&4;;'<= S =$%89 3 9#$67 # 7 / ( * ; l,*#	
l, ?1	
l, .%	
l,, 6+	
-l,: =,	
;l,H ?.	
Il,V 6+	
Wl,d : DEFel,f v:;<gl,h 	
il,x 	
yl,H 5,	
Il,V 	
Wl,f B9	
gl,t 3*	
ul,B 7.	
Cl,P 	*+Ql,c5c#h''	( l^$8 $c $d $$DN $S $T $%,Kc]z hsm &

*j0
1
c]
3 8C= rT   