o
     h2                     @  sN  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rd 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;l:mFZF dd<lGmHZH dd=lGmIZI dd>lJmKZK dd?lLmMZM dd@lLmNZN ddAlLmOZO ddBlPmQZQ ddClmRZR edDedEZSedFedGdHZTedIdJdEZUedKdLdEZVG dMdN dNeeeT ZWG dOdP dPeZXG dQdR dReZYedSeZe[e\dTdUdVdWdXe]dYZ^edZ Z_ed[ej`e_ee eeWe  eWe Zaee[d\d]eWeS ejbeS f ZceejdeS ej`d^e_eeS eeWeS  eWeS f Ze	 eejdeS d^eeS f Zfed_eed`f dEZgedaedEZhedbedEZiedcedEZjeddedEZkedeedEZledfedEZmedgedEZnedhedEZoediedEZpedjedEZqed]eWeS d^ejbeS ejdeS eg d]f dkf Zr	 ereS Zsdletdm< 	 eeereS f Zuee[ereS f Zveeeve  eve f Zw	 eeef Zx	 eej7ee eeWe  eWe f Zy	 eeyejzf Z{	 eere ej|f Z}	 edndoej~f Z	 ee[eWe ejdpf Z	 edqedEZe	eef Zee[drejf Z	 edsdtdudvee eeWe  eWe f Zeje[ef Zeedw dwf ZedJedJ f ZeeZereZ df Zee\edx f Zedy Zerydd~dZddd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d dd؄Zeddd؄Zddd؄ZedddZedddZeddd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)CompoundSelect)CTE)
FromClause)Join)NamedFromClause)ReturnsRows)Select)
Selectable)
SelectBase)Subquery)TableClause)TableValueType)	TupleType)
TypeEngine)
Connection)Dialect)Engine)MockConnection)	TypeGuard_T)bound_T_coT)rE   	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 selfrO   rO   I/var/www/html/venv/lib/python3.10/site-packages/sqlalchemy/sql/_typing.py__clause_element__[       z$_HasClauseElement.__clause_element__N)rK   rL   )__name__
__module____qualname____doc__rS   rO   rO   rO   rR   rJ   X       rJ   c                   @  s   e Zd ZdZdddZdS )	_CoreAdapterProtoz?protocol for the ClauseAdapter/ColumnAdapter.traverse() method.objrH   rK   c                 C  rM   rN   rO   )rQ   r[   rO   rO   rR   __call__a   rT   z_CoreAdapterProto.__call__N)r[   rH   rK   rH   )rU   rV   rW   rX   r\   rO   rO   rO   rR   rZ   ^   rY   rZ   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.
    rK   r@   c                 C  rM   rN   rO   rP   rO   rO   rR   dialecti      z_HasDialect.dialectN)rK   r@   )rU   rV   rW   rX   propertyr^   rO   rO   rO   rR   r]   d   s    r]   _NOT_ENTITYr   r   r   r   r    r   )*r   _MAYBE_ENTITYr,   zColumnElement[_T]zSQLCoreOperations[_T]_TP._T0_T1_T2_T3_T4_T5_T6_T7_T8_T9r-   r   ColumnExpressionArgumentzSelect[_TP]zCompoundSelect[_TP]zSQLCoreOperations[Any]_DMLKeyzColumn[Any]r;   r4   r0   r2   zTypeEngine[_T])auto	ignore_fk)rA   r?   rB   cr"   rK   TypeGuard[SQLCompiler]c                 C  rM   rN   rO   rs   rO   rO   rR   is_sql_compiler7  rT   rv   TypeGuard[DDLCompiler]c                 C  rM   rN   rO   ru   rO   rO   rR   is_ddl_compiler9  rT   rx   tr.   TypeGuard[NamedFromClause]c                 C  rM   rN   rO   ry   rO   rO   rR   is_named_from_clause;     r|   TypeGuard[ColumnElement[Any]]c                 C  rM   rN   rO   ru   rO   rO   rR   is_column_element?  r}   r   "TypeGuard[KeyedColumnElement[Any]]c                 C  rM   rN   rO   ru   rO   rO   rR   is_keyed_column_elementC  r}   r   TypeGuard[TextClause]c                 C  rM   rN   rO   ru   rO   rO   rR   is_text_clauseG  rT   r   TypeGuard[FromClause]c                 C  rM   rN   rO   ru   rO   rO   rR   is_from_clauseI  rT   r   TypeEngine[Any]TypeGuard[TupleType]c                 C  rM   rN   rO   r{   rO   rO   rR   is_tuple_typeK  rT   r   TypeGuard[TableValueType]c                 C  rM   rN   rO   r{   rO   rO   rR   is_table_value_typeM  r}   r   r   TypeGuard[Selectable]c                 C  rM   rN   rO   r{   rO   rO   rR   is_selectableQ  rT   r   Union[Executable, ReturnsRows]TypeGuard[SelectBase]c                 C  rM   rN   rO   r{   rO   rO   rR   is_select_baseS  r}   r   TypeGuard[Select[Any]]c                 C  rM   rN   rO   r{   rO   rO   rR   is_select_statementW  r}   r   r3   TypeGuard[TableClause]c                 C  rM   rN   rO   r{   rO   rO   rR   is_table[  rT   r   TypeGuard[Subquery]c                 C  rM   rN   rO   r{   rO   rO   rR   is_subquery]  rT   r   TypeGuard[UpdateBase]c                 C  rM   rN   rO   ru   rO   rO   rR   is_dml_  rT   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hasattrr{   rO   rO   rR   has_schema_attrs     
r   sstrTypeGuard[quoted_name]c                 C  r   )Nquoter   r   rO   rO   rR   is_quoted_namew  r   r   object!TypeGuard[_HasClauseElement[Any]]c                 C  r   )NrS   r   r   rO   rO   rR   is_has_clause_element{  r   r   TypeGuard[ValuesBase]c                 C  s   | j o| jp| jS rN   )r   	is_insert	is_updateru   rO   rO   rR   is_insert_update  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   ArgumentErrorrO   rO   rO   rR   _no_kw  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   krO   rO   rR   _unexpected_kw  s   r   val'SQLCoreOperations[_T]'!'SQLCoreOperations[Optional[_T]]'c                 C  rM   rN   rO   r   rO   rO   rR   Nullable     r   roles.ExpressionElementRole[_T])roles.ExpressionElementRole[Optional[_T]]c                 C  rM   rN   rO   r   rO   rO   rR   r     r   Type[_T]Type[Optional[_T]]c                 C  rM   rN   rO   r   rO   rO   rR   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
    rO   r   rO   rO   rR   r        c                 C  rM   rN   rO   r   rO   rO   rR   NotNullable  r   r   c                 C  rM   rN   rO   r   rO   rO   rR   r     r   c                 C  rM   rN   rO   r   rO   rO   rR   r     r_   Optional[Type[_T]]c                 C  rM   rN   rO   r   rO   rO   rR   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
    rO   r   rO   rO   rR   r     r   )rs   r"   rK   rt   )rs   r"   rK   rw   )ry   r.   rK   rz   )rs   r'   rK   r~   )rs   r'   rK   r   )rs   r'   rK   r   )rs   r'   rK   r   )ry   r   rK   r   )ry   r   rK   r   )ry   r   rK   r   )ry   r   rK   r   )ry   r   rK   r   )ry   r3   rK   r   )ry   r3   rK   r   )rs   r'   rK   r   )ry   r.   rK   r   )r   r   rK   r   )r   r   rK   r   )rs   r'   rK   r   )rK   r   )r   r   r   r   rK   r	   )r   r   rK   r   )r   r   rK   r   )r   r   rK   r   )r   r   rK   r   )r   r   rK   r   )r   r   rK   r   )r   r   rK   r   )r   r   rK   r   )r   r   rK   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:   r;   sqltypesr<   r=   type_apir>   enginer?   r@   rA   engine.mockrB   rC   rD   rF   rH   rI   rJ   rZ   r]   intr   boolfloatra   
_StarOrOneColumnsClauseRolerc   ExpressionElementRole_TextCoercedExpressionArgumentTypedColumnsClauseRole_ColumnsClauseArgument_TypedColumnClauseArgumentrd   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   _ColumnExpressionArgumentro   __annotations__"_ColumnExpressionOrLiteralArgument#_ColumnExpressionOrStrLabelArgument_ByArgument	_InfoType_FromClauseArgumentJoinTargetRole_JoinTargetArgumentOnClauseRole_OnClauseArgumentCompoundElementRole#_SelectStatementForCompoundArgumentDMLColumnRole_DMLColumnArgumentrp   _DMLColumnKeyMappingDDLConstraintColumnRole_DDLColumnArgument_DMLTableArgumentimmutabledict_PropagateAttrsType_TypeEngineArgument_EquivalentColumnMap_LimitOffsetType_AutoIncrementType_CreateDropBindrv   rx   r|   r   r   r   r   r   r   r   r   r   r   r   r   
attrgetterr   r   r   r   r   r   r   r   rO   rO   rO   rR   <module>   s  


	

	







































