
    "g/2                        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@lmNZN  edAeB      ZO edCedDE      ZP edFdGB      ZQ edHdIB      ZR G dJ dKeeeP         ZS G dL dMe      ZT G dN dOe      ZU edPeVeWeXdQdRdSdTdUeYdV      ZZedW   Z[ edXej                  e[ee   eeSe      eSe         Z]eeWdYdZeSeO   ej                  eO   f   Z_eej                  eO   ej                  d[e[eeO   eeSeO      eSeO   f   Za	 eej                  eO   d[eeO   f   Zb ed\eed]f   B      Zc ed^eB      Zd ed_eB      Ze ed`eB      Zf edaeB      Zg edbeB      Zh edceB      Zi eddeB      Zj edeeB      Zk edfeB      Zl edgeB      ZmedZeSeO   d[ej                  eO   ej                  eO   eg dZf   dhf   Zn	 eneO   Zodiepdj<   	 eeeneO   f   ZqeeWeneO   f   Zreeere      ere   f   Zs	 eeef   Zt	 eejn                  ee   eeSe      eSe   f   Zu	 eeuej                  f   Zw	 eene   ej                  f   Zy	 edkdlej                  f   Z{	 eeWeSe   ej                  dmf   Z}	  edne}B      Z~e	e~ef   ZeeWdoej                   f   Z	 edpdqdrdsee   eeSe      eSe   f   Zej                  eWef   Zeedt   dtf   ZedGedG   f   ZeeVeneV   df   ZeeXedu   f   ZerVddvZddwZ	 	 	 	 ddxZ	 	 	 	 ddyZ	 	 	 	 ddzZdd{Zdd|Zdd}Z	 	 	 	 dd~ZddZ	 	 	 	 ddZ	 	 	 	 ddZddZddZddZn ej0                  d      Z ej0                  d      Z ej0                  d      Z ej0                  d      Z ej0                  d      Z ej0                  d      Z ej0                  d      Z ej0                  d      Z ej0                  d      Z ej0                  d      Z ej0                  d      Z ej0                  d      Z ej0                  d      Z ej0                  d      Z ej0                  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)CompoundSelect)CTE)
FromClause)Join)NamedFromClause)ReturnsRows)Select)
Selectable)
SelectBase)Subquery)TableClause)TableValueType)	TupleType)
TypeEngine)Dialect)	TypeGuard_T)bound_T_coT)rC   	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    n/home/viktor/gitlab-persoonlijk/factuur-applicatie/venv/lib/python3.12/site-packages/sqlalchemy/sql/_typing.py__clause_element__z$_HasClauseElement.__clause_element__X           N)returnz"roles.ExpressionElementRole[_T_co])__name__
__module____qualname____doc__rP   rL   rR   rO   rI   rI   U   s    BKrR   rI   c                      e Zd ZdZddZy)_CoreAdapterProtoz?protocol for the ClauseAdapter/ColumnAdapter.traverse() method.c                     y rK   rL   )rN   objs     rO   __call__z_CoreAdapterProto.__call__^   rQ   rR   N)r[   rF   rS   rF   )rT   rU   rV   rW   r\   rL   rR   rO   rY   rY   [   s    I,rR   rY   c                  "    e Zd ZdZedd       Zy)_HasDialectzQprotocol for Engine/Connection-like objects that have dialect
    attribute.
    c                     y rK   rL   rM   s    rO   dialectz_HasDialect.dialectf   s    "%rR   N)rS   r@   )rT   rU   rV   rW   propertyr`   rL   rR   rO   r^   r^   a   s     % %rR   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<   r5   r1   r3   zTypeEngine[_T])auto	ignore_fkc                     y rK   rL   cs    rO   is_sql_compilerrw   2  rQ   rR   c                     y rK   rL   ru   s    rO   is_ddl_compilerry   4  rQ   rR   c                     y rK   rL   ts    rO   is_named_from_clauser}   6  s    %(rR   c                     y rK   rL   ru   s    rO   is_column_elementr   :  s    (+rR   c                     y rK   rL   ru   s    rO   is_keyed_column_elementr   >  s    -0rR   c                     y rK   rL   ru   s    rO   is_text_clauser   B  rQ   rR   c                     y rK   rL   ru   s    rO   is_from_clauser   D  rQ   rR   c                     y rK   rL   r{   s    rO   is_tuple_typer   F  rQ   rR   c                     y rK   rL   r{   s    rO   is_table_value_typer   H  s    $'rR   c                     y rK   rL   r{   s    rO   is_selectabler   L  rQ   rR   c                     y rK   rL   r{   s    rO   is_select_baser   N  s     #rR   c                     y rK   rL   r{   s    rO   is_select_statementr   R  s    !$rR   c                     y rK   rL   r{   s    rO   is_tabler   V  rQ   rR   c                     y rK   rL   r{   s    rO   is_subqueryr   X  rQ   rR   c                     y rK   rL   ru   s    rO   is_dmlr   Z  rQ   rR   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hasattrr{   s    rO   has_schema_attrr   n  s    1hrR   c                    t        | d      S )Nquoter   ss    rO   is_quoted_namer   r  s    1grR   c                    t        | d      S )NrP   r   r   s    rO   is_has_clause_elementr   v  s    1*++rR   c                R    | j                   xr | j                  xs | j                  S rK   )r   	is_insert	is_updateru   s    rO   is_insert_updater   z  s    88434rR   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   ArgumentErrorrL   rR   rO   _no_kwr   ~  s    	P rR   c                @    t        |      d   }t        |  d| d      )Nr   z% got an unexpected keyword argument '')list	TypeError)methnamekwks      rO   _unexpected_kwr     s(    RA
xj EaSJ
KKrR   c                     y rK   rL   vals    rO   Nullabler     s     ),rR   c                     y rK   rL   r   s    rO   r   r     s     14rR   c                     y rK   rL   r   s    rO   r   r     s    36rR   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
    rL   r   s    rO   r   r     	     JrR   c                     y rK   rL   r   s    rO   NotNullabler     s     "rR   c                     y rK   rL   r   s    rO   r   r     s     '*rR   c                     y rK   rL   r   s    rO   r   r         69rR   c                     y rK   rL   r   s    rO   r   r     r   rR   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
    rL   r   s    rO   r   r     r   rR   )rv   r#   rS   zTypeGuard[SQLCompiler])rv   r#   rS   zTypeGuard[DDLCompiler])r|   r/   rS   zTypeGuard[NamedFromClause])rv   r(   rS   zTypeGuard[ColumnElement[Any]])rv   r(   rS   z"TypeGuard[KeyedColumnElement[Any]])rv   r(   rS   zTypeGuard[TextClause])rv   r(   rS   zTypeGuard[FromClause])r|   TypeEngine[Any]rS   zTypeGuard[TupleType])r|   r   rS   zTypeGuard[TableValueType])r|   r   rS   zTypeGuard[Selectable])r|   Union[Executable, ReturnsRows]rS   zTypeGuard[SelectBase])r|   r   rS   zTypeGuard[Select[Any]])r|   r4   rS   TypeGuard[TableClause])r|   r4   rS   zTypeGuard[Subquery])rv   r(   rS   zTypeGuard[UpdateBase])r|   r/   rS   r   )r   strrS   zTypeGuard[quoted_name])r   objectrS   z!TypeGuard[_HasClauseElement[Any]])rv   r(   rS   zTypeGuard[ValuesBase])rS   zexc.ArgumentError)r   r   r   zDict[str, Any]rS   r
   )r   'SQLCoreOperations[_T]'rS   !'SQLCoreOperations[Optional[_T]]')r   roles.ExpressionElementRole[_T]rS   )roles.ExpressionElementRole[Optional[_T]])r   Type[_T]rS   Type[Optional[_T]])r   _TypedColumnClauseArgument[_T]rS   z(_TypedColumnClauseArgument[Optional[_T]])r   r   rS   r   )r   r   rS   r   )r   r   rS   r   )r   zOptional[Type[_T]]rS   r   )r   zCUnion[_TypedColumnClauseArgument[Optional[_T]], Optional[Type[_T]]]rS   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;   r<   sqltypesr=   r>   type_apir?   enginer@   rA   rB   rD   rF   rG   rI   rY   r^   intr   boolfloatrb   
_StarOrOneColumnsClauseRolerd   ExpressionElementRole_TextCoercedExpressionArgumentTypedColumnsClauseRole_ColumnsClauseArgument_TypedColumnClauseArgumentre   rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   _ColumnExpressionArgumentrp   __annotations__"_ColumnExpressionOrLiteralArgument#_ColumnExpressionOrStrLabelArgument_ByArgument	_InfoType_FromClauseArgumentJoinTargetRole_JoinTargetArgumentOnClauseRole_OnClauseArgumentCompoundElementRole#_SelectStatementForCompoundArgumentDMLColumnRole_DMLColumnArgumentrq   _DMLColumnKeyMappingDDLConstraintColumnRole_DDLColumnArgument_DMLTableArgumentimmutabledict_PropagateAttrsType_TypeEngineArgument_EquivalentColumnMap_LimitOffsetType_AutoIncrementTyperw   ry   r}   r   r   r   r   r   r   r   r   r   r   r   r   
attrgetterr   r   r   r   r   r   r   r   rL   rR   rO   <module>r     s#   #                     $ ! " #!" "%%'',%+$&%!*& +'"&&$'(#$ 'Tsd3 e/0v_-L'%. L- -&( & 


	 V_
	I!#&'c  "'b	#	%"  	  $	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)<!==> CC))	#),,	&,11	+1 GFF((	"( <$)$	$%)%	% ?>> *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
 
,	 ,&, 
,
 
4	(4.4 
4
 
 6 
 6	'-$ 
"	*"" 
"
 
*	2*$* 
*
 
 9 
 9 
 9 
 9	L#rR   