o
    Š)f©1  ã                   @  s   U 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 e�rpd 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.m2Z2 dd+l.m3Z3 dd,l.m4Z4 dd-l5m6Z6 dd.lm7Z7 dd/l8m9Z9 dd0l:m;Z; dd1l:m<Z< dd2l:m=Z= dd3l:m>Z> dd4l:m?Z? dd5l:m@Z@ dd6l:mAZA dd7l:mBZB dd8l:mCZC dd9l:mDZD dd:l:mEZE dd;lFmGZG dd<lFmHZH dd=lImJZJ dd>lKmLZL dd?lmMZM ed@edA�ZNedBedCdD�ZOedEdFdA�ZPedGdHdA�ZQG dIdJ„ dJeeeO ƒZRG dKdL„ dLeƒZSG dMdN„ dNeƒZTedOeUeVeWdPdQdRdSdTeXdUƒZYedVejZedW ee eeRe  eRe ƒZ[eeVdXdYeReN ej\eN f Z]eej^eN ejZdZedW eeN eeReN  eReN f Z_	 eej^eN dZeeN f Z`ed[eed\f dA�Zaed]edA�Zbed^edA�Zced_edA�Zded`edA�ZeedaedA�ZfedbedA�ZgedcedA�ZheddedA�ZiedeedA�ZjedfedA�ZkedYeReN dZej\eN eg dYf dgf Zl	 eleN Zmdhendi< 	 eeeleN f ZoeeVeleN f Zpeeepe  epe f Zq	 eeef Zr	 eej7ee eeRe  eRe f Zs	 eesejtf Zu	 eele ejvf Zw	 edjejxf Zy	 eeVeRe ejzdkf Z{	 edle{dA�Z|e	e|ef Z}eeVdmej~f Z	 edndodpdqee eeRe  eRe f Z€ej�eVef Z‚eedr drf ZƒedFedF f Z„eeUeleU df Z…eeWeds f Z†e�rXdädxdy„Z‡dåd{d|„Zˆdæd€d�„Z‰dçdƒd„„ZŠdèd†d‡„Z‹déd‰dŠ„ZŒdêdŒd�„Z�dëd�d‘„ZŽdìd“d”„Z�díd—d˜„Z�dîd›dœ„Z‘dïdždŸ„Z’dðd¢d£„Z“dñd¥d¦„Z”dòd¨d©„Z•nKe –dª¡Z‡e –d«¡Zˆe –d¬¡Z‰e –d­¡ZŠe –d®¡Z‹e –d¯¡ZŒe –d°¡Z�e –d±¡ZŽe –d²¡Z�e –d˜¡Z�e –d³¡Z‘e –d´¡Z’e –dµ¡Z“e –d¶¡Z”e –d©¡Z•dód·d¸„Z—dôd¼d½„Z˜dõdÀdÁ„Z™dödÃdÄ„Zšd÷dÆdÇ„Z›dødÌdÍ„ZœedùdÑdÒ„ƒZ�edúdÕdÒ„ƒZ�edûdØdÒ„ƒZ�düdÛdÒ„Z�edýdÜdÝ„ƒZžedþdÞdÝ„ƒZžedÿdßdÝ„ƒZže�d dádÝ„ƒZž�ddãdÝ„ZždS (  é    )ÚannotationsN)ÚAny)ÚCallable)ÚDict)ÚGeneric)ÚIterable)ÚMapping)ÚNoReturn)ÚOptional)Úoverload)ÚSet)ÚTuple)ÚType)ÚTYPE_CHECKING)ÚTypeVar)ÚUnioné   )Úrolesé   )Úexc)Úutil)ÚInspectable)ÚLiteral)ÚProtocol)Ú	TypeAlias)Údate)Údatetime)Útime)Ú	timedelta)ÚDecimal)ÚUUID)Ú
Executable)ÚCompiled)ÚDDLCompiler)ÚSQLCompiler)Ú
UpdateBase)Ú
ValuesBase)ÚClauseElement)ÚColumnElement)ÚKeyedColumnElement)Úquoted_name)ÚSQLCoreOperations)Ú
TextClause)ÚLambdaElement)ÚFromClauseRole)ÚColumn)ÚAlias)ÚCTE)Ú
FromClause)ÚJoin)ÚNamedFromClause)ÚReturnsRows)ÚSelect)Ú
Selectable)Ú
SelectBase)ÚSubquery)ÚTableClause)ÚTableValueType)Ú	TupleType)Ú
TypeEngine)ÚDialect)Ú	TypeGuardÚ_T)ÚboundÚ_T_coT)rA   Ú	covariantÚ_CEzColumnElement[Any]Ú_CLEr'   c                   @  s   e Zd ZdZddd„ZdS )Ú_HasClauseElementz8indicates a class that has a __clause_element__() methodÚreturnú"roles.ExpressionElementRole[_T_co]c                 C  ó   d S ©N© ©ÚselfrK   rK   úS/var/www/html/flask-app/venv/lib/python3.12/site-packages/sqlalchemy/sql/_typing.pyÚ__clause_element__W   ó    z$_HasClauseElement.__clause_element__N)rG   rH   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__rO   rK   rK   rK   rN   rF   T   ó    rF   c                   @  s   e Zd ZdZddd„ZdS )	Ú_CoreAdapterProtoz?protocol for the ClauseAdapter/ColumnAdapter.traverse() method.ÚobjrD   rG   c                 C  rI   rJ   rK   )rM   rW   rK   rK   rN   Ú__call__]   rP   z_CoreAdapterProto.__call__N)rW   rD   rG   rD   )rQ   rR   rS   rT   rX   rK   rK   rK   rN   rV   Z   rU   rV   c                   @  s   e Zd ZdZeddd„ƒZdS )Ú_HasDialectzQprotocol for Engine/Connection-like objects that have dialect
    attribute.
    rG   r>   c                 C  rI   rJ   rK   rL   rK   rK   rN   Údialecte   ó   z_HasDialect.dialectN)rG   r>   )rQ   rR   rS   rT   ÚpropertyrZ   rK   rK   rK   rN   rY   `   s    rY   Ú_NOT_ENTITYr   r   r   r   r    r   Ú_MAYBE_ENTITY)Ú*r   r,   zColumnElement[_T]zSQLCoreOperations[_T]Ú_TP.Ú_T0Ú_T1Ú_T2Ú_T3Ú_T4Ú_T5Ú_T6Ú_T7Ú_T8Ú_T9r-   r   ÚColumnExpressionArgumentr8   zSQLCoreOperations[Any]Ú_DMLKeyzColumn[Any]r:   r3   r0   r1   zTypeEngine[_T])ÚautoÚ	ignore_fkÚcr"   rG   úTypeGuard[SQLCompiler]c                 C  rI   rJ   rK   ©ro   rK   rK   rN   Úis_sql_compiler,  rP   rr   úTypeGuard[DDLCompiler]c                 C  rI   rJ   rK   rq   rK   rK   rN   Úis_ddl_compiler.  rP   rt   Útr.   úTypeGuard[NamedFromClause]c                 C  rI   rJ   rK   ©ru   rK   rK   rN   Úis_named_from_clause0  ó   rx   úTypeGuard[ColumnElement[Any]]c                 C  rI   rJ   rK   rq   rK   rK   rN   Úis_column_element4  ry   r{   ú"TypeGuard[KeyedColumnElement[Any]]c                 C  rI   rJ   rK   rq   rK   rK   rN   Úis_keyed_column_element8  ry   r}   úTypeGuard[TextClause]c                 C  rI   rJ   rK   rq   rK   rK   rN   Úis_text_clause<  rP   r   úTypeGuard[FromClause]c                 C  rI   rJ   rK   rq   rK   rK   rN   Úis_from_clause>  rP   r�   úTypeEngine[Any]úTypeGuard[TupleType]c                 C  rI   rJ   rK   rw   rK   rK   rN   Úis_tuple_type@  rP   r„   úTypeGuard[TableValueType]c                 C  rI   rJ   rK   rw   rK   rK   rN   Úis_table_value_typeB  ry   r†   r   úTypeGuard[Selectable]c                 C  rI   rJ   rK   rw   rK   rK   rN   Úis_selectableF  rP   rˆ   úUnion[Executable, ReturnsRows]úTypeGuard[SelectBase]c                 C  rI   rJ   rK   rw   rK   rK   rN   Úis_select_baseH  ry   r‹   úTypeGuard[Select[Any]]c                 C  rI   rJ   rK   rw   rK   rK   rN   Úis_select_statementL  ry   r�   r2   úTypeGuard[TableClause]c                 C  rI   rJ   rK   rw   rK   rK   rN   Úis_tableP  rP   r�   úTypeGuard[Subquery]c                 C  rI   rJ   rK   rw   rK   rK   rN   Úis_subqueryR  rP   r‘   úTypeGuard[UpdateBase]c                 C  rI   rJ   rK   rq   rK   rK   rN   Úis_dmlT  rP   r“   Úis_sqlÚis_ddlÚnamed_with_columnÚ_is_column_elementÚ_is_keyed_column_elementÚ_is_text_clauseÚ_is_from_clauseÚ_is_tuple_typeÚ_is_table_valueÚ_is_select_baseÚ_is_select_statementÚ	_is_tableÚ_is_subqueryc                 C  ó
   t | dƒS )NÚschema©Úhasattrrw   rK   rK   rN   Úhas_schema_attrh  ó   
r¥   ÚsÚstrúTypeGuard[quoted_name]c                 C  r¡   )NÚquoter£   ©r§   rK   rK   rN   Úis_quoted_namel  r¦   r¬   Úobjectú!TypeGuard[_HasClauseElement[Any]]c                 C  r¡   )NrO   r£   r«   rK   rK   rN   Úis_has_clause_elementp  r¦   r¯   úTypeGuard[ValuesBase]c                 C  s   | j o| jp| jS rJ   )r“   Ú	is_insertÚ	is_updaterq   rK   rK   rN   Úis_insert_updatet  s   r³   úexc.ArgumentErrorc                   C  s
   t  d¡S )Nz{Additional keyword arguments are not accepted by this function/method.  The presence of **kw is for pep-484 typing purposes)r   ÚArgumentErrorrK   rK   rK   rN   Ú_no_kwx  s   ÿr¶   ÚmethnameÚkwúDict[str, Any]r	   c                 C  s    t |ƒd }t| › d|› d�ƒ‚)Nr   z% got an unexpected keyword argument 'ú')ÚlistÚ	TypeError)r·   r¸   ÚkrK   rK   rN   Ú_unexpected_kw  s   r¾   Úvalú'SQLCoreOperations[_T]'ú!'SQLCoreOperations[Optional[_T]]'c                 C  rI   rJ   rK   ©r¿   rK   rK   rN   ÚNullable„  ó   rÃ   úroles.ExpressionElementRole[_T]ú)roles.ExpressionElementRole[Optional[_T]]c                 C  rI   rJ   rK   rÂ   rK   rK   rN   rÃ   Š  rÄ   úType[_T]úType[Optional[_T]]c                 C  rI   rJ   rK   rÂ   rK   rK   rN   rÃ   �  r[   ú_TypedColumnClauseArgument[_T]ú(_TypedColumnClauseArgument[Optional[_T]]c                 C  ó   | S )aŠ  Types a column or ORM class as nullable.

    This can be used in select and other contexts to express that the value of
    a column can be null, for example due to an outer join::

        stmt1 = select(A, Nullable(B)).outerjoin(A.bs)
        stmt2 = select(A.data, Nullable(B.data)).outerjoin(A.bs)

    At runtime this method returns the input unchanged.

    .. versionadded:: 2.0.20
    rK   rÂ   rK   rK   rN   rÃ   ”  ó   c                 C  rI   rJ   rK   rÂ   rK   rK   rN   ÚNotNullable¦  rÄ   rÍ   c                 C  rI   rJ   rK   rÂ   rK   rK   rN   rÍ   ¬  rÄ   c                 C  rI   rJ   rK   rÂ   rK   rK   rN   rÍ   ²  r[   úOptional[Type[_T]]c                 C  rI   rJ   rK   rÂ   rK   rK   rN   rÍ   ¶  r[   úCUnion[_TypedColumnClauseArgument[Optional[_T]], Optional[Type[_T]]]c                 C  rË   )a~  Types a column or ORM class as not nullable.

    This can be used in select and other contexts to express that the value of
    a column cannot be null, for example due to a where condition on a
    nullable column::

        stmt = select(NotNullable(A.value)).where(A.value.is_not(None))

    At runtime this method returns the input unchanged.

    .. versionadded:: 2.0.20
    rK   rÂ   rK   rK   rN   rÍ   º  rÌ   )ro   r"   rG   rp   )ro   r"   rG   rs   )ru   r.   rG   rv   )ro   r'   rG   rz   )ro   r'   rG   r|   )ro   r'   rG   r~   )ro   r'   rG   r€   )ru   r‚   rG   rƒ   )ru   r‚   rG   r…   )ru   r   rG   r‡   )ru   r‰   rG   rŠ   )ru   r‰   rG   rŒ   )ru   r2   rG   rŽ   )ru   r2   rG   r�   )ro   r'   rG   r’   )ru   r.   rG   rŽ   )r§   r¨   rG   r©   )r§   r­   rG   r®   )ro   r'   rG   r°   )rG   r´   )r·   r¨   r¸   r¹   rG   r	   )r¿   rÀ   rG   rÁ   )r¿   rÅ   rG   rÆ   )r¿   rÇ   rG   rÈ   )r¿   rÉ   rG   rÊ   )r¿   rÁ   rG   rÀ   )r¿   rÆ   rG   rÅ   )r¿   rÈ   rG   rÇ   )r¿   rÎ   rG   rÇ   )r¿   rÏ   rG   rÉ   )ŸÚ
__future__r   ÚoperatorÚtypingr   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   Ú r   r   r   Ú
inspectionr   Úutil.typingr   r   r   r   r   r   r   Údecimalr   Úuuidr    Úbaser!   Úcompilerr"   r#   r$   Údmlr%   r&   Úelementsr'   r(   r)   r*   r+   r,   Úlambdasr-   r.   r¢   r/   Ú
selectabler0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   Úsqltypesr;   r<   Útype_apir=   Úenginer>   r?   r@   rB   rD   rE   rF   rV   rY   Úintr¨   ÚboolÚfloatr]   ÚColumnsClauseRoler^   ÚExpressionElementRoleÚ_TextCoercedExpressionArgumentÚTypedColumnsClauseRoleÚ_ColumnsClauseArgumentÚ_TypedColumnClauseArgumentr`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   Ú_ColumnExpressionArgumentrk   Ú__annotations__Ú"_ColumnExpressionOrLiteralArgumentÚ#_ColumnExpressionOrStrLabelArgumentÚ_ByArgumentÚ	_InfoTypeÚ_FromClauseArgumentÚJoinTargetRoleÚ_JoinTargetArgumentÚOnClauseRoleÚ_OnClauseArgumentÚCompoundElementRoleÚ#_SelectStatementForCompoundArgumentÚDMLColumnRoleÚ_DMLColumnArgumentrl   Ú_DMLColumnKeyMappingÚDDLConstraintColumnRoleÚ_DDLColumnArgumentÚ_DMLTableArgumentÚimmutabledictÚ_PropagateAttrsTypeÚ_TypeEngineArgumentÚ_EquivalentColumnMapÚ_LimitOffsetTypeÚ_AutoIncrementTyperr   rt   rx   r{   r}   r   r�   r„   r†   rˆ   r‹   r�   r�   r‘   r“   Ú
attrgetterr¥   r¬   r¯   r³   r¶   r¾   rÃ   rÍ   rK   rK   rK   rN   Ú<module>   sè  
õ
úüÿ
úÿ	
þÿ
ûÿ
ÿÿ
ýÿÿýÿ

úÿ




































