HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //usr/local/lib/python3.10/dist-packages/sqlalchemy/ext/mypy/__pycache__/names.cpython-310.pyc
o

���g�(�@s�UddlmZddlmZddlmZddlmZddlmZddlmZddlmZddl	m
Z
dd	l	mZdd
l	mZddl	m
Z
ddl	mZdd
l	mZddl	mZddl	mZddl	mZddl	mZddl	mZddl	mZddlmZddlmZddlmZddlmZddlmZddlmZe�d�Z de!d<e�d�Z"de!d<e�d�Z#de!d<e�d�Z$de!d<e�d �Z%de!d!<e�d"�Z&de!d"<e�d#�Z'de!d#<e�d$�Z(de!d$<e�d%�Z)de!d%<e�d&�Z*de!d&<e�d'�Z+de!d'<e�d(�Z,de!d(<e�d)�Z-de!d)<e�d*�Z.de!d*<e�d+�Z/de!d+<e�d,�Z0de!d,<e�d-�Z1de!d-<d.Z2d/Z3d0Z4d1Z5hd2�Z6id3e d4d5hf�d6e"e6f�d7e"e6f�d8e"e6f�d9e#d:d;hf�d<e$hd=�f�d>e$hd=�f�d?e*hd@�f�dAe*hd@�f�dBe+hdC�f�dDe+hdC�f�dEe-dFdGhf�dHe%dIhf�dJe&e5hf�dKe'hdL�f�dMe(hdN�f�dOe)dPdQhf�e.hdR�fe/dSdThfe,dUdVhfe0dWdXhfe1dYdZhfd[��Z7d\e!d]<d�dcdd�Z8d�dgdh�Z9d�dpdq�Z:d�dtdu�Z;d�dxdy�Z<d�d|d}�Z=d�d�d��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_EXPRESSIONzbuiltins.objectzbuiltins.strz
builtins.listzsqlalchemy.orm.base.Mapped>�sqlalchemy.orm.Relationship�#sqlalchemy.orm.RelationshipProperty�)sqlalchemy.orm.relationships.Relationship�1sqlalchemy.orm.relationships.RelationshipProperty�2sqlalchemy.orm.relationships._RelationshipDeclared�Columnzsqlalchemy.sql.schema.Columnzsqlalchemy.sql.Column�Relationship�RelationshipProperty�_RelationshipDeclared�registryz sqlalchemy.orm.decl_api.registryzsqlalchemy.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.Composite�1sqlalchemy.orm.descriptor_props.CompositeProperty�CompositeProperty�MapperPropertyz(sqlalchemy.orm.interfaces.MapperPropertyzsqlalchemy.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.mappedzsqlalchemy.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_attrzsqlalchemy.orm.declared_attrz)sqlalchemy.orm.decl_api.declarative_mixinz sqlalchemy.orm.declarative_mixinzsqlalchemy.orm.query_expressionz1sqlalchemy.orm._orm_constructors.query_expression)�as_declarative�as_declarative_base�
declared_attr�declarative_mixin�query_expressionzDict[str, Tuple[int, Set[str]]]�_lookup�infor�type_id�return�boolcCsD|jD]}t�|jd�\}}||krnqdS|durdS|j|vS�N�NNF)�mror_�get�name�fullname)r`ra�mr�
check_type_id�	fullnames�rm�D/usr/local/lib/python3.10/dist-packages/sqlalchemy/ext/mypy/names.py�has_base_type_id�s
�
rorf�List[TypeInfo]cCsB|D]}t�|jd�\}}||krnqdS|durdS|j|vSrd�r_rgrhri)rfrarjrkrlrmrmrn�
mro_has_id�s�
rr�type_r�clsr�apir�
Optional[int]cCs`|�|j|�}|dur.t|jt�r#t|jj�}t|t�r!t|j	�SdSt|jt
�r.t|j�SdS�N)�lookup_qualifiedrh�
isinstance�noderr�targetr�type_id_for_named_node�typer)rsrtru�sym�target_typermrmrn�type_id_for_unbound_type�s

�
r��calleer
cCsXt|ttf�r�t|jt�r6t|jjt�r6|jjjr4t|jjjt�r4t	|jjjj
�}t|t�r4t|jj
�SdSt|jt�rb|jjr`|jjjr`t|jjjt�r`t	|jjjj
�}t|t�r`t|jj
�SdSt|jt�r�|jjr�t|jjt�r�t	|jjj
�}t|t�r�t|jj
�SdSt|jt�r�t	|jj�}t|t�r�t|jj
�SdSt|jt�r�t|�SdSrw)ryrrrzr�funcrr}rr�ret_typer�type_id_for_fullnamerir�implrr{rr|)r�r�rrmrmrn�type_id_for_callee�sH�
�
���


�r�rz�'Union[NameExpr, MemberExpr, SymbolNode]cCs8t�|jd�\}}|dus|durdS|j|vr|SdS)Nrerq)rzrarlrmrmrnr|+s
r|ri�strcCsF|�d�}|d}t�|d�\}}|dus|durdS||vr!|SdS)N�.���re)�splitr_rg)ri�tokens�	immediaterarlrmrmrnr�8s
r��exprr
cCs,td�}t|_t|d�}t||gtgdg�S)N�__sa_Mapped�_empty_constructor�arg1)r�NAMED_TYPE_SQLA_MAPPEDrirr
r	)r��column_descriptor�member_exprrmrmrn�expr_to_mapped_constructorFs
�r�N)r`rrarrbrc)rfrprarrbrc)rsrrtrrurrbrv)r�r
rbrv)rzr�rbrv)rir�rbrv)r�r
rbr
)?�
__future__r�typingrrrrrr�
mypy.nodesr	r
rrr
rrrrrrr�mypy.pluginr�
mypy.typesrrrr�r�symbolr�__annotations__rrr 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_rorrr�r�r|r�r�rmrmrmrn�<module>s>����	�
��������$��-��6��?��H���
O�
P�Q��Y��a���i�	����������




,