U ÃÏ aßã@s†UddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlm Z dd lm Z dd lm Z dd lm Z dd lm Z dd lmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZe d¡Zeed<e d¡Zeed<e d¡Zeed<e d¡Zeed<e d¡Z eed<e d¡Z!eed<e d¡Z"eed<e d¡Z#eed<e d¡Z$eed<e d¡Zeed<e d ¡Z%eed <e d!¡Z&eed!<e d"¡Z'eed"<e d#¡Z(eed#<e d$¡Z)eed$<e d%¡Z*eed%<e d&¡Z+eed&<ed'd(hfed)d*hfed+d,hfed-d.hfe%d/d0hfe&d1d2hfe(d3d4hfe d5hfe!d6hfe"d7d8d9hfe#d:d;dhfe)d?d@dAhfe*dBdChfe'dDdEhfe+dFdGhfdHœZ,ee-eeee-ffedI<eee.dJœdKdL„Z/eeee.dMœdNdO„Z0eeeeedPœdQdR„Z1e eedSœdTdU„Z2e eedVœdWdX„Z3ee e e feedVœdYdZ„Z4e-eed[œd\d]„Z5d^S)_é)Ú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_PROPERTYZ TYPEENGNEÚ TYPEENGINEÚMAPPEDÚDECLARATIVE_BASEÚDECLARATIVE_METAÚMAPPED_DECORATORÚSYNONYM_PROPERTYÚCOMPOSITE_PROPERTYÚ DECLARED_ATTRÚMAPPER_PROPERTYÚAS_DECLARATIVEÚAS_DECLARATIVE_BASEÚDECLARATIVE_MIXINzsqlalchemy.sql.schema.Columnzsqlalchemy.sql.Columnz1sqlalchemy.orm.relationships.RelationshipPropertyz#sqlalchemy.orm.RelationshipPropertyz sqlalchemy.orm.decl_api.registryzsqlalchemy.orm.registryz(sqlalchemy.orm.properties.ColumnPropertyzsqlalchemy.orm.ColumnPropertyz/sqlalchemy.orm.descriptor_props.SynonymPropertyzsqlalchemy.orm.SynonymPropertyz1sqlalchemy.orm.descriptor_props.CompositePropertyz sqlalchemy.orm.CompositePropertyz(sqlalchemy.orm.interfaces.MapperPropertyzsqlalchemy.orm.MapperPropertyz"sqlalchemy.sql.type_api.TypeEnginez sqlalchemy.orm.attributes.Mappedz+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_mixin)ZColumnZRelationshipPropertyÚregistryZColumnPropertyZSynonymPropertyZCompositePropertyZMapperPropertyZ TypeEngineZMappedZdeclarative_baseZDeclarativeMetaZmappedZas_declarativeZas_declarative_baseZ declared_attrZdeclarative_mixinÚ_lookup)ÚinfoÚtype_idÚreturncCsD|jD]"}t |jd¡\}}||krq.qdS|dkr:dS|j|kS©N©NNF)Úmror(ÚgetÚnameÚfullname)r)r*ÚmrÚ check_type_idÚ fullnames©r5úZC:\Users\vtejo\AppData\Local\Temp\pip-unpacked-wheel-nyjtotrf\sqlalchemy\ext\mypy\names.pyÚ_has_base_type_idœs r7)r.r*r+cCsB|D]"}t |jd¡\}}||krq,qdS|dkr8dS|j|kSr,©r(r/r0r1)r.r*r2r3r4r5r5r6Ú _mro_has_idªsr9)Útype_ÚclsÚapir+cCsbd}| |j|¡}|dk r^t|jtƒrHt|jjƒ}t|tƒr^t|j ƒ}nt|jt ƒr^t|jƒ}|S©N) Zlookup_qualifiedr0Ú isinstanceÚnoderrÚtargetrÚ_type_id_for_named_nodeÚtyper)r:r;r<r*ÚsymÚ target_typer5r5r6Ú_type_id_for_unbound_type¸s      rE)Úcalleer+cCsrt|ttfƒrnt|jtƒr$t|jƒSt|jtƒrTt|jjƒ}t|t ƒrnt |j j ƒ}nt|jt ƒrjt|ƒ}nd}|Sr=)r>r r r?r Ú_type_id_for_funcdefrrr@rÚ_type_id_for_fullnamerBr1rrA)rFrDr*r5r5r6Ú_type_id_for_calleeÉs       rI)r?r+cCs8|jr4t|jtƒr4t|jjƒ}t|tƒr4t|jjƒSdSr=)rBr>rrÚret_typerrHr1)r?rJr5r5r6rGØs    rGcCs<t |jd¡\}}|dks"|dkr&dS|j|kr4|SdSdS)Nr-r8)r?r*r4r5r5r6rAâs  rA)r1r+cCsJ| d¡}|d}t |d¡\}}|dks2|dkr6dS||krB|SdSdS)NÚ.éÿÿÿÿr-)Úsplitr(r/)r1ÚtokensZ immediater*r4r5r5r6rHïs rHN)6ÚtypingrrrrrrZ mypy.nodesrr r r r r rrZ mypy.pluginrZ mypy.typesrrrrÚrÚsymbolrÚintÚ__annotations__rrrrrrrrr r!r"r#r$r%r&r(ÚstrÚboolr7r9rErIrGrArHr5r5r5r6Úsü                    þþþþþþþþþþþþþþýþ ýþ þþýþ þþþþþþŸ"kþ  þ