1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
U
¸ý°d.,ã@sUddlmZddlmZddlmZddlmZddlmZddlmZddlmZddl    m
Z
dd    l    m Z dd
l    m Z dd l    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+¡Z/de!d+<e d,¡Z0de!d,<e d-¡Z1de!d-<d.Z2d/Z3d0Z4d1Z5e d2d3hfe"d4d5d6d7hfe"d4d5d6d7hfe#d8d9hfe$d:d;d<d=hfe$d:d;d<d=hfe*d>d?d@dAhfe*d>d?d@dAhfe+dBdCdDdEhfe+dBdCdDdEhfe-dFdGhfe%dHhfe&e5hfe'dIdJdKhfe(dLdMdNhfe)dOdPhfe.dQdRdShfe/dTdUhfe,dVdWhfe0dXdYhfe1dZd[hfd\œZ6d]e!d^<d_dd`daœdbdc„Z7dddd`deœdfdg„Z8dhdidjdkdlœdmdn„Z9dodkdpœdqdr„Z:dsdkdtœdudv„Z;dwdkdxœdydz„Z<dod{d|œd}d~„Z=dS)€é)Ú 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_PROPERTYZ    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.Mappedzsqlalchemy.sql.schema.Columnzsqlalchemy.sql.Columnz)sqlalchemy.orm.relationships.Relationshipz1sqlalchemy.orm.relationships.RelationshipPropertyzsqlalchemy.orm.Relationshipz#sqlalchemy.orm.RelationshipPropertyz sqlalchemy.orm.decl_api.registryzsqlalchemy.orm.registryz-sqlalchemy.orm.properties.MappedSQLExpressionz"sqlalchemy.orm.MappedSQLExpressionz(sqlalchemy.orm.properties.ColumnPropertyzsqlalchemy.orm.ColumnPropertyz'sqlalchemy.orm.descriptor_props.Synonymzsqlalchemy.orm.Synonymz/sqlalchemy.orm.descriptor_props.SynonymPropertyzsqlalchemy.orm.SynonymPropertyz)sqlalchemy.orm.descriptor_props.Compositezsqlalchemy.orm.Compositez1sqlalchemy.orm.descriptor_props.CompositePropertyz sqlalchemy.orm.CompositePropertyz(sqlalchemy.orm.interfaces.MapperPropertyzsqlalchemy.orm.MapperPropertyz"sqlalchemy.sql.type_api.TypeEnginez+sqlalchemy.ext.declarative.declarative_basezsqlalchemy.orm.declarative_basez(sqlalchemy.orm.decl_api.declarative_basez*sqlalchemy.ext.declarative.DeclarativeMetazsqlalchemy.orm.DeclarativeMetaz'sqlalchemy.orm.decl_api.DeclarativeMetaz'sqlalchemy.orm.decl_api.registry.mappedzsqlalchemy.orm.registry.mappedz)sqlalchemy.ext.declarative.as_declarativez&sqlalchemy.orm.decl_api.as_declarativezsqlalchemy.orm.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)ZColumnZ RelationshipZRelationshipPropertyÚregistryZColumnPropertyZMappedSQLExpressionZSynonymZSynonymPropertyZ    CompositeZCompositePropertyZMapperPropertyZ
TypeEngineZMappedZdeclarative_baseZDeclarativeMetaZmappedZas_declarativeZas_declarative_baseZ declared_attrZdeclarative_mixinZquery_expressionzDict[str, Tuple[int, Set[str]]]Ú_lookuprÚbool)ÚinfoÚtype_idÚreturncCsD|jD]"}t |jd¡\}}||krq.qdS|dkr:dS|j|kS©N©NNF)Úmror/ÚgetÚnameÚfullname)r1r2ÚmrÚ check_type_idÚ    fullnames©r=úPd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\sqlalchemy/ext/mypy/names.pyÚhas_base_type_idÜs
r?zList[TypeInfo])r6r2r3cCsB|D]"}t |jd¡\}}||krq,qdS|dkr8dS|j|kSr4©r/r7r8r9)r6r2r:r;r<r=r=r>Ú
mro_has_idêsrArr rz Optional[int])Útype_ÚclsÚapir3cCs^| |j|¡}|dk    rZt|jtƒrDt|jjƒ}t|tƒrZt|j    ƒSnt|jt
ƒrZt|jƒSdS©N) Zlookup_qualifiedr8Ú
isinstanceÚnoderrÚtargetrÚtype_id_for_named_nodeÚtyper)rBrCrDÚsymÚ target_typer=r=r>Útype_id_for_unbound_typeøs  
 
rMr )Úcalleer3cCsft|ttfƒrbt|jtƒrnt|jjtƒrn|jjjrjt|jjjtƒrjt    |jjjj
ƒ}t|t ƒrjt |jj ƒSdSt|jtƒrÆ|jjrÂ|jjjrÂt|jjjtƒrÂt    |jjjj
ƒ}t|t ƒrÂt |jj ƒSdSt|jtƒr|jjrt|jjtƒrt    |jjj
ƒ}t|t ƒrt |jj ƒSdSt|jtƒrLt    |jjƒ}t|t ƒrbt |jj ƒSnt|jtƒrbt|ƒSdSrE)rFrrrGr ÚfuncrrJrrÚret_typerÚtype_id_for_fullnamer9rÚimplrrHrrI)rNrPrLr=r=r>Útype_id_for_calleesJÿ ÿ
  ÿþý
     rSz'Union[NameExpr, MemberExpr, SymbolNode])rGr3cCs<t |jd¡\}}|dks"|dkr&dS|j|kr4|SdSdS)Nr5r@)rGr2r<r=r=r>rI3s 
rIÚstr)r9r3cCsJ| d¡}|d}t |d¡\}}|dks2|dkr6dS||krB|SdSdS)NÚ.éÿÿÿÿr5)Úsplitr/r7)r9ÚtokensZ    immediater2r<r=r=r>rQ@s
rQr
)Úexprr3cCs,tdƒ}t|_t|dƒ}t||gtgdgƒS)NZ __sa_MappedZ_empty_constructorZarg1)rÚNAMED_TYPE_SQLA_MAPPEDr9rr
r    )rYZcolumn_descriptorZ member_exprr=r=r>Úexpr_to_mapped_constructorNs
ür[N)>Ú
__future__rÚtypingrrrrrrZ
mypy.nodesr    r
r r r rrrrrrrZ mypy.pluginrZ
mypy.typesrrrrÚrÚsymbolrÚ__annotations__rrr r!r"r#r$r%r&r'r(r)r*r+r,r-ZNAMED_TYPE_BUILTINS_OBJECTZNAMED_TYPE_BUILTINS_STRZNAMED_TYPE_BUILTINS_LISTrZr/r?rArMrSrIrQr[r=r=r=r>Ú<module>sZ                         þþüþ
üþ
þþüþ
üþ
üþ
üþ
üþ
üþ
þþýþ    ýþ    þþýþ    þþþþþþþþ€ì,