o
    E6d1                     @  sx  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rdd 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d?ZKed@dAd?ZLedBdCd?ZMG dDdE dEeZNG dFdG dGeZOedHePeQdIdJdKdLdMeRdN
ZSedOej5edP ee eeN eNZTeeQdQdReNejUeK f ZVeejWeK ej5dSedP eeK eeN eNf ZX	 eejWeK dSeeK f ZYedTeedUf d?ZZedVed?Z[edWed?Z\edXed?Z]edYed?Z^edZed?Z_ed[ed?Z`ed\ed?Zaed]ed?Zbed^ed?Zced_ed?ZdedReNdSejUeK eg dRf d`f Ze	 eeeK Zfdaegdb< 	 eeeeeK f ZheeQeeeK f Zieeef Zj	 eej6ee eeN eNf Zk	 eekejlf Zm	 eeee ejnf Zo	 edcejpf Zq	 eeQeNejrddf Zs	 edeesd?Zteetef ZueeQdfejvf Zw	 edgdhdidjee eeN eNf ZxejyeQef Zzeedk dkf Z{edAedA f Z|eePeeeP df Z}ee~edl f ZerddqdrZddtduZddydzZdd|d}Zddd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
ddd˄Ze
ddd˄Zddd˄Ze
dddքZe
dddքZe
dddքZe
dddքZdddք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                   @  s   e Zd ZdZdddZdS )_HasClauseElementz8indicates a class that has a __clause_element__() methodreturnr,   c                 C     d S N )selfrF   rF   mC:\Users\jesus\OneDrive\Desktop\erpjis_fastapi\backend\jisbackend\Lib\site-packages\sqlalchemy/sql/_typing.py__clause_element__T      z$_HasClauseElement.__clause_element__N)rC   r,   )__name__
__module____qualname____doc__rI   rF   rF   rF   rH   rB   Q       rB   c                   @  s   e Zd ZdZdddZdS )	_CoreAdapterProtoz?protocol for the ClauseAdapter/ColumnAdapter.traverse() method.objr@   rC   c                 C  rD   rE   rF   )rG   rQ   rF   rF   rH   __call__[   rJ   z_CoreAdapterProto.__call__N)rQ   r@   rC   r@   )rK   rL   rM   rN   rR   rF   rF   rF   rH   rP   X   rO   rP   _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   ColumnExpressionArgumentr7   zSQLCoreOperations[Any]_DMLKeyzColumn[Any]r9   r2   r/   r0   zTypeEngine[_T])autoZ	ignore_fkcr    rC   TypeGuard[SQLCompiler]c                 C  rD   rE   rF   rd   rF   rF   rH   is_sql_compiler  rJ   rg   TypeGuard[DDLCompiler]c                 C  rD   rE   rF   rf   rF   rF   rH   is_ddl_compiler  rJ   ri   tr-   TypeGuard[NamedFromClause]c                 C  rD   rE   rF   rj   rF   rF   rH   is_named_from_clause!  rJ   rm   TypeGuard[ColumnElement[Any]]c                 C  rD   rE   rF   rf   rF   rF   rH   is_column_element$  rJ   ro   "TypeGuard[KeyedColumnElement[Any]]c                 C  rD   rE   rF   rf   rF   rF   rH   is_keyed_column_element'     rq   TypeGuard[TextClause]c                 C  rD   rE   rF   rf   rF   rF   rH   is_text_clause,  rJ   rt   TypeGuard[FromClause]c                 C  rD   rE   rF   rf   rF   rF   rH   is_from_clause/  rJ   rv   TypeEngine[Any]TypeGuard[TupleType]c                 C  rD   rE   rF   rl   rF   rF   rH   is_tuple_type2  rJ   ry   TypeGuard[TableValueType]c                 C  rD   rE   rF   rl   rF   rF   rH   is_table_value_type5  rJ   r{   r   TypeGuard[Selectable]c                 C  rD   rE   rF   rl   rF   rF   rH   is_selectable8  rJ   r}   Union[Executable, ReturnsRows]TypeGuard[SelectBase]c                 C  rD   rE   rF   rl   rF   rF   rH   is_select_base;  rr   r   TypeGuard[Select[Any]]c                 C  rD   rE   rF   rl   rF   rF   rH   is_select_statement@  rr   r   r1   TypeGuard[TableClause]c                 C  rD   rE   rF   rl   rF   rF   rH   is_tableE  rJ   r   TypeGuard[Subquery]c                 C  rD   rE   rF   rl   rF   rF   rH   is_subqueryH  rJ   r   TypeGuard[UpdateBase]c                 C  rD   rE   rF   rf   rF   rF   rH   is_dmlK  rJ   r   Zis_sqlZis_ddlZnamed_with_columnZ_is_column_elementZ_is_keyed_column_elementZ_is_text_clauseZ_is_from_clauseZ_is_tuple_typeZ_is_table_valueZ_is_select_baseZ_is_select_statementZ	_is_tableZ_is_subqueryc                 C  
   t | dS )Nschemahasattrrl   rF   rF   rH   has_schema_attr`     
r   sstrTypeGuard[quoted_name]c                 C  r   )Nquoter   r   rF   rF   rH   is_quoted_named  r   r   objectTypeGuard[_HasClauseElement]c                 C  r   )NrI   r   r   rF   rF   rH   is_has_clause_elementh  r   r   TypeGuard[ValuesBase]c                 C  s   | j o| jp| jS rE   )r   Z	is_insertZ	is_updaterf   rF   rF   rH   is_insert_updatel  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   ArgumentErrorrF   rF   rF   rH   _no_kwp  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   krF   rF   rH   _unexpected_kww  s   r   val'SQLCoreOperations[_T]'!'SQLCoreOperations[Optional[_T]]'c                 C  rD   rE   rF   r   rF   rF   rH   Nullable|     r   roles.ExpressionElementRole[_T])roles.ExpressionElementRole[Optional[_T]]c                 C  rD   rE   rF   r   rF   rF   rH   r     r   Type[_T]Type[Optional[_T]]c                 C  rD   rE   rF   r   rF   rF   rH   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
    rF   r   rF   rF   rH   r        c                 C  rD   rE   rF   r   rF   rF   rH   NotNullable  r   r   c                 C  rD   rE   rF   r   rF   rF   rH   r     r   c                 C  rD   rE   rF   r   rF   rF   rH   r     r   Optional[Type[_T]]c                 C  rD   rE   rF   r   rF   rF   rH   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
    rF   r   rF   rF   rH   r     r   )rd   r    rC   re   )rd   r    rC   rh   )rj   r-   rC   rk   )rd   r%   rC   rn   )rd   r%   rC   rp   )rd   r%   rC   rs   )rd   r%   rC   ru   )rj   rw   rC   rx   )rj   rw   rC   rz   )rj   r   rC   r|   )rj   r~   rC   r   )rj   r~   rC   r   )rj   r1   rC   r   )rj   r1   rC   r   )rd   r%   rC   r   )rj   r-   rC   r   )r   r   rC   r   )r   r   rC   r   )rd   r%   rC   r   )rC   r   )r   r   r   r   rC   r   )r   r   rC   r   )r   r   rC   r   )r   r   rC   r   )r   r   rC   r   )r   r   rC   r   )r   r   rC   r   )r   r   rC   r   )r   r   rC   r   )r   r   rC   r   )
__future__r   operatortypingr   r   r   r   r   r   r	   r
   r   r   r   r   r    r   r   r   Z
inspectionr   Zutil.typingr   r   r   r   r   r   r   decimalr   uuidr   baser   compilerr    r!   r"   Zdmlr#   r$   elementsr%   r&   r'   r(   r)   r*   Zlambdasr+   r,   r-   r   r.   Z
selectabler/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   Zsqltypesr:   r;   Ztype_apir<   r=   r>   r@   rA   rB   rP   intr   floatrS   rT   ZExpressionElementRoleZ_TextCoercedExpressionArgumentZTypedColumnsClauseRoleZ_ColumnsClauseArgumentZ_TypedColumnClauseArgumentrV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   Z_ColumnExpressionArgumentra   __annotations__Z"_ColumnExpressionOrLiteralArgumentZ#_ColumnExpressionOrStrLabelArgumentZ	_InfoTypeZ_FromClauseArgumentZJoinTargetRoleZ_JoinTargetArgumentZOnClauseRoleZ_OnClauseArgumentZCompoundElementRoleZ#_SelectStatementForCompoundArgumentZDMLColumnRoleZ_DMLColumnArgumentrb   Z_DMLColumnKeyMappingZDDLConstraintColumnRoleZ_DDLColumnArgumentZ_DMLTableArgumentZimmutabledictZ_PropagateAttrsTypeZ_TypeEngineArgumentZ_EquivalentColumnMapZ_LimitOffsetTypeboolZ_AutoIncrementTyperg   ri   rm   ro   rq   rt   rv   ry   r{   r}   r   r   r   r   r   
attrgetterr   r   r   r   r   r   r   r   rF   rF   rF   rH   <module>   s  	







































