
    [h(                    r   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 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j        d          Z de!d<    ej        d          Z"de!d<    ej        d          Z#de!d<    ej        d          Z$de!d<    ej        d           Z%de!d!<    ej        d"          Z&de!d"<    ej        d#          Z'de!d#<    ej        d$          Z(de!d$<    ej        d%          Z)de!d%<    ej        d&          Z*de!d&<    ej        d'          Z+de!d'<    ej        d(          Z,de!d(<    ej        d)          Z-de!d)<    ej        d*          Z.de!d*<    ej        d+          Z/de!d+<    ej        d,          Z0de!d,<    ej        d-          Z1de!d-<   d.Z2d/Z3d0Z4d1Z5h d2Z6i d3e d4d5hfd6e"e6fd7e"e6fd8e"e6fd9e#d:d;hfd<e$h d=fd>e$h d=fd?e*h d@fdAe*h d@fdBe+h dCfdDe+h dCfdEe-dFdGhfdHe%dIhfdJe&e5hfdKe'h dLfdMe(h dNfdOe)dPdQhfe.h dRfe/dSdThfe,dUdVhfe0dWdXhfe1dYdZhfd[Z7d\e!d]<   d|dcZ8d}dfZ9d~dnZ:ddqZ;ddtZ<ddwZ=ddzZ>d{S )    )annotations)Dict)List)Optional)Set)Tuple)Union)ARG_POS)CallExpr)ClassDef)	Decorator)
Expression)FuncDef)
MemberExpr)NameExpr)OverloadedFuncDef)
SymbolNode)	TypeAlias)TypeInfo)SemanticAnalyzerPluginInterface)CallableType)get_proper_type)Instance)UnboundType   )utilCOLUMNint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.base.Mapped>   sqlalchemy.orm.Relationship#sqlalchemy.orm.RelationshipProperty)sqlalchemy.orm.relationships.Relationship1sqlalchemy.orm.relationships.RelationshipProperty2sqlalchemy.orm.relationships._RelationshipDeclaredColumnzsqlalchemy.sql.schema.Columnzsqlalchemy.sql.ColumnRelationshipRelationshipProperty_RelationshipDeclaredregistryz sqlalchemy.orm.decl_api.registryzsqlalchemy.orm.registryColumnProperty>   sqlalchemy.orm.ColumnProperty"sqlalchemy.orm.MappedSQLExpression(sqlalchemy.orm.properties.ColumnProperty-sqlalchemy.orm.properties.MappedSQLExpressionMappedSQLExpressionSynonym>   sqlalchemy.orm.Synonymsqlalchemy.orm.SynonymProperty'sqlalchemy.orm.descriptor_props.Synonym/sqlalchemy.orm.descriptor_props.SynonymPropertySynonymProperty	Composite>   sqlalchemy.orm.Composite sqlalchemy.orm.CompositeProperty)sqlalchemy.orm.descriptor_props.Composite1sqlalchemy.orm.descriptor_props.CompositeProperty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>   sqlalchemy.orm.as_declarative&sqlalchemy.orm.decl_api.as_declarative)sqlalchemy.ext.declarative.as_declarativez4sqlalchemy.orm.decl_api.registry.as_declarative_basez+sqlalchemy.orm.registry.as_declarative_basez%sqlalchemy.orm.decl_api.declared_attrzsqlalchemy.orm.declared_attrz)sqlalchemy.orm.decl_api.declarative_mixinz sqlalchemy.orm.declarative_mixinzsqlalchemy.orm.query_expressionz1sqlalchemy.orm._orm_constructors.query_expression)as_declarativeas_declarative_basedeclared_attrdeclarative_mixinquery_expressionzDict[str, Tuple[int, Set[str]]]_lookupinfor   type_idreturnboolc                    | j         D ]-}t                              |j        d          \  }}||k    r n.dS |dS |j        |v S NNNF)mror`   getnamefullname)ra   rb   mrcheck_type_id	fullnamess        h/var/www/api.easyaligner.net/htdocs/venv_linux/lib/python3.11/site-packages/sqlalchemy/ext/mypy/names.pyhas_base_type_idrp      sa    h  #*;;rw#E#E yG##E $ uu;)##    rh   List[TypeInfo]c                    | D ]-}t                               |j        d          \  }}||k    r n.dS |dS |j        |v S rf   r`   ri   rj   rk   )rh   rb   rl   rm   rn   s        ro   
mro_has_idru      s_      #*;;rw#E#E yG##E $ uu;)##rq   type_r   clsr   apir   Optional[int]c                V   |                     | j        |           }|t          |j        t                    rCt          |j        j                  }t          |t                    rt          |j	                  S n.t          |j        t                    rt          |j                  S d S N)lookup_qualifiedrj   
isinstancenoder   r   targetr   type_id_for_named_nodetyper   )rv   rw   rx   symtarget_types        ro   type_id_for_unbound_typer      s     

uz5
1
1C
ch	** 	4)#(/::K+x00 @-k.>???@(++ 	4)#(3334rq   calleer   c                Z   t          | t          t          f          rt          | j        t                    rt          | j        j        t                    r| j        j        j        rut          | j        j        j        t                    rQt          | j        j        j        j
                  }t          |t                    rt          |j        j                  S d S t          | j        t                    r| j        j        r| j        j        j        rut          | j        j        j        t                    rQt          | j        j        j        j
                  }t          |t                    rt          |j        j                  S d S t          | j        t                    ry| j        j        rkt          | j        j        t                    rLt          | j        j        j
                  }t          |t                    rt          |j        j                  S d S t          | j        t                     rHt          | j        j                  }t          |t                    rt          |j        j                  S n)t          | j        t$                    rt'          |           S d S r{   )r}   r   r   r~   r   funcr   r   r   r   ret_typer   type_id_for_fullnamerk   r   implr   r   r   r   )r   r   r   s      ro   type_id_for_calleer      sH   &:x011 '2fk9-- &	2*Kg3
 3
 &	2 {$ H %|* * H +6;+;+@+IJJh11 H/0FGGG4%677 	2 HK$)H v{/4lCCH
 +6;+;+@+IJJh11 H/0FGGG4W-- 	2{ HJv{/?$N$N H*6;+;+DEEh11 H/0FGGG4Y// 	2)&+*<==K+x00 G+K,<,EFFFGX.. 	2)&1114rq   r~   'Union[NameExpr, MemberExpr, SymbolNode]c                n    t                               | j        d          \  }}||d S | j        |v r|S d S )Nrg   rt   )r~   rb   rn   s      ro   r   r   +  sD     !TY==GY)+t	)	#	#trq   rk   strc                    |                      d          }|d         }t                              |d          \  }}||d S | |v r|S d S )N.rg   )splitr`   ri   )rk   tokens	immediaterb   rn   s        ro   r   r   8  sX    ^^C  Fr
I Y==GY)+t	Y		trq   exprr   c                    t          d          }t          |_        t          |d          }t	          || gt
          gdg          S )N__sa_Mapped_empty_constructorarg1)r   NAMED_TYPE_SQLA_MAPPEDrk   r   r   r
   )r   column_descriptormember_exprs      ro   expr_to_mapped_constructorr   F  sN     //!7.0DEEK					  rq   N)ra   r   rb   r   rc   rd   )rh   rr   rb   r   rc   rd   )rv   r   rw   r   rx   r   rc   ry   )r   r   rc   ry   )r~   r   rc   ry   )rk   r   rc   ry   )r   r   rc   r   )?
__future__r   typingr   r   r   r   r   r	   
mypy.nodesr
   r   r   r   r   r   r   r   r   r   r   r   mypy.pluginr   
mypy.typesr   r   r   r    r   symbolr   __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_LISTr   _RelFullNamesr`   rp   ru   r   r   r   r   r    rq   ro   <module>r      s,   # " " " " " "                                                                   ! ! ! ! ! !       ! ! ! ! ! !       ( ( ( ( ( ( ! ! ! ! ! !                   7 7 7 7 7 7 # # # # # # & & & & & &       " " " " " "      dk(## # # # #DK// / / / /J'' ' ' ' '"t{#455 5 5 5 5$+k**
 * * * *dk(## # # # ##$677  7 7 7 7#$677  7 7 7 7#$677  7 7 7 7#$677  7 7 7 7%$+&:;;  ; ; ; ; T[11 1 1 1 1"t{#455 5 5 5 5!dk"233 3 3 3 3&4;'<==  = = = =$%899  9 9 9 9#$677  7 7 7 7 / ( * 5   L,*#	
L, \=1L, \=9L, lM:L, .%	
L,$ 	
 	
 	
%L,6 	
 	
 	
7L,H 	
 	
 	
IL,Z 	
 	
 	
[L,l 	
 	
 	
mL,~ 	
 	
 	
L,P 6+	
QL,^ : DEF_L,` v./0aL,b 	
 	
 	
cL,r 	
 	
 	
sL,B 5,	
CL,R 		
 	
 	
 	B9	
 	3*	
 	7.	
 	-?	
KL, L, L, L L L L^$ $ $ $$ $ $ $   ) ) ) )X
 
 
 
   	 	 	 	 	 	rq   