o
    Á=aW  ã                	   @   s¾  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 d¡Zeed< e d¡Zeed< e d¡Zeed< e d¡Zeed< e d¡Z eed< e d¡Z!eed< e d¡Z"eed< e d¡Z#eed< e d¡Z$eed< e d¡Zeed< e d ¡Z%eed < e d!¡Z&eed!< e d"¡Z'eed"< e d#¡Z(eed#< e d$¡Z)eed$< e d%¡Z*eed%< e d&¡Z+eed&< i d'ed(d)hf“d*ed+d,hf“d-ed.d/hf“d0ed1d2hf“d3e%d4d5hf“d6e&d7d8hf“d9e(d:d;hf“d<e d=hf“d>e!d?hf“d@e"h dA£f“dBe#h dC£f“dDe$dEdFhf“dGe)h dH£f“dIe*dJdKhf“dLe'dMdNhf“dOe+dPdQhf“Z,ee-eeee- f f edR< dSedTedUe.fdVdW„Z/dXee dTedUe.fdYdZ„Z0d[ed\ed]edUee fd^d_„Z1d`e	dUee fdadb„Z2dceeeef dUee fddde„Z3dfe-dUee fdgdh„Z4diS )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Ú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ÚMappedz sqlalchemy.orm.attributes.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Ú_lookupÚinfoÚtype_idÚreturnc                 C   sD   | j D ]}t |jd¡\}}||kr nqdS |d u rdS |j|v S ©N©NNF)ÚmrorA   ÚgetÚnameÚfullname)rB   rC   ÚmrÚcheck_type_idÚ	fullnames© rN   úO/var/www/html/gps/gps/lib/python3.10/site-packages/sqlalchemy/ext/mypy/names.pyÚhas_base_type_idœ   s   
ÿ
rP   rG   c                 C   sB   | D ]}t  |jd¡\}}||kr nqdS |d u rdS |j|v S rE   ©rA   rH   rI   rJ   )rG   rC   rK   rL   rM   rN   rN   rO   Ú
mro_has_idª   s   ÿ
rR   Útype_ÚclsÚapic                 C   s`   |  | j| ¡}|d ur.t|jtƒr#t|jjƒ}t|tƒr!t|j	ƒS d S t|jt
ƒr.t|jƒS d S ©N)Úlookup_qualifiedrI   Ú
isinstanceÚnoder   r   Útargetr   Útype_id_for_named_nodeÚtyper   )rS   rT   rU   ÚsymÚtarget_typerN   rN   rO   Útype_id_for_unbound_type¸   s   

ý
r_   Úcalleec                 C   s¢   t | ttfƒrOt | jtƒr,| jjr*t | jjtƒr*t| jjjƒ}t |t	ƒr*t
|jjƒS d S t | jtƒrEt| jjƒ}t |t	ƒrCt
|jjƒS d S t | jtƒrOt| ƒS d S rV   )rX   r   r   rY   r
   r\   r   r   Úret_typer   Útype_id_for_fullnamerJ   r   rZ   r   r[   )r`   ra   r^   rN   rN   rO   Útype_id_for_calleeÇ   s   

þrc   rY   c                 C   s8   t  | jd¡\}}|d u s|d u rd S | j|v r|S d S )NrF   rQ   )rY   rC   rM   rN   rN   rO   r[   Ú   s   
r[   rJ   c                 C   sF   |   d¡}|d }t |d¡\}}|d u s|d u rd S | |v r!|S d S )NÚ.éÿÿÿÿrF   )ÚsplitrA   rH   )rJ   ÚtokensÚ	immediaterC   rM   rN   rN   rO   rb   ç   s   
rb   N)5Ú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'   rA   ÚstrÚboolrP   rR   r_   rc   r[   rb   rN   rN   rN   rO   Ú<module>   s0  þþÿþþøþþñþþêþþã$þþÜ+þþÕ
2Î
3Í4þÌ<þÄDþþ¼KþµSþþ­Zþþ¦aþþ Ÿkÿÿÿ
þÿ
þ