B
    ‰KLc  ã               @   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
   ú3lib/python3.7/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      s   r   c               @   s   e Zd ZdZdS )ÚAllowsLambdaRoleTN)r   r   r   r   r
   r
   r
   r   r      s   r   c               @   s   e Zd ZdZdS )ÚHasCacheKeyRolezCacheable Core or ORM objectN)r   r   r   Ú
_role_namer
   r
   r
   r   r   #   s   r   c               @   s   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   '   s   r   c               @   s   e Zd ZdZdS )ÚLiteralValueRolezLiteral Python valueN)r   r   r   r   r
   r
   r
   r   r   ,   s   r   c               @   s   e Zd ZdZdS )ÚColumnArgumentRolezColumn expressionN)r   r   r   r   r
   r
   r
   r   r   0   s   r   c               @   s   e Zd ZdZdS )ÚColumnArgumentOrKeyRolezColumn expression or string keyN)r   r   r   r   r
   r
   r
   r   r   4   s   r   c               @   s   e Zd ZdZdS )ÚStrAsPlainColumnRolezColumn expression or string keyN)r   r   r   r   r
   r
   r
   r   r   8   s   r   c               @   s   e Zd ZdZdS )ÚColumnListRolezCElements suitable for forming comma separated lists of expressions.N)r   r   r   r   r
   r
   r
   r   r   <   s   r   c               @   s   e Zd ZdZdS )ÚTruncatedLabelRolezString SQL identifierN)r   r   r   r   r
   r
   r
   r   r   @   s   r   c               @   s   e Zd ZdZedd„ ƒZdS )ÚColumnsClauseRolez Column expression or FROM clausec             C   s
   t ƒ ‚d S )N)ÚNotImplementedError)Úselfr
   r
   r   Ú_select_iterableG   s    z"ColumnsClauseRole._select_iterableN)r   r   r   r   Úpropertyr   r
   r
   r
   r   r   D   s   r   c               @   s   e Zd ZdZdS )ÚLimitOffsetRolezLIMIT / OFFSET expressionN)r   r   r   r   r
   r
   r
   r   r   L   s   r   c               @   s   e Zd ZdZdS )ÚByOfRolezGROUP BY / OF / etc. expressionN)r   r   r   r   r
   r
   r
   r   r   P   s   r   c               @   s   e Zd ZdZdS )ÚGroupByRolezGROUP BY expressionN)r   r   r   r   r
   r
   r
   r   r   T   s   r   c               @   s   e Zd ZdZdS )ÚOrderByRolezORDER BY expressionN)r   r   r   r   r
   r
   r
   r   r    \   s   r    c               @   s   e Zd ZdS )ÚStructuralRoleN)r   r   r   r
   r
   r
   r   r!   `   s   r!   c               @   s   e Zd ZdZdS )ÚStatementOptionRolez statement sub-expression elementN)r   r   r   r   r
   r
   r
   r   r"   d   s   r"   c               @   s   e Zd ZdZdS )ÚOnClauseRolezSQL expression for ON clauseN)r   r   r   r   r
   r
   r
   r   r#   h   s   r#   c               @   s   e Zd ZdZdS )ÚWhereHavingRolez$SQL expression for WHERE/HAVING roleN)r   r   r   r   r
   r
   r
   r   r$   l   s   r$   c               @   s   e Zd ZdZdS )ÚExpressionElementRolezSQL expression elementN)r   r   r   r   r
   r
   r
   r   r%   p   s   r%   c               @   s   e Zd ZdZdS )ÚConstExprRolez#Constant True/False/None expressionN)r   r   r   r   r
   r
   r
   r   r&   t   s   r&   c               @   s   e Zd ZdS )ÚLabeledColumnExprRoleN)r   r   r   r
   r
   r
   r   r'   x   s   r'   c               @   s   e Zd ZdZdS )ÚBinaryElementRolez'SQL expression element or literal valueN)r   r   r   r   r
   r
   r
   r   r(   |   s   r(   c               @   s   e Zd ZdZdS )ÚInElementRolez?IN expression list, SELECT construct, or bound parameter objectN)r   r   r   r   r
   r
   r
   r   r)   €   s   r)   c               @   s   e Zd ZdZdS )ÚJoinTargetRolezGJoin target, typically a FROM expression, or ORM relationship attributeN)r   r   r   r   r
   r
   r
   r   r*   †   s   r*   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   s
   t ƒ ‚d S )N)r   )r   r
   r
   r   Ú_hide_froms’   s    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   s
   t ƒ ‚d S )N)r   )r   r
   r
   r   Údescriptionš   s    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   s
   t ƒ ‚d S )N)r   )r   ÚnameZflatr
   r
   r   Ú_anonymous_fromclause¢   s    z.AnonymizedFromClauseRole._anonymous_fromclause)NF)r   r   r   r1   r
   r
   r
   r   r/   Ÿ   s   r/   c               @   s   e Zd ZdZdS )ÚReturnsRowsRolezcRow returning expression such as a SELECT, a FROM clause, or an INSERT/UPDATE/DELETE with RETURNINGN)r   r   r   r   r
   r
   r
   r   r2   ¦   s   r2   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   r3   ­   s   r3   c               @   s   e Zd ZdZdd„ ZdS )ÚSelectStatementRolez/SELECT construct or equivalent text() constructc             C   s   t dƒ‚d S )NzFAll SelectStatementRole objects should implement a .subquery() method.)r   )r   r
   r
   r   Úsubquery¶   s    zSelectStatementRole.subqueryN)r   r   r   r   r5   r
   r
   r
   r   r4   ³   s   r4   c               @   s   e Zd ZdS )Ú
HasCTERoleN)r   r   r   r
   r
   r
   r   r6   ½   s   r6   c               @   s   e Zd ZdZdS )Ú	IsCTERolez
CTE objectN)r   r   r   r   r
   r
   r
   r   r7   Á   s   r7   c               @   s   e Zd ZdZdZdS )Ú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   r8   Å   s   r8   c               @   s   e Zd ZdS )ÚDMLRoleN)r   r   r   r
   r
   r
   r   r9   Î   s   r9   c               @   s   e Zd ZdZdS )ÚDMLTableRolez-subject table for an INSERT, UPDATE or DELETEN)r   r   r   r   r
   r
   r
   r   r:   Ò   s   r:   c               @   s   e Zd ZdZdS )ÚDMLColumnRolez*SET/VALUES column expression or string keyN)r   r   r   r   r
   r
   r
   r   r;   Ö   s   r;   c               @   s   e Zd ZdZdZdS )ÚDMLSelectRolez@A SELECT statement embedded in DML, typically INSERT from SELECTz-SELECT statement or equivalent textual objectN)r   r   r   r   r   r
   r
   r
   r   r<   Ú   s   r<   c               @   s   e Zd ZdS )ÚDDLRoleN)r   r   r   r
   r
   r
   r   r=   à   s   r=   c               @   s   e Zd ZdZdS )ÚDDLExpressionRolez)SQL expression element for DDL constraintN)r   r   r   r   r
   r
   r
   r   r>   ä   s   r>   c               @   s   e Zd ZdZdS )ÚDDLConstraintColumnRolez:String column name or column expression for DDL constraintN)r   r   r   r   r
   r
   r
   r   r?   è   s   r?   c               @   s   e Zd ZdZdS )ÚDDLReferredColumnRolezBString column name or Column object for DDL foreign key constraintN)r   r   r   r   r
   r
   r
   r   r@   ì   s   r@   N).Ú r   Úobjectr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r-   r/   r2   r3   r4   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   r
   r
   r
   r   Ú<module>   sV   

	