
    1P@iE1                       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;lFmGZG dd<lFmHZH dd=lImJZJ dd>lmKZK  ed?e@      ZL edAedBC      ZM edDdE@      ZN edFdG@      ZO G dH dIeeeM         ZP G dJ dKe      ZQ edLeReSdMdNdOdPdQeTdR
      ZU edSej                  edT   ee   eePe      ePe         ZWeeSdUdVePeL   ej                  eL   f   ZYeej                  eL   ej                  dWedT   eeL   eePeL      ePeL   f   Z[	 eej                  eL   dWeeL   f   Z\ edXeedYf   @      Z] edZe@      Z^ ed[e@      Z_ ed\e@      Z` ed]e@      Za ed^e@      Zb ed_e@      Zc ed`e@      Zd edae@      Ze edbe@      Zf edce@      ZgedVePeL   dWej                  eL   eg dVf   ddf   Zh	 eheL   Zideejdf<   	 eeeheL   f   ZkeeSeheL   f   Zleeele      ele   f   Zm	 eeef   Zn	 eejn                  ee   eePe      ePe   f   Zo	 eeoej                  f   Zq	 eehe   ej                  f   Zs	 edgej                  f   Zu	 eeSePe   ej                  dhf   Zw	  ediew@      Zxe	exef   ZyeeSdjej                  f   Z{	 edkdldmdnee   eePe      ePe   f   Z|ej                  eSef   Z~eedo   dof   ZedEedE   f   ZeeReheR   df   Zeeedp   f   ZerJddqZddrZddsZddtZ	 	 	 	 dduZddvZddwZddxZddyZddzZ	 	 	 	 dd{Z	 	 	 	 dd|Zdd}Zdd~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)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)	TypeGuard_T)bound_T_coT)rA   	covariant_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/lebenam.kofcorporation.com/venv/lib/python3.12/site-packages/sqlalchemy/sql/_typing.py__clause_element__z$_HasClauseElement.__clause_element__V           N)returnz"roles.ExpressionElementRole[_T_co])__name__
__module____qualname____doc__rM   rJ   rO   rL   rG   rG   S   s
    BrO   rG   c                      e Zd ZdZddZy)_CoreAdapterProtoz?protocol for the ClauseAdapter/ColumnAdapter.traverse() method.c                     y rI   rJ   )rK   objs     rL   __call__z_CoreAdapterProto.__call__]   rN   rO   N)rX   rD   rP   rD   )rQ   rR   rS   rT   rY   rJ   rO   rL   rV   rV   Z   s
    IrO   rV   _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   ColumnExpressionArgumentr9   zSQLCoreOperations[Any]_DMLKeyzColumn[Any]r;   r4   r1   r2   zTypeEngine[_T])auto	ignore_fkc                     y rI   rJ   cs    rL   is_sql_compilerro   #  rN   rO   c                     y rI   rJ   rm   s    rL   is_ddl_compilerrq   &  rN   rO   c                     y rI   rJ   ts    rL   is_named_from_clauseru   )  rN   rO   c                     y rI   rJ   rm   s    rL   is_column_elementrw   ,  rN   rO   c                     y rI   rJ   rm   s    rL   is_keyed_column_elementry   /       	rO   c                     y rI   rJ   rm   s    rL   is_text_clauser|   4  rN   rO   c                     y rI   rJ   rm   s    rL   is_from_clauser~   7  rN   rO   c                     y rI   rJ   rs   s    rL   is_tuple_typer   :  rN   rO   c                     y rI   rJ   rs   s    rL   is_table_value_typer   =  rN   rO   c                     y rI   rJ   rs   s    rL   is_selectabler   @  rN   rO   c                     y rI   rJ   rs   s    rL   is_select_baser   C  rz   rO   c                     y rI   rJ   rs   s    rL   is_select_statementr   H  rz   rO   c                     y rI   rJ   rs   s    rL   is_tabler   M  rN   rO   c                     y rI   rJ   rs   s    rL   is_subqueryr   P  rN   rO   c                     y rI   rJ   rm   s    rL   is_dmlr   S  rN   rO   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hasattrrs   s    rL   has_schema_attrr   h  s    1hrO   c                    t        | d      S )Nquoter   ss    rL   is_quoted_namer   l  s    1grO   c                    t        | d      S )NrM   r   r   s    rL   is_has_clause_elementr   p  s    1*++rO   c                R    | j                   xr | j                  xs | j                  S rI   )r   	is_insert	is_updaterm   s    rL   is_insert_updater   t  s    88434rO   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   ArgumentErrorrJ   rO   rL   _no_kwr   x  s    	P rO   c                @    t        |      d   }t        |  d| d      )Nr   z% got an unexpected keyword argument '')list	TypeError)methnamekwks      rL   _unexpected_kwr     s(    RA
xj EaSJ
KKrO   c                     y rI   rJ   vals    rL   Nullabler          rO   c                     y rI   rJ   r   s    rL   r   r     r   rO   c                     y rI   rJ   r   s    rL   r   r         rO   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
    rJ   r   s    rL   r   r     	     JrO   c                     y rI   rJ   r   s    rL   NotNullabler     r   rO   c                     y rI   rJ   r   s    rL   r   r     r   rO   c                     y rI   rJ   r   s    rL   r   r     r   rO   c                     y rI   rJ   r   s    rL   r   r     r   rO   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
    rJ   r   s    rL   r   r     r   rO   )rn   r#   rP   zTypeGuard[SQLCompiler])rn   r#   rP   zTypeGuard[DDLCompiler])rt   r/   rP   zTypeGuard[NamedFromClause])rn   r(   rP   zTypeGuard[ColumnElement[Any]])rn   r(   rP   z"TypeGuard[KeyedColumnElement[Any]])rn   r(   rP   zTypeGuard[TextClause])rn   r(   rP   zTypeGuard[FromClause])rt   TypeEngine[Any]rP   zTypeGuard[TupleType])rt   r   rP   zTypeGuard[TableValueType])rt   r   rP   zTypeGuard[Selectable])rt   Union[Executable, ReturnsRows]rP   zTypeGuard[SelectBase])rt   r   rP   zTypeGuard[Select[Any]])rt   r3   rP   TypeGuard[TableClause])rt   r3   rP   zTypeGuard[Subquery])rn   r(   rP   zTypeGuard[UpdateBase])rt   r/   rP   r   )r   strrP   zTypeGuard[quoted_name])r   objectrP   z!TypeGuard[_HasClauseElement[Any]])rn   r(   rP   zTypeGuard[ValuesBase])rP   zexc.ArgumentError)r   r   r   zDict[str, Any]rP   r
   )r   'SQLCoreOperations[_T]'rP   !'SQLCoreOperations[Optional[_T]]')r   roles.ExpressionElementRole[_T]rP   )roles.ExpressionElementRole[Optional[_T]])r   Type[_T]rP   Type[Optional[_T]])r   _TypedColumnClauseArgument[_T]rP   z(_TypedColumnClauseArgument[Optional[_T]])r   r   rP   r   )r   r   rP   r   )r   r   rP   r   )r   zOptional[Type[_T]]rP   r   )r   zCUnion[_TypedColumnClauseArgument[Optional[_T]], Optional[Type[_T]]]rP   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   r0   
selectabler1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   sqltypesr<   r=   type_apir>   r?   r@   rB   rD   rE   rG   rV   intr   floatrZ   ColumnsClauseRoler[   ExpressionElementRole_TextCoercedExpressionArgumentTypedColumnsClauseRole_ColumnsClauseArgument_TypedColumnClauseArgumentr]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   _ColumnExpressionArgumentrh   __annotations__"_ColumnExpressionOrLiteralArgument#_ColumnExpressionOrStrLabelArgument_ByArgument	_InfoType_FromClauseArgumentJoinTargetRole_JoinTargetArgumentOnClauseRole_OnClauseArgumentCompoundElementRole#_SelectStatementForCompoundArgumentDMLColumnRole_DMLColumnArgumentri   _DMLColumnKeyMappingDDLConstraintColumnRole_DDLColumnArgument_DMLTableArgumentimmutabledict_PropagateAttrsType_TypeEngineArgument_EquivalentColumnMap_LimitOffsetTypebool_AutoIncrementTypero   rq   ru   rw   ry   r|   r~   r   r   r   r   r   r   r   r   
attrgetterr   r   r   r   r   r   r   r   rJ   rO   rL   <module>r     s   #                     $ ! " #!" "%%'',%+$&%!& +'"&&$'(#$'Tsd3 e/0v_-'%.   


	 	FOI!#&'c  "'b	#	%"  	  $	FOH!"%&b  #	  $H  e5c?+e3e3e3e3e3e3e3e3e3e3 "b	#R$$%  5&?&C ) C &+30I"0M+M%N "&+C1J21N,N&O #056',. K cN	 A	I!#&'c  /1E1EEF 
 3C8%:L:LLM 
 ',%+++' # Nc	  )#5
6w|,  3u/L/LLM  
	I!#&'c  ((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#rO   