+
    }¯³j&  ã                  ó<  € R t ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt	 ^ RIH
t
 ^ RIHt ^ R	IHt ^ R
IHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIH t  ^ RIH!t! ^ RIHt ^RI"H#t# ^RI"H$t$ ^RI"H%t%  ]&! R4       ]'! R4      h  ]' d     Mi ; i ! R R ]4      t(R! R" lt)R# R$ lt*R% R& lt+R' R( lt,R) R* lt-R+ R, lt.R- R. lt/R/ R0 lt0R1 R2 lt1R3 R4 lt2R5 R6 lt3R7# )8z"
Mypy plugin for SQLAlchemy ORM.

)Úannotations)ÚCallable)ÚList)ÚOptional)ÚTuple)ÚType)ÚUnion)Únodes)Úcalculate_mro)ÚMroError)ÚBlock)ÚClassDef)ÚGDEF)ÚMypyFile)ÚNameExpr)ÚSymbolTable)ÚSymbolTableNode)ÚTypeInfo)ÚAttributeContext)ÚClassDefContext)ÚDynamicClassDefContext)ÚPlugin)ÚSemanticAnalyzerPluginInterface)Úget_proper_type)ÚInstance)Ú
decl_class)Únames)Úutilzsqlalchemy-stubszÙThe SQLAlchemy mypy plugin in SQLAlchemy 2.0 does not work with sqlalchemy-stubs or sqlalchemy2-stubs installed, as well as with any other third party SQLAlchemy stubs.  Please uninstall all SQLAlchemy stubs packages.c                  ój   € ] tR t^<tR R ltR R ltR R ltR R ltR	 R
 ltR R lt	R R lt
RtR# )ÚSQLAlchemyPluginc               ó    € V ^8„  d   QhRRRR/# )é   ÚfullnameÚstrÚreturnz2Optional[Callable[[DynamicClassDefContext], None]]© )Úformats   "Ú[/home/luca/screen-checking/.venv/lib/python3.14/site-packages/sqlalchemy/ext/mypy/plugin.pyÚ__annotate__ÚSQLAlchemyPlugin.__annotate__=   s   € ÷ ñ Øðà	;ñó    c                	ób   € \         P                  ! V4      \         P                  J d   \        # R # ©N)r   Útype_id_for_fullnameÚDECLARATIVE_BASEÚ_dynamic_class_hook©Úselfr"   s   &&r'   Úget_dynamic_class_hookÚ'SQLAlchemyPlugin.get_dynamic_class_hook=   s&   € ô ×%Ò% hÓ/´5×3IÑ3IÓIÜ&Ð&Ùr*   c               ó    € V ^8„  d   QhRRRR/# ©r!   r"   r#   r$   z+Optional[Callable[[ClassDefContext], None]]r%   )r&   s   "r'   r(   r)   D   s   € ÷ #ñ #Øð#à	4ñ#r*   c                	ó   € \         # r,   )Ú_fill_in_decoratorsr0   s   &&r'   Úget_customize_class_mro_hookÚ-SQLAlchemyPlugin.get_customize_class_mro_hookD   s
   € ô #Ð"r*   c               ó    € V ^8„  d   QhRRRR/# r5   r%   )r&   s   "r'   r(   r)   I   s   € ÷ ñ Øðà	4ñr*   c                	óJ  € V P                  V4      pVeŽ   VP                  e€   \        P                  ! VP                  4      pV\        P                  J d   \
        # V\        P                  \        P                  39   d   \        # V\        P                  J d   \        # R # r,   )Úlookup_fully_qualifiedÚnoder   Útype_id_for_named_nodeÚMAPPED_DECORATORÚ_cls_decorator_hookÚAS_DECLARATIVEÚAS_DECLARATIVE_BASEÚ_base_cls_decorator_hookÚDECLARATIVE_MIXINÚ_declarative_mixin_hook)r1   r"   ÚsymÚtype_ids   &&  r'   Úget_class_decorator_hookÚ)SQLAlchemyPlugin.get_class_decorator_hookI   sˆ   € ð ×)Ñ)¨(Ó3ˆàŠ?˜sŸx™xÒ3Ü×2Ò2°3·8±8Ó<ˆGØœ%×0Ñ0Ó0Ü*Ð*ØÜ×$Ñ$Ü×)Ñ)ðô ô 0Ð/ØœE×3Ñ3Ó3Ü.Ð.ár*   c               ó    € V ^8„  d   QhRRRR/# r5   r%   )r&   s   "r'   r(   r)   \   s   € ÷ ñ Øðà	4ñr*   c                	ób   € \         P                  ! V4      \         P                  J d   \        # R # r,   )r   r-   ÚDECLARATIVE_METAÚ_metaclass_cls_hookr0   s   &&r'   Úget_metaclass_hookÚ#SQLAlchemyPlugin.get_metaclass_hook\   s(   € ô ×%Ò% hÓ/´5×3IÑ3IÓIô 'Ð&ár*   c               ó    € V ^8„  d   QhRRRR/# r5   r%   )r&   s   "r'   r(   r)   f   s   € ÷ ñ Øðà	4ñr*   c                	óÐ   € V P                  V4      pV'       dM   \        VP                  \        4      '       d-   \        P
                  ! VP                  4      '       d   \        # R # r,   )r<   Ú
isinstancer=   r   r   Úhas_declarative_baseÚ_base_cls_hook)r1   r"   rF   s   && r'   Úget_base_class_hookÚ$SQLAlchemyPlugin.get_base_class_hookf   sH   € ð ×)Ñ)¨(Ó3ˆ÷ Ü˜3Ÿ8™8¤X×.Ò.Ü×)Ò)¨#¯(©(×3Ò3ä!Ð!ár*   c               ó    € V ^8„  d   QhRRRR/# )r!   r"   r#   r$   z,Optional[Callable[[AttributeContext], Type]]r%   )r&   s   "r'   r(   r)   t   s   € ÷ ñ Øðà	5ñr*   c                	ó@   € VP                  R 4      '       d   \        # R# )z-sqlalchemy.orm.attributes.QueryableAttribute.N)Ú
startswithÚ_queryable_getattr_hookr0   s   &&r'   Úget_attribute_hookÚ#SQLAlchemyPlugin.get_attribute_hookt   s%   € ð ×ÑØ;÷
ò 
ô +Ð*ár*   c               ó    € V ^8„  d   QhRRRR/# )r!   Úfiler   r$   zList[Tuple[int, str, int]]r%   )r&   s   "r'   r(   r)   ~   s   € ÷ 
ñ 
Øð
à	#ñ
r*   c                	ó
   € . RO# )é
   ))r`   úsqlalchemy.orméÿÿÿÿ)r`   zsqlalchemy.orm.attributesrb   )r`   zsqlalchemy.orm.decl_apirb   r%   )r1   r^   s   &&r'   Úget_additional_depsÚ$SQLAlchemyPlugin.get_additional_deps~   s   € ò
ð 	
r*   r%   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r2   r8   rH   rN   rU   r[   rc   Ú__static_attributes__r%   r*   r'   r   r   <   s*   † õõ#õ
õ&õõ÷
ñ 
r*   r   c               ó    € V ^8„  d   QhRRRR/# )r!   Úversionr#   r$   zTypingType[SQLAlchemyPlugin]r%   )r&   s   "r'   r(   r(   ‰   s   € ÷ ñ �Cð Ð8ñ r*   c                ó   € \         # r,   )r   )rk   s   &r'   Úpluginrm   ‰   s   € ÜÐr*   c               ó    € V ^8„  d   QhRRRR/# )r!   Úctxr   r$   ÚNoner%   )r&   s   "r'   r(   r(   �   s   € ÷ $ñ $Ð3ð $¸ñ $r*   c                ó®  € \        V 4       \        V P                  \        . 4      4      pV P                  P                  V P                  4      Vn        \        \        4       WP                  P                  4      pW!n
        \        V P                  V4       \        P                  ! V P                  R\        3R7      pVe•   \!        VP"                  \        4      '       du   \        P$                  ! VP"                  4       \&        P(                  ! VP"                  P*                  V P                  RR7       \-        VP"                  . 4      .Vn        M1V P                  P1                  \2        P4                  4      pV.Vn         \7        V4       V P                  P?                  V P                  \A        \B        V4      4       \        P$                  ! V4       R#   \8         dh    \        P:                  ! T P                  RT P                  4       T P                  P1                  \2        P4                  4      pT.Tn        RTn         L½i ; i)zVGenerate a declarative Base class when the declarative_base() function
is encountered.Úcls)Ú
expr_typesNT©Úis_mixin_scanz.Not able to calculate MRO for declarative base)"Ú_add_globalsr   Únamer   ÚapiÚqualified_namer"   r   r   Ú
cur_mod_idÚinfoÚ_set_declarative_metaclassr   Úget_callexpr_kwargÚcallr   rR   r=   Úset_is_baser   Ú,scan_declarative_assignments_and_apply_typesÚdefnr   ÚbasesÚ
named_typer   ÚNAMED_TYPE_BUILTINS_OBJECTr
   r   ÚfailÚfallback_to_anyÚadd_symbol_table_noder   r   )ro   rr   r{   Úcls_argÚobjs   &    r'   r/   r/   �   sš  € ô �Ôä
�3—8‘8œU 2›YÓ
'€CØ—7‘7×)Ñ)¨#¯(©(Ó3€C„Lä”K“M 3¯©×(:Ñ(:Ó;€DØ„HÜ˜sŸw™w¨Ô,ä×%Ò% c§h¡h°Ä8À+ÔN€GØÒœz¨'¯,©,¼×AÒAÜ×Ò˜Ÿ™Ô&Ü×?Ò?Ø�L‰L×Ñ˜sŸw™w°dõ	
ô ˜wŸ|™|¨RÓ0Ð1ˆ�
à�g‰g× Ñ ¤×!AÑ!AÓBˆà�UˆŒ
ð$Ü�dÔð ‡G�G×!Ñ! #§(¡(¬O¼DÀ$Ó,GÔHÜ×Ò�TÖøô ô $Ü�	Š	Ø�G‰GÐEÀsÇxÁxô	
ð �g‰g× Ñ ¤×!AÑ!AÓBˆØ�UˆŒ
Ø#ˆÖð$ús   ÆG" Ç"A/IÉIc               ó    € V ^8„  d   QhRRRR/# ©r!   ro   r   r$   rp   r%   )r&   s   "r'   r(   r(   ´   s   € ÷ 3ñ 3˜_ð 3°ñ 3r*   c                óª  € V P                   P                   EF·  p\        V\        P                  4      '       dS   \        VP
                  \        P                  4      '       d)   VP
                  P                  R 8X  d   VP
                  pM6\        V\        P                  4      '       d   VP                  R8X  d   TpMK¬  \        VP                  \        4      '       d4   V P                  P                  VP                  P                  VRR7      pMEK  V'       g   EK  VP                  '       g   EK"  \        VP                  4      p\        V\        4      '       d.   VP                  P                    RVP                   2Vn        EKz  \"        P$                  ! V P                  RVP                  ,          VP                  4       EKº  	  R# )Úas_declarative_baseÚmappedT)Úsuppress_errorsÚ.zžClass decorator called %s(), but we can't tell if it's from an ORM registry.  Please annotate the registry assignment, e.g. my_registry: registry = registry()N)rr   Ú
decoratorsrR   r	   ÚCallExprÚcalleeÚ
MemberExprrw   Úexprr   rx   Úlookup_qualifiedr=   r   Útyper   r"   r   r…   )ro   Ú	decoratorÚtargetrF   Úsym_types   &    r'   r7   r7   ´   sF  € Ø—W‘W×'Õ'ˆ	ô �y¤%§.¡.×1Ò1Ü˜9×+Ñ+¬U×-=Ñ-=×>Ò>Ø× Ñ ×%Ñ%Ð)>Ô>à×%Ñ%‰Fä�y¤%×"2Ñ"2×3Ò3Ø—‘ (Ô*à‰Fáä�f—k‘k¤8×,Ò,Ø—'‘'×*Ñ*Ø—‘× Ñ  &¸$ð +ó ‰Cò çŠ3�3—8—8“8Ü& s§x¡xÓ0ˆHÜ˜(¤H×-Ò-Ø%-§]¡]×%;Ñ%;Ð$<¸A¸f¿k¹k¸]Ð"K�—ô —	’	Ø—G‘Gð9ð <B¿;¹;õGð —H‘H÷óW (r*   c               ó    € V ^8„  d   QhRRRR/# r‹   r%   )r&   s   "r'   r(   r(   ê   s   € ÷ Nñ N˜_ð N°ñ Nr*   c                ó`  € \        V 4       \        V P                  \        P                  4      '       g   Q hV P                  P
                  p\        V\        P                  4      '       d+   \        VP                  \        P                  4      '       g   Q h\        VP                  P                  4      p\        V\        4      '       d3   \        P                  ! VP                  4      \        P                  J g   Q h\        P                   ! V P"                  V P$                  4       R # r,   )rv   rR   Úreasonr	   r”   r•   ÚRefExprr=   ÚVarr   r—   r   r   r>   ÚREGISTRYr   r€   rr   rx   )ro   r•   Ú	node_types   &  r'   r@   r@   ê   sÀ   € Ü�ÔÜ�c—j‘j¤%×"2Ñ"2×3Ò3Ð3Ð3Ø�:‰:�?‰?€Dä�dœEŸM™M×*Ò*¬z¸$¿)¹)ÄUÇYÁY×/OÒ/OÐOÐOä §	¡	§¡Ó/€Iô 	�9œh×'Ò'Ü×(Ò(¨¯©Ó8¼E¿N¹NÓJðð	Kô ×;Ò;¸C¿G¹GÀSÇWÁWÖMr*   c               ó    € V ^8„  d   QhRRRR/# r‹   r%   )r&   s   "r'   r(   r(   û   s   € ÷ 
ñ 
 /ð 
°dñ 
r*   c                óø   € \        V 4       V P                  p\        V P                  V4       \        P
                  ! V P                  P                  4       \        P                  ! WP                  R R7       R# ©Trt   N)	rv   rr   r|   rx   r   r   r{   r   r€   )ro   rr   s   & r'   rC   rC   û   sN   € Ü�Ôà
�'‰'€Cä˜sŸw™w¨Ô,ä×Ò�S—W‘W—\‘\Ô"Ü×;Ò;Ø�W‰W D÷r*   c               ó    € V ^8„  d   QhRRRR/# r‹   r%   )r&   s   "r'   r(   r(     s   € ÷ ñ  ð °Tñ r*   c                óÊ   € \        V 4       \        P                  ! V P                  P                  4       \
        P                  ! V P                  V P                  R R7       R# r¤   )rv   r   r   rr   r{   r   r€   rx   ©ro   s   &r'   rE   rE     s=   € Ü�ÔÜ×Ò�S—W‘W—\‘\Ô"Ü×;Ò;Ø�‰�—‘¨÷r*   c               ó    € V ^8„  d   QhRRRR/# r‹   r%   )r&   s   "r'   r(   r(     s   € ÷ #ñ #˜_ð #°ñ #r*   c                óZ   € \         P                  ! V P                  P                  4       R # r,   )r   r   rr   r{   r§   s   &r'   rM   rM     s   € Ü×Ò�S—W‘W—\‘\Ö"r*   c               ó    € V ^8„  d   QhRRRR/# r‹   r%   )r&   s   "r'   r(   r(     s   € ÷ Nñ N˜ð N¨Dñ Nr*   c                ór   € \        V 4       \        P                  ! V P                  V P                  4       R # r,   )rv   r   r€   rr   rx   r§   s   &r'   rT   rT     s"   € Ü�ÔÜ×;Ò;¸C¿G¹GÀSÇWÁWÖMr*   c               ó    € V ^8„  d   QhRRRR/# )r!   ro   r   r$   r   r%   )r&   s   "r'   r(   r(     s   € ÷ !ñ !Ð!1ð !°dñ !r*   c                ó   € V P                   # r,   )Údefault_attr_typer§   s   &r'   rZ   rZ     s   € ð × Ñ Ð r*   c               ó    € V ^8„  d   QhRRRR/# )r!   ro   z.Union[ClassDefContext, DynamicClassDefContext]r$   rp   r%   )r&   s   "r'   r(   r(     s   € ÷ Dñ DÐDð DÈñ Dr*   c                ó8   € \         P                  ! V RRR4       R# )zXAdd __sa_DeclarativeMeta and __sa_Mapped symbol to the global space
for all class defs

ra   ÚMappedÚ__sa_MappedN)r   Ú
add_globalr§   s   &r'   rv   rv     s   € ô 	‡O‚O�CÐ)¨8°]ÖCr*   c               ó$   € V ^8„  d   QhRRRRRR/# )r!   rx   r   Ú
target_clsr   r$   rp   r%   )r&   s   "r'   r(   r(   (  s)   € ÷ Kñ KØ	(ðKØ6>ðKà	ñKr*   c                óÐ   € VP                   pV P                  R 4      pVe!   \        VP                  \        4      '       g   Q h\        VP                  . 4      ;Vn        Vn        R# )z'sqlalchemy.orm.decl_api.DeclarativeMetaN)r{   Úlookup_fully_qualified_or_nonerR   r=   r   r   Údeclared_metaclassÚmetaclass_type)rx   rµ   r{   rF   s   &&  r'   r|   r|   (  sX   € ð �?‰?€DØ
×
,Ñ
,Ø1ó€Cð Š?œz¨#¯(©(´H×=Ò=Ð=Ð=Ü4<¸S¿X¹XÀrÓ4JÐJ€DÔ˜dÖ1r*   N)4Ú__doc__Ú
__future__r   Útypingr   r   r   r   r   Ú
TypingTyper   Úmypyr	   Úmypy.mror
   r   Ú
mypy.nodesr   r   r   r   r   r   r   r   Úmypy.pluginr   r   r   r   r   Ú
mypy.typesr   r   Ú r   r   r   Ú
__import__ÚImportErrorr   rm   r/   r7   r@   rC   rE   rM   rT   rZ   rv   r|   r%   r*   r'   Ú<module>rÆ      så   ðñõ
 #å Ý Ý Ý Ý %Ý å Ý "Ý Ý Ý Ý Ý Ý Ý "Ý &Ý Ý (Ý 'Ý .Ý Ý 7Ý &Ý Ý å Ý Ý ðÙÐ!Ô"ñ ð	óð øð ô 	Ùð	úôJ
�vô J
õZõ$õN3õlNõ"
õõ#õNõ
!õD÷Ks   Â2C ÃCÃC