
    
 @g/                       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 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,m.Z. dd'l,m/Z/ dd(l,m0Z0 dd)l,m1Z1 dd*l,m2Z2 dd+l3m4Z4 dd,lm5Z5 dd-lm6Z6 dd.l7m8Z8 dd/l9m:Z: dd0l9m;Z; dd1l9m<Z< dd2l9m=Z= dd3l9m>Z> dd4l9m?Z? dd5l9m@Z@ dd6l9mAZA dd7l9mBZB dd8l9mCZC dd9l9mDZD dd:lEmFZF dd;lEmGZG dd<lHmIZI dd=lmJZJ  ed>e?          ZK ed@dA?          ZL edBdC?          ZM G dD dEe          ZN G dF dGe          ZO edHePeQdIdJdKdLdMeRdN
  
        ZS edOej5        edP         ee         eeN         eN          ZTeeQdQdReNejU        eK         f         ZVeejW        eK         ej5        dSedP         eeK         eeN         eNf         ZX	 eejW        eK         dSeeK         f         ZY edTeedUf         ?          ZZ edVe?          Z[ edWe?          Z\ edXe?          Z] edYe?          Z^ edZe?          Z_ ed[e?          Z` ed\e?          Za ed]e?          Zb ed^e?          Zc ed_e?          ZdedReNdSejU        eK         eg dRf         d`f         Ze	 eeeK         Zfdaegdb<   	 eeeeeK         f         ZheeQeeeK         f         Zieeef         Zj	 eej6        ee         eeN         eNf         Zk	 eekejl        f         Zm	 eeee         ejn        f         Zo	 edcejp        f         Zq	 eeQeNejr        ddf         Zs	  edees?          Zteetef         ZueeQdfejv        f         Zw	 edgdhdidjee         eeN         eNf         Zxejy        eQef         Zzeedk         dkf         Z{edAedA         f         Z|eePeeeP         df         Z}ee~edl         f         Zer=ddqZddsZddwZddyZdd{Zdd}ZddZddZddZddZddZddZddZddZddZn ej        d          Z ej        d          Z ej        d          Z ej        d          Z ej        d          Z ej        d          Z ej        d          Z ej        d          Z ej        d          Z ej        d          Z ej        d          Z ej        d          Z ej        d          Z ej        d          Z ej        d          ZddZddZddZddZddZddZe
dd            Ze
dd            Ze
dd            ZddZe
dd            Ze
dd            Ze
ddÄ            Ze
ddń            ZddǄZdS )    )annotationsN)Any)Callable)Dict)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)ColumnsClauseRole)FromClauseRole)Column)Alias)CTE)
FromClause)Join)NamedFromClause)ReturnsRows)Select)
Selectable)
SelectBase)Subquery)TableClause)TableValueType)	TupleType)
TypeEngine)	TypeGuard_T)bound_CEzColumnElement[Any]_CLEr&   c                      e Zd ZdZddZdS )_HasClauseElementz8indicates a class that has a __clause_element__() methodreturnr-   c                    d S N )selfs    J/var/www/piapp/venv/lib/python3.11/site-packages/sqlalchemy/sql/_typing.py__clause_element__z$_HasClauseElement.__clause_element__T           N)rE   r-   )__name__
__module____qualname____doc__rK   rH   rM   rJ   rD   rD   Q   s.        BB     rM   rD   c                      e Zd ZdZddZdS )_CoreAdapterProtoz?protocol for the ClauseAdapter/ColumnAdapter.traverse() method.objrA   rE   c                    d S rG   rH   )rI   rT   s     rJ   __call__z_CoreAdapterProto.__call__[   rL   rM   N)rT   rA   rE   rA   )rN   rO   rP   rQ   rV   rH   rM   rJ   rS   rS   X   s.        II     rM   rS   _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!   rE   TypeGuard[SQLCompiler]c                    d S rG   rH   ri   s    rJ   is_sql_compilerrm     rL   rM   TypeGuard[DDLCompiler]c                    d S rG   rH   rl   s    rJ   is_ddl_compilerrp     rL   rM   tr.   TypeGuard[NamedFromClause]c                    d S rG   rH   rq   s    rJ   is_named_from_clauseru   !  rL   rM   TypeGuard[ColumnElement[Any]]c                    d S rG   rH   rl   s    rJ   is_column_elementrx   $  rL   rM   "TypeGuard[KeyedColumnElement[Any]]c                    d S rG   rH   rl   s    rJ   is_keyed_column_elementr{   '  	     	rM   TypeGuard[TextClause]c                    d S rG   rH   rl   s    rJ   is_text_clauser   ,  rL   rM   TypeGuard[FromClause]c                    d S rG   rH   rl   s    rJ   is_from_clauser   /  rL   rM   TypeEngine[Any]TypeGuard[TupleType]c                    d S rG   rH   rt   s    rJ   is_tuple_typer   2  rL   rM   TypeGuard[TableValueType]c                    d S rG   rH   rt   s    rJ   is_table_value_typer   5  rL   rM   r   TypeGuard[Selectable]c                    d S rG   rH   rt   s    rJ   is_selectabler   8  rL   rM   Union[Executable, ReturnsRows]TypeGuard[SelectBase]c                    d S rG   rH   rt   s    rJ   is_select_baser   ;  r|   rM   TypeGuard[Select[Any]]c                    d S rG   rH   rt   s    rJ   is_select_statementr   @  r|   rM   r2   TypeGuard[TableClause]c                    d S rG   rH   rt   s    rJ   is_tabler   E  rL   rM   TypeGuard[Subquery]c                    d S rG   rH   rt   s    rJ   is_subqueryr   H  rL   rM   TypeGuard[UpdateBase]c                    d S rG   rH   rl   s    rJ   is_dmlr   K  rL   rM   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_valuer   _is_select_base_is_select_statement	_is_table_is_subqueryr   c                "    t          | d          S )Nschemahasattrrt   s    rJ   has_schema_attrr   `  s    1hrM   sstrTypeGuard[quoted_name]c                "    t          | d          S )Nquoter   r   s    rJ   is_quoted_namer   d  s    1grM   objectTypeGuard[_HasClauseElement]c                "    t          | d          S )NrK   r   r   s    rJ   is_has_clause_elementr   h  s    1*+++rM   TypeGuard[ValuesBase]c                ,    | j         o| j        p| j        S rG   )r   	is_insert	is_updaterl   s    rJ   is_insert_updater   l  s    8434rM   exc.ArgumentErrorc                 *    t          j        d          S )Nz{Additional keyword arguments are not accepted by this function/method.  The presence of **kw is for pep-484 typing purposes)r   ArgumentErrorrH   rM   rJ   _no_kwr   p  s    	P  rM   methnamekwDict[str, Any]r   c                V    t          |          d         }t          |  d| d          )Nr   z% got an unexpected keyword argument '')list	TypeError)r   r   ks      rJ   _unexpected_kwr   w  s0    RA
xJJaJJJ
K
KKrM   val'SQLCoreOperations[_T]'!'SQLCoreOperations[Optional[_T]]'c                    d S rG   rH   r   s    rJ   Nullabler   |  	     CrM   roles.ExpressionElementRole[_T])roles.ExpressionElementRole[Optional[_T]]c                    d S rG   rH   r   s    rJ   r   r     r   rM   Type[_T]Type[Optional[_T]]c                    d S rG   rH   r   s    rJ   r   r         CrM   _TypedColumnClauseArgument[_T](_TypedColumnClauseArgument[Optional[_T]]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
    rH   r   s    rJ   r   r     	     JrM   c                    d S rG   rH   r   s    rJ   NotNullabler     r   rM   c                    d S rG   rH   r   s    rJ   r   r     r   rM   c                    d S rG   rH   r   s    rJ   r   r     r   rM   Optional[Type[_T]]c                    d S rG   rH   r   s    rJ   r   r     r   rM   CUnion[_TypedColumnClauseArgument[Optional[_T]], Optional[Type[_T]]]c                    | S )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
    rH   r   s    rJ   r   r     r   rM   )ri   r!   rE   rj   )ri   r!   rE   rn   )rq   r.   rE   rr   )ri   r&   rE   rv   )ri   r&   rE   ry   )ri   r&   rE   r}   )ri   r&   rE   r   )rq   r   rE   r   )rq   r   rE   r   )rq   r   rE   r   )rq   r   rE   r   )rq   r   rE   r   )rq   r2   rE   r   )rq   r2   rE   r   )ri   r&   rE   r   )rq   r.   rE   r   )r   r   rE   r   )r   r   rE   r   )ri   r&   rE   r   )rE   r   )r   r   r   r   rE   r   )r   r   rE   r   )r   r   rE   r   )r   r   rE   r   )r   r   rE   r   )r   r   rE   r   )r   r   rE   r   )r   r   rE   r   )r   r   rE   r   )r   r   rE   r   )
__future__r   operatortypingr   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   r/   
selectabler0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   sqltypesr;   r<   type_apir=   r>   r?   rA   rB   rD   rS   intr   floatrW   rX   ExpressionElementRole_TextCoercedExpressionArgumentTypedColumnsClauseRole_ColumnsClauseArgument_TypedColumnClauseArgumentrZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   _ColumnExpressionArgumentre   __annotations__"_ColumnExpressionOrLiteralArgument#_ColumnExpressionOrStrLabelArgument	_InfoType_FromClauseArgumentJoinTargetRole_JoinTargetArgumentOnClauseRole_OnClauseArgumentCompoundElementRole#_SelectStatementForCompoundArgumentDMLColumnRole_DMLColumnArgumentrf   _DMLColumnKeyMappingDDLConstraintColumnRole_DDLColumnArgument_DMLTableArgumentimmutabledict_PropagateAttrsType_TypeEngineArgument_EquivalentColumnMap_LimitOffsetTypebool_AutoIncrementTyperm   rp   ru   rx   r{   r   r   r   r   r   r   r   r   r   r   
attrgetterr   r   r   r   r   r   r   r   rH   rM   rJ   <module>r     s   # " " " " " "                                                                                                        $ $ $ $ $ $ ! ! ! ! ! ! " " " " " " # # # # # # &(!!!!!!""""""      """"""%%%%%%%%%%%%'''''''''''',,,,,,%%%%%%++++++$$$$$$&&&&&&((((((%%%%%%!!!!!!&&&&&&      ++++++''''''""""""&&&&&&&&&&&&$$$$$$''''''((((((######$$$$$$''''''WT ge/000wv_---               g


	  	FOI!"   "'	#	%"  	 $	FOH!"  #	 $H  ge5c?+++ge3ge3ge3ge3ge3ge3ge3ge3ge3ge3 "	#R$$%  5&?&C  C C C C &+30I"0M+M%N "&+C1J21N,N&O # cN	 A	I!"  /1EEF 
 3C8%:LLM 
 ',%++' # N	  ')#5
6
6
6w|,  3u/LLM  
	I!"  (c2 D!124DDE 0#6J2KKL 7<dBC 4)<!==>  D+               
                  
   
           *h)(33O)h)(33O.8./BCC++,@AA1h12LMM(X():;;N(X():;;N'H'(899M-(-.?@@'H'88M(X():;;N-(-.DEE"x";//H%(%n55K X **F          , , , ,5 5 5 5   L L L L
 
   
 
   
 
   
   $ 
   
 
   
 
   
 
   
     rM   