L i"ddlmZddlZddlmZddlmZddlmZddlmZddlmZddlm Z dd lm Z dd lm Z dd lm Z dd lm Z dd lmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlm Z ddlm!Z!ddlm"Z#dd lm$Z$dd!lm%Z%dd"lm&Z&dd#lmZdd$l&m'Z'dd%l&m(Z(dd&l&m)Z)dd#l&mZ*dd'l&m+Z+dd(l,m-Z-dd)l,m.Z.dd*l,m/Z/dd+l,m0Z0dd,l1m2Z2dd-l1m3Z3dd.l1m4Z4dd/l1m5Z5dd0l1m6Z6dd1l1m7Z7dd2l8m9Z9dd3l:m;Z;dd4l:mZ>dd6l=m?Z?dd7l=m@Z@dd8l=mAZAdd9l=mBZBdd:l=mCZCdd;l=mDZDddlHmIZIdd?lHmJZJdd@lmKZKddAlLmMZMddBlNmOZOddClPmQZQddDlPmRZRddElSmTZTddFlUmVZVddGl,mWZWddHlXmYZYddIl8mZZZddJl:m[Z[ddKl=m\Z\ddLl=m]Z]ddMl=m^Z^ddNl=m_Z_ddOl=m`Z`ddPlambZbedQeRZcejZeejZgeCjZhGdSdTZiejdUdViZjGdWdXe4ZkGdYdZekZlGd[d\ekZmGd]d^ZnGd_d`enZoGdadbenZpe&j(jhjdcddGdedfemZrGdgdhe;e6eEe-Zse&j(jhjdcdiGdjdkele>Zte&j(jhjdcdlGdmdnemeDZu d ddoZv ddpZw ddqZx d ddrZyGdsdtZzGdudvezZ{GdwdxezZ|GdydzezZ}Gd{d|e}Z~Gd}d~e}ZGddeZy)) annotationsN)Any)cast)Dict)Iterable)List)Optional)Set)Tuple)Type) TYPE_CHECKING)TypeVar)Union) attributes) interfaces)loading)_is_aliased_class)ORMColumnDescription)ORMColumnsClauseRole) PathRegistry)_entity_corresponds_to)_ORMJoin)_TraceAdaptRole) AliasedClass)Bundle) ORMAdapter)ORMStatementAdapter)exc)future)inspect)sql)util) coercions) expression)roles)visitors)_TP)is_dml)is_insert_update)is_select_base)_select_iterables)CacheableOptions) CompileState) Executable) Generative)Options) UpdateBase)GroupedElement) TextClause)CompoundSelectState)LABEL_STYLE_DISAMBIGUATE_ONLY)LABEL_STYLE_NONE)LABEL_STYLE_TABLENAME_PLUS_COL)Select)SelectLabelStyle) SelectState)TypedReturnsRows)InternalTraversal)_InternalEntityType)OrmExecuteOptionsParameter)PostLoad)Mapper)Query)_BindArguments)Session)Result)_CoreSingleExecuteParams)_ColumnsClauseArgument) SQLCompiler)_DMLTableElement) ColumnElement)_JoinTargetElement)_LabelConventionCallable)_SetupJoinsElement)ExecutableReturnsRows) SelectBase) TypeEngine_T)boundczeZdZUdZded<ded<ded<Gdd eZ d dd Zdd Zy ) QueryContext)top_level_context compile_statequeryuser_passed_queryparams load_optionsbind_argumentsexecution_optionssession autoflushpopulate_existinginvoke_all_eagers version_check refresh_statecreate_eager_joinspropagated_loader_optionsrrunidpartialspost_load_pathsidentity_token yield_perloaders_require_bufferingloaders_require_uniquingintrfzDict[PathRegistry, PostLoad]rhORMCompileStaterWc<eZdZdZdZdZdZdZdZdZ dZ dZ dZ dZ dZy)!QueryContext.default_load_optionsFTN)__name__ __module__ __qualname___only_return_tuples_populate_existing_version_check_invoke_all_eagers _autoflush_identity_token _yield_per_refresh_state_lazy_loaded_from_legacy_uniquing_sa_top_level_orm_context_is_user_refresh\/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sqlalchemy/orm/context.pydefault_load_optionsrpsE#"!    $(! rrNc |_|xst_|xst_|_|_|_|_d_d_ |_ |j_ |jj} |j} tfdt!| | D_t%|j&_|j(_|j,_|j0_|j4_|j8_|j<_|j@_!y)NFc3`K|]%\}}|jr|j|'ywN)propagate_to_loaders'_adapt_cached_option_to_uncached_option).0opt uncached_optselfs r z(QueryContext.__init__..s3/ !\''  7 7l K/ s+.)"r[ _EMPTY_DICTr]r\rWrXrYr^rkrlrZr~rVselect_statement _with_optionstuplezipredictrrxr_rur`rwrarvrbr{rcrzrjryri) rrW statementrYrZr^r[r]r\cached_optionsuncached_optionss ` r__init__zQueryContext.__init__s!$)!2!Ak,; * "3 ).&(-% !-!G!G&77EE,::*// %(9I%J/ * & }778%00!-!@!@!-!@!@)88)88%00*::rc"|jxs|Sr)rVrs r_get_top_level_contextz#QueryContext._get_top_level_contexts%%--r)NN)rWr/r2Union[Select[Any], FromStatement[Any], UpdateBase]rYrrZrGr^rEr[zQUnion[Type[QueryContext.default_load_options], QueryContext.default_load_options]r]z$Optional[OrmExecuteOptionsParameter]r\zOptional[_BindArguments])returnrU) rqrrrs __slots____annotations__r2rrrrrrrUrUfsI6 J11"" !w !:CG37!@;#@;F@; @;)@;@; @;@@; 1!@;D.rrU _result_disable_adapt_to_contextTczeZdZdZdZe dfd ZedZe ddZedZ xZ S) AbstractORMCompileStateFci|_| i|_|sJy|jx|_}|r7d|d<|r/|jD] }|js|j |"y|j ddry|jd} |d}|jD]-}|js|js|j |/ d|d<y#t$rYwxYw)NT toplevel_ormFr selectable) rglobal_attributes_global_attributesr_is_criteria_optionprocess_compile_stategetstack_is_compile_stateKeyError) rrcompilertoplevelprocess_criteria_for_toplevelgarstack_0 toplevel_stmts r_init_global_attributesz/AbstractORMCompileState._init_global_attributess  &(D "O8 *2*E*E ED "R !%B~ ,$228C..11$78  VVNE * ..# 4#L1M%22 4((S-D-D--d3 4">   sC CCc &t|||fi|S)aCreate a context for a statement given a :class:`.Compiler`. This method is always invoked in the context of SQLCompiler.process(). For a Select object, this would be invoked from SQLCompiler.visit_select(). For the special FromStatement object used by Query to indicate "Query.from_statement()", this is called by FromStatement._compiler_dispatch() that would be called by SQLCompiler.process(). )supercreate_for_statement)clsrrkw __class__s rrz,AbstractORMCompileState.create_for_statement s"w+IxF2FFrctrNotImplementedError)rr^rrZr]r\ is_pre_events rorm_pre_session_execz,AbstractORMCompileState.orm_pre_session_exec "##rc^|j||xsi|}|j||||||S)N)r])executeorm_setup_cursor_result)rr^rrZr]r\connresults rorm_execute_statementz-AbstractORMCompileState.orm_execute_statement(sJ v|7H **         rctrrrr^rrZr]r\rs rrz/AbstractORMCompileState.orm_setup_cursor_result>rr)rr0rrIrrrr/)rrF) rqrrrsis_dml_returningr classmethodrrrr __classcell__rs@rrrs%"NGGG G  GG$ $ $    * $ $rrc0eZdZdZedZedZy)AutoflushOnlyORMCompileStatez>ORM compile state that is a passthrough, except for autoflush.ctjjddh||j\}}|s|jr|j ||fS)N_sa_orm_load_optionsr_)rUrfrom_execution_options_execution_optionsrx)rr^rrZr]r\rr[s rrz1AutoflushOnlyORMCompileState.orm_pre_session_execNsa  - - D D "    ( (     7 7    +++rc|Srrrs rrz4AutoflushOnlyORMCompileState.orm_setup_cursor_resultks  rN)rqrrrs__doc__rrrrrrrrKs+H,,8  rrceZdZUGddeZded<ded<ded<ded<d ed <d ed <d ed<ded<ded<ded<ded<ded<ded<ded<eZded<dZdZ e d,d Z e d-d!Z d"Z e d.d#Ze d$Ze d%Ze d&Zed'Zd(Zd)Ze d*Zy+)/rnc ZeZdZdejfdejfdejfdej fdejfdejfdej fdejfd ejfd ejfd ejfg Zd Zd Z d Z e Z d Z d ZdZd Zd Zd Zd Zy)'ORMCompileState.default_compile_options_use_legacy_query_style_for_statement_bake_ok _current_path_enable_single_crit_enable_eagerloads_only_load_props_set_base_alias_for_refresh_state_render_for_subquery_is_starFTN)rqrrrsr> dp_booleandp_has_cache_key dp_plain_obj_cache_key_traversalrrr_path_registryrrrrrrrrrrrdefault_compile_optionsrys &(9(D(D E 0;; < *55 6 /@@ A "$5$@$@ A !#4#?#? @ !2!?!? @  1 < < = !#4#?#? @ #%6%A%A B *55 6 &#( & "!"$rrzDict[Any, Any]rrrrrList[_QueryEntity] _entitiesz%Dict[_InternalEntityType, ORMAdapter]_polymorphic_adaptersz=Union[Type[default_compile_options], default_compile_options]compile_optionszOptional[_QueryEntity]_primary_entitybooluse_legacy_query_stylerM_label_conventionzList[ColumnElement[Any]]primary_columnssecondary_columnszSet[ColumnElement[Any]]dedupe_columnszList[Tuple[Any, ...]]rdr current_pathFctrr)rargrs rrzORMCompileState.__init__ !##rc X|jtd|f|j |d|S)NUnion[Select, FromStatement])rr)_create_orm_contextrr)rrrrs rrz$ORMCompileState.create_for_statements@'s&& / ; !'    rc trr)rrrrrs rrz#ORMCompileState._create_orm_contexts "##rcj|j}||vr#|j||j|yyr)raddappend)robjcol_collectiondedupes r_append_dedupe_col_collectionz-ORMCompileState._append_dedupe_col_collections3$$ f  JJsO  ! !# & rc<|rdd}|Stj|S)Nc"|r|St|dS)Nkey)getattr)colcol_names rnamez7ORMCompileState._column_naming_convention..names#O"3..rr)r<_column_naming_convention)r label_stylelegacyrs rr z)ORMCompileState._column_naming_conventions$  / K88E Erct|Sr)_column_descriptionsrrs rget_column_descriptionsz'ORMCompileState.get_column_descriptionss #I..rctjjdhd||j\}}d|vr5|d}|jjj |j |}|st}n|jt}|jr|jd|ji}t|jddrHt|jjdkDr&|jdd|jdd d }||d < |jd } | r| j |d < |s|j$r|j%||fS#t"$rJdwxYw)Nr>r_rjrir`sa_top_level_orm_contextrrjr compiled_cacheTz#excess depth for ORM loader options)r_cache_disable_reasonclauseplugin_subjectmapperz0statement had 'orm' plugin but no plugin_subject)rUrrrrX merge_withr]_orm_load_exec_optionsunionrzr_compile_optionslenrr_propagate_attrsrrrx) rr^rrZr]r\rr[ctxrs rrz$ORMCompileState.orm_pre_session_execs  - - D D "    ( (   ( &): :#$>?C # < < G G%%'8! ! 6  1 7 78N O   " " 1 7 7l556!  I.. FI..<<=B!%%&6=I"''*.2- $-x  A&778HIN+9+@+@x( 7 7    +++ M LL L5 Ms EE+c |j}|jj}|jdtj } |j jr|St |||||| ||} tj|| S)Nr) contextcompiledrWrrUrrrr instances) rr^rrZr]r\rexecution_contextrWr[ querycontexts rrz'ORMCompileState.orm_setup_cursor_resultEs#NN)22@@ ),, "L$E$E   ( ( 1 1M#            66rcb|jDcgc]}t|ts|c}Scc}w)zreturn all _MapperEntity objects in the lead entities collection. Does **not** include entities that have been replaced by with_entities(), with_only_columns() )r isinstance _MapperEntity)rents r_lead_mapper_entitiesz%ORMCompileState._lead_mapper_entitiesjs. >> Z]-KC   s,,c |jsz|jj|jvrW|jj D]9}|j |t tj||j|;yyy)a5given MapperEntity or ORMColumnEntity, setup polymorphic loading if called for by the Mapper. As of #8168 in 2.0.0rc1, polymorphic adapters, which greatly increase the complexity of the query creation process, are not used at all except in the quasi-legacy cases of with_polymorphic referring to an alias and/or subquery. This would apply to concrete polymorphic loading, and joined inheritance where a subquery is passed to with_polymorphic (which is completely unnecessary in modern use). ) equivalentsrN) is_aliased_classrpersist_selectableriterate_to_root"_mapper_loads_polymorphically_withrrWITH_POLYMORPHIC_ADAPTER_equivalent_columns)rext_informps r _create_with_polymorphic_adapterz0ORMCompileState._create_with_polymorphic_adaptervs))22--.oo557 77'@@$&$:$:#-  .*rc|jxs|gD]?}||j|<|jD]}||j|j<Ayr)_with_polymorphic_mappersrr. local_table)rradapterm2ms rr/z2ORMCompileState._mapper_loads_polymorphically_withs^22>vh DB-4D & &r *'') D  rN)rr0rrIrrrrn) rrrrrOptional[SQLCompiler]rrrrn)r r;r rrrM)rqrrrsr.rrrr_has_mapper_entitiesrrrrrr rrrpropertyr)r4r/r<rrrrnrnxs#"2#J%%AAHH!!@@,+  //--//++"0L,/ $            $/$ $ ( $  $ $$'  F* F48 F ! F F//W,W,r"7"7H    :D  rrnc&eZdZdZdZdZdZdZy)_DMLReturningColFilterza base for an adapter used for the DML RETURNING cases Has a subset of the interface used by :class:`.ORMAdapter` and is used for :class:`._QueryEntity` instances to set up their columns as used in RETURNING for a DML statement. )rcolumns __weakref__c| |j|jur||_n||_tj|jx|_|_yr)r7rr$WeakPopulateDictadapt_check_presentrB)r target_mapperimmediate_dml_mappers rrz_DMLReturningColFilter.__init__sU ,))'334/DK(DK&*&;&;  $ $'   t|rcftj|D]}|j|}||cSyr)sql_util _find_columnsrF)rr as_filterccc2s r__call__z_DMLReturningColFilter.__call__s;((- B))"-B~   rctrr)rrs rrFz*_DMLReturningColFilter.adapt_check_presentrrN)rqrrrsrrrrOrFrrrrArAs5I  $rrAceZdZdZdZy) _DMLBulkInsertReturningColFiltera[an adapter used for the DML RETURNING case specifically for ORM bulk insert (or any hypothetical DML that is splitting out a class hierarchy among multiple DML statements....ORM bulk insert is the only example right now) its main job is to limit the columns in a RETURNING to only a specific mapped table in a hierarchy. c|j}|jj|d}|y|jjj |Sr)r_columntopropertyrr7ccorresponding_columnrrrprops rrFz4_DMLBulkInsertReturningColFilter.adapt_check_presentsH''++C6 <!!##88==rNrqrrrsrrFrrrrRrRs >rrRceZdZdZdZy)"_DMLUpdateDeleteReturningColFiltera_an adapter used for the DML RETURNING case specifically for ORM enabled UPDATE/DELETE its main job is to limit the columns in a RETURNING to include only direct persisted columns from the immediate selectable, not expressions like column_property(), or to also allow columns from other mappers for the UPDATE..FROM use case. c|j}|jj|d}|%|jjj |S|Sr)rrTrr-rUrVrWs rrFz6_DMLUpdateDeleteReturningColFilter.adapt_check_presentsO''++C6  ,,..CCCH H rNrYrrrr[r[s  rr[ormorm_from_statementceZdZUdZdZded<ded<dZded<dZdZdZ dZ e Z e Z e d d Zd Zd Zd Zy)ORMFromStatementCompileStateNF FromStatementstatement_containerz)Union[SelectBase, TextClause, UpdateBase]requested_statementzOptional[_DMLTableElement] dml_tablec |}t|tsJ|!|jrtjd|j |}d|_|jj|_ |x|_ |_ |jx|_ }|jr|j|_d|_g|_i|_|j|_|jr_t|t*j,rE|j.s9|js-|j0t2ur|j5t6|_n||_|j;|j.s|js |j0nt2|j|_t>jA||jB|j$d|jjD|_#|jI||dd|jJr/|jJD] }|jLs|jO|"|jPr|jPD] \}} ||g|_)g|_*tW|_,g|_-g|_.d|_/t|j8t*j`roi|_1|j$D]} | je|dx|_3|_4d|_5|jRD] } |jm| d|jn"|Stqtrjt|j8|jv|_<|S)NzThe ORM FromStatement construct only supports being invoked as the topmost statement, as it is only intended to define how result rows should be returned.Tis_current_entitiesF)rr)within_columns_clauseadd_to_result_map)adapt_on_names)=r&rarsa_exc CompileError__new__rrrrrbrelementrcr*tablerdrrrrr&rP _is_textual _label_styler8set_label_styler9rr r _QueryEntityto_compile_state _raw_columnsrrrrrr_with_context_optionsrrsetrrd_fallback_from_clausesorder_byr5extra_criteria_entitiessetup_compile_state_ordered_columns_textual_ordered_columns_loose_column_name_matchingprocess_add_to_result_maprrADAPT_FROM_STATEMENT_adapt_on_names_from_obj_alias) rrrrrrbrrfnrentityrUs rrz0ORMFromStatementCompileState._create_orm_contexts%(-}===  HNN%%=  {{3# 0 0 H H #ORMFromStatementCompileState.setup_dml_returning_compile_states 77;; d  >> # #6zG^^ % %)A)A8zGG    ( (c$...AQ.F%%J  nn DF  4 4T7 C Dr) rrrrrr=rrrr`)rqrrrsrr>rrd_has_orm_entitiesmulti_row_eager_loaderseager_adding_joinscompound_eager_adapterrrz eager_joinsrrrrrrrrr`r`sO &&BB,0I)0#!)KC/C C ( C  C &CCJDrr`c\eZdZUdZdZej ZejZ dZ de d<de d<de jfde jfgej zZed e j$fgzZd Z d dd Zd Zed ZdZfdZedZedZedZedZxZS)raa*Core construct that represents a load of ORM objects from various :class:`.ReturnsRows` and other classes including: :class:`.Select`, :class:`.TextClause`, :class:`.TextualSelect`, :class:`.CompoundSelect`, :class`.Insert`, :class:`.Update`, and in theory, :class:`.Delete`. r^N(Union[ExecutableReturnsRows, TextClause]rnrrrurTc tj|Dcgc])}tjtj ||d+c}|_||_|j|_|j|_ |j|_ |j|_ |j|_ t|r |jnd|_||_ycc}w)NT)apply_propagate_attrs post_inspect)r$to_listr%expectr'ColumnsClauseRolerurnr* is_selectrrrr,rqr)rentitiesrnrr(s rrzFromStatement.__init__s||H-    ''&*!    nn  ** ** ** **$27$;G   /% s.Cc |j||fi|}|j }|r||_|j|jfi|S)zprovide a fixed _compiler_dispatch method. This is roughly similar to using the sqlalchemy.ext.compiler ``@compiles`` extension. )_compile_state_factoryrrWrr)rrrrWrs r_compiler_dispatchz FromStatement._compiler_dispatchsR433D(IbI ~~% %2H "x 7 7>2>>rcltttj|j}||S)a@Return a :term:`plugin-enabled` 'column descriptions' structure referring to the columns which are SELECTed by this statement. See the section :ref:`queryguide_inspection` for an overview of this feature. .. seealso:: :ref:`queryguide_inspection` - ORM background )rORMSelectCompileStater<get_plugin_classr)rmeths rcolumn_descriptionsz!FromStatement.column_descriptionss3 !;#?#?#E ! ! Dzrc|Srrrs r_ensure_disambiguated_namesz)FromStatement._ensure_disambiguated_names rrc+Ktjjd|jDEd{t |di|Ed{y77w)Nc34K|]}|jywr) _from_objectsrrns rrz-FromStatement.get_children..s1 &-G ! !1 r) itertoolschain from_iterablerur get_children)rrrs rrzFromStatement.get_childrensY??001 151B1B1    7'-"---  .s!4AAAAAAc.|jjSr)rn_all_selected_columnsrs rrz#FromStatement._all_selected_columnss||111rc\t|jr|jjSdSr)r*rn_return_defaultsrs rrzFromStatement._return_defaultss"06t||0Dt||,,N$Nrc\t|jr|jjSdSr)r*rn _returningrs rrzFromStatement._returnings"*0*>t||&&HDHrc\t|jr|jjSdSr)r+rn_inliners rrzFromStatement._inline!s"'7 'Et||##O4Or)T)rz%Iterable[_ColumnsClauseArgument[Any]]rnrrr) rqrrrsr__visit_name__r`rrrr_for_update_argrr>dp_clauseelement_listdp_clauseelementr0_executable_traverse_internals_traverse_internalsrris_from_statementrrr?rrrrrrrrrs@rraras8*N3KK9NNO 55 *@@A %667 112 / .??@2 !% /7/:/ /4?"". 22OOIIPPrracompound_selectc eZdZy)CompoundSelectCompileStateN)rqrrrsrrrrr&s rrselectcXeZdZdZeZdZdZdZdZ dZ dZ dZ dZ dZdZe d"dZdZdZedZedZed Zed Zed Zd Zd ZdZdZdZd#dZdZdZ dZ!dZ"dZ#dZ$dZ%dZ&dZ'dZ(dZ)dZ*e+dZ,e+dZ-d Z.d!Z/y)$rrNFc |j|}|}|jj|j|_|jr9|j |_tj|j _n||_|jj|_ |jj|_ g|_ d|_i|_|j|_|s|xj dddz c_|jr@|j j"t$ur$|js t&|_n't*|_n|j j"|_|j,rA|j,Dcic]&}|t.j1||j2gd(c}|_|j7|j"|j|_t.j1||j2|jd|jj:|_d|_|jA|||d|r|jBs |j,r|j,D]]}|jBD]L}|jDs|jG||j4|D cgc]} tI| tJr| c} N_|j jBD] }|jDs|jM|"|jNr|jND] \} } | |g|_(g|_)tU|_+i|_,i|_-g|_.g|_/|jad|jbD|_2|jgtijj||jl|fi||Scc}wcc} w)NFT)rrrfr)rrc34K|]}|jywr)r)rinfos rrz.s2 $DOO2 r)7rmr safe_mergerr_clonerr$ immutabledictr for_statementrrrrrrrqLABEL_STYLE_LEGACY_ORMr9r r7_memoized_select_entitiesrsrtru_memoized_entitiesr rrreager_order_byrrr'process_compile_state_replaced_entitiesr&r'rrvrrrwrrrzrdrx_normalize_froms _from_obj from_clauses_setup_for_generater<rr) rrrrrrrmemoized_entitiesrr(rrs rrz)ORMSelectCompileState._create_orm_context@s{{3$&)%@%@%K%K  & && "  . .%5$;$;$=D !7;7I7I7KD ! ! 4$4D !.>>MM  - - E E ##%'"/@@  &+(,%    ' '%%226LL%%#A #@ #44AAD   5 5%>> '& "<#@#@%22(- $A$ 'D # "&!?!?  " "D$?$?"  %%   ) ) NN $ & -==KK  $$  */ %    * *99";; !,:: C,,CC ,0+B+B$5,"$'$.c=#A !$    ,,:: 4((--d3 4  1 1+AA C4  "!#!e')$"$&(#!112 (8(B(B2     "T4>>8BrB } 'bs +N>%Octdtd|j|jD]}t|trm|ddk(retdt j |dtd|j|td|j|jt|ts|ddk(std t j |dtd|j|y) Nz5 --------------------------------------------------- zcurrent path: rloaderz Loader: rz path_with_polymorphicz With Polymorphic: )printrrr&rrcoerce__dict__)rrs r_dump_option_structz)ORMSelectCompileState._dump_option_structs GH t00123?? 5C#u%#a&H*<,\-@-@Q-H,IJKT__S1234T__S1::;<=C'CF6M,M,\-@-@Q-H,IJKT__S1234 5rcl |j}d|_d|_|jjr|j |j D]8}|js|j|j|j|:|jr&|j|j|j|j|jr6|j|_ r#tfd|jD|_ r*|jdvr|j|jn |j|_|j"r#tfd|j"D|_r=|j$dvr/|jt'j(|j$n|j$xsd|_|j,r9|j.dj0}|j3|j,|_|j4r"|j|j4|_nd|_|j8|_|j<r5tt'j(d|j<D|_nT|j@5tt'j(d|j@D|_!n|jDsd|_|jF|_#|jjHr-tK|jd k7rtMjNd |jD]}|jQ||jRD]}|d}||g|d d|jjTr|jW|jXs2|jjZrJd tMj\d |j.st_|j`|_|j d urd|_|jbr.|jdr"|jfr|ji|_n|jk|_|jlr6|jo}|#|jjqd|i|_yyy)Nrc30K|] }|dywTNrrcritrs rrz. s -$D$/-sNFc38K|]}r |dn|ywrrrs rrz.s'*0?d+DH*src3NK|]}|tj|ndywrrJsurface_selectablesrss rrz.7,&89}H003$N&#%c3NK|]}|tj|ndywrrrs rrz.>rrrrrFz,no columns were included in _only_load_propsz4Query contains no columns with which to SELECT from. deepentity)9rr_join_entitiesrr_set_select_from_aliasr _setup_joins_joinrrr_where_criteriar_order_by_clausesrry_having_criteria_group_by_clausesr$flatten_iteratorgroup_byrr_target_adaptercopy_and_process _distinct_on distinct_on _distinctdistinct _correlate correlate_correlate_exceptcorrelate_except_auto_correlaterrrrkrlr{rdr_adjust_for_extra_criteriarrInvalidRequestErrorlistrxrr_should_nest_selectable_compound_eager_statement_simple_statementr _mapper_zero _annotate) rrXrr8rrecstrategyezerors @rrz)ORMSelectCompileState._setup_for_generates?%%     / /  ' ' )!&!@!@   -- %22++,=>     JJu))4>> :335  #(#8#8D ',- $ 4 4-($5#:#:-#O  !8!8/ J((  ! !$)*!22*%D !5#:#:-#O  %%e&=&=> ((0D    ''*::G")":":4;N;N"OD    #33""O D  "D    #%%&"--&DN  $ $ 0$)%%&"44&%D ! &&$DN %44    ( (c$...AQ.F%%J nn -F  & &t , -** %C1vH T $CG $ %    3 3  + + -####44LLLu,,F   $T%@%@ AD  ==E ! DM  ( ('',,!;;=DN!335DN   %%'E "&!9!9!5)"! rc|j|}g|_d|_i|_|j |j ||_tj||j|jd|S)aCreates a partial ORMSelectCompileState that includes the full collection of _MapperEntity and other _QueryEntity objects. Supports a few remaining use cases that are pre-compilation but still need to gather some of the column / adaption information. NTrf) rmrrrr rqrrsrtru)rrXr rs rr<z1ORMSelectCompileState._create_entities_collection|sv{{3#%'"!%!?!?   "  %% %$$dnn$ &  rc2|j}t|dSr)r_determine_last_joined_entity)rr setup_joinss rdetermine_last_joined_entityz2ORMSelectCompileState.determine_last_joined_entitys,, ,[$??rc#JK|jD]}|jrhd|jvrZ|jd}|js!|jst |gEd{Yt |j Ed{wt |gEd{y7:77 w)Nentity_namespace)ru is_selectable _annotations is_mapperr,r-_all_column_expressions)rrrnenss rall_selected_columnsz*ORMSelectCompileState.all_selected_columnss -- 8G%%&'*>*>>**+=>}}S-A-A0';;;01L1LMMM,gY777 8<M7s6A B#"B#B#BB#B!B#B#!B#c|jtjjd|jDS)Nc3K|]<}d|jvr |jn|jdjg>yw) parententityN)rr__clause_element__rs rrzAORMSelectCompileState.get_columns_clause_froms..sV *&W-A-AA)) ,,*,,. *sAA)rrrrrurs rget_columns_clause_fromsz.ORMSelectCompileState.get_columns_clause_fromss<## OO ) ) * )55 *   rc tjtj||}t |j |}|j j|j|j|j|j|S)N)r)rrvrr) r%rr'ReturnsRowsRolerarurupdaterrvrr)rrfrom_statementstmts rr'z$ORMSelectCompileState.from_statementsw"))  ! ! "+  Y33^D #11"+"A"A(;;&77   rc|j}|jjsJt|jdk(sJ|j |jd}|r|xjddiz c_||_yy) used only for legacy Query casesrrrFN)rrrrr_get_select_from_alias_from_objr)rrXr8s rrz,ORMSelectCompileState._set_select_from_aliass{%%##33335??#q(((66uq7IJ   %:E$B B #*D  rc|}d|jvr|jd}t|dr-|jstjd|j St |jtjjrF|j}||jusJttj|j|Sy)r*r!rzPA selectable (FromClause) instance is expected when the base alias is being set.r+N)rhasattrr,rk ArgumentError_adapterr&rr#AliasedReturnsRows _all_equivsrrLEGACY_SELECT_FROM_ALIAS)rfrom_objrequivss rr+z5ORMSelectCompileState._get_select_from_alias_from_objs T.. .$$^4D 4 "((**A }}$ )J)J K%%'F4??* **&88"  rc4|jdjS)z8return the Mapper associated with the first QueryEntity.r)rrrs rr z"ORMSelectCompileState._mapper_zeros~~a '''rc|jD]!}d|jvs|jdcS|jD]}|js|jcSy)zReturn the 'entity' (mapper or AliasedClass) associated with the first QueryEntity, or alternatively the 'select from' entity if specified.r!N)rrr entity_zero)rr(qents r _entity_zeroz"ORMSelectCompileState._entity_zerosg $$ 8C!1!11''77 8NN (D''' (rc|j|jgk7rtjd|z|jjS)Nz4%s() can only be used against a single mapped class.)rrrkrr8)rmethnames r_only_full_mapper_zeroz,ORMSelectCompileState._only_full_mapper_zero sK >>d223 3,,)+34 ##///rct|jdkDrtj|xsd|j S)Nrz8This operation requires a Query against a single mapper.)rrrkrr:)r rationales r_only_entity_zeroz'ORMSelectCompileState._only_entity_zerosD t~~  ",,++    ""rci}|jjD]L}|Dcgc]}t|tr|c}D]'}|j |j j )N|jDcgc]}t|ts|c}D]'}|j |j j )|Scc}wcc}wr)rvaluesr&r'r&rr1r)rr5rr(s rr2z!ORMSelectCompileState._all_equivss!%!8!8!?!?!A > -c=1 >  cjj<<=  > > >> Z]-KC  :C MM#**88 9 :  sC:CCc f|jrj|jDcgc]4}t|tjjr |j n|6}}t j|j|}ng}d}|j|j|Dcgc]}||jvs|c}z|j|j|j|j|jf|j|j j"|j j$|j&|j(d|j*}|j-}|j/}t1t2j4|||_t9j:|g|j<z}|j|_|j'|jj@|j|_|}|jBjED]#} t jF|| | jH}%|jJjM|||r6|jjL|g|j6jO||jjL|g|jP|Scc}wcc}w)N for_updatehintsstatement_hintsrrr-))ryr&r#elements_label_referencernrJ expand_column_list_from_order_byr_select_statementrrrrr rr_hints_statement_hintsrr _select_argsaliasr2rrCOMPOUND_EAGER_STATEMENTrr!rrrqofrrB splice_joinsstop_on select_fromnon_generativerr) relemunwrapped_order_byorder_by_col_exprrUinnerr5r from_clause eager_joins rr z/ORMSelectCompileState._compound_eager_statement+s ==!MM " "$ (E(EFLL" "!) I I$$&8! !# !% '&&  +LQq8K8K/KqL M      ! !    MM ++''.. 11BBnn!22    !!#&9  4 4e' #MMg... "&!1!1   ,$$''/(,(<( '&6 #+@ ( "*I  "*I $. ! $I  )8I &  .I   . .y E9 E  ' 5I & & 5 5 , rchd|jvr>|jd}|jj|d}|r|j|St |t j r|}nt|dr |j}ny|jj|d}|r|j|Sy)Nr!ro) rrr adapt_clauser&r& FromClauser.ro)rrnsearchrOs r_adapt_polymorphic_elementz0ORMSelectCompileState._adapt_polymorphic_elements W11 1)).9F..2264@E))'22 gz44 5F Wg &]]F**..vt< %%g. . rcB|r|Dcgc] }||d c}S|Scc}w)NTr)rrros rrz%ORMSelectCompileState._adapt_col_lists' 6:;OAt,; ;K._adapt_clause..replace sW D$5$55;%):)::.6%)L'#|#DM=#$H %r)r(replacement_traverse)rrLrrs r _adapt_clausezAORMSelectCompileState._get_current_adapter.._adapt_clauses %00WE Er)rrrrrv)rrrs @rrz*ORMSelectCompileState._get_current_adaptersl    OO((00   % % OOUD$C$CD E F"rc |D]\}}}}|d}|d}t|}| t|}t|tjr|t j d|}d}nd|j vr|j d}|-|js!t|dst jdt|tjrt|dd} || r| }n|j} |j}|j} |j} t|tj s| }| || j"f|j$vrE|b|| ur^|j j'dd| ur@t j d |j j'd|d ||d} |} ndx} } |j)|| ||| ||y#t$r} t jd|z| d} ~ wwxYw) NisouterfullzUNo 'on clause' argument may be passed when joining to a relationship path as a targetr!rz9Expected mapped entity or selectable/table as join target_of_typez0Join target %s does not refer to a mapped entityzexplicit from clause z4 does not match left side of relationship attribute )r"r&rPropComparatorrkrrrr.r/rr?rAttributeError _parententityrQueryableAttributer_already_joined_edgesr_join_left_to_right) rargsentities_collectionrightonclausefrom_flagsrrof_typeerrleftrXs rrzORMSelectCompileState._join/s@-1Z  )E8UEI&G=DENE#"8,%!:!:;' 44= !5#5#55**>:**75(3K ..: (J$=$=>"(J== ' ( 1 1'$)LLE --((!(J,I,IJ#H%*d.H.HH$T)!..22>4H#$%88!& 2 2 6 6~u M ( "#"t  $ $# eZ R .'"("6"6!027!8#$'''s+ G G.G))G.c N||J|j||||\}}} n|j||\}} ||urtjd|d|d|j ||||\} }}| j s|j | } nd} |J|j|} |jd|t| ||||| gz|j|dzdz|_y| %t|| tsJ|| j} n|} |jt| | |||| gz|_y)zgiven raw "left", "right", "onclause" parameters consumed from a particular key within _join(), add a real ORMJoin object to our _from_obj list (or augment an existing one) NzCan't construct a join from z to z, they are the same entityr)rr_extra_criteriar) "_join_determine_implicit_left_side_join_place_explicit_left_siderkr _join_check_and_adapt_right_sider_get_extra_criteriarrr&r'r) rrrrrrX outerjoinrreplace_from_obj_indexuse_entity_indexr_infoextra_criteria left_clauses rrz)ORMSelectCompileState._join_left_to_rights << < 77#T5(  & 334GN &  5=,,)-u6 #'"G"G %4# x##!55f=NN ! -++,BCK!!"9#9:# )!(6   ##$:Q$>$@A B    +"'(89=22BCNN " $ 1 1%$2  5 !D rczt|}dx}}|jrtj|j|j|}t |dk(r|d}|j|}nMt |dkDrt jdt jd|d|ri} t|D]W\} } | j} | t| } | |ur%t| tr| | f| | j<Gd| f| | j<Yt| j}tj||j|}t |dk(r| ||d\}}nQt |dkDrt jdt jd|dt jd|||fS)zWhen join conditions don't express the left side explicitly, determine if an existing FROM or entity in this query can serve as the left hand side. NrraCan't determine which FROM clause to join from, there are multiple FROMS which can join to this entity. Please use the .select_from() method to establish an explicit left side, as well as providing an explicit ON clause if not present already to help resolve the ambiguity.zDon't know how to join to z. Please use the .select_from() method to establish an explicit left side, as well as providing an explicit ON clause if not present already to help resolve the ambiguity.zgNo entities to join from; please use select_from() to establish the left entity/selectable of this join)r"rrJfind_left_clause_to_join_fromrrrkr enumerateentity_zero_or_selectabler&r'r keys)rrrrrrrrindexes potential entity_indexr(rent_info all_clausess rrz8ORMSelectCompileState._join_determine_implicit_left_sides&488!1   <<!!6#4#4hG7|q )0&(()?@W!00500 9> @!I%./B%C D! c66>"6?v% c=11=v0FIcnn-6:F^Ih112 D y~~/0K<<V..G7|q )2;wqz3J)K& $W!00500 9> @,,1  +-===rcdx}}t|}|jrTtj|j|j}t |dkDrt jd|r|d}|J|rHt|dr, flat=True) construct explicitly, see the linked example.xaj2r-)rr+))r"rwith_polymorphicr&r-r&JoinrrrJselectables_overlaprkr common_parentrr.ris_clause_element _is_lateralris_derived_from descriptionrPr%rr'FromClauseRolerr$warn_deprecatedwarnrr DEPRECATED_JOIN_ADAPT_RIGHT_SIDEr1r/#_has_aliased_polymorphic_fromclause#WITH_POLYMORPHIC_ADAPTER_RIGHT_JOIN ClauseElementrr)rrrrrXrroverlap right_mapperr4right_selectableright_is_aliased need_adapterraliased_entityr8s rrz6ORMSelectCompileState._join_check_and_adapt_right_sidesvx6    ) ),99:??K --D&2C2C1D //%%x22f//#G  v((F,=,==,,<##$  FHd +    F. 6)9&   ..t{{;,,9>J  68 $   F9 ,    # ##{{ ++#'";";"=".,E48E(77 33!44-88(;;GG. 0E0EF'0'7'7,,.>($$(L%\3CD$$D # #  &J.>*>J7!T2EL II@ CO O    < @@(<<G  3 3L' J(($@@  3 3#GG +66 , @ @   h 8 8 9"779O*8T:   & &D%+B*D D &u~uh..rc |jj|jj|j|j|jj |jj |jxsd|jj|jj|jj|jjd S)N) rjrkrrrnrorrlrmrprq) rr_r`rrrerfrrarbrcrdrs rrNz"ORMSelectCompileState._select_argsX s!11??!22AA ++--77--77 - 11??%%;; $ 5 5 G G%%<<  rc|j}|jdduxsO|jdduxs:|jddxs&|jddxs|jddS)NrjrkrFrrr)rNr)rkwargss rr z-ORMSelectCompileState._should_nest_selectablel sv"" JJ~ &d 2 -zz/*$6 -zz*e, -zz-, -zz*e,  rcdjfjvr.tfdjdjfDSy)Nadditional_entity_criteriac3K|]@}|js|jur$|jr|jBywr)include_aliasesr_should_include_resolve_where_criteria)raer2rs rrz.| sH&&"))x*?&&t, **84sAA r)rrr)rr2s``rrz)ORMSelectCompileState._get_extra_criteriaw sZ ( OO  # # $0018??C rc|jD]}|jjdd}|s"|jjd|jf|j vsS||j vsb||jr |jndf|j |<t|j j}|D]\}}||jvr|jj}|jjrg}n|j|}|||fz }|j}|D]N}|r|j!|}|r!t#j$|ddi}||d}|xj&|fz c_Py)aApply extra criteria filtering. For all distinct single-table-inheritance mappers represented in the columns clause of this query, as well as the "select from entity", add criterion to the WHERE clause of the given QueryContext such that only the appropriate subtypes are selected from the total results. Additionally, add WHERE criteria originating from LoaderCriteriaOptions associated with the global context. r!Nrr|TF)rrrr_single_table_criterionrrzr,r0rwrBrrrrrtraverserJ_deep_annotater) r fromclauser2rur8 single_critrrrs rrz0ORMSelectCompileState._adjust_for_extra_criteria s++ J!..22>4HHOO;;G4hooF--.D$@$@@)1)B)BH%%:,,X6 "T1188:;!' 0 Hg4..."//AAK##66-/*-1-E-Eh-O*&*{n<*"779O2 0"++D1D"#224,9MND*47D$$/$ 0 0r) rrrrrr=rrrrr)0rqrrrsrrrrr>rrrrrrrrrrrrr<rrr#r'rr+r r:r=r@r2r r rKrvrrrrrrrr?rNr rrrrrrr-s$O #!IO`/` ` ( `  ` ``D 5KZ2@@  8 8  " +8( 0#"Yv(KZ/$ .`[zaFh>T@8D{/z  &   70rrc j|tj||}|}|jDcgc]}||jfc}Dcgc][\}}|j|j t |dd|j|j|js t |ddndd]}}}|Scc}wcc}}w)N)r r,Fr)rtypealiasedexprr) rr<rr8 _label_namerrrr)query_or_select_stmtrWr r_entr(insp_entds rr r  s -II J  C25 )-T4## $   COOHHx);UCHH??. 22(D1  A " H   s B*A B/c|}|jr|j}||S|jr7d|jdjvr|jdjdSt |S)Nr!r)r_last_joined_entityrr_entity_from_pre_ent_zero)query_or_augmented_selectrrs r_legacy_filter_by_entity_zeror sl %D "66  *& & ~~.DNN1,=,J,JJ~~a --n== $T **rc|}|jsy|jd}d|jvr|jdSt|tr |jSd|jvr|jdS|S)Nrr!bundle)rurr&rr)rrr(s rrr s} %D      A C)))// C- .zz S%% %)) rcl|sy|d\}}}}t|tjr |jS|S)N)r&rrr)rr8targetrrrs rrr sA '22$VXue%%}} rceZdZUdZdZded<dZdZdZded<ded <d ed <d ed <ddZ ddZ dZ e dZ y)rsz:represent an entity column returned within a Query result.rrsupports_single_entityFz Optional[str]rz!Union[Type[Any], TypeEngine[Any]]rz.Union[_InternalEntityType, ColumnElement[Any]]rzOptional[_InternalEntityType]r8ctrrrrWs rr{z _QueryEntity.setup_compile_state# rrctrrrrWr8s rrz._QueryEntity.setup_dml_returning_compile_state& s "##rctrr)rr rs r row_processorz_QueryEntity.row_processor- rrct|D]4\}}|jr7|jr|j||j||>|j}|j r|j rAd|jvrt||||tj||j||||jjddrt|||||jr$tj||j|||tj||g||||js(t|||7|S)Nr!rF)r_is_lambda_element _is_sequencert _resolvedrrrr' _ColumnEntity _for_columns_select_iterabler _BundleEntity_is_clause_list is_bundle)rrWrrrgrrs rrtz_QueryEntity.to_compile_state0 sX%X.9 JKC((&&((%((++  #--F''''%)<)<<%)"// &22)"33// **..x?%)"//   //&22)"33// &22)#H// !!mV5HIs9 Jv#"rN)rWrnrNonerWrnr8z Optional[_DMLReturningColFilter]rr)rqrrrsrrr_non_hashable_value_null_column_typeuse_id_for_hashr{rrrrtrrrrsrs sxDI  O ++ 88..$$&$2$  $$>#>#rrsceZdZUdZdZded<ded<ded<ded <d ed <d ed <dZdZdZdZ e dZ e dZ dZ dZdZ ddZdZy)r'z mapper/class/AliasedClass entity) rrr8r,path_extra_entitiesrr6r_polymorphic_discriminatorr?rz Mapper[Any]rr8rr,rrstrrc|j||r!|j||_d|_d|_|jd}|j |x}|_|j}||_|jx|_ }|jf|_ |jr|j|_ n|jj|_ |j|_ |j |_|j$|_|j&|_|j*|_|j.r|j1||j$yy)NTr!)rrr>rr _post_inspectr8rrrr r,rrclass_rqrrrwith_polymorphic_mappersr6polymorphic_onr  _should_select_with_poly_adapterr4)rrWrrrgr2rs rrz_MapperEntity.__init__ s ""4( ,,404 -15M ..2M +$$^4&,,4# '. f $ |  $ $'}}D %}}55D  ( 9 9++ "--)1)J)J&*2*A*A'  2 2  : :$//  3rTc.|jjSr)rrrs rrz_MapperEntity.type s{{!!!rc|jSr)r8rs rrz'_MapperEntity.entity_zero_or_selectable src.t|j|Sr)rr8rrs rrz_MapperEntity.corresponds_to s%d&6&6??rc*d}|js3|jr=|jj|jd}n|jj }|r-|j r|j|j }|S|}|S|j }|Sr)r,rrrr8r0rwrap)rrWr8rets r_get_entity_clausesz!_MapperEntity._get_entity_clauses s$$22'==AAKK&&//G ,,ll=#@#@A    //C rc |j}|j|}|jr|r|j|j}n|s |j}|j|ur#|j j }|j}ndx}}tj||j|||j||||j }||j|jfS)N)only_load_propsrcpolymorphic_discriminator)rWrrrrrrrcr_instance_processorrrr rr )rr rrWr8rrc _instances rrz_MapperEntity.row_processor s-- **=9  / /Gll=#G#GHG#::G  ( (D 0+;;LLO#11M.2 2Om//  KK   II +'&*&E&E  $**D,@,@@@rc tj||j||j||j|j |j j|j y)Nrrr) r_setup_entity_queryrrrr6rrr rs rrz/_MapperEntity.setup_dml_returning_compile_state sS ##  KK  II   ) )!;;)99JJ&*&E&E rc |j|}|jj}|d|jf|jvr5|j}||j r |j ndf|j|<tj||j||j||j|j|jj|j |j j#|j$y)Nrr )rrrrr8r,r0rzrr!rrr6rrr rxrr)rrWr8single_table_critr2s rr{z!_MapperEntity.setup_compile_state s**=9 KK??  ),dkk:../''H%-%>%>!!D?M 1 1( ; ##  KK  II   ) )!;;)99JJ&*&E&E  ,,33DOODrNr)rqrrrsrrrrrrrr?rrrrrrr{rrrr'r'r s* I  $$ #J"O ""  @*A: & 2    "Err'ceZdZUdZdZded<ded<ded<d ed <d ed <ded < ddZedZedZ dZ edZ dZ ddZ dZy)rr)rrrrrrrrrrz Type[Any]rr rrrrNc d|_|jd}|r|jj|n|j|t |t j tjfr|j}n|}|x|_ |_ t||_ |j|_g|_|rm|jD]^}d|jvrt!|||||"t |t"rt!|||||Ct$j'||g|d||`|jj(|_y)NTr parent_bundle)rrrrr&rrrrr"rrrrrexprsrr_ORMColumnEntityr single_entityr)rrWrrrgsetup_entitiesr'rs rrz_BundleEntity.__init__1 s;+/ '  *   # # * *4 0  & &t ,  :00*2K2KL ,,.FF"(( diL !;;   t000!%++&*  f-!%++&* %11%++&* 2% 6'+kk&?&?#rc8|j}| |jSyr)r8r)rrs rrz_BundleEntity.mapperl s     << rcJ|jD]}|j}||cSyr)rr8rr(rs rr8z_BundleEntity.entity_zerot s.>> COOE    rcyrrrs rrz_BundleEntity.corresponds_to} srcJ|jD]}|j}||cSyr)rrr.s rrz'_BundleEntity.entity_zero_or_selectable s0>> C11E    rcH|jD]}|j|yr)rr{)rrWr(s rr{z!_BundleEntity.setup_compile_state s#>> 3C  # #M 2 3rc$|j|Srr{rs rrz/_BundleEntity.setup_dml_returning_compile_state  '' 66rc t|jDcgc]}|j||c}\}}}|jj |j ||}||j |jfScc}wr)rrrrcreate_row_processorrXrr )rr rr(procslabelsextraprocs rrz_BundleEntity.row_processor so"<@NN KSc0 K vu{{// ufMT%%t';';;; LsA5rr)rqrrrsr rrrr?rr8rrr{rrrrrrr sOI"! N O  L9@v 37&727  7rgr'columnr_entitys rrz_ColumnEntity._for_columns s& F --K,%n5"BBN#v':'::(%+(+&3%%+(+&3!!'$'"/ ?& rc.|jjSr)rDrrs rrz_ColumnEntity.type s{{rcD|jjj Sr)rDrhashablers rrz!_ColumnEntity._non_hashable_value s;;##,,,,rcB|jjjSr)rDr_isnullrs rrz_ColumnEntity._null_column_type s{{'''rc|j}|jH|j\}}}|jr'||jj|j fz }|||fS|j |j }nM|j}|jr|jj|}|jr|j}|jr|jj|}|j|}||j|jf}||_|jr@|j|jj|j fz}||j|fS|Sr)rWr=r?rXrur>r<rDrrBr _deannotater_getterrr ) rr rrWgetter label_nameextra_entitiesrDrs rrz_ColumnEntity.row_processor sg--     *151D1D .FJ((MM..t/D/DE#:~5 5    )''F[[F ,,&66>>vF"" ++-  / /"99AA&IF'd&&(<(<<!  $ $!11 **4+@+@A5N4++^; ;Jrr) rqrrrsrrrr?rrrrrrrrr sdI//b  --((0rrcFeZdZdZdZdZdZ ddZdZ d dZ dZ y) rCNF)rrDrrr c&||_||_|du|_|jr|xjddiz c_|r |j rd|_n*|r|j|_n|j||_|r|jj|n|j|||_ |jjr|jjdnd|_ |j|jf|_dx|_|_y)NrTr)rr>r?rr_is_text_clauser _proxy_keyrrrrDrrr r<r=)rrWrDrr>rgr's rrz_RawColumnEntity.__init__& s 0$4D$@! ??  ) )j$-? ? )"f&<&<#D #)#4#4 #0#B#B6#J   # # * *4 0  & &t , ,0KK,E,EDKK % %a (4 &!% 4;;7377T0rcyrrrs rrz_RawColumnEntity.corresponds_toJ src$|j|Srr3rs rrz2_RawColumnEntity.setup_dml_returning_compile_stateM r4rc|j}|r||jd}| y|j}|jr|j}|jj ||j j|||_yr) rrDrrLrrrrr<)rrWrrDs rr{z$_RawColumnEntity.setup_compile_stateT s}'<<> $T[[%8F~[[F   '')F$$((0%%,,V4#rrr) rqrrrsr8rrrrrrr{rrrrCrC sOK F"I"8H7&727  7$rrCcBeZdZdZdZdZ d dZdZ d dZdZ y) r)zColumn/expression based entity.F)rrrDrrr8r Nc|j}|} |jdd} |jd| } | r#t| j| |_d|_n||_|du|_||_|r1|r| r| n |j|_n |j|| |_nd|_| j| x|_ x|_ } | jx|_ } |r|jj|n|j|d|_||_dx|_|_|j|j"f|_| j*r|j-| | j.yy)N proxy_key proxy_ownerF)rT)rrrrrr?r>rTrrr r8rrrrrrDr<r=r rr4r)rrWrDrr!r>rgr'rrEorm_keyr[rrs rrz_ORMColumnEntity.__init__v se)) "+//+t4%koomW=  2 2G $T[[%8F~$5555%)[["[[F   KK??  ),dkk:../"'"8"8d<M 1 1% 8   v'?'?'')F t{{(( ) 6 6    * *   0 0 7 78H8H I$$((0%%,,V4#rrr) rqrrrsrrrrrrr{rrrr)r)g sI)"I$AF9 9& 92 9  9)$rr)ceZdZdZdZdZy)rBFcyrrrs rr{z(_IdentityTokenEntity.setup_compile_state s rc@fd}||j|jfS)Nc0jjSr)r[ry)rowr s rrNz2_IdentityTokenEntity.row_processor..getter s''77 7r)rr )rr rrNs ` rrz"_IdentityTokenEntity.row_processor s# 8t'')=)===rN)rqrrrsr?r{rrrrrBrB s  >rrBr)rz#Union[Query, Select, FromStatement]rWzOptional[ORMSelectCompileState]r rrzList[ORMColumnDescription])rzUnion[Query[Any], Select[Any]]r"Optional[_InternalEntityType[Any]]r)rzTuple[_SetupJoinsElement, ...]r8rgrz=Optional[Union[_InternalEntityType[Any], _JoinTargetElement]]) __future__rrtypingrrrrrr r r r r rrrrrbaserrr path_registryrr$rrrrrrrr rkr!r"r#r%r&r'rJr( sql._typingr)r*r+r,sql.baser-r.r/r0r1r2sql.dmlr3 sql.elementsr4r5sql.selectabler6r7r8r9r:r;r<r= sql.visitorsr>_typingr?r@rArrBrXrCr^rDrEenginerFengine.interfacesrGrH sql.compilerrIrJrKrLrMrNrOrP sql.type_apirQrRrootrrrrrUrrrrnrArRr[ plugin_forr`rarrr rrrrsr'rrrCr)rBrrrrzsS# #,,'(!%" *(('#!! )%0:-;#-(-,,3!' <4**,3936+) T"" d  " *@@q.q.h,++'. i$li$X*#:*Zf -f R $$$$N>'=>&)?0!!%)=>wD?wD?wDtuPNJ0@0EuPp!!%):;  "5 < !!%2P0O[P03P0j,6: = 2     < += +' +='*7;/3C$\#\#~iELiEX+ >r