§
    
 @gÀ$  ã                  ó€  — d dl mZ d dlZd dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d d	lm
Z
 d d
lmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlm Z  d dlm!Z! d dlm"Z" d dl#m$Z$ d dl%m&Z& d dl%m'Z' d d l%m(Z( d d!l)m*Z* d d"l+m,Z, d d#l-m.Z. d d$l-m/Z/ d d%l-m0Z0 d d&l-m1Z1 d d
l-mZ d d'l-m2Z2 d d(l-m3Z3 d d)l-m4Z4  e5d*„ ej6         7                    d+¦  «        D ¦   «         ¦  «        Z8e8d,k    Z9 ed-eeef         ¬.¦  «        Z: G d/„ d0¦  «        Z;dud5„Z<dvd<„Z=dwd>„Z>dwd?„Z?dxd@„Z@dxdA„ZAdydB„ZBdydC„ZCdxdD„ZDdydE„ZEdzdI„ZFd{dN„Zd|dQ„ZGd}dU„ZHd~dZ„ZIe	d[d\œdda„¦   «         ZJe	d€dd„¦   «         ZJdd\œd�df„ZJd‚dj„ZKdƒdn„ZLd„dp„ZMd…dt„ZNdS )†é    )ÚannotationsN)ÚAny)ÚIterable)ÚIterator)ÚList)ÚOptional)Úoverload)ÚTuple)ÚType)ÚTypeVar)ÚUnion)Úversion)Úformat_type)ÚCallExpr)ÚClassDef)ÚCLASSDEF_NO_INFO)ÚContext)Ú
Expression)ÚFuncDef)ÚIfStmt)ÚJsonDict)Ú
MemberExpr)ÚNameExpr)Ú	Statement)ÚSymbolTableNode)Ú	TypeAlias)ÚTypeInfo)ÚOptions)ÚClassDefContext)ÚDynamicClassDefContext)ÚSemanticAnalyzerPluginInterface)Údeserialize_and_fixup_type)Úmap_type_from_supertype)ÚCallableType)Úget_proper_type)ÚInstance)ÚNoneType)ÚTypeVarType)ÚUnboundType)Ú	UnionTypec                óV   — g | ]&}t          j        d |¦  «        ¯t          |¦  «        ‘Œ'S )z^\d+$)ÚreÚmatchÚint)Ú.0Úxs     úL/var/www/piapp/venv/lib/python3.11/site-packages/sqlalchemy/ext/mypy/util.pyú
<listcomp>r2   6   s/   € ÐMÐMÐM�µr´xÀÈ!Ñ7LÔ7LÐM…Sˆ�V„VÐMÐMÐMó    ú.)é   é   Ú	_TArgType)Úboundc                  ó>   — e Zd Zdd„Zdd„Zdd„Zedd„¦   «         ZdS )ÚSQLAlchemyAttributeÚnameÚstrÚliner.   ÚcolumnÚtypúOptional[Type]Úinfor   ÚreturnÚNonec                óL   — || _         || _        || _        || _        || _        d S ©N)r;   r=   r>   ÚtyperA   )Úselfr;   r=   r>   r?   rA   s         r1   Ú__init__zSQLAlchemyAttribute.__init__?   s+   € ð ˆŒ	ØˆŒ	ØˆŒØˆŒ	ØˆŒ	ˆ	ˆ	r3   r   c                ón   — | j         sJ ‚| j        | j        | j        | j                              ¦   «         dœS )N)r;   r=   r>   rF   )rF   r;   r=   r>   Ú	serialize)rG   s    r1   rJ   zSQLAlchemyAttribute.serializeM   s?   € ØŒyÐÐÐà”IØ”IØ”kØ”I×'Ò'Ñ)Ô)ð	
ð 
ð 	
r3   Úsub_typec                ó~   — t          | j        t          ¦  «        sdS t          | j        || j        ¦  «        | _        dS )zxExpands type vars in the context of a subtype when an attribute is
        inherited from a generic super type.
        N)Ú
isinstancerF   r(   r#   rA   )rG   rK   s     r1   Úexpand_typevar_from_subtypez/SQLAlchemyAttribute.expand_typevar_from_subtypeV   s8   € õ ˜$œ)¥[Ñ1Ô1ð 	ØˆFå+¨D¬I°xÀÄÑKÔKˆŒ	ˆ	ˆ	r3   ÚdataÚapir!   c                ó†   — |                      ¦   «         }t          |                     d¦  «        |¦  «        } | d||dœ|¤ŽS )NrF   )r?   rA   © )Úcopyr"   Úpop)ÚclsrA   rO   rP   r?   s        r1   ÚdeserializezSQLAlchemyAttribute.deserialize_   sI   € ð �yŠy‰{Œ{ˆÝ(¨¯ª°&Ñ)9Ô)9¸3Ñ?Ô?ˆØˆsÐ.�s Ð.Ð.¨Ð.Ð.Ð.r3   N)r;   r<   r=   r.   r>   r.   r?   r@   rA   r   rB   rC   )rB   r   )rK   r   rB   rC   )rA   r   rO   r   rP   r!   rB   r:   )Ú__name__Ú
__module__Ú__qualname__rH   rJ   rN   ÚclassmethodrV   rR   r3   r1   r:   r:   >   st   € € € € € ðð ð ð ð
ð 
ð 
ð 
ðLð Lð Lð Lð ð/ð /ð /ñ „[ð/ð /ð /r3   r:   r;   r<   rB   Úboolc                óF   — t          t          j        d| ¦  «        ¦  «        S )Nz	^__.+?__$)r[   r,   r-   )r;   s    r1   Úname_is_dunderr]   k   s   € Ý•”˜ tÑ,Ô,Ñ-Ô-Ð-r3   rA   r   ÚkeyrO   r   rC   c                óB   — || j                              di ¦  «        |<   d S ©NÚ
sqlalchemy©ÚmetadataÚ
setdefault)rA   r^   rO   s      r1   Ú_set_info_metadatare   o   s$   € Ø6:€D„M×Ò˜\¨2Ñ.Ô.¨sÑ3Ð3Ð3r3   úOptional[Any]c                ó`   — | j                              di ¦  «                             |d ¦  «        S r`   )rc   Úget)rA   r^   s     r1   Ú_get_info_metadatari   s   s*   € ØŒ=×Ò˜\¨2Ñ.Ô.×2Ò2°3¸Ñ=Ô=Ð=r3   c                óT   — | j         r | j         D ]}t          ||¦  «        }|�|c S Œd S rE   )Úmrori   )rA   r^   Úbaserc   s       r1   Ú_get_info_mro_metadatarm   w   sE   € Ø„xð  Ø”Hð 	 ð 	 ˆDÝ)¨$°Ñ4Ô4ˆHØÐ#Ø���ð $àˆ4r3   c                ó<   — | j                              di ¦  «         d S r`   rb   ©rA   s    r1   Úestablish_as_sqlalchemyrp   €   s    € Ø„M×Ò˜\¨2Ñ.Ô.Ð.Ð.Ð.r3   c                ó(   — t          | dd¦  «         d S ©NÚis_baseT©re   ro   s    r1   Úset_is_baseru   „   s   € Ý�t˜Y¨Ñ-Ô-Ð-Ð-Ð-r3   c                ó*   — t          | d¦  «        }|du S rr   ©ri   ©rA   rs   s     r1   Úget_is_basery   ˆ   s   € Ý   yÑ1Ô1€GØ�dˆ?Ðr3   c                ó*   — t          | d¦  «        }|du S rr   )rm   rx   s     r1   Úhas_declarative_baser{   �   s   € Ý$ T¨9Ñ5Ô5€GØ�dˆ?Ðr3   c                ó(   — t          | dd¦  «         d S ©NÚ	has_tableTrt   ro   s    r1   Úset_has_tabler   ’   s   € Ý�t˜[¨$Ñ/Ô/Ð/Ð/Ð/r3   c                ó*   — t          | d¦  «        }|du S r}   rw   rx   s     r1   Úget_has_tabler�   –   s   € Ý   {Ñ3Ô3€GØ�dˆ?Ðr3   rP   r!   ú#Optional[List[SQLAlchemyAttribute]]c                óÈ   — t          | d¦  «        }|€d S g }|D ]H}t                               | ||¦  «        }|                     | ¦  «         |                     |¦  «         ŒI|S )NÚmapped_attributes)ri   r:   rV   rN   Úappend)rA   rP   r„   Ú
attributesrO   Úattrs         r1   Úget_mapped_attributesrˆ   ›   s„   € õ 3EØÐ!ñ3ô 3Ðð Ð Øˆtà,.€Jà!ð  ð  ˆÝ"×.Ò.¨t°T¸3Ñ?Ô?ˆØ×(Ò(¨Ñ.Ô.Ð.Ø×Ò˜$ÑÔÐÐàÐr3   Útyp_r   Úoptionsr   c                óN   — t           rt          | |¦  «        S t          | ¦  «        S rE   )Úmypy_14Ú_mypy_format_type)r‰   rŠ   s     r1   r   r   ®   s(   € Ýð 'Ý   wÑ/Ô/Ð/å  Ñ&Ô&Ð&r3   r†   úList[SQLAlchemyAttribute]c                ó<   — t          | dd„ |D ¦   «         ¦  «         d S )Nr„   c                ó6   — g | ]}|                      ¦   «         ‘ŒS rR   )rJ   )r/   Ú	attributes     r1   r2   z)set_mapped_attributes.<locals>.<listcomp>»   s$   € Ð;Ð;Ð; 9ˆ×	Ò	Ñ	Ô	Ð;Ð;Ð;r3   rt   )rA   r†   s     r1   Úset_mapped_attributesr’   µ   s7   € õ ØØØ;Ð;°
Ð;Ñ;Ô;ñô ð ð ð r3   ÚmsgÚctxr   c                ó8   — d|z  }|                       ||¦  «        S )Nz[SQLAlchemy Mypy plugin] %s)Úfail)rP   r“   r”   s      r1   r–   r–   ¿   s    € Ø
'¨#Ñ
-€CØ�8Š8�C˜ÑÔÐr3   ú.Union[ClassDefContext, DynamicClassDefContext]ÚmoduleÚsymbol_nameÚasnamec                ó˜   — | j         j        | j         j                 j        }||vr$| j         j        |         j        |         }|||<   d S d S rE   )rP   ÚmodulesÚ
cur_mod_idÚnames)r”   r˜   r™   rš   Úmodule_globalsÚ
lookup_syms         r1   Ú
add_globalr¡   Ä   sX   € ð ”W”_ S¤WÔ%7Ô8Ô>€Nà�^Ð#Ð#Ø&)¤g¤o°fÔ&=Ô&CØô'
ˆ
ð ",ˆ�vÑÐÐð $Ð#r3   .)Ú
expr_typesÚcallexprr   r¢   ú#Optional[Union[CallExpr, NameExpr]]c               ó   — d S rE   rR   ©r£   r;   r¢   s      r1   Úget_callexpr_kwargr§   Ô   s	   € ð €Cr3   ú!Tuple[TypingType[_TArgType], ...]úOptional[_TArgType]c               ó   — d S rE   rR   r¦   s      r1   r§   r§   Û   s	   € ð €Cr3   ú%Optional[Tuple[TypingType[Any], ...]]c               ó¾   — 	 | j                              |¦  «        }n# t          $ r Y d S w xY w| j        |         }t	          ||�|nt
          t          f¦  «        r|S d S rE   )Ú	arg_namesÚindexÚ
ValueErrorÚargsrM   r   r   )r£   r;   r¢   Úarg_idxÚkwargs        r1   r§   r§   å   s€   € ðØÔ$×*Ò*¨4Ñ0Ô0ˆˆøÝð ð ð Øˆtˆtðøøøð ŒM˜'Ô"€EÝØ˜ZÐ3ˆzˆz½(ÅHÐ9Mñô ð ð ˆàˆ4s   ‚ �
+ª+ÚstmtsúIterable[Statement]úIterator[Statement]c              #  óä   K  — | D ]j}t          |t          ¦  «        rOt          |j        d         t          ¦  «        r/|j        d         j        dk    r|j        d         j        E d {V —† Œf|V — Œkd S )Nr   ztyping.TYPE_CHECKING)rM   r   Úexprr   ÚfullnameÚbody)r³   Ústmts     r1   Úflatten_typecheckingr»   ù   s�   è è € Øð ð ˆå�t�VÑ$Ô$ð	å˜4œ9 Qœ<­Ñ2Ô2ð	ð ”	˜!”Ô%Ð)?Ò?Ð?à”y ”|Ô(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ð(àˆJˆJˆJˆJðð r3   Úcalleer   ú#Optional[Union[Instance, TypeInfo]]c                ó  — t          | t          t          f¦  «        rèt          | j        t          ¦  «        rb| j        j        rTt          | j        j        t          ¦  «        r5t          | j        j        j        ¦  «        }t          |t          ¦  «        r|S d S t          | j        t          ¦  «        r1t          | j        j        ¦  «        }t          |t          ¦  «        r|S n!t          | j        t          ¦  «        r| j        S d S rE   )rM   r   r   Únoder   rF   r$   r%   Úret_typer&   r   Útargetr   )r¼   rÀ   Útarget_types      r1   Útype_for_calleerÃ     så   € Ý�&�:¥xÐ0Ñ1Ô1ð Ý�f”k¥7Ñ+Ô+ð 	ØŒ{Ôð $¥J¨v¬{Ô/?ÅÑ$NÔ$Nð $Ý*¨6¬;Ô+;Ô+DÑEÔE�å˜h­Ñ1Ô1ð $Ø#�Oà�4Ý˜œ¥YÑ/Ô/ð 	Ý)¨&¬+Ô*<Ñ=Ô=ˆKÝ˜+¥xÑ0Ô0ð #Ø"Ð"ð#å˜œ¥XÑ.Ô.ð 	Ø”;ÐØˆ4r3   r?   c                ó°  ‡ — t          |t          ¦  «        s|S |j        dk    r>t          ‰ t	          ˆ fd„|j        D ¦   «         t          ¦   «         gz   ¦  «        ¦  «        S ‰                      |j        |¦  «        }|�Wt          |t          ¦  «        rBt          |j	        t          ¦  «        r(|j	        }t          |ˆ fd„|j        D ¦   «         ¦  «        S |S )zÔTake the UnboundType that we seem to get as the ret_type from a FuncDef
    and convert it into an Instance/TypeInfo kind of structure that seems
    to work as the left-hand type of an AssignmentStatement.

    r   c                ó0   •— g | ]}t          ‰|¦  «        ‘ŒS rR   )Úunbound_to_instance)r/   Útyp_argrP   s     €r1   r2   z'unbound_to_instance.<locals>.<listcomp>-  s$   ø€ ÐKÐKÐK°wÕ$ S¨'Ñ2Ô2ÐKÐKÐKr3   Nc                ó^   •— g | ])}t          |t          ¦  «        rt          ‰|¦  «        n|‘Œ*S rR   )rM   r)   rÆ   )r/   ÚargrP   s     €r1   r2   z'unbound_to_instance.<locals>.<listcomp>=  sM   ø€ ð ð ð ð õ ˜c¥;Ñ/Ô/ðÕ# C¨Ñ-Ô-Ð-àðð ð r3   )rM   r)   r;   rÆ   r*   r°   r'   Úlookup_qualifiedr   r¿   r   r&   )rP   r?   r¿   Ú
bound_types   `   r1   rÆ   rÆ     s  ø€ õ �c�;Ñ'Ô'ð Øˆ
ð
 „x�:ÒÐõ #ØÝØKÐKÐKÐKÀ#Ä(ÐKÑKÔKÝ‘:”:�,ññô ñ
ô 
ð 	
ð ×Ò ¤¨#Ñ.Ô.€Dð 	ÐÝ�t�_Ñ-Ô-ð 	å�t”y¥(Ñ+Ô+ð 	ð ”Yˆ
åØðð ð ð ð œ8ð	ñ ô ñ
ô 
ð 	
ð ˆ
r3   rU   r   úOptional[TypeInfo]c                ó´   — | j         t          u rD|                     | j        | ¦  «        }|€d S |rt	          |j        t          ¦  «        sJ ‚|j        S | j         S rE   )rA   r   rÊ   r;   rM   r¿   r   )rU   rP   Úsyms      r1   Úinfo_for_clsrÏ   H  s^   € ð „xÕ#Ð#Ð#Ø×"Ò" 3¤8¨SÑ1Ô1ˆØˆ;Ø�4ØÐ5•z #¤(­HÑ5Ô5Ð5Ð5Ð5ØŒxˆàŒ8€Or3   )r;   r<   rB   r[   )rA   r   r^   r<   rO   r   rB   rC   )rA   r   r^   r<   rB   rf   )rA   r   rB   rC   )rA   r   rB   r[   )rA   r   rP   r!   rB   r‚   )r‰   r   rŠ   r   rB   r<   )rA   r   r†   rŽ   rB   rC   )rP   r!   r“   r<   r”   r   rB   rC   )
r”   r—   r˜   r<   r™   r<   rš   r<   rB   rC   )r£   r   r;   r<   r¢   rC   rB   r¤   )r£   r   r;   r<   r¢   r¨   rB   r©   )r£   r   r;   r<   r¢   r«   rB   rf   )r³   r´   rB   rµ   )r¼   r   rB   r½   )rP   r!   r?   r   rB   r   )rU   r   rP   r!   rB   rÌ   )OÚ
__future__r   r,   Útypingr   r   r   r   r   r	   r
   r   Ú
TypingTyper   r   Úmypyr   Úmypy.messagesr   r�   Ú
mypy.nodesr   r   r   r   r   r   r   r   r   r   r   r   r   r   Úmypy.optionsr   Úmypy.pluginr   r    r!   Úmypy.plugins.commonr"   Úmypy.typeopsr#   Ú
mypy.typesr$   r%   r&   r'   r(   r)   r*   ÚtupleÚ__version__ÚsplitÚ_versrŒ   r7   r:   r]   re   ri   rm   rp   ru   ry   r{   r   r�   rˆ   r’   r–   r¡   r§   r»   rÃ   rÆ   rÏ   rR   r3   r1   ú<module>rß      sp  ðð #Ð "Ð "Ð "Ð "Ð "à 	€	€	€	Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø :Ð :Ð :Ð :Ð :Ð :Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø &Ð &Ð &Ð &Ð &Ð &Ø  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø .Ð .Ð .Ð .Ð .Ð .Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø :Ð :Ð :Ð :Ð :Ð :Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø #Ð #Ð #Ð #Ð #Ð #Ø &Ð &Ð &Ð &Ð &Ð &Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø "Ð "Ð "Ð "Ð "Ð "Ø "Ð "Ð "Ð "Ð "Ð "Ø  Ð  Ð  Ð  Ð  Ð  àˆØMÐM�WÔ(×.Ò.¨sÑ3Ô3ÐMÑMÔMñ	ô 	€ð �6Š/€ð ˆG�K u¨X°xÐ-?Ô'@ÐAÑAÔA€	ð*/ð */ð */ð */ð */ñ */ô */ð */ðZ.ð .ð .ð .ð;ð ;ð ;ð ;ð>ð >ð >ð >ðð ð ð ð/ð /ð /ð /ð.ð .ð .ð .ðð ð ð ð
ð ð ð ð
0ð 0ð 0ð 0ðð ð ð ð
ð ð ð ð&'ð 'ð 'ð 'ðð ð ð ðð ð ð ð
,ð ,ð ,ð ,ð  
à9<ðð ð ð ð ñ 
„ðð 
ðð ð ñ 
„ðð 9=ð	ð ð ð ð ð ð(	ð 	ð 	ð 	ðð ð ð ð&-ð -ð -ð -ð`
ð 
ð 
ð 
ð 
ð 
r3   