o
    ãRcõ  ã                   @   sÖ  d dl mZ G dd„ deƒZG dd„ deƒZG dd„ deƒZG dd	„ d	eƒZG d
d„ deƒZG dd„ deƒZG dd„ deƒZ	G dd„ de	ƒZ
G dd„ de	ƒZG dd„ deƒZG dd„ deƒZG dd„ deeeƒZG dd„ deƒZG dd„ deƒZG dd„ deeeƒZG d d!„ d!eeƒZG d"d#„ d#eƒZG d$d%„ d%eƒZG d&d'„ d'eeƒZG d(d)„ d)eƒZG d*d+„ d+eƒZG d,d-„ d-eƒZG d.d/„ d/eƒZG d0d1„ d1eƒZG d2d3„ d3eƒZG d4d5„ d5eeeƒZG d6d7„ d7eeƒZG d8d9„ d9eƒZG d:d;„ d;eƒZG d<d=„ d=eƒZ G d>d?„ d?eƒZ!G d@dA„ dAe!e ƒZ"G dBdC„ dCe ƒZ#G dDdE„ dEeƒZ$G dFdG„ dGeeƒZ%G dHdI„ dIe!ƒZ&G dJdK„ dKeƒZ'G dLdM„ dMeƒZ(G dNdO„ dOeƒZ)G dPdQ„ dQe!ƒZ*G dRdS„ dSeƒZ+G dTdU„ dUeƒZ,G dVdW„ dWe,ƒZ-dXS )Yé   )Úutilc                   @   s   e 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__Úallows_lambdaÚuses_inspection© r
   r
   ú6D:\Flask\env\Lib\site-packages\sqlalchemy/sql/roles.pyr      s    
r   c                   @   s   e Zd ZdZdZdS )ÚUsesInspectionNT)r   r   r   Z_post_inspectr	   r
   r
   r
   r   r      ó    r   c                   @   ó   e Zd ZdZdS )ÚAllowsLambdaRoleTN)r   r   r   r   r
   r
   r
   r   r      ó    r   c                   @   r   )ÚHasCacheKeyRolezCacheable Core or ORM objectN©r   r   r   Ú
_role_namer
   r
   r
   r   r   #   r   r   c                   @   ó   e Zd ZdZdZdS )ÚExecutableOptionRoler
   z"ExecutionOption Core or ORM objectN)r   r   r   Ú	__slots__r   r
   r
   r
   r   r   '   r   r   c                   @   r   )ÚLiteralValueRolezLiteral Python valueNr   r
   r
   r
   r   r   ,   r   r   c                   @   r   )ÚColumnArgumentRolezColumn expressionNr   r
   r
   r
   r   r   0   r   r   c                   @   r   )ÚColumnArgumentOrKeyRoleúColumn expression or string keyNr   r
   r
   r
   r   r   4   r   r   c                   @   r   )ÚStrAsPlainColumnRoler   Nr   r
   r
   r
   r   r   8   r   r   c                   @   r   )ÚColumnListRolezCElements suitable for forming comma separated lists of expressions.N)r   r   r   r   r
   r
   r
   r   r   <   r   r   c                   @   r   )ÚTruncatedLabelRolezString SQL identifierNr   r
   r
   r
   r   r   @   r   r   c                   @   s   e Zd ZdZedd„ ƒZdS )ÚColumnsClauseRolez Column expression or FROM clausec                 C   ó   t ƒ ‚©N©ÚNotImplementedError©Úselfr
   r
   r   Ú_select_iterableG   ó   z"ColumnsClauseRole._select_iterableN)r   r   r   r   Úpropertyr%   r
   r
   r
   r   r   D   s    r   c                   @   r   )ÚLimitOffsetRolezLIMIT / OFFSET expressionNr   r
   r
   r
   r   r(   L   r   r(   c                   @   r   )ÚByOfRolezGROUP BY / OF / etc. expressionNr   r
   r
   r
   r   r)   P   r   r)   c                   @   r   )ÚGroupByRolezGROUP BY expressionNr   r
   r
   r
   r   r*   T   s    r*   c                   @   r   )ÚOrderByRolezORDER BY expressionNr   r
   r
   r
   r   r+   \   r   r+   c                   @   ó   e Zd ZdS )ÚStructuralRoleN©r   r   r   r
   r
   r
   r   r-   `   ó    r-   c                   @   r   )ÚStatementOptionRolez statement sub-expression elementNr   r
   r
   r
   r   r0   d   r   r0   c                   @   r   )ÚOnClauseRolezSQL expression for ON clauseNr   r
   r
   r
   r   r1   h   r   r1   c                   @   r   )ÚWhereHavingRolez$SQL expression for WHERE/HAVING roleNr   r
   r
   r
   r   r2   l   r   r2   c                   @   r   )ÚExpressionElementRolezSQL expression elementNr   r
   r
   r
   r   r3   p   r   r3   c                   @   r   )ÚConstExprRolez#Constant True/False/None expressionNr   r
   r
   r
   r   r4   t   r   r4   c                   @   r,   )ÚLabeledColumnExprRoleNr.   r
   r
   r
   r   r5   x   r/   r5   c                   @   r   )ÚBinaryElementRolez'SQL expression element or literal valueNr   r
   r
   r
   r   r6   |   r   r6   c                   @   r   )ÚInElementRolez?IN expression list, SELECT construct, or bound parameter objectNr   r
   r
   r
   r   r7   €   ó    ÿr7   c                   @   r   )ÚJoinTargetRolezGJoin target, typically a FROM expression, or ORM relationship attributeNr   r
   r
   r
   r   r9   †   r8   r9   c                   @   s    e Zd ZdZdZedd„ ƒZdS )ÚFromClauseRolez2FROM expression, such as a Table or alias() objectFc                 C   r   r    r!   r#   r
   r
   r   Ú_hide_froms’   r&   zFromClauseRole._hide_fromsN)r   r   r   r   Z_is_subqueryr'   r;   r
   r
   r
   r   r:      s
    r:   c                   @   s   e Zd Zedd„ ƒZdS )ÚStrictFromClauseRolec                 C   r   r    r!   r#   r
   r
   r   Údescriptionš   r&   z StrictFromClauseRole.descriptionN)r   r   r   r'   r=   r
   r
   r
   r   r<   —   s    r<   c                   @   s   e Zd Zddd„ZdS )ÚAnonymizedFromClauseRoleNFc                 C   r   r    r!   )r$   ÚnameZflatr
   r
   r   Ú_anonymous_fromclause¢   s   z.AnonymizedFromClauseRole._anonymous_fromclause)NF)r   r   r   r@   r
   r
   r
   r   r>   Ÿ   s    r>   c                   @   r   )ÚReturnsRowsRolezcRow returning expression such as a SELECT, a FROM clause, or an INSERT/UPDATE/DELETE with RETURNINGNr   r
   r
   r
   r   rA   ¦   r8   rA   c                   @   s   e Zd ZdZe ¡ ZdS )ÚStatementRolez"Executable SQL or text() constructN)r   r   r   r   r   ZimmutabledictZ_propagate_attrsr
   r
   r
   r   rB   ­   ó    rB   c                   @   s   e Zd ZdZdd„ ZdS )ÚSelectStatementRolez/SELECT construct or equivalent text() constructc                 C   s   t dƒ‚)NzFAll SelectStatementRole objects should implement a .subquery() method.r!   r#   r
   r
   r   Úsubquery¶   s   ÿzSelectStatementRole.subqueryN)r   r   r   r   rE   r
   r
   r
   r   rD   ³   rC   rD   c                   @   r,   )Ú
HasCTERoleNr.   r
   r
   r
   r   rF   ½   r/   rF   c                   @   r   )Ú	IsCTERolez
CTE objectNr   r
   r
   r
   r   rG   Á   r   rG   c                   @   r   )ÚCompoundElementRolezDSELECT statements inside a CompoundSelect, e.g. UNION, EXTRACT, etc.z@SELECT construct for inclusion in a UNION or other set constructN©r   r   r   r   r   r
   r
   r
   r   rH   Å   s    ÿrH   c                   @   r,   )ÚDMLRoleNr.   r
   r
   r
   r   rJ   Î   r/   rJ   c                   @   r   )ÚDMLTableRolez-subject table for an INSERT, UPDATE or DELETENr   r
   r
   r
   r   rK   Ò   r   rK   c                   @   r   )ÚDMLColumnRolez*SET/VALUES column expression or string keyNr   r
   r
   r
   r   rL   Ö   r   rL   c                   @   r   )ÚDMLSelectRolez@A SELECT statement embedded in DML, typically INSERT from SELECTz-SELECT statement or equivalent textual objectNrI   r
   r
   r
   r   rM   Ú   s    rM   c                   @   r,   )ÚDDLRoleNr.   r
   r
   r
   r   rN   à   r/   rN   c                   @   r   )ÚDDLExpressionRolez)SQL expression element for DDL constraintNr   r
   r
   r
   r   rO   ä   r   rO   c                   @   r   )ÚDDLConstraintColumnRolez:String column name or column expression for DDL constraintNr   r
   r
   r
   r   rP   è   r   rP   c                   @   r   )ÚDDLReferredColumnRolezBString column name or Column object for DDL foreign key constraintNr   r
   r
   r
   r   rQ   ì   r8   rQ   N).Ú r   Úobjectr   r   r   r   r   r   r   r   r   r   r   r   r(   r)   r*   r+   r-   r0   r1   r2   r3   r4   r5   r6   r7   r9   r:   r<   r>   rA   rB   rD   rF   rG   rH   rJ   rK   rL   rM   rN   rO   rP   rQ   r
   r
   r
   r   Ú<module>   sX   

	