o
     Zh1                     @  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 ZejeVef Zeedr drf ZedFedF f ZeeUeleU df ZeeWeds f ZerXddxdyZdd{d|ZdddZdddZdddZdddZdddZdddZdddZdddZdddZdddZdddZdddZdddZnKedZedZedZedZedZedZedZedZedZedZedZedZedZedZedZdddZdddZdddZdddĄZdddǄZddd̈́Zeddd҄Zeddd҄Zeddd҄Zddd҄Zeddd݄Zeddd݄Zeddd݄Zed dd݄Zddd݄Zd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   M/var/www/html/lang_env/lib/python3.10/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])autoZ	ignore_fkcr"   rG   TypeGuard[SQLCompiler]c                 C  rI   rJ   rK   rn   rK   rK   rN   is_sql_compiler,  rP   rq   TypeGuard[DDLCompiler]c                 C  rI   rJ   rK   rp   rK   rK   rN   is_ddl_compiler.  rP   rs   tr.   TypeGuard[NamedFromClause]c                 C  rI   rJ   rK   rt   rK   rK   rN   is_named_from_clause0     rw   TypeGuard[ColumnElement[Any]]c                 C  rI   rJ   rK   rp   rK   rK   rN   is_column_element4  rx   rz   "TypeGuard[KeyedColumnElement[Any]]c                 C  rI   rJ   rK   rp   rK   rK   rN   is_keyed_column_element8  rx   r|   TypeGuard[TextClause]c                 C  rI   rJ   rK   rp   rK   rK   rN   is_text_clause<  rP   r~   TypeGuard[FromClause]c                 C  rI   rJ   rK   rp   rK   rK   rN   is_from_clause>  rP   r   TypeEngine[Any]TypeGuard[TupleType]c                 C  rI   rJ   rK   rv   rK   rK   rN   is_tuple_type@  rP   r   TypeGuard[TableValueType]c                 C  rI   rJ   rK   rv   rK   rK   rN   is_table_value_typeB  rx   r   r   TypeGuard[Selectable]c                 C  rI   rJ   rK   rv   rK   rK   rN   is_selectableF  rP   r   Union[Executable, ReturnsRows]TypeGuard[SelectBase]c                 C  rI   rJ   rK   rv   rK   rK   rN   is_select_baseH  rx   r   TypeGuard[Select[Any]]c                 C  rI   rJ   rK   rv   rK   rK   rN   is_select_statementL  rx   r   r2   TypeGuard[TableClause]c                 C  rI   rJ   rK   rv   rK   rK   rN   is_tableP  rP   r   TypeGuard[Subquery]c                 C  rI   rJ   rK   rv   rK   rK   rN   is_subqueryR  rP   r   TypeGuard[UpdateBase]c                 C  rI   rJ   rK   rp   rK   rK   rN   is_dmlT  rP   r   Zis_sqlZis_ddlZnamed_with_columnZ_is_column_elementZ_is_keyed_column_elementZ_is_text_clauseZ_is_from_clauseZ_is_tuple_typeZ_is_table_valueZ_is_select_baseZ_is_select_statementZ	_is_tableZ_is_subqueryc                 C  
   t | dS )Nschemahasattrrv   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   Z	is_insertZ	is_updaterp   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   )rn   r"   rG   ro   )rn   r"   rG   rr   )rt   r.   rG   ru   )rn   r'   rG   ry   )rn   r'   rG   r{   )rn   r'   rG   r}   )rn   r'   rG   r   )rt   r   rG   r   )rt   r   rG   r   )rt   r   rG   r   )rt   r   rG   r   )rt   r   rG   r   )rt   r2   rG   r   )rt   r2   rG   r   )rn   r'   rG   r   )rt   r.   rG   r   )r   r   rG   r   )r   r   rG   r   )rn   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   Z
inspectionr   Zutil.typingr   r   r   r   r   r   r   decimalr   uuidr    baser!   compilerr"   r#   r$   Zdmlr%   r&   elementsr'   r(   r)   r*   r+   r,   Zlambdasr-   r.   r   r/   Z
selectabler0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   Zsqltypesr;   r<   Ztype_apir=   Zenginer>   r?   r@   rB   rD   rE   rF   rV   rY   intr   boolfloatr]   ZColumnsClauseRoler^   ZExpressionElementRoleZ_TextCoercedExpressionArgumentZTypedColumnsClauseRoleZ_ColumnsClauseArgumentZ_TypedColumnClauseArgumentr`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   Z_ColumnExpressionArgumentrk   __annotations__Z"_ColumnExpressionOrLiteralArgumentZ#_ColumnExpressionOrStrLabelArgumentZ_ByArgumentZ	_InfoTypeZ_FromClauseArgumentZJoinTargetRoleZ_JoinTargetArgumentZOnClauseRoleZ_OnClauseArgumentZCompoundElementRoleZ#_SelectStatementForCompoundArgumentZDMLColumnRoleZ_DMLColumnArgumentrl   Z_DMLColumnKeyMappingZDDLConstraintColumnRoleZ_DDLColumnArgumentZ_DMLTableArgumentZimmutabledictZ_PropagateAttrsTypeZ_TypeEngineArgumentZ_EquivalentColumnMapZ_LimitOffsetTypeZ_AutoIncrementTyperq   rs   rw   rz   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  


	










































