zmc
2023-08-08 e792e9a60d958b93aef96050644f369feb25d61b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
U
¸ý°dã@s¨ddlmZddlmZddlmZddlmZddlmZddlmZddlm    Z    dd    l
m Z er d
d l m Z d
d lmZd
d lmZd
dlmZd
dlmZededZGdd„dƒZGdd„dƒZGdd„dƒZGdd„deƒZGdd„deƒZGdd„deƒZGdd„deƒZGd d!„d!eƒZGd"d#„d#eƒZGd$d%„d%eƒZGd&d'„d'eƒZGd(d)„d)eeƒZ Gd*d+„d+eeeƒZ!Gd,d-„d-eeeƒZ"Gd.d/„d/eƒZ#Gd0d1„d1eƒZ$Gd2d3„d3eee$ƒZ%Gd4d5„d5ee$ƒZ&Gd6d7„d7eƒZ'Gd8d9„d9e'ƒZ(Gd:d;„d;ee'ƒZ)Gd<d=„d=e)ƒZ*Gd>d?„d?e"eƒZ+Gd@dA„dAe+eƒZ,GdBdC„dCe+eƒZ-GdDdE„dEe+eƒZ.GdFdG„dGeƒZ/GdHdI„dIeee'ƒZ0GdJdK„dKe!e0ƒZ1GdLdM„dMe1ƒZ2GdNdO„dOe2ƒZ3GdPdQ„dQeƒZ4GdRdS„dSeƒZ5GdTdU„dUe5e4ƒZ6GdVdW„dWe4ƒZ7GdXdY„dYeƒZ8GdZd[„d[eeƒZ9Gd\d]„d]e5ƒZ:Gd^d_„d_e1ƒZ;Gd`da„daeƒZ<Gdbdc„dceƒZ=Gddde„dee5ƒZ>Gdfdg„dge'ƒZ?Gdhdi„dieƒZ@Gdjdk„dke@ƒZAdlS)mé)Ú annotations)ÚAny)ÚGeneric)ÚOptional)Ú TYPE_CHECKING)ÚTypeVaré)Úutil)ÚLiteralé)Ú_PropagateAttrsType)ÚLabel)Ú_SelectIterable)Ú
FromClause)ÚSubqueryÚ_T)Úboundc@seZdZdZdZdZdZdS)Ú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_inspectionrrrúKd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\sqlalchemy/sql/roles.pyrs
rc@s"eZdZUdZdZded<dZdS)ÚUsesInspectionrNz Literal[None]Ú _post_inspectT)rrrrrÚ__annotations__rrrrrr,s
 rc@seZdZdZdZdS)ÚAllowsLambdaRolerTN)rrrrrrrrrr 2sr c@seZdZdZdZdS)ÚHasCacheKeyRolerzCacheable Core or ORM objectN©rrrrÚ
_role_namerrrrr!7sr!c@seZdZdZdZdS)ÚExecutableOptionRolerz"ExecutionOption Core or ORM objectNr"rrrrr$<sr$c@seZdZdZdZdS)ÚLiteralValueRolerzLiteral Python valueNr"rrrrr%Asr%c@seZdZdZdZdS)ÚColumnArgumentRolerzColumn expressionNr"rrrrr&Fsr&c@seZdZdZdZdS)ÚColumnArgumentOrKeyRolerúColumn expression or string keyNr"rrrrr'Ksr'c@seZdZdZdZdS)ÚStrAsPlainColumnRolerr(Nr"rrrrr)Psr)c@seZdZdZdZdS)ÚColumnListRolezCElements suitable for forming comma separated lists of expressions.rN©rrrrrrrrrr*Usr*c@seZdZdZdZdS)Ú
StringRolez/mixin indicating a role that results in stringsrNr+rrrrr,[sr,c@seZdZdZdZdS)ÚTruncatedLabelRolerzString SQL identifierNr"rrrrr-asr-c@s&eZdZdZdZeddœdd„ƒZdS)ÚColumnsClauseRolerz?Column expression, FROM clause, or other columns clause elementr©ÚreturncCs
tƒ‚dS©N©ÚNotImplementedError©ÚselfrrrÚ_select_iterablelsz"ColumnsClauseRole._select_iterableN)rrrrr#Úpropertyr6rrrrr.fs
ÿr.c@seZdZdZdZdS)ÚTypedColumnsClauseRolez'element-typed form of ColumnsClauseRolerNr+rrrrr8qsr8c@seZdZdZdZdS)ÚLimitOffsetRolerzLIMIT / OFFSET expressionNr"rrrrr9wsr9c@seZdZdZdZdS)ÚByOfRolerzGROUP BY / OF / etc. expressionNr"rrrrr:|sr:c@seZdZdZdZdS)Ú GroupByRolerzGROUP BY expressionNr"rrrrr;sr;c@seZdZdZdZdS)Ú OrderByRolerzORDER BY expressionNr"rrrrr<Šsr<c@seZdZdZdS)ÚStructuralRolerN©rrrrrrrrr=sr=c@seZdZdZdZdS)ÚStatementOptionRolerz statement sub-expression elementNr"rrrrr?“sr?c@seZdZdZdZdS)Ú OnClauseRolerzCON clause, typically a SQL expression or ORM relationship attributeNr"rrrrr@˜sÿr@c@seZdZdZdZdS)ÚWhereHavingRolerz$SQL expression for WHERE/HAVING roleNr"rrrrrA srAc@s$eZdZdZdZdddœdd„ZdS)    ÚExpressionElementRolerzSQL expression elementú Optional[str]z    Label[_T])Únamer0cCs
tƒ‚dSr1r2)r5rDrrrÚlabel¯szExpressionElementRole.labelN)rrrrr#rErrrrrB¥srBc@seZdZdZdZdS)Ú ConstExprRolerz#Constant True/False/None expressionNr"rrrrrF³srFc@seZdZdZdS)ÚLabeledColumnExprRolerNr>rrrrrG¸srGc@seZdZdZdZdS)ÚBinaryElementRolerz'SQL expression element or literal valueNr"rrrrrH¼srHc@seZdZdZdZdS)Ú InElementRolerz?IN expression list, SELECT construct, or bound parameter objectNr"rrrrrIÁsÿrIc@seZdZdZdZdS)ÚJoinTargetRolerzGJoin target, typically a FROM expression, or ORM relationship attributeNr"rrrrrJÈsÿrJc@s"eZdZUdZdZdZded<dS)ÚFromClauseRolerz2FROM expression, such as a Table or alias() objectFÚboolZnamed_with_columnN)rrrrr#Z _is_subqueryrrrrrrKÐs
rKc@seZdZdZdS)ÚStrictFromClauseRolerNr>rrrrrMÙsrMc@s.eZdZdZer*dddœddddœd    d
„ZdS) ÚAnonymizedFromClauseRolerNF)rDÚflatrCrLr)rDrOr0cCsdSr1r)r5rDrOrrrÚ_anonymous_fromclauseãsz.AnonymizedFromClauseRole._anonymous_fromclause)rrrrrrPrrrrrNÞs
ÿrNc@seZdZdZdZdS)ÚReturnsRowsRolerzcRow returning expression such as a SELECT, a FROM clause, or an INSERT/UPDATE/DELETE with RETURNINGNr"rrrrrQésÿrQc@s4eZdZdZdZer*ejddœdd„ƒZnej    ZdS)Ú StatementRolerz"Executable SQL or text() constructr r/cCsdSr1rr4rrrÚ_propagate_attrs÷szStatementRole._propagate_attrsN)
rrrrr#rr    Zmemoized_propertyrSÚ
EMPTY_DICTrrrrrRñs rRc@s"eZdZdZdZddœdd„ZdS)ÚSelectStatementRolerz/SELECT construct or equivalent text() constructrr/cCs tdƒ‚dS)NzFAll SelectStatementRole objects should implement a .subquery() method.r2r4rrrÚsubquerysÿzSelectStatementRole.subqueryN)rrrrr#rVrrrrrUÿsrUc@seZdZdZdS)Ú
HasCTERolerNr>rrrrrW
srWc@seZdZdZdZdS)Ú    IsCTERolerz
CTE objectNr"rrrrrXsrXc@seZdZdZdZdZdS)ÚCompoundElementRolezDSELECT statements inside a CompoundSelect, e.g. UNION, EXTRACT, etc.rz@SELECT construct for inclusion in a UNION or other set constructN©rrrrrr#rrrrrYsÿrYc@seZdZdZdS)ÚDMLRolerNr>rrrrr[sr[c@seZdZdZdZdS)Ú DMLTableRolerz-subject table for an INSERT, UPDATE or DELETENr"rrrrr\!sr\c@seZdZdZdZdS)Ú DMLColumnRolerz*SET/VALUES column expression or string keyNr"rrrrr]&sr]c@seZdZdZdZdZdS)Ú DMLSelectRolez@A SELECT statement embedded in DML, typically INSERT from SELECTrz-SELECT statement or equivalent textual objectNrZrrrrr^+sr^c@seZdZdZdS)ÚDDLRolerNr>rrrrr_2sr_c@seZdZdZdZdS)ÚDDLExpressionRolerz)SQL expression element for DDL constraintNr"rrrrr`6sr`c@seZdZdZdZdS)ÚDDLConstraintColumnRolerz:String column name or column expression for DDL constraintNr"rrrrra;srac@seZdZdZdZdS)ÚDDLReferredColumnRolerzBString column name or Column object for DDL foreign key constraintNr"rrrrrb@sÿrbN)BÚ
__future__rÚtypingrrrrrÚr    Z util.typingr
Ú_typingr Úelementsr Z
selectablerrrrrrr r!r$r%r&r'r)r*r,r-r.r8r9r:r;r<r=r?r@rArBrFrGrHrIrJrKrMrNrQrRrUrWrXrYr[r\r]r^r_r`rarbrrrrÚ<module>sv