§
    ÕóÉj±  ã                  ó8  — 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e¦  «        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/„ d0ee¦  «        Z" G d1„ d2e"eee¦  «        Z# G d3„ d4ee         e¦  «        Z$ G d5„ d6e¦  «        Z% G d7„ d8e¦  «        Z& G d9„ d:eee&¦  «        Z' G d;„ d<ee&¦  «        Z( G d=„ d>e¦  «        Z) G d?„ d@e)¦  «        Z* G dA„ dBee)¦  «        Z+ G dC„ dDe+¦  «        Z, G dE„ dFe$e         ¦  «        Z- G dG„ dHe-e         ¦  «        Z. G dI„ dJe-e         ¦  «        Z/ G dK„ dLe-e         ¦  «        Z0 G dM„ dNe¦  «        Z1 G dO„ dPeee)¦  «        Z2 G dQ„ dRe#e2¦  «        Z3 G dS„ dTe3¦  «        Z4 G dU„ dVe¦  «        Z5 G dW„ dXe¦  «        Z6 G dY„ dZe6e5¦  «        Z7 G d[„ d\e5¦  «        Z8 G d]„ d^e¦  «        Z9 G d_„ d`ee¦  «        Z: G da„ dbe6¦  «        Z; G dc„ dde3¦  «        Z< G de„ dfe¦  «        Z= G dg„ dhe¦  «        Z> G di„ dje6¦  «        Z? G dk„ dle)¦  «        Z@ G dm„ dne¦  «        ZA G do„ dpeA¦  «        ZBdqS )ré    )Úannotations)ÚAny)ÚGeneric)ÚLiteral)ÚOptional)ÚTYPE_CHECKING)ÚTypeVaré   )Úutilé   )Ú_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   ó    úy/home/lighthouse/badge-speaker-benchmark/.benchmark-venv-community/lib64/python3.11/site-packages/sqlalchemy/sql/roles.pyr   r      s)   € € € € € ðð ð €IØ€MØ€O€O€Or    r   c                  ó   — e Zd ZdZdZdS )ÚSyntaxExtensionRoler   zSyntax extension constructN©r   r   r   r   Ú
_role_namer   r    r!   r#   r#   -   s   € € € € € Ø€IØ-€J€J€Jr    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'   2   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+   8   s   € € € € € Ø€IØ€M€M€Mr    r+   c                  ó   — e Zd ZdZdZdS )ÚHasCacheKeyRoler   zCacheable Core or ORM objectNr$   r   r    r!   r-   r-   =   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/   B   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!   r1   r1   G   s   € € € € € Ø€IØ'€J€J€Jr    r1   c                  ó   — e Zd ZdZdZdS )ÚColumnArgumentRoler   zColumn expressionNr$   r   r    r!   r3   r3   L   s   € € € € € Ø€IØ$€J€J€Jr    r3   c                  ó   — e Zd ZdZdZdS )ÚColumnArgumentOrKeyRoler   úColumn expression or string keyNr$   r   r    r!   r5   r5   Q   ó   € € € € € Ø€IØ2€J€J€Jr    r5   c                  ó   — e Zd ZdZdZdS )ÚStrAsPlainColumnRoler   r6   Nr$   r   r    r!   r9   r9   V   r7   r    r9   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!   r;   r;   [   s   € € € € € ØMÐMà€I€I€Ir    r;   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>   a   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@   g   s   € € € € € Ø€IØ(€J€J€Jr    r@   c                  ó   — e Zd ZdZdZdZdS )ÚTStringElementRolez:Role for elements that can be interpolated into a TString.r   zTString interpolatable elementN©r   r   r   r   r   r%   r   r    r!   rB   rB   l   s   € € € € € ØDÐDà€IØ1€J€J€Jr    rB   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_iterable{   s   € å!Ñ#Ô#Ð#r    N)rF   r   )r   r   r   r   r%   ÚpropertyrM   r   r    r!   rE   rE   s   sC   € € € € € ð €IàIð ð ð$ð $ð $ñ „Xð$ð $ð $r    rE   c                  ó   — e Zd ZdZdZdS )ÚTypedColumnsClauseRolez'element-typed form of ColumnsClauseRoler   Nr<   r   r    r!   rP   rP   €   s   € € € € € Ø1Ð1à€I€I€Ir    rP   c                  ó   — e Zd ZdZdZdS )ÚLimitOffsetRoler   zLIMIT / OFFSET expressionNr$   r   r    r!   rR   rR   †   s   € € € € € Ø€IØ,€J€J€Jr    rR   c                  ó   — e Zd ZdZdZdS )ÚByOfRoler   zGROUP BY / OF / etc. expressionNr$   r   r    r!   rT   rT   ‹   r7   r    rT   c                  ó   — e Zd ZdZdZdS )ÚGroupByRoler   zGROUP BY expressionNr$   r   r    r!   rV   rV   �   s   € € € € € Ø€Ið
 '€J€J€Jr    rV   c                  ó   — e Zd ZdZdZdS )ÚOrderByRoler   zORDER BY expressionNr$   r   r    r!   rX   rX   ™   s   € € € € € Ø€IØ&€J€J€Jr    rX   c                  ó   — e Zd ZdZdS )ÚStructuralRoler   N©r   r   r   r   r   r    r!   rZ   rZ   ž   ó   € € € € € Ø€I€I€Ir    rZ   c                  ó   — e Zd ZdZdZdS )ÚStatementOptionRoler   z statement sub-expression elementNr$   r   r    r!   r^   r^   ¢   s   € € € € € Ø€IØ3€J€J€Jr    r^   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!   rb   rb   ¯   s   € € € € € Ø€IØ7€J€J€Jr    rb   c                  ó   — e Zd ZdZdZd	d„ZdS )
ÚExpressionElementRoler   zSQL expression elementÚnameúOptional[str]rF   ú	Label[_T]c                ó   — t          ¦   «         ‚rH   rI   )rL   re   s     r!   ÚlabelzExpressionElementRole.label¾   s   € Ý!Ñ#Ô#Ð#r    N)re   rf   rF   rg   )r   r   r   r   r%   ri   r   r    r!   rd   rd   ´   s4   € € € € € ð €IØ)€Jð$ð $ð $ð $ð $ð $r    rd   c                  ó   — e Zd ZdZdZdS )ÚConstExprRoler   z#Constant True/False/None expressionNr$   r   r    r!   rk   rk   Â   s   € € € € € Ø€IØ6€J€J€Jr    rk   c                  ó   — e Zd ZdZdS )ÚLabeledColumnExprRoler   Nr[   r   r    r!   rm   rm   Ç   r\   r    rm   c                  ó   — e Zd ZdZdZdS )ÚBinaryElementRoler   z'SQL expression element or literal valueNr$   r   r    r!   ro   ro   Ë   s   € € € € € Ø€IØ:€J€J€Jr    ro   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!   rq   rq   Ð   s   € € € € € Ø€IàIð €J€Jr    rq   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!   rs   rs   ×   s   € € € € € Ø€Ið	!ð €J€Jr    rs   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!   ru   ru   ß   s-   € € € € € € Ø€IØE€Jà€LàÐÐÑÐÐr    ru   c                  ó*   — e Zd ZdZer
dddœdd„ZdS dS )ÚAnonymizedFromClauseRoler   NF)re   Úflatre   rf   r{   rv   rF   r   c               ó   — d S rH   r   )rL   re   r{   s      r!   Ú_anonymous_fromclausez.AnonymizedFromClauseRole._anonymous_fromclauseí   s   € à˜r    )re   rf   r{   rv   rF   r   )r   r   r   r   r   r}   r   r    r!   rz   rz   è   sP   € € € € € Ø€Iàð ð ,0¸eð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ðð r    rz   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() constructrF   r   c                ó   — d S rH   r   rK   s    r!   Ú_propagate_attrszStatementRole._propagate_attrs   s   € Ø;>¸3r    N)rF   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() constructrF   r   c                ó    — t          d¦  «        ‚)NzFAll SelectStatementRole objects should implement a .subquery() method.rI   rK   s    r!   ÚsubqueryzSelectStatementRole.subquery  s   € Ý!ð"ñ
ô 
ð 	
r    N)rF   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   Nr[   r   r    r!   r‹   r‹     r\   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 constructNrC   r   r    r!   r�   r�     s!   € € € € € ØNÐNà€IàJð €J€Jr    r�   c                  ó   — e Zd ZdZdS )ÚDMLRoler   Nr[   r   r    r!   r‘   r‘   %  r\   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 objectNrC   r   r    r!   r—   r—   3  s   € € € € € ØJÐJà€IØ@€J€J€Jr    r—   c                  ó   — e Zd ZdZdS )ÚDDLRoler   Nr[   r   r    r!   r™   r™   :  r\   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›   >  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�   C  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Ÿ   H  s   € € € € € Ø€IàLð €J€Jr    rŸ   N)CÚ
__future__r   Útypingr   r   r   r   r   r	   Ú r   Ú_typingr   Úelementsr   Ú
selectabler   r   r   r   r   r   r#   r'   r+   r-   r/   r1   r3   r5   r9   r;   r>   r@   rB   rE   rP   rR   rT   rV   rX   rZ   r^   r`   rb   rd   rk   rm   ro   rq   rs   ru   rz   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ñ )ô )ð )ð
2ð 2ð 2ð 2ð 2˜¨ñ 2ô 2ð 2ð
$ð 
$ð 
$ð 
$ð 
$ØÐ(¨.¸.ñ
$ô 
$ð 
$ðð ð ð ð ˜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ñ ô ð ðð ð ð ð Ð% ~°~ñ ô ð ðð ð ð ð Ð&¨ñ ô ð ðð ð ð ð ˜~ñ ô ð ðð ð ð ð �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    