
    e?1i/                    *   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jj                  edP   ee   eeN   eN      ZTeeQdQdReNej                  eK   f   ZVeej                  eK   ejj                  dSedP   eeK   eeN   eNf   ZX	 eej                  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j                  eK   eg dRf   d`f   Ze	 eeeK   Zfdaegdb<   	 eeeeeK   f   ZheeQeeeK   f   Zieeef   Zj	 eejl                  ee   eeN   eNf   Zk	 eekej                  f   Zm	 eeee   ej                  f   Zo	 edcej                  f   Zq	 eeQeNej                  ddf   Zs	  edees?      Zteetef   ZueeQdfej                  f   Zw	 edgdhdidjee   eeN   eNf   Zxej                  eQef   Zzeedk   dkf   Z{edAedA   f   Z|eePeeeP   df   Z}ee~edl   f   ZerJddmZddnZddoZddpZ	 	 	 	 ddqZddrZddsZddtZdduZddvZ	 	 	 	 ddwZ	 	 	 	 ddxZddyZddzZdd{Zn 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       Z	 	 	 	 ddZe
	 	 	 	 dd       Ze
	 	 	 	 dd       Ze
dd       Ze
dd       Z	 	 	 	 ddZy)    )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y)_HasClauseElementz8indicates a class that has a __clause_element__() methodc                     y N )selfs    `/home/www/therecruiter.miabetepe.com/venv/lib/python3.12/site-packages/sqlalchemy/sql/_typing.py__clause_element__z$_HasClauseElement.__clause_element__T           N)returnr-   )__name__
__module____qualname____doc__rJ   rG   rL   rI   rD   rD   Q   s
    BrL   rD   c                      e Zd ZdZddZy)_CoreAdapterProtoz?protocol for the ClauseAdapter/ColumnAdapter.traverse() method.c                     y rF   rG   )rH   objs     rI   __call__z_CoreAdapterProto.__call__[   rK   rL   N)rU   rA   rM   rA   )rN   rO   rP   rQ   rV   rG   rL   rI   rS   rS   X   s
    IrL   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_fkc                     y rF   rG   cs    rI   is_sql_compilerrl     rK   rL   c                     y rF   rG   rj   s    rI   is_ddl_compilerrn     rK   rL   c                     y rF   rG   ts    rI   is_named_from_clauserr   !  rK   rL   c                     y rF   rG   rj   s    rI   is_column_elementrt   $  rK   rL   c                     y rF   rG   rj   s    rI   is_keyed_column_elementrv   '       	rL   c                     y rF   rG   rj   s    rI   is_text_clausery   ,  rK   rL   c                     y rF   rG   rj   s    rI   is_from_clauser{   /  rK   rL   c                     y rF   rG   rp   s    rI   is_tuple_typer}   2  rK   rL   c                     y rF   rG   rp   s    rI   is_table_value_typer   5  rK   rL   c                     y rF   rG   rp   s    rI   is_selectabler   8  rK   rL   c                     y rF   rG   rp   s    rI   is_select_baser   ;  rw   rL   c                     y rF   rG   rp   s    rI   is_select_statementr   @  rw   rL   c                     y rF   rG   rp   s    rI   is_tabler   E  rK   rL   c                     y rF   rG   rp   s    rI   is_subqueryr   H  rK   rL   c                     y rF   rG   rj   s    rI   is_dmlr   K  rK   rL   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hasattrrp   s    rI   has_schema_attrr   `  s    1hrL   c                    t        | d      S )Nquoter   ss    rI   is_quoted_namer   d  s    1grL   c                    t        | d      S )NrJ   r   r   s    rI   is_has_clause_elementr   h  s    1*++rL   c                R    | j                   xr | j                  xs | j                  S rF   )r   	is_insert	is_updaterj   s    rI   is_insert_updater   l  s    88434rL   c                 ,    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   ArgumentErrorrG   rL   rI   _no_kwr   p  s    	P rL   c                @    t        |      d   }t        |  d| d      )Nr   z% got an unexpected keyword argument '')list	TypeError)methnamekwks      rI   _unexpected_kwr   w  s(    RA
xj EaSJ
KKrL   c                     y rF   rG   vals    rI   Nullabler   |       rL   c                     y rF   rG   r   s    rI   r   r     r   rL   c                     y rF   rG   r   s    rI   r   r         rL   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
    rG   r   s    rI   r   r     	     JrL   c                     y rF   rG   r   s    rI   NotNullabler     r   rL   c                     y rF   rG   r   s    rI   r   r     r   rL   c                     y rF   rG   r   s    rI   r   r     r   rL   c                     y rF   rG   r   s    rI   r   r     r   rL   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
    rG   r   s    rI   r   r     r   rL   )rk   r!   rM   zTypeGuard[SQLCompiler])rk   r!   rM   zTypeGuard[DDLCompiler])rq   r.   rM   zTypeGuard[NamedFromClause])rk   r&   rM   zTypeGuard[ColumnElement[Any]])rk   r&   rM   z"TypeGuard[KeyedColumnElement[Any]])rk   r&   rM   zTypeGuard[TextClause])rk   r&   rM   zTypeGuard[FromClause])rq   TypeEngine[Any]rM   zTypeGuard[TupleType])rq   r   rM   zTypeGuard[TableValueType])rq   r   rM   zTypeGuard[Selectable])rq   Union[Executable, ReturnsRows]rM   zTypeGuard[SelectBase])rq   r   rM   zTypeGuard[Select[Any]])rq   r2   rM   TypeGuard[TableClause])rq   r2   rM   zTypeGuard[Subquery])rk   r&   rM   zTypeGuard[UpdateBase])rq   r.   rM   r   )r   strrM   zTypeGuard[quoted_name])r   objectrM   zTypeGuard[_HasClauseElement])rk   r&   rM   zTypeGuard[ValuesBase])rM   zexc.ArgumentError)r   r   r   zDict[str, Any]rM   r   )r   'SQLCoreOperations[_T]'rM   !'SQLCoreOperations[Optional[_T]]')r   roles.ExpressionElementRole[_T]rM   )roles.ExpressionElementRole[Optional[_T]])r   Type[_T]rM   Type[Optional[_T]])r   _TypedColumnClauseArgument[_T]rM   z(_TypedColumnClauseArgument[Optional[_T]])r   r   rM   r   )r   r   rM   r   )r   r   rM   r   )r   zOptional[Type[_T]]rM   r   )r   zCUnion[_TypedColumnClauseArgument[Optional[_T]], Optional[Type[_T]]]rM   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_AutoIncrementTyperl   rn   rr   rt   rv   ry   r{   r}   r   r   r   r   r   r   r   
attrgetterr   r   r   r   r   r   r   r   rG   rL   rI   <module>r     se   #                   $ ! " #!" "%%'',%+$&(%!& +'"&&$'(#$'T e/0v_-   


	 	FOI!"  "'	#	%"  	  $	FOH!"  #	  $H  e5c?+e3e3e3e3e3e3e3e3e3e3 "	#R$$%  5&?&C ) C &+30I"0M+M%N "&+C1J21N,N&O # cN	 A	I!"  /1E1EEF 
 3C8%:L:LLM 
 ',%+++' # N	  )#5
6w|,  3u/L/LLM  
	I!"  ((c2 D!124DDE 0#6J2KKL 7<dBC 4)<!==> 	+
)	
)	
 *h))(3O)h))(3O.8../BC+++,@A1h112LM(X(():;N(X(():;N'H''(89M-(--.?@'H''8M(X(():;N-(--.DE"x"";/H%(%%n5K X  *F ,5L
 
	 & 
 
	(. 
 
 
	'-$ 
	* 
 
	2$ 
 
 
 
 
	L#rL   