+
    }¯³j_)  ã                  óÂ  € ^ 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I"H$t$ ^RI%H&t& ^R I%H't' R! R" lt(R# R$ lt)R% R& lt*R' R( lt+R) R* lt,R+# ),é    )Úannotations)ÚList)ÚOptional)ÚUnion)ÚARG_NAMED_OPT)ÚArgument)ÚAssignmentStmt)ÚCallExpr)ÚClassDef)ÚMDEF)Ú
MemberExpr)ÚNameExpr)ÚRefExpr)ÚStrExpr)ÚSymbolTableNode)ÚTempNode)ÚTypeInfo)ÚVar)ÚSemanticAnalyzerPluginInterface)Úadd_method_to_class)ÚAnyType)Úget_proper_type)ÚInstance)ÚNoneTyp)Ú
ProperType)Ú	TypeOfAny)ÚUnboundType)Ú	UnionType)Úinfer)Úutil)Úexpr_to_mapped_constructor)ÚNAMED_TYPE_SQLA_MAPPEDc          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )é   Úclsr   Úapir   ÚitemzUnion[NameExpr, StrExpr]Ú
attributesúList[util.SQLAlchemyAttribute]ÚreturnÚNone© )Úformats   "ÚZ/home/luca/screen-checking/.venv/lib/python3.14/site-packages/sqlalchemy/ext/mypy/apply.pyÚ__annotate__r/   -   s:   € ÷ 2ñ 2Ø	ð2à	(ð2ð #ð2ð /ð	2ð
 
ñ2ó    c           
     ób  € \        V\        4      '       d   VP                  pM%\        V\        4      '       d   VP                  pMR # V P
                  P                   Fh  p\        V\        4      '       g   K  \        VP                  ^ ,          \        4      '       g   KD  VP                  ^ ,          P                  V8X  g   Kh   M	  \        P                  ! VRV 2V 4       R # VP                  f   \        P                  ! VRV4       R # \        VP                  4      p\        V\        \        \        34      '       g   Q hVP!                  \        P"                  ! VVP$                  VP&                  VV P(                  R7      4       \+        WVP                  ^ ,          VR 4       R # )NzCan't find mapped attribute zBStatement linked from _mypy_mapped_attrs has no typing information)ÚnameÚlineÚcolumnÚtypÚinfo)Ú
isinstancer   r2   r   ÚvalueÚdefsÚbodyr	   Úlvaluesr    ÚfailÚtyper   r   r   r   ÚappendÚSQLAlchemyAttributer3   r4   r6   Úapply_type_to_mapped_statement)r%   r&   r'   r(   r2   ÚstmtÚleft_hand_explicit_types   &&&&   r.   Úapply_mypy_mapped_attrrC   -   sJ  € ô �$œ×!Ò!Ø�y‰y‰Ü	�Dœ'×	"Ò	"Ø�z‰z‰áà—‘—”ˆä�tœ^×,Ô,Ü˜4Ÿ<™<¨�?¬H×5Ô5Ø—‘˜Q•×$Ñ$¨Ö,áñ ô 	�	Š	�#Ð5°d°VÐ<¸cÔBÙà‡y�yÒÜ�	Š	Øð!àô		
ñ ä-¨d¯i©iÓ8ÐÜØ¤(¬I´{Ð!C÷ò ð ð ð ×ÑÜ× Ò ØØ—‘Ø—;‘;Ø'Ø—‘ô	
ôô #Ø�4—<‘< •?Ð$;¸Tör0   c               ó(   € V ^8„  d   QhRRRRRRRR/# ©	r$   r%   r   r&   r   r(   r)   r*   r+   r,   )r-   s   "r.   r/   r/   b   s6   € ÷ R9ñ R9Ø	ðR9à	(ðR9ð /ðR9ð 
ñ	R9r0   c           	     ó
  € V Uu/ uF  q3P                   VbK  	  ppRpV P                  P                   EFš  p\        V\        4      '       g   K  \        VP
                  ^ ,          \        4      '       g   KE  VP
                  ^ ,          P                   V9   g   Ki  \        VP
                  ^ ,          P                  \        4      '       g   Kœ  VP
                  ^ ,          P                  pVVP
                  ^ ,          P                   ,          P                  p\        VP                  4      p	\        V\        4      '       Ed   \        V	\        4      '       Eg   \        VP                  \        4      '       Edâ   \        VP                  P                  \        4      '       Ed·   \        VP                  P                  P                   \        4      '       Ed‚   VP                  P                  P                   P                  EeU   VP                  P                  P                   P                  P"                  \$        8X  Ed   VP                  P                  P                   R8X  dò   \        VP                  P&                  ^ ,          \        4      '       dÁ   \        VP                  P&                  ^ ,          P                  \(        4      '       d†   \*        P,                  ! VVVV	VP                  P&                  ^ ,          P                  4      p
V
eC   \        V
\        4      '       g-   T
pVWFP
                  ^ ,          P                   ,          n	        Rp\        VP                  \.        4      '       d-   VP                  P                  P"                  \$        8w  g   EKx  Vf   Q hVP1                  \$        V.4      Vn	        EK�  	  V'       d$   \2        P4                  ! V P6                  V4       R# R# u upi )zdFor multiple class passes, re-apply our left-hand side types as mypy
seems to reset them in place.

FNÚ_empty_constructorT)r2   r9   r:   r7   r	   r;   r   Únoder   r=   r   r   Úrvaluer
   Úcalleer   ÚexprÚfullnamer"   Úargsr   r   Ú#infer_type_from_right_hand_nameexprr   Ú
named_typer    Úset_mapped_attributesr6   )r%   r&   r(   ÚattrÚmapped_attr_lookupÚupdate_cls_metadatarA   Ú	left_nodeÚpython_type_for_typeÚleft_node_proper_typeÚnew_python_type_for_types   &&&        r.   Ú re_apply_declarative_assignmentsrX   b   sÍ  € ñ 7AÓA±j¨dŸ)™) Tš/±jÐÐAØÐà—‘—•ˆô �tœ^×,Ô,Ü˜4Ÿ<™<¨�?¬H×5Ô5Ø—‘˜Q•×$Ñ$Ð(:Ö:Ü˜4Ÿ<™<¨�?×/Ñ/´×5Ô5àŸ™ Q�×,Ñ,ˆIà#5Ø—‘˜Q•×$Ñ$õ$ç‰dð !ô %4°I·N±NÓ$CÐ!ô Ð/´×=Ó=Ü"Ð#8¼+×FÓFä˜tŸ{™{¬H×5Ó5Ü" 4§;¡;×#5Ñ#5´z×BÓBÜ" 4§;¡;×#5Ñ#5×#:Ñ#:¼H×EÓEØŸ™×*Ñ*×/Ñ/×4Ñ4Ó@ØŸ™×*Ñ*×/Ñ/×4Ñ4×=Ñ=Ü-õ.àŸ™×*Ñ*×/Ñ/Ð3GÔGÜ" 4§;¡;×#3Ñ#3°AÕ#6¼×AÒAÜ" 4§;¡;×#3Ñ#3°AÕ#6×#=Ñ#=¼w×GÒGô ×=Ò=ØØØ!Ø-ØŸ™×(Ñ(¨Õ+×2Ñ2óð )ð ,Ò7Ä
Ø,¬k÷Aò Að ,DÐ(ð
 -ð '§|¡|°A¥×';Ñ';Õ<ÔAð +/Ð'ô ˜yŸ~™~¬x×8Ò8Ø—>‘>×&Ñ&×/Ñ/Ô3I×Ià+Ò7Ð7Ð7Ø!$§¡Ü*Ð-AÐ,Bó"�	—ñC ÷J Ü×"Ò" 3§8¡8¨ZÖ8ñ ùòQ Bs   …P c               ó0   € V ^8„  d   QhRRRRRRRRR	RR
R/# )r$   r&   r   rA   r	   Úlvaluer   rB   zOptional[ProperType]rU   r*   r+   r,   )r-   s   "r.   r/   r/   ·   sL   € ÷ E)ñ E)Ø	(ðE)à
ðE)ð ðE)ð 2ð	E)ð
 /ðE)ð 
ñE)r0   c                óŒ  € VP                   p\        V\        4      '       g   Q hVe%   RVn        V P	                  \
        V.4      Vn        MARVn        T P	                  \
        Vf   \        \        P                  4      .MV.4      Vn        \        VP                  4      Vn        VP                  e   Ve	   WAn        R# R# R# )a®  Apply the Mapped[<type>] annotation and right hand object to a
declarative assignment statement.

This converts a Python declarative class statement such as::

    class User(Base):
        # ...

        attrname = Column(Integer)

To one that describes the final Python behavior to Mypy::

... format: off

    class User(Base):
        # ...

        attrname : Mapped[Optional[int]] = <meaningless temp node>

... format: on

NF)rH   r7   r   Úis_inferred_defrO   r"   r=   r   r   Úspecial_formr!   rI   )r&   rA   rZ   rB   rU   rT   s   &&&&& r.   r@   r@   ·   s·   € ð: —‘€IÜ�i¤×%Ò%Ð%Ð%ð Ò*Ø!&ˆÔØŸ™Ü"Ð%<Ð$=ó
ˆ	�ð "'ˆÔØŸ™Ü"ð (Ò/ô œ×/Ñ/Ó0Ñ1à*Ð+ó
ˆ	Œô* -¨T¯[©[Ó9€D„Kà‡y�yÒÐ!5Ò!AØ(Ž	ñ "BÑr0   c               ó(   € V ^8„  d   QhRRRRRRRR/# rE   r,   )r-   s   "r.   r/   r/   ÿ   s0   € ÷ 2
ñ 2
Ø	ð2
à	(ð2
ð /ð2
ð 
ñ	2
r0   c           
     ó‚  € \         P                  ! W4      pVf   R# \         P                  ! V4      pRVP                  9  Ed%   V'       Eg   V Uu/ uF  qUP                  VP
                  bK  	  ppVP                  ^R	  Fa  pRVP                  9  d   K  \         P                  ! Wq4      pVf   K2  V F)  pVP                  VP                  VP
                  4       K+  	  Kc  	  . p	VP                  4        FV  w  r«Vf   \        \        P                  4      pV	P                  \        \!        W«4      V\#        V4      \$        R7      4       KX  	  \'        WRV	\)        4       4       RVP                  9  d*   \         P*                  ! V4      '       d   \-        WRR4       V'       g   \-        WRR4       R# R# u upi )
zCApply __init__, __table__ and other attributes to the mapped class.NÚ__init__Ú
sqlalchemy)ÚvariableÚtype_annotationÚinitializerÚkindÚ	__table__zsqlalchemy.sql.schema.Tablezsqlalchemy.orm.mapper.MapperÚ
__mapper__éÿÿÿÿ)r    Úinfo_for_clsÚget_is_baseÚnamesr2   r=   ÚmroÚmetadataÚget_mapped_attributesÚ
setdefaultÚitemsr   r   r]   r>   r   r   r   r   r   r   Úget_has_tableÚ _apply_placeholder_attr_to_class)r%   r&   r(   r6   Úis_baserQ   Úmapped_attr_namesÚbaseÚbase_cls_attributesÚ	argumentsr2   r5   s   &&&         r.   Úadd_additional_orm_attributesrx   ÿ   su  € ô ×Ò˜SÓ&€Dà‚|Ùä×Ò˜tÓ$€Gà˜Ÿ™Õ#¯G¨GÙ>HÓI¹j°dŸY™Y¨¯	©	Ò1¹jÐÐIà—H‘H˜Q˜r“NˆDØ 4§=¡=Ô0Ùä"&×"<Ò"<¸TÓ"GÐØ"Ò*Ùã+�Ø!×,Ñ,¨T¯Y©Y¸¿	¹	ÖBó ,ñ #ð ˆ	Ø*×0Ñ0Ö2‰IˆDØŠ{Üœi×4Ñ4Ó5�Ø×ÑÜÜ  ›^Ø$'Ü (¨£Ü&ô	öñ 3ô 	˜C j°)¼W»YÔGà˜$Ÿ*™*Ô$¬×);Ò);¸D×)AÒ)AÜ(ØÐ3°[ô	
÷ Ü(ØÐ4°lö	
ñ ùòA Js   ÁF<c          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# )
r$   r&   r   r%   r   Úqualified_nameÚstrÚattrnamer*   r+   r,   )r-   s   "r.   r/   r/   4  s:   € ÷ :ñ :Ø	(ð:à	ð:ð ð:ð ð	:ð
 
ñ:r0   c                ó¬  € V P                  V4      pV'       d:   \        VP                  \        4      '       g   Q h\	        VP                  . 4      pM\        \        P                  4      p\        V4      pVP                  R ,           V,           Vn
        VP                  Vn        WVn        \        \        V4      VP                  P                  V&   R# )Ú.N)Úlookup_fully_qualified_or_noner7   rH   r   r   r   r   r]   r   rL   Ú	_fullnamer6   r=   r   r   rk   )r&   r%   rz   r|   ÚsymÚtype_Úvars   &&&&   r.   rr   rr   4  s•   € ð ×
,Ñ
,¨^Ó
<€Cß
Ü˜#Ÿ(™(¤H×-Ò-Ð-Ð-Ü$ S§X¡X¨rÓ2‰äœ	×.Ñ.Ó/ˆÜ
ˆh‹-€CØ—L‘L 3Õ&¨Õ1€C„MØ�x‰x€C„HØ„HÜ.¬t°SÓ9€C‡H�H‡N�N�8Ór0   N)-Ú
__future__r   Útypingr   r   r   Ú
mypy.nodesr   r   r	   r
   r   r   r   r   r   r   r   r   r   r   Úmypy.pluginr   Úmypy.plugins.commonr   Ú
mypy.typesr   r   r   r   r   r   r   r   Ú r   r    rk   r!   r"   rC   rX   r@   rx   rr   r,   r0   r.   Ú<module>r‹      s†   ðõ #å Ý Ý å $Ý Ý %Ý Ý Ý Ý !Ý Ý Ý Ý &Ý Ý Ý Ý 7Ý 3Ý Ý &Ý Ý Ý !Ý  Ý "Ý  å Ý Ý -Ý )õ2õjR9õjE)õP2
÷j:r0   