§
    eŠtjî  ã                  ó  — 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r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de¬¦  «        Z eded¬¦  «        Z G d„ d¦  «        Z G d„ d¦  «        Z G d„ d¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ d e¦  «        Z G d!„ d"e¦  «        Z G d#„ d$e¦  «        Z G d%„ d&e¦  «        Z G d'„ d(e¦  «        Z G d)„ d*e¦  «        Z  G d+„ d,e e¦  «        Z! G d-„ d.eee¦  «        Z" G d/„ d0ee         e¦  «        Z# G d1„ d2e¦  «        Z$ G d3„ d4e¦  «        Z% G d5„ d6eee%¦  «        Z& G d7„ d8ee%¦  «        Z' G d9„ d:e¦  «        Z( G d;„ d<e(¦  «        Z) G d=„ d>ee(¦  «        Z* G d?„ d@e*¦  «        Z+ G dA„ dBe#e         ¦  «        Z, G dC„ dDe,e         ¦  «        Z- G dE„ dFe,e         ¦  «        Z. G dG„ dHe,e         ¦  «        Z/ G dI„ dJe¦  «        Z0 G dK„ dLeee(¦  «        Z1 G dM„ dNe"e1¦  «        Z2 G dO„ dPe2¦  «        Z3 G dQ„ dRe3¦  «        Z4 G dS„ dTe¦  «        Z5 G dU„ dVe¦  «        Z6 G dW„ dXe6e5¦  «        Z7 G dY„ dZe5¦  «        Z8 G d[„ d\e¦  «        Z9 G d]„ d^ee¦  «        Z: G d_„ d`e6¦  «        Z; G da„ dbe2¦  «        Z< G dc„ dde¦  «        Z= G de„ dfe¦  «        Z> G dg„ dhe6¦  «        Z? G di„ dje(¦  «        Z@ G dk„ dle¦  «        ZA G dm„ dneA¦  «        ZBdoS )pé    )Úannotations)ÚAny)ÚGeneric)ÚOptional)ÚTYPE_CHECKING)ÚTypeVaré   )Úutil)ÚLiteralé   )Ú_PropagateAttrsType)ÚLabel)Ú_SelectIterable)Ú
FromClause)ÚSubqueryÚ_T)ÚboundÚ_T_coT)r   Ú	covariantc                  ó   — e Zd ZdZdZdZdZdS )ÚSQLRolezþDefine a "role" within a SQL statement structure.

    Classes within SQL Core participate within SQLRole hierarchies in order
    to more accurately indicate where they may be used within SQL statements
    of all types.

    .. versionadded:: 1.4

    © FN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__Úallows_lambdaÚuses_inspectionr   ó    úR/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sqlalchemy/sql/roles.pyr   r      s)   € € € € € ðð ð €IØ€MØ€O€O€Or    r   c                  ó&   — e Zd ZU dZdZded<   dZdS )ÚUsesInspectionr   NzLiteral[None]Ú_post_inspectT)r   r   r   r   r$   Ú__annotations__r   r   r    r!   r#   r#   -   s+   € € € € € € Ø€IØ#'€MÐ'Ð'Ð'Ñ'Ø€O€O€Or    r#   c                  ó   — e Zd ZdZdZdS )ÚAllowsLambdaRoler   TN)r   r   r   r   r   r   r    r!   r'   r'   3   s   € € € € € Ø€IØ€M€M€Mr    r'   c                  ó   — e Zd ZdZdZdS )ÚHasCacheKeyRoler   zCacheable Core or ORM objectN©r   r   r   r   Ú
_role_namer   r    r!   r)   r)   8   s   € € € € € Ø€IØ/€J€J€Jr    r)   c                  ó   — e Zd ZdZdZdS )ÚExecutableOptionRoler   z"ExecutionOption Core or ORM objectNr*   r   r    r!   r-   r-   =   s   € € € € € Ø€IØ5€J€J€Jr    r-   c                  ó   — e Zd ZdZdZdS )ÚLiteralValueRoler   zLiteral Python valueNr*   r   r    r!   r/   r/   B   s   € € € € € Ø€IØ'€J€J€Jr    r/   c                  ó   — e Zd ZdZdZdS )ÚColumnArgumentRoler   zColumn expressionNr*   r   r    r!   r1   r1   G   s   € € € € € Ø€IØ$€J€J€Jr    r1   c                  ó   — e Zd ZdZdZdS )ÚColumnArgumentOrKeyRoler   úColumn expression or string keyNr*   r   r    r!   r3   r3   L   ó   € € € € € Ø€IØ2€J€J€Jr    r3   c                  ó   — e Zd ZdZdZdS )ÚStrAsPlainColumnRoler   r4   Nr*   r   r    r!   r7   r7   Q   r5   r    r7   c                  ó   — e Zd ZdZdZdS )ÚColumnListRolezCElements suitable for forming comma separated lists of expressions.r   N©r   r   r   r   r   r   r    r!   r9   r9   V   s   € € € € € ØMÐMà€I€I€Ir    r9   c                  ó   — e Zd ZdZdZdS )Ú
StringRolez/mixin indicating a role that results in stringsr   Nr:   r   r    r!   r<   r<   \   s   € € € € € Ø9Ð9à€I€I€Ir    r<   c                  ó   — e Zd ZdZdZdS )ÚTruncatedLabelRoler   zString SQL identifierNr*   r   r    r!   r>   r>   b   s   € € € € € Ø€IØ(€J€J€Jr    r>   c                  ó.   — e Zd ZdZdZedd„¦   «         ZdS )ÚColumnsClauseRoler   z?Column expression, FROM clause, or other columns clause elementÚreturnr   c                ó   — t          ¦   «         ‚©N©ÚNotImplementedError©Úselfs    r!   Ú_select_iterablez"ColumnsClauseRole._select_iterablem   s   € å!Ñ#Ô#Ð#r    N)rA   r   )r   r   r   r   r+   ÚpropertyrH   r   r    r!   r@   r@   g   sA   € € € € € Ø€IàIð ð ð$ð $ð $ñ „Xð$ð $ð $r    r@   c                  ó   — e Zd ZdZdZdS )ÚTypedColumnsClauseRolez'element-typed form of ColumnsClauseRoler   Nr:   r   r    r!   rK   rK   r   s   € € € € € Ø1Ð1à€I€I€Ir    rK   c                  ó   — e Zd ZdZdZdS )ÚLimitOffsetRoler   zLIMIT / OFFSET expressionNr*   r   r    r!   rM   rM   x   s   € € € € € Ø€IØ,€J€J€Jr    rM   c                  ó   — e Zd ZdZdZdS )ÚByOfRoler   zGROUP BY / OF / etc. expressionNr*   r   r    r!   rO   rO   }   r5   r    rO   c                  ó   — e Zd ZdZdZdS )ÚGroupByRoler   zGROUP BY expressionNr*   r   r    r!   rQ   rQ   ‚   s   € € € € € Ø€Ið
 '€J€J€Jr    rQ   c                  ó   — e Zd ZdZdZdS )ÚOrderByRoler   zORDER BY expressionNr*   r   r    r!   rS   rS   ‹   s   € € € € € Ø€IØ&€J€J€Jr    rS   c                  ó   — e Zd ZdZdS )ÚStructuralRoler   N©r   r   r   r   r   r    r!   rU   rU   �   ó   € € € € € Ø€I€I€Ir    rU   c                  ó   — e Zd ZdZdZdS )ÚStatementOptionRoler   z statement sub-expression elementNr*   r   r    r!   rY   rY   ”   s   € € € € € Ø€IØ3€J€J€Jr    rY   c                  ó   — e Zd ZdZdZdS )ÚOnClauseRoler   zCON clause, typically a SQL expression or ORM relationship attributeNr*   r   r    r!   r[   r[   ™   s   € € € € € Ø€Ið	%ð €J€Jr    r[   c                  ó   — e Zd ZdZdZdS )ÚWhereHavingRoler   z$SQL expression for WHERE/HAVING roleNr*   r   r    r!   r]   r]   ¡   s   € € € € € Ø€IØ7€J€J€Jr    r]   c                  ó   — e Zd ZdZdZd	d„ZdS )
ÚExpressionElementRoler   zSQL expression elementÚnameúOptional[str]rA   ú	Label[_T]c                ó   — t          ¦   «         ‚rC   rD   )rG   r`   s     r!   ÚlabelzExpressionElementRole.label°   s   € Ý!Ñ#Ô#Ð#r    N)r`   ra   rA   rb   )r   r   r   r   r+   rd   r   r    r!   r_   r_   ¦   s4   € € € € € ð €IØ)€Jð$ð $ð $ð $ð $ð $r    r_   c                  ó   — e Zd ZdZdZdS )ÚConstExprRoler   z#Constant True/False/None expressionNr*   r   r    r!   rf   rf   ´   s   € € € € € Ø€IØ6€J€J€Jr    rf   c                  ó   — e Zd ZdZdS )ÚLabeledColumnExprRoler   NrV   r   r    r!   rh   rh   ¹   rW   r    rh   c                  ó   — e Zd ZdZdZdS )ÚBinaryElementRoler   z'SQL expression element or literal valueNr*   r   r    r!   rj   rj   ½   s   € € € € € Ø€IØ:€J€J€Jr    rj   c                  ó   — e Zd ZdZdZdS )ÚInElementRoler   z?IN expression list, SELECT construct, or bound parameter objectNr*   r   r    r!   rl   rl   Â   s   € € € € € Ø€IàIð €J€Jr    rl   c                  ó   — e Zd ZdZdZdS )ÚJoinTargetRoler   zGJoin target, typically a FROM expression, or ORM relationship attributeNr*   r   r    r!   rn   rn   É   s   € € € € € Ø€Ið	!ð €J€Jr    rn   c                  ó&   — e Zd ZU dZdZdZded<   dS )ÚFromClauseRoler   z2FROM expression, such as a Table or alias() objectFÚboolÚnamed_with_columnN)r   r   r   r   r+   Ú_is_subqueryr%   r   r    r!   rp   rp   Ñ   s-   € € € € € € Ø€IØE€Jà€LàÐÐÑÐÐr    rp   c                  ó   — e Zd ZdZdS )ÚStrictFromClauseRoler   NrV   r   r    r!   ru   ru   Ú   rW   r    ru   c                  ó*   — e Zd ZdZer
dddœdd„ZdS dS )ÚAnonymizedFromClauseRoler   NF)r`   Úflatr`   ra   rx   rq   rA   r   c               ó   — d S rC   r   )rG   r`   rx   s      r!   Ú_anonymous_fromclausez.AnonymizedFromClauseRole._anonymous_fromclauseä   s   € à˜r    )r`   ra   rx   rq   rA   r   )r   r   r   r   r   rz   r   r    r!   rw   rw   ß   sP   € € € € € Ø€Iàð ð ,0¸eð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ðð r    rw   c                  ó   — e Zd ZdZdZdS )ÚReturnsRowsRoler   zcRow returning expression such as a SELECT, a FROM clause, or an INSERT/UPDATE/DELETE with RETURNINGNr*   r   r    r!   r|   r|   é   s   € € € € € Ø€Ið	.ð €J€Jr    r|   c                  óN   — e Zd ZdZdZerej        dd„¦   «         ZdS ej	        ZdS )ÚStatementRoler   z"Executable SQL or text() constructrA   r   c                ó   — d S rC   r   rF   s    r!   Ú_propagate_attrszStatementRole._propagate_attrs÷   s   € Ø;>¸3r    N)rA   r   )
r   r   r   r   r+   r   r
   Úmemoized_propertyr€   Ú
EMPTY_DICTr   r    r!   r~   r~   ñ   sL   € € € € € Ø€IØ5€Jàð +à	Ô	Ø>Ð>Ð>ñ 
 Ô	Ø>Ð>Ð>ð  œ?ÐÐÐr    r~   c                  ó   — e Zd ZdZdZdd„ZdS )ÚSelectStatementRoler   z/SELECT construct or equivalent text() constructrA   r   c                ó    — t          d¦  «        ‚)NzFAll SelectStatementRole objects should implement a .subquery() method.rD   rF   s    r!   ÚsubqueryzSelectStatementRole.subquery  s   € Ý!ð"ñ
ô 
ð 	
r    N)rA   r   )r   r   r   r   r+   r†   r   r    r!   r„   r„   þ   s2   € € € € € Ø€IØB€Jð
ð 
ð 
ð 
ð 
ð 
r    r„   c                  ó   — e Zd ZdZdS )Ú
HasCTERoler   NrV   r   r    r!   rˆ   rˆ   	  rW   r    rˆ   c                  ó   — e Zd ZdZdZdS )Ú	IsCTERoler   z
CTE objectNr*   r   r    r!   rŠ   rŠ     s   € € € € € Ø€IØ€J€J€Jr    rŠ   c                  ó   — e Zd ZdZdZdZdS )ÚCompoundElementRolezDSELECT statements inside a CompoundSelect, e.g. UNION, EXTRACT, etc.r   z@SELECT construct for inclusion in a UNION or other set constructN©r   r   r   r   r   r+   r   r    r!   rŒ   rŒ     s!   € € € € € ØNÐNà€IàJð €J€Jr    rŒ   c                  ó   — e Zd ZdZdS )ÚDMLRoler   NrV   r   r    r!   r�   r�     rW   r    r�   c                  ó   — e Zd ZdZdZdS )ÚDMLTableRoler   z-subject table for an INSERT, UPDATE or DELETENr*   r   r    r!   r‘   r‘      s   € € € € € Ø€IØ@€J€J€Jr    r‘   c                  ó   — e Zd ZdZdZdS )ÚDMLColumnRoler   z*SET/VALUES column expression or string keyNr*   r   r    r!   r“   r“   %  s   € € € € € Ø€IØ=€J€J€Jr    r“   c                  ó   — e Zd ZdZdZdZdS )ÚDMLSelectRolez@A SELECT statement embedded in DML, typically INSERT from SELECTr   z-SELECT statement or equivalent textual objectNr�   r   r    r!   r•   r•   *  s   € € € € € ØJÐJà€IØ@€J€J€Jr    r•   c                  ó   — e Zd ZdZdS )ÚDDLRoler   NrV   r   r    r!   r—   r—   1  rW   r    r—   c                  ó   — e Zd ZdZdZdS )ÚDDLExpressionRoler   z)SQL expression element for DDL constraintNr*   r   r    r!   r™   r™   5  s   € € € € € Ø€IØ<€J€J€Jr    r™   c                  ó   — e Zd ZdZdZdS )ÚDDLConstraintColumnRoler   z:String column name or column expression for DDL constraintNr*   r   r    r!   r›   r›   :  s   € € € € € Ø€IØM€J€J€Jr    r›   c                  ó   — e Zd ZdZdZdS )ÚDDLReferredColumnRoler   zBString column name or Column object for DDL foreign key constraintNr*   r   r    r!   r�   r�   ?  s   € € € € € Ø€IàLð €J€Jr    r�   N)CÚ
__future__r   Útypingr   r   r   r   r   Ú r
   Úutil.typingr   Ú_typingr   Úelementsr   Ú
selectabler   r   r   r   r   r   r#   r'   r)   r-   r/   r1   r3   r7   r9   r<   r>   r@   rK   rM   rO   rQ   rS   rU   rY   r[   r]   r_   rf   rh   rj   rl   rn   rp   ru   rw   r|   r~   r„   rˆ   rŠ   rŒ   r�   r‘   r“   r•   r—   r™   r›   r�   r   r    r!   ú<module>r¥      sâ  ðð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !àð %Ø,Ð,Ð,Ð,Ð,Ð,ØÐÐÐÐÐØ+Ð+Ð+Ð+Ð+Ð+Ø&Ð&Ð&Ð&Ð&Ð&Ø$Ð$Ð$Ð$Ð$Ð$à€WˆT˜ÐÑÔ€Øˆ�˜s¨dÐ3Ñ3Ô3€ðð ð ð ð ñ ô ð ð ð ð ð ð ñ ô ð ðð ð ð ð ñ ô ð ð
0ð 0ð 0ð 0ð 0�gñ 0ô 0ð 0ð
6ð 6ð 6ð 6ð 6˜7ñ 6ô 6ð 6ð
(ð (ð (ð (ð (�wñ (ô (ð (ð
%ð %ð %ð %ð %˜ñ %ô %ð %ð
3ð 3ð 3ð 3ð 3Ð0ñ 3ô 3ð 3ð
3ð 3ð 3ð 3ð 3Ð-ñ 3ô 3ð 3ð
ð ð ð ð �Wñ ô ð ðð ð ð ð �ñ ô ð ð)ð )ð )ð )ð )˜ Wñ )ô )ð )ð
$ð $ð $ð $ð $Ð(¨.¸.ñ $ô $ð $ðð ð ð ð ˜W Uœ^¨Wñ ô ð ð-ð -ð -ð -ð -�gñ -ô -ð -ð
3ð 3ð 3ð 3ð 3ˆ~ñ 3ô 3ð 3ð
'ð 'ð 'ð 'ð 'Ð" N°Hñ 'ô 'ð 'ð'ð 'ð 'ð 'ð 'Ð" Hñ 'ô 'ð 'ð
ð ð ð ð �Wñ ô ð ð4ð 4ð 4ð 4ð 4˜.ñ 4ô 4ð 4ð
ð ð ð ð Ð# ^ñ ô ð ð8ð 8ð 8ð 8ð 8�lñ 8ô 8ð 8ð
$ð $ð $ð $ð $Ð2°5Ô9ñ $ô $ð $ð7ð 7ð 7ð 7ð 7Ð)¨"Ô-ñ 7ô 7ð 7ð
ð ð ð ð Ð1°"Ô5ñ ô ð ð;ð ;ð ;ð ;ð ;Ð-¨bÔ1ñ ;ô ;ð ;ð
ð ð ð ð �Gñ ô ð ðð ð ð ð Ð% ~°~ñ ô ð ðð ð ð ð Ð&¨ñ ô ð ðð ð ð ð ˜>ñ ô ð ð
ð ð ð ð Ð3ñ ô ð ðð ð ð ð �gñ ô ð ð
+ð 
+ð 
+ð 
+ð 
+�Gñ 
+ô 
+ð 
+ð
ð 
ð 
ð 
ð 
˜-¨ñ 
ô 
ð 
ðð ð ð ð �ñ ô ð ðð ð ð ð �ñ ô ð ð
ð ð ð ð Ð*¨Gñ ô ð ðð ð ð ð ˆmñ ô ð ðAð Að Að Að A�>ñ Aô Að Að
>ð >ð >ð >ð >�Gñ >ô >ð >ð
Að Að Að Að A�Gñ Aô Að Aðð ð ð ð ˆmñ ô ð ð=ð =ð =ð =ð =˜ñ =ô =ð =ð
Nð Nð Nð Nð N˜gñ Nô Nð Nð
ð ð ð ð Ð3ñ ô ð ð ð r    