Ë
    ðmxiŠÁ ã                  ó"  — d dl mZ d dl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
 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 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 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 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/ dd+l,m0Z0 dd,l1m2Z2 dd-l1m3Z3 dd.l1m4Z4 dd/l1m5Z5 dd0l1m6Z6 dd1l1m7Z7 dd2l8m9Z9 dd3l:m;Z; dd4l:m<Z< dd5l=m>Z> dd6l=m?Z? dd7l=m@Z@ dd8l=mAZA dd9l=mBZB dd:l=mCZC dd;l=mDZD dd<l=mEZE dd=lFmGZG errdd>lHmIZI dd?lHmJZJ dd@lmKZK ddAlLmMZM ddBlNmOZO ddClPmQZQ ddDlPmRZR ddElSmTZT ddFlUmVZV ddGl,mWZW ddHlXmYZY ddIl8mZZZ ddJl:m[Z[ ddKl=m\Z\ ddLl=m]Z] ddMl=m^Z^ ddNl=m_Z_ ddOl=m`Z` ddPlambZb  edQe¬R«      ZcejÈ                  Ze ejÌ                  «       ZgeCjÐ                  Zh G dS„ dT«      Zi ejÌ                  dUdVi«      Zj G dW„ dXe4«      Zk G dY„ dZek«      Zl G d[„ d\ek«      Zm G d]„ d^«      Zn G d_„ d`en«      Zo G da„ dben«      Zpe&j(                  jh                  jã                  dcdd«       G de„ dfem«      «       Zr G dg„ dhe;e6eEe-   «      Zse&j(                  jh                  jã                  dcdi«       G dj„ dkele>«      «       Zte&j(                  jh                  jã                  dcdl«       G dm„ dnemeD«      «       Zu	 	 d�	 	 	 	 	 	 	 d‚do„Zv	 	 	 	 dƒdp„Zw	 	 	 	 dƒdq„Zx	 d„	 	 	 	 	 d…dr„Zy G ds„ dt«      Zz G du„ dvez«      Z{ G dw„ dxez«      Z| G dy„ dzez«      Z} G d{„ d|e}«      Z~ G d}„ d~e}«      Z G d„ d€e«      Z€y)†é    )Ú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)Úboundc                  óz   — e Zd ZU dZded<   ded<   ded<    G d„ d	e«      Z	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Zdd„Zy
)ÚQueryContext)Útop_level_contextÚcompile_stateÚqueryÚuser_passed_queryÚparamsÚload_optionsÚbind_argumentsÚexecution_optionsÚsessionÚ	autoflushÚpopulate_existingÚinvoke_all_eagersÚversion_checkÚrefresh_stateÚcreate_eager_joinsÚpropagated_loader_optionsr   ÚrunidÚpartialsÚpost_load_pathsÚidentity_tokenÚ	yield_perÚloaders_require_bufferingÚloaders_require_uniquingÚintrf   zDict[PathRegistry, PostLoad]rh   ÚORMCompileStaterW   c                  ó<   — e Zd ZdZdZdZdZdZdZdZ	dZ
dZdZdZdZy)ú!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© ó    úM/home/htdocs/ttos/venv/lib/python3.12/site-packages/sqlalchemy/orm/context.pyÚdefault_load_optionsrp   †   sE   „ Ø#ÐØ"ÐØˆØ!ÐØˆ
ØˆØˆ
ØˆØ ÐØ ÐØ$(Ð!Ø Ñr�   rƒ   Nc	                ó€  ‡ — |‰ _         |xs t        ‰ _        |xs t        ‰ _        |‰ _        |‰ _        |‰ _        |‰ _        d‰ _        d‰ _	        |‰ _
        |j                  ‰ _        |j                  j                  }	|j                  }
t        ˆ fd„t!        |	|
«      D «       «      ‰ _        t%        |j&                  «      ‰ _        |j(                  ‰ _        |j,                  ‰ _        |j0                  ‰ _        |j4                  ‰ _        |j8                  ‰ _        |j<                  ‰ _        |j@                  ‰ _!        y )NFc              3  ó`   •K  — | ]%  \  }}|j                   r|j                  ‰|«      –— Œ' y ­w©N)Úpropagate_to_loadersÚ'_adapt_cached_option_to_uncached_option)Ú.0ÚoptÚuncached_optÚselfs      €r‚   ú	<genexpr>z(QueryContext.__init__.<locals>.<genexpr>Æ   s3   øè ø€ ò /
á!��\Ø×'Ò'ð ×7Ñ7¸¸l×Kñ/
ùs   ƒ+.)"r[   Ú_EMPTY_DICTr]   r\   rW   rX   rY   r^   rk   rl   rZ   r~   rV   Úselect_statementÚ_with_optionsÚtupleÚzipre   Údictr   rx   r_   ru   r`   rw   ra   rv   rb   r{   rc   rz   rj   ry   ri   )rŒ   rW   Ú	statementrY   rZ   r^   r[   r]   r\   Úcached_optionsÚuncached_optionss   `          r‚   Ú__init__zQueryContext.__init__”   s!  ø€ ð$ )ˆÔØ!2Ò!A´kˆÔØ,Ò;´ˆÔØ*ˆÔØˆŒ
ð "3ˆÔàˆŒØ).ˆÔ&Ø(-ˆÔ%ØˆŒØ!-×!GÑ!GˆÔà&×7Ñ7×EÑEˆØ,×:Ñ:Ðô */ó /
ä%(¨Ð9IÓ%Jô/
ó *
ˆÔ&ô ˜}×7Ñ7Ó8ˆŒà%×0Ñ0ˆŒØ!-×!@Ñ!@ˆÔØ!-×!@Ñ!@ˆÔØ)×8Ñ8ˆÔØ)×8Ñ8ˆÔØ%×0Ñ0ˆŒØ*×:Ñ:ˆÕr�   c                ó"   — | j                   xs | S r†   )rV   ©rŒ   s    r‚   Ú_get_top_level_contextz#QueryContext._get_top_level_contextÖ   s   € Ø×%Ñ%Ò-¨Ð-r�   )NN)rW   r/   r”   ú2Union[Select[Any], FromStatement[Any], UpdateBase]rY   r›   rZ   rG   r^   rE   r[   zQUnion[Type[QueryContext.default_load_options], QueryContext.default_load_options]r]   z$Optional[OrmExecuteOptionsParameter]r\   zOptional[_BindArguments])ÚreturnrU   )	rq   rr   rs   Ú	__slots__Ú__annotations__r2   rƒ   r—   rš   r€   r�   r‚   rU   rU   f   s–   … ð€Ið6 ƒJØ1Ó1Ø"Ó"ô!˜wô !ð: CGØ37ð!@;à#ð@;ð Fð@;ð
ð	@;ð )ð@;ð ð@;ð
ð@;ð @ð@;ð  1ó!@;ôD.r�   rU   Ú _result_disable_adapt_to_contextTc                  óz   ‡ — e Zd ZdZd„ Ze	 	 	 	 	 	 	 	 dˆ fd„«       Zed„ «       Ze	 	 dd„«       Zed„ «       Z	ˆ xZ
S )	ÚAbstractORMCompileStateFc               ó¸  — i | _         |€i | _        |sJ ‚y |j                  x| _        }|r7d|d<   |r/|j                  D ]   }|j                  sŒ|j                  | «       Œ" y |j                  dd«      ry |j                  d   }	 |d   }|j                  D ]-  }|j                  sŒ|j                  sŒ|j                  | «       Œ/ 	 d|d<   y # t        $ r Y Œw xY w)NTÚtoplevel_ormFr   Ú
selectable)
r   Úglobal_attributesÚ_global_attributesr�   Ú_is_criteria_optionÚprocess_compile_stateÚgetÚstackÚ_is_compile_stateÚKeyError)	rŒ   r”   ÚcompilerÚtoplevelÚprocess_criteria_for_toplevelÚgarŠ   Ústack_0Útoplevel_stmts	            r‚   Ú_init_global_attributesz/AbstractORMCompileState._init_global_attributesâ   sý   € ð ˆŒàÐð &(ˆDÔ"ÙˆO�8Øà*2×*EÑ*EÐEˆDÔ" RáØ!%ˆBˆ~Ñá,Ø$×2Ñ2ò 8�CØ×.Ó.Ø×1Ñ1°$Õ7ð8ð Ø�V‰V�N EÔ*Øà—.‘. Ñ#ˆð	4Ø# LÑ1ˆMð %×2Ñ2ò 4�Ø×(Ó(¨S×-DÓ-DØ×-Ñ-¨dÕ3ñ4ð "ˆˆ>Òøô ò 	Ùð	ús   ÂC Ã	CÃCc                ó&   •— t        ‰| �  ||fi |¤ŽS )aÇ  Create 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().
        )ÚsuperÚcreate_for_statement)Úclsr”   r­   ÚkwÚ	__class__s       €r‚   r¶   z,AbstractORMCompileState.create_for_statement	  s   ø€ ô" ‰wÑ+¨I°xÑFÀ2ÑFÐFr�   c                ó   — t        «       ‚r†   ©ÚNotImplementedError)r·   r^   r”   rZ   r]   r\   Úis_pre_events          r‚   Úorm_pre_session_execz,AbstractORMCompileState.orm_pre_session_exec  ó   € ô "Ó#Ð#r�   c                ó^   — |j                  ||xs i |¬«      }| j                  ||||||«      S )N)r]   )ÚexecuteÚorm_setup_cursor_result)r·   r^   r”   rZ   r]   r\   ÚconnÚresults           r‚   Úorm_execute_statementz-AbstractORMCompileState.orm_execute_statement(  sJ   € ð —‘Ø�v’| Ð7Hð ó 
ˆð ×*Ñ*ØØØØØØó
ð 	
r�   c                ó   — t        «       ‚r†   r»   ©r·   r^   r”   rZ   r]   r\   rÄ   s          r‚   rÂ   z/AbstractORMCompileState.orm_setup_cursor_result>  r¿   r�   )r”   r0   r­   rI   r¸   r   rœ   r/   )rœ   rF   )rq   rr   rs   Úis_dml_returningr³   Úclassmethodr¶   r¾   rÅ   rÂ   Ú__classcell__©r¹   s   @r‚   r¡   r¡   ß   s•   ø„ ØÐò%"ðN ðGàðGð ðGð ð	Gð
 
ôGó ðGð$ ñ	$ó ð	$ð ð
ð 
ò
ó ð
ð* ñ	$ó ô	$r�   r¡   c                  ó0   — e Zd ZdZed„ «       Zed„ «       Zy)ÚAutoflushOnlyORMCompileStatez>ORM compile state that is a passthrough, except for autoflush.c                ó¦   — t         j                  j                  ddh||j                  «      \  }}|s|j                  r|j	                  «        ||fS )NÚ_sa_orm_load_optionsr_   )rU   rƒ   Úfrom_execution_optionsÚ_execution_optionsrx   )r·   r^   r”   rZ   r]   r\   r½   r[   s           r‚   r¾   z1AutoflushOnlyORMCompileState.orm_pre_session_execN  sa   € ô ×-Ñ-×DÑDØ"àðð Ø×(Ñ(ó
ñ	
ØØñ  × 7Ò 7Ø×ÑÔ àÐ+Ð+Ð+r�   c                ó   — |S r†   r€   rÇ   s          r‚   rÂ   z4AutoflushOnlyORMCompileState.orm_setup_cursor_resultk  s	   € ð ˆr�   N)rq   rr   rs   Ú__doc__rÉ   r¾   rÂ   r€   r�   r‚   rÍ   rÍ   K  s+   „ ÙHàñ,ó ð,ð8 ñ	ó ñ	r�   rÍ   c                  ó�  — e Zd ZU  G d„ de«      Zded<   ded<   ded<   ded<   d	ed
<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   eZded<   dZd„ Z	e
	 	 	 	 	 	 	 	 d,d „«       Ze
	 	 	 	 	 	 	 	 	 	 d-d!„«       Zd"„ Ze
	 	 	 	 	 	 d.d#„«       Ze
d$„ «       Ze
d%„ «       Ze
d&„ «       Zed'„ «       Zd(„ Zd)„ Ze
d*„ «       Zy+)/rn   c                  óZ  — e Zd Zdej                  fdej                  fdej                  fdej
                  fdej                  fdej                  fdej                  fdej                  fd	ej                  fd
ej                  fdej                  fgZdZdZ	dZ
eZdZdZdZdZdZdZdZy)ú'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)rq   rr   rs   r>   Ú
dp_booleanÚdp_has_cache_keyÚdp_plain_objÚ_cache_key_traversalr×   rØ   rÙ   Ú_path_registryrÚ   rÛ   rÜ   rÝ   rÞ   rß   rà   rá   r€   r�   r‚   Údefault_compile_optionsrÖ   y  sð   „ à&Ð(9×(DÑ(DÐEØÐ0×;Ñ;Ð<ØÐ*×5Ñ5Ð6ØÐ/×@Ñ@ÐAØ"Ð$5×$@Ñ$@ÐAØ!Ð#4×#?Ñ#?Ð@ØÐ!2×!?Ñ!?Ð@ØÐ 1× <Ñ <Ð=Ø!Ð#4×#?Ñ#?Ð@Ø#Ð%6×%AÑ%AÐBØÐ*×5Ñ5Ð6ð 
Ðð& #(Ðð
 ˆàˆØ&ˆØ"ÐØ!ÐØÐØˆØ"ÐØ$ÐØ‰r�   rç   zDict[Any, Any]r   r¥   r›   r”   r�   úList[_QueryEntity]Ú	_entitiesz%Dict[_InternalEntityType, ORMAdapter]Ú_polymorphic_adaptersz=Union[Type[default_compile_options], default_compile_options]Úcompile_optionszOptional[_QueryEntity]Ú_primary_entityÚboolÚuse_legacy_query_stylerM   Ú_label_conventionzList[ColumnElement[Any]]Úprimary_columnsÚsecondary_columnszSet[ColumnElement[Any]]Údedupe_columnszList[Tuple[Any, ...]]rd   r   Úcurrent_pathFc                ó   — t        «       ‚r†   r»   )rŒ   Úargr¸   s      r‚   r—   zORMCompileState.__init__µ  ó   € Ü!Ó#Ð#r�   c                óX   —  | j                   t        d|«      f|j                   |dœ|¤ŽS )NúUnion[Select, FromStatement])r®   r­   )Ú_create_orm_contextr   rª   )r·   r”   r­   r¸   s       r‚   r¶   z$ORMCompileState.create_for_statement¸  s@   € ð 'ˆs×&Ñ&ÜÐ/°Ó;ð
à!Ÿ™Ð'Øñ
ð ñ	
ð 	
r�   c               ó   — t        «       ‚r†   r»   )r·   r”   r®   r­   r¸   s        r‚   rù   z#ORMCompileState._create_orm_contextÆ  s   € ô "Ó#Ð#r�   c                ój   — | j                   }||vr#|j                  |«       |j                  |«       y y r†   )rò   ÚaddÚappend)rŒ   ÚobjÚcol_collectionÚdedupes       r‚   Ú_append_dedupe_col_collectionz-ORMCompileState._append_dedupe_col_collectionÑ  s3   € Ø×$Ñ$ˆØ�fÑØ�J‰J�sŒOØ×!Ñ! #Õ&ð r�   c                ó<   — |rdd„}|S t        j                  |«      S )Nc                ó"   — |r|S t        | d«      S )NÚkey)Úgetattr)ÚcolÚcol_names     r‚   Únamez7ORMCompileState._column_naming_convention.<locals>.nameÝ  s   € ÙØ#�Oä" 3¨Ó.Ð.r�   r†   )r<   Ú_column_naming_convention)r·   Úlabel_styleÚlegacyr  s       r‚   r	  z)ORMCompileState._column_naming_convention×  s$   € ñ ó/ð ˆKä×8Ñ8¸ÓEÐEr�   c                ó   — t        |«      S r†   )Ú_column_descriptions©r·   r”   s     r‚   Úget_column_descriptionsz'ORMCompileState.get_column_descriptionsç  s   € ä# IÓ.Ð.r�   c                óÜ  — t         j                  j                  dh d£||j                  «      \  }}d|v r5|d   }|j                  j                  j                  |j                  |«      }|st        }n|j                  t        «      }|j                  r|j                  d|j                  i«      }t        |j                  dd «      rHt        |j                  j                  «      dkD  r&|j                  dd«      �|j                  d d	d
œ«      }||d<   	 |j                  d   }	|	r|	j                   |d<   	 |s|j$                  r|j%                  «        ||fS # t"        $ r J d«       ‚w xY w)NrÏ   >   r_   rj   ri   r`   Úsa_top_level_orm_contextr  rj   rÚ   é
   Úcompiled_cacheTz#excess depth for ORM loader options)r  Ú_cache_disable_reasonÚclauseÚplugin_subjectÚmapperz0statement had 'orm' plugin but no plugin_subject)rU   rƒ   rÐ   rÑ   rX   Ú
merge_withr]   Ú_orm_load_exec_optionsÚunionrz   r  Ú_compile_optionsÚlenrÚ   r©   Ú_propagate_attrsr  r¬   rx   )
r·   r^   r”   rZ   r]   r\   r½   r[   Úctxr  s
             r‚   r¾   z$ORMCompileState.orm_pre_session_execë  s™  € ô ×-Ñ-×DÑDØ"òð Ø×(Ñ(ó
ñ	
ØØð( &Ð):Ñ:Ø#Ð$>Ñ?ˆCØ #§	¡	× <Ñ <× GÑ GØ×%Ñ%Ð'8ó!Ðñ !Ü 6Ñà 1× 7Ñ 7Ô8NÓ OÐð ×"Ò"Ø 1× 7Ñ 7Ø˜l×5Ñ5Ð6ó!Ðô
 �I×.Ñ.°ÀÔFÜ�I×.Ñ.×<Ñ<Ó=ÀÒBØ!×%Ñ%Ð&6¸Ó=ÐIð "×'Ñ'à*.ð2-ñóð ð $-ˆ�xÑ ð	AØ&×7Ñ7Ð8HÑIˆNñ Ø+9×+@Ñ+@�˜xÒ(á × 7Ò 7Ø×ÑÔ àÐ+Ð+Ð+øô ò 	MØLÐLÓL�5ð	Mús   ÄE ÅE+c           
     ó  — |j                   }|j                  j                  }|j                  dt        j
                  «      }	|j                  j                  r|S t	        ||||||	||«      }
t        j                  ||
«      S )NrÏ   )
ÚcontextÚcompiledrW   r©   rU   rƒ   rë   rá   r   Ú	instances)r·   r^   r”   rZ   r]   r\   rÄ   Úexecution_contextrW   r[   Úquerycontexts              r‚   rÂ   z'ORMCompileState.orm_setup_cursor_resultE  s‰   € ð #ŸN™NÐØ)×2Ñ2×@Ñ@ˆð )×,Ñ,Ø"¤L×$EÑ$Eó
ˆð ×(Ñ(×1Ò1ØˆMä#ØØØØØØØØó	
ˆô × Ñ  ¨Ó6Ð6r�   c                ób   — | j                   D �cg c]  }t        |t        «      sŒ|‘Œ c}S c c}w )zºreturn 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)rŒ   Úents     r‚   Ú_lead_mapper_entitiesz%ORMCompileState._lead_mapper_entitiesj  s.   € ð  Ÿ>™>ö
Ø¬Z¸¼]Õ-KŠCò
ð 	
ùò 
s   �,¥,c           
     ó  — |j                   sz|j                  j                  | j                  vrW|j                  j	                  «       D ]9  }| j                  |t        t        j                  ||j                  |¬«      «       Œ; yyy)a5  given 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).

        )Úequivalentsr¤   N)
Úis_aliased_classr  Úpersist_selectablerê   Úiterate_to_rootÚ"_mapper_loads_polymorphically_withr   r   ÚWITH_POLYMORPHIC_ADAPTERÚ_equivalent_columns)rŒ   Úext_infor¤   Úmps       r‚   Ú _create_with_polymorphic_adapterz0ORMCompileState._create_with_polymorphic_adapterv  s�   € ð ×)Ò)Ø—‘×2Ñ2Ø×-Ñ-ñ.ð —o‘o×5Ñ5Ó7ò 	�Ø×7Ñ7ØÜÜ'×@Ñ@ØØ$&×$:Ñ$:Ø#-ô	õñ	ð.ð *r�   c                óª   — |j                   xs |gD ]?  }|| j                  |<   |j                  «       D ]  }|| j                  |j                  <   Œ ŒA y r†   )Ú_with_polymorphic_mappersrê   r.  Úlocal_table)rŒ   r  ÚadapterÚm2Úms        r‚   r/  z2ORMCompileState._mapper_loads_polymorphically_with“  s^   € Ø×2Ñ2Ò>°v°hò 	DˆBØ-4ˆD×&Ñ& rÑ*à×'Ñ'Ó)ò D�Ø<C�×*Ñ*¨1¯=©=Ò9ñDñ	Dr�   c                ó   — t        d«      ‚)Nz0this method only works for ORMSelectCompileStater»   )r·   rX   r  s      r‚   Ú_create_entities_collectionz+ORMCompileState._create_entities_collectionš  s   € ä!Ø>ó
ð 	
r�   N)r”   r0   r­   rI   r¸   r   rœ   rn   )
r”   rø   r®   rí   r­   úOptional[SQLCompiler]r¸   r   rœ   rn   )r
  r;   r  rí   rœ   rM   )rq   rr   rs   r.   rç   rž   ræ   ró   Ú_has_mapper_entitiesr—   rÉ   r¶   rù   r  r	  r  r¾   rÂ   Úpropertyr)  r4  r/  r<  r€   r�   r‚   rn   rn   x  s®  … ô#Ð"2ô #ðJ ÓØ%Ó%àAÓAØHÓHØ!Ó!Ø@Ó@ðó ð ,Ó+Ø Ó Ø/Ó/Ø-Ó-Ø/Ó/Ø+Ó+ðó ð "0€L�,Ó/Ø Ðò$ð ð
àð
ð ð
ð ð	
ð
 
ò
ó ð
ð ð$à/ð$ð ð	$ð
 (ð$ð ð$ð 
ò$ó ð$ò'ð ðFØ*ðFØ48ðFà	!òFó ðFð ñ/ó ð/ð ñW,ó ðW,ðr ñ"7ó ð"7ðH ñ	
ó ð	
òò:Dð ñ
ó ñ
r�   rn   c                  ó&   — e Zd ZdZdZd„ Zd„ Zd„ Zy)Ú_DMLReturningColFilterzûa 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.

    )r  ÚcolumnsÚ__weakref__c                ó¬   — |� |j                   |j                   ur|| _        n|| _        t        j                  | j                  «      x| _        | _        y r†   )r7  r  r$   ÚWeakPopulateDictÚadapt_check_presentrB  )rŒ   Útarget_mapperÚimmediate_dml_mappers      r‚   r—   z_DMLReturningColFilter.__init__­  sU   € à Ð,Ø×)Ñ)Ø'×3Ñ3ñ4ð /ˆD�Kð (ˆDŒKÜ&*×&;Ñ&;Ø×$Ñ$ó'
ð 	
ˆŒ�t•|r�   c                óf   — t        j                  |«      D ]  }| j                  |«      }|€Œ|c S  y r†   )Úsql_utilÚ_find_columnsrF  )rŒ   r  Ú	as_filterÚccÚc2s        r‚   Ú__call__z_DMLReturningColFilter.__call__¼  s;   € Ü×(Ñ(¨Ó-ò 	ˆBØ×)Ñ)¨"Ó-ˆBØ‰~Ø’
ð	ð
 r�   c                ó   — t        «       ‚r†   r»   )rŒ   r  s     r‚   rF  z*_DMLReturningColFilter.adapt_check_presentÄ  rö   r�   N)rq   rr   rs   rÓ   r�   r—   rO  rF  r€   r�   r‚   rA  rA  ¡  s   „ ñð 5€Iò
òó$r�   rA  c                  ó   — e Zd ZdZd„ Zy)Ú _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                   }|j                  j                  |d «      }|€y |j                  j                  j                  |«      S r†   )r  Ú_columntopropertyr©   r7  ÚcÚcorresponding_column©rŒ   r  r  Úprops       r‚   rF  z4_DMLBulkInsertReturningColFilter.adapt_check_presentÓ  sH   € Ø—‘ˆØ×'Ñ'×+Ñ+¨C°Ó6ˆØˆ<ØØ×!Ñ!×#Ñ#×8Ñ8¸Ó=Ð=r�   N©rq   rr   rs   rÓ   rF  r€   r�   r‚   rR  rR  È  s   „ ñó>r�   rR  c                  ó   — e Zd ZdZd„ Zy)Ú"_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                   }|j                  j                  |d «      }|�%|j                  j                  j                  |«      S |S r†   )r  rT  r©   r-  rU  rV  rW  s       r‚   rF  z6_DMLUpdateDeleteReturningColFilter.adapt_check_presentæ  sO   € Ø—‘ˆØ×'Ñ'×+Ñ+¨C°Ó6ˆØÐð ×,Ñ,×.Ñ.×CÑCÀCÓHÐHð ˆ
r�   NrY  r€   r�   r‚   r[  r[  Û  s   „ ñó
r�   r[  ÚormÚorm_from_statementc                  óˆ   — e Zd ZU dZdZded<   ded<   dZded<   dZdZdZ	dZ
eZeZe	 	 	 	 	 	 	 	 	 	 dd	„«       Zd
„ Zd„ Zd„ Zy)ÚORMFromStatementCompileStateNFÚFromStatementÚstatement_containerz)Union[SelectBase, TextClause, UpdateBase]Úrequested_statementzOptional[_DMLTableElement]Ú	dml_tablec               óŒ  — |}t        |t        «      sJ ‚|�!|j                  rt        j                  d«      ‚| j                  | «      }d |_        |j                  j                  |_	        |x|_
        |_        |j                  x|_        }|j                  r|j                  |_        d|_        g |_        i |_        |j                  |_        |j                  r_t        |t*        j,                  «      rE|j.                  s9|j                  s-|j0                  t2        u r|j5                  t6        «      |_        n||_        |j;                  |j.                  s|j                  s|j0                  nt2        |j                  «      |_        t>        jA                  ||jB                  |j$                  d¬«       |j                  jD                  |_#        |jI                  ||dd¬«       |jJ                  r/|jJ                  D ]   }|jL                  sŒ|jO                  |«       Œ" |jP                  r|jP                  D ]  \  }}	 ||«       Œ g |_)        g |_*        tW        «       |_,        g |_-        g |_.        d |_/        t        |j8                  t*        j`                  «      roi |_1        |j$                  D ]  }
|
je                  |«       Œ dx|_3        |_4        d|_5        |jR                  D ]   }|jm                  |d|jn                  ¬«       Œ" |S tq        tr        jt                  |j8                  |jv                  ¬«      |_<        |S )NzšThe ORM FromStatement construct only supports being invoked as the topmost statement, as it is only intended to define how result rows should be returned.T©Úis_current_entitiesF)r¯   r®   )Úwithin_columns_clauseÚadd_to_result_map)Úadapt_on_names)=r&  ra  rª   Úsa_excÚCompileErrorÚ__new__rì   r  r×   rî   rb  r�   Úelementrc  r*   Útablerd  rÈ   ré   rê   rë   r&   rP   Ú_is_textualÚ_label_styler8   Úset_label_styler9   r”   r	  rï   Ú_QueryEntityÚto_compile_stateÚ_raw_columnsrÚ   ró   r³   r�   r«   r¨   Ú_with_context_optionsrð   rñ   Úsetrò   rd   Ú_fallback_from_clausesÚorder_byr5   Úextra_criteria_entitiesÚsetup_compile_stateÚ_ordered_columnsÚ_textual_ordered_columnsÚ_loose_column_name_matchingÚprocessÚ_add_to_result_mapr   r   ÚADAPT_FROM_STATEMENTÚ_adapt_on_namesÚ_from_obj_alias)r·   r”   r®   r­   r¸   rb  rŒ   rŠ   Úfnr  ÚentityrU  s               r‚   rù   z0ORMFromStatementCompileState._create_orm_context  s%  € ð (ÐäÐ-¬}Ô=Ð=Ð=àÐ H§N¢NÜ×%Ñ%ð=óð ð �{‰{˜3ÓˆØ#ˆÔð  ×0Ñ0×HÑHð 	Ô#ð <OÐNˆÔ  4Ô#8Ø/B×/JÑ/JÐJˆÔ  9à×ÒØ&Ÿ_™_ˆDŒNØ$(ˆDÔ!àˆŒØ%'ˆÔ"à2×CÑCˆÔð ×'Ò'Ü˜9¤j×&;Ñ&;Ô<Ø×)Ò)Ø×$Ò$Ø×&Ñ&Ô*:Ñ:à&×6Ñ6Ü.óˆD�Nð 'ˆDŒNà!%×!?Ñ!?ð !×,Ò,°Y×5EÒ5Eð ×&Ò&ä%à×'Ñ'ó"
ˆÔô 	×%Ñ%ØØ×,Ñ,Ø�N‰NØ $ð	 	&ô 	
ð 0×@Ñ@×NÑNˆÔà×$Ñ$ØØØ*/Øð	 	%ô 	
ð ×,Ò,Ø*×8Ñ8ò 4�Ø×(Ó(Ø×-Ñ-¨dÕ3ð4ð ×4Ò4Ø.×DÑDò ‘��CÙ�4•ðð  "ˆÔØ!#ˆÔÜ!›eˆÔØ"$ˆÔØ&(ˆÔ#àˆŒä�d—n‘n¤j×&;Ñ&;Ô<ð ,.ˆDÔ(àŸ.™.ò 1�Ø×*Ñ*¨4Õ0ð1ð ðˆHÔ%¨Ô(Ið 48ˆHÔ0à×)Ñ)ò �Ø× Ñ ØØ*.Ø&.×&AÑ&Að !õ ðð, ˆô $7Ü×4Ñ4Ø—‘Ø2×BÑBô$ˆDÔ ð ˆr�   c                ó   — |S r†   r€   )rŒ   ÚcolsÚcurrent_adapters      r‚   Ú_adapt_col_listz,ORMFromStatementCompileState._adapt_col_listŠ  ó   € Øˆr�   c                 ó   — y r†   r€   r™   s    r‚   Ú_get_current_adapterz1ORMFromStatementCompileState._get_current_adapter�  s   € Ør�   c                óØ  — | j                   j                  j                  dd«      }| j                   j                  rt	        ||«      }n;| j                   j
                  s| j                   j                  rt        ||«      }nd}| j                  j                  r-t        | j                  «      dk7  rt        j                  d«      ‚| j                  D ]  }|j                  | |«       Œ y)zused by BulkORMInsert, Update, Delete to set up a handler
        for RETURNING to return ORM objects and expressions

        r  Nr   úsCan't generate ORM query that includes multiple expressions at the same time as '*'; query for '*' alone if present)r”   r  r©   Ú	is_insertrR  Ú	is_updateÚ	is_deleter[  rë   rá   r  ré   rk  rl  Ú!setup_dml_returning_compile_state)rŒ   Ú
dml_mapperrG  r8  r…  s        r‚   r’  z>ORMFromStatementCompileState.setup_dml_returning_compile_state�  sÑ   € ð
 Ÿ™×7Ñ7×;Ñ;Ø˜dó
ˆð �>‰>×#Ò#Ü6Ø˜zó‰Gð �^‰^×%Ò%¨¯©×)AÒ)AÜ8Ø˜zó‰Gð ˆGà×Ñ×(Ò(¬c°$·.±.Ó.AÀQÒ.FÜ×%Ñ%ðJóð ð
 —n‘nò 	DˆFØ×4Ñ4°T¸7ÕCñ	Dr�   )
r”   rø   r®   rí   r­   r=  r¸   r   rœ   r`  )rq   rr   rs   rƒ  r>  rž   rd  Ú_has_orm_entitiesÚmulti_row_eager_loadersÚeager_adding_joinsÚcompound_eager_adapterrŽ   rz  Úeager_joinsrÉ   rù   r‰  rŒ  r’  r€   r�   r‚   r`  r`  ó  s¡   … à€OØ Ðà&Ó&ØBÓBØ,0€IÐ)Ó0àÐØ#ÐØÐØ!Ðà)ÐØ€KàðCà/ðCð ð	Cð
 (ðCð ðCð 
&òCó ðCòJòóDr�   r`  c                  ó\  ‡ — e Zd ZU dZdZej                  Zej                  Z	dZ
ded<   ded<   dej                  fdej                  fgej                   z   Zed	ej$                  fgz   Zd
Z	 d	 	 	 	 	 dd„Zd„ Zed„ «       Zd„ Zˆ fd„Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zˆ xZS )ra  a*  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]rn  rí   r‚  ru  r  Tc           	     óª  — t        j                  |«      D �cg c])  }t        j                  t        j
                  || d¬«      ‘Œ+ c}| _        || _        |j                  | _        |j                  | _	        |j                  | _
        |j                  | _        |j                  | _        t        |«      r|j                  nd | _        || _        y c c}w )NT)Úapply_propagate_attrsÚpost_inspect)r$   Úto_listr%   Úexpectr'   ÚColumnsClauseRoleru  rn  r*   Ú	is_selectr‘  r�  r�  r,   rq  r‚  )rŒ   Úentitiesrn  r‚  r(  s        r‚   r—   zFromStatement.__init__Ï  s¸   € ô —|‘| HÓ-ö
ð ô ×ÑÜ×'Ñ'ØØ&*Ø!ö	ò
ˆÔð ˆŒØ—n‘nˆŒØ ×*Ñ*ˆŒØ ×*Ñ*ˆŒØ ×*Ñ*ˆŒØ ×*Ñ*ˆŒä$2°7Ô$;ˆG× Ò Àð 	Ôð  /ˆÕùò%
s   ˜.Cc                ó�   —  | j                   | |fi |¤Ž}|j                   }|r||_         |j                  |j                  fi |¤ŽS )z›provide a fixed _compiler_dispatch method.

        This is roughly similar to using the sqlalchemy.ext.compiler
        ``@compiles`` extension.

        )Ú_compile_state_factoryrª   rW   r  r”   )rŒ   r­   r¸   rW   r®   s        r‚   Ú_compiler_dispatchz FromStatement._compiler_dispatché  sR   € ð 4˜×3Ñ3°D¸(ÑIÀbÑIˆà—~‘~Ð%ˆáØ%2ˆHÔ"àˆx×Ñ × 7Ñ 7Ñ>¸2Ñ>Ð>r�   c                ól   — t        t        t        j                  | «      «      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

        )r   ÚORMSelectCompileStater<   Úget_plugin_classr  )rŒ   Úmeths     r‚   Úcolumn_descriptionsz!FromStatement.column_descriptionsú  s3   € ô Ü!¤;×#?Ñ#?ÀÓ#Eó
ç
!Ñ
!ð 	ñ �D‹zÐr�   c                ó   — | S r†   r€   r™   s    r‚   Ú_ensure_disambiguated_namesz)FromStatement._ensure_disambiguated_names  rŠ  r�   c              +  ó´   •K  — t         j                  j                  d„ | j                  D «       «      E d {  –—†  t	        ‰| �  di |¤ŽE d {  –—†  y 7 Œ7 Œ­w)Nc              3  ó4   K  — | ]  }|j                   –— Œ y ­wr†   )Ú_from_objects©r‰   rn  s     r‚   r�   z-FromStatement.get_children.<locals>.<genexpr>  s   è ø€ ò 1
Ø&-ˆG×!Õ!ñ1
ùó   ‚r€   )Ú	itertoolsÚchainÚfrom_iterableru  rµ   Úget_children)rŒ   r¸   r¹   s     €r‚   rµ  zFromStatement.get_children  sY   øè ø€ Ü—?‘?×0Ñ0ñ 1
Ø15×1BÑ1Bô1
ó 
÷ 	
ð 	
ô ‘7Ñ'Ñ-¨"Ñ-×-Ñ-ð	
øð 	.ús!   ƒ4A·A¸AÁAÁAÁAc                ó.   — | j                   j                  S r†   )rn  Ú_all_selected_columnsr™   s    r‚   r·  z#FromStatement._all_selected_columns  s   € à�|‰|×1Ñ1Ð1r�   c                ó\   — t        | j                  «      r| j                  j                  S d S r†   )r*   rn  Ú_return_defaultsr™   s    r‚   r¹  zFromStatement._return_defaults  s"   € ä06°t·|±|Ô0Dˆt�|‰|×,Ñ,ÐNÈ$ÐNr�   c                ó\   — t        | j                  «      r| j                  j                  S d S r†   )r*   rn  Ú
_returningr™   s    r‚   r»  zFromStatement._returning  s"   € ä*0°·±Ô*>ˆt�|‰|×&Ñ&ÐHÀDÐHr�   c                ó\   — t        | j                  «      r| j                  j                  S d S r†   )r+   rn  Ú_inliner™   s    r‚   r½  zFromStatement._inline!  s"   € ä'7¸¿¹Ô'Eˆt�|‰|×#Ñ#ÐOÈ4ÐOr�   )T)r¢  z%Iterable[_ColumnsClauseArgument[Any]]rn  rš  r‚  rí   ) rq   rr   rs   rÓ   Ú__visit_name__r`  rç   r  r¶   r¤  Ú_for_update_argrž   r>   Údp_clauseelement_listÚdp_clauseelementr0   Ú_executable_traverse_internalsÚ_traverse_internalsrã   rå   Úis_from_statementr—   r¥  r?  rª  r¬  rµ  r·  r¹  r»  r½  rÊ   rË   s   @r‚   ra  ra  ®  s8  ø… ñð *€Nà3×KÑKÐà9×NÑNÐà€Oà5Ó5àÓð 
Ð*×@Ñ@ÐAØ	Ð%×6Ñ6Ð7ðð 	×1Ñ1ñ2Ðð
 /Ø	Ð.×?Ñ?Ð@ð2ñ Ðð Ðð !%ð	/à7ð/ð :ð/ð ó	/ò4?ð" ñó ðò"ô.ð ñ2ó ð2ð ñOó ðOð ñIó ðIð ñPó ôPr�   ra  Úcompound_selectc                  ó   — e Zd Zy)ÚCompoundSelectCompileStateN)rq   rr   rs   r€   r�   r‚   rÇ  rÇ  &  s   „ ð 	r�   rÇ  Úselectc                  óX  — e Zd ZdZeZdZdZdZdZ	dZ
dZdZdZdZdZe	 	 	 	 	 	 	 	 	 	 d"d„«       Zd„ Zd„ Zed„ «       Zed„ «       Zed	„ «       Zed
„ «       Zed„ «       Zd„ Zd„ Zd„ Zd„ Zd„ Zd#d„Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#d„ Z$d„ Z%d„ Z&d„ Z'd„ Z(d„ Z)d„ Z*e+d„ «       Z,e+d„ «       Z-d „ Z.d!„ Z/y)$r§  r€   NFc               ó�  — | j                  | «      }|}| j                  j                  |j                  «      |_        |j                  r9|j                  «       |_        t        j                  «       |j                  _        n||_        |j                  j                  |_
        |j                  j                  |_        g |_        d |_        i |_        |j                  |_        |s|xj                   dddœz  c_        |j                  r@|j                  j"                  t$        u r$|j                  st&        |_        n't*        |_        n|j                  j"                  |_        |j,                  rA|j,                  D �ci c]&  }|t.        j1                  ||j2                  g d¬«      “Œ( c}|_        |j7                  |j"                  |j                  «      |_        t.        j1                  ||j2                  |j                  d¬«       |j                  j:                  |_        d|_        |jA                  |||d¬«       |r½|jB                  s|j,                  r¥|j,                  D ]]  }|jB                  D ]L  }|jD                  sŒ|jG                  ||j4                  |   D �	cg c]  }	tI        |	tJ        «      r|	‘Œ c}	«       ŒN Œ_ |j                  jB                  D ]   }|jD                  sŒ|jM                  |«       Œ" |jN                  r|jN                  D ]  \  }
} |
|«       Œ g |_(        g |_)        tU        «       |_+        i |_,        i |_-        g |_.        g |_/        |ja                  d„ |jb                  D «       «      |_2        |jg                  «        ti        jj                  ||jl                  |fi |¤Ž |S c c}w c c}	w )NFT)rÜ   rà   rf  r€   )r®   r¯   c              3  ó4   K  — | ]  }|j                   –— Œ y ­wr†   )r¤   )r‰   Úinfos     r‚   r�   z<ORMSelectCompileState._create_orm_context.<locals>.<genexpr>×  s   è ø€ ò 2
Ø $ˆD�O�Oñ2
ùr±  )7rm  rç   Ú
safe_merger  rÑ   Ú_cloner�   r$   ÚimmutabledictrØ   Úfor_statementr×   rî   ré   rì   rê   rë   rq  ÚLABEL_STYLE_LEGACY_ORMr9   r
  r7   Ú_memoized_select_entitiesrs  rt  ru  Ú_memoized_entitiesr	  rï   rÚ   ró   Úeager_order_byr³   r�   r«   Ú'process_compile_state_replaced_entitiesr&  r'  r¨   rv  rð   rñ   rw  rò   r˜  rz  rd   rx  Ú_normalize_fromsÚ	_from_objÚfrom_clausesÚ_setup_for_generater<   r—   r”   )r·   r”   r®   r­   r¸   rŒ   r�   Úmemoized_entitiesrŠ   r(  r„  r  s               r‚   rù   z)ORMSelectCompileState._create_orm_context@  s°  € ð �{‰{˜3Óˆà$Ðð &)×%@Ñ%@×%KÑ%KØ×&Ñ&ó&
ˆ	Ô"ð ×.Ò.ð %5×$;Ñ$;Ó$=ˆDÔ!Ü7;×7IÑ7IÓ7KˆD×!Ñ!Õ4à$4ˆDÔ!ð .×>Ñ>×MÑMˆÔð ×-Ñ-×EÑEð 	Ô#ð ˆŒØ#ˆÔØ%'ˆÔ"à/×@Ñ@ˆÔáð × Ò Ø&+Ø(,ñ%ñ Õ ð ×'Ò'Ø×%Ñ%×2Ñ2Ô6LÑLà×%Ò%Ü#A�Õ ä#@�Õ à#×4Ñ4×AÑAˆDÔà×5Ò5ð %×>Ñ>ö
'ð &ð "¤<×#@Ñ#@ØØ%×2Ñ2ØØ(-ð	 $Aó $ñ ò
'ˆDÔ#ð  "&×!?Ñ!?Ø×"Ñ" D×$?Ñ$?ó"
ˆÔô 	×%Ñ%ØØ×)Ñ)Ø�N‰NØ $ð	 	&ô 	
ð -×=Ñ=×KÑKˆÔà ˆÔà×$Ñ$ØØØØ*/ð	 	%ô 	
ñ Ø×*Ò*Ø×9Ò9ð "×;Ñ;òØ!à,×:Ñ:ò �CØ×,Ó,Ø×CÑCØ ð ,0×+BÑ+BØ$5ñ,"öà$'ô $.¨c´=Ô#Aò	 !$òõ	ñðð  ×,Ñ,×:Ñ:ò 4�Ø×(Ó(Ø×-Ñ-¨dÕ3ð4ð ×1Ò1Ø+×AÑAò ‘��CÙ�4•ðð  "ˆÔØ!#ˆÔÜ!›eˆÔØˆÔØ')ˆÔ$Ø"$ˆÔØ&(ˆÔ#ð !×1Ñ1ñ 2
Ø(8×(BÑ(Bô2
ó 
ˆÔð 	× Ñ Ô"ä×Ñ˜T 4§>¡>°8ÑB¸rÒBØˆùò}
'ùòbs   Æ+N>Ê%Oc                ó  — t        d«       t        d| j                  › �«       | j                  D ]Ø  }t        |t        «      rm|d   dk(  ret        dt        j                  |d   «      › �«       t        d| j                  |   › �«       t        d| j                  |   j                  › �«       Œ€t        |t        «      sŒ‘|d   dk(  sŒšt        d	t        j                  |d   «      › �«       t        d| j                  |   › �«       ŒÚ y )
Nz5
---------------------------------------------------
zcurrent path: r   Úloaderz
Loader:           r   z    Úpath_with_polymorphicz
With Polymorphic: )Úprintró   r   r&  r‘   r   ÚcoerceÚ__dict__)rŒ   r  s     r‚   Ú_dump_option_structz)ORMSelectCompileState._dump_option_structã  sð   € ÜÐGÔHÜ�˜t×0Ñ0Ð1Ð2Ô3Ø—?‘?ò 	5ˆCÜ˜#œuÔ%¨#¨a©&°HÒ*<ÜÐ,¬\×-@Ñ-@ÀÀQÁÓ-HÐ,IÐJÔKÜ˜˜TŸ_™_¨SÑ1Ð2Ð3Ô4Ü˜˜TŸ_™_¨SÑ1×:Ñ:Ð;Ð<Õ=Ü˜C¤Õ'¨C°©FÐ6MÓ,MÜÐ,¬\×-@Ñ-@ÀÀQÁÓ-HÐ,IÐJÔKÜ˜˜TŸ_™_¨SÑ1Ð2Ð3Õ4ñ	5r�   c                ól	  ‡— | j                   }d | _        d| _        | j                  j                  r| j                  «        |j                  D ]8  }|j                  sŒ| j                  |j                  | j                  |   «       Œ: |j                  r&| j                  |j                  | j                  «       | j                  «       Š|j                  r6|j                  | _        ‰r#t        ˆfd„| j                  D «       «      | _        ‰r*|j                  dvr| j                  |j                  ‰«      n|j                  | _        |j"                  r#t        ˆfd„|j"                  D «       «      | _        ‰r=|j$                  dvr/| j                  t'        j(                  |j$                  «      ‰«      n|j$                  xs d | _        | j,                  r9| j.                  d   j0                  }|j3                  | j,                  «      | _        |j4                  r"| j                  |j4                  ‰«      | _        nd| _        |j8                  | _        |j<                  r5t        t'        j(                  d„ |j<                  D «       «      «      | _        nT|j@                  �5t        t'        j(                  d„ |j@                  D «       «      «      | _!        n|jD                  sd| _        |jF                  | _#        | j                  jH                  r-tK        | j                  «      d	k7  rtM        jN                  d
«      ‚| j                  D ]  }|jQ                  | «       Œ | jR                  D ]  }|d   } || g|d	d  ¢­Ž  Œ | j                  jT                  r| jW                  «        | jX                  s2| j                  jZ                  rJ d«       ‚tM        j\                  d«      ‚| j.                  st_        | j`                  «      | _        | j                   du rd | _        | jb                  r.| jd                  r"| jf                  r| ji                  «       | _        n| jk                  «       | _        | jl                  r6| jo                  «       }|�#| j                  jq                  d|i«      | _        y y y )Nr€   c              3  ó0   •K  — | ]  } ‰|d «      –— Œ y­w©TNr€   ©r‰   Úcritrˆ  s     €r‚   r�   z<ORMSelectCompileState._setup_for_generate.<locals>.<genexpr>	  s    øè ø€ ò -àñ $ D¨$×/ñ-ùs   ƒ©NFc              3  ó8   •K  — | ]  }‰r	 ‰|d «      n|–— Œ y­wrä  r€   rå  s     €r‚   r�   z<ORMSelectCompileState._setup_for_generate.<locals>.<genexpr>  s'   øè ø€ ò *àñ 0?‘  dÔ+ÀDÓHñ*ùs   ƒr   c              3  óN   K  — | ]  }|�t        j                  |«      nd –— Œ y ­wr†   ©rJ  Úsurface_selectables©r‰   Úss     r‚   r�   z<ORMSelectCompileState._setup_for_generate.<locals>.<genexpr>7  ó,   è ø€ ò &àð 89°}”H×0Ñ0°Ô3È$ÓNñ&ùó   ‚#%c              3  óN   K  — | ]  }|�t        j                  |«      nd –— Œ y ­wr†   rê  rì  s     r‚   r�   z<ORMSelectCompileState._setup_for_generate.<locals>.<genexpr>>  rî  rï  r†   r   rŽ  Fz,no columns were included in _only_load_propsz4Query contains no columns with which to SELECT from.Ú
deepentity)9r�   r”   Ú_join_entitiesrë   rÞ   Ú_set_select_from_aliasrÒ  Ú_setup_joinsÚ_joinrÓ  ré   rŒ  Ú_where_criteriar‘   Ú_order_by_clausesr‰  ry  Ú_having_criteriaÚ_group_by_clausesr$   Úflatten_iteratorÚgroup_byrÔ  rØ  Ú_target_adapterÚcopy_and_processÚ_distinct_onÚdistinct_onÚ	_distinctÚdistinctÚ
_correlateÚ	correlateÚ_correlate_exceptÚcorrelate_exceptÚ_auto_correlater¿  rá   r  rk  rl  r{  rd   rÛ   Ú_adjust_for_extra_criteriarð   rÝ   ÚInvalidRequestErrorÚlistrx  r•  r–  Ú_should_nest_selectableÚ_compound_eager_statementÚ_simple_statementrÐ  Ú_mapper_zeroÚ	_annotate)	rŒ   rX   rÚ  r8  r…  ÚrecÚstrategyÚezerorˆ  s	           @r‚   rÙ  z)ORMSelectCompileState._setup_for_generateï  s?  ø€ Ø×%Ñ%ˆàˆŒØ ˆÔà×Ñ×/Ò/à×'Ñ'Ô)à!&×!@Ñ!@ò 	ÐØ ×-Ó-Ø—
‘
Ø%×2Ñ2Ø×+Ñ+Ð,=Ñ>õð	ð ×ÒØ�J‰J�u×)Ñ)¨4¯>©>Ô:à×3Ñ3Ó5ˆà× Ò Ø#(×#8Ñ#8ˆDÔ áÜ',ó -à $× 4Ñ 4ô-ó (�Ô$ñ  5×#:Ñ#:À-Ñ#Oð × Ñ  ×!8Ñ!8¸/ÔJà×(Ñ(ð 	Œð ×!Ò!Ü$)ó *à!×2Ñ2ô*ó %ˆDÔ!ñ  5×#:Ñ#:À-Ñ#Oð × Ñ Ü×%Ñ% e×&=Ñ&=Ó>Àôð ×(Ñ(Ò0¨Dð 	Œð ×ÒØ×'Ñ'¨Ñ*×:Ñ:ˆGØ")×":Ñ":¸4×;NÑ;NÓ"OˆDÔà×ÒØ#×3Ñ3Ø×"Ñ" Oó ˆDÕð  "ˆDÔàŸ™ˆŒà×Òô #Ü×%Ñ%ñ &à"×-Ñ-ô&ó óˆD�Nð ×$Ñ$Ð0Ü$)Ü×%Ñ%ñ &à"×4Ñ4ô&ó ó%ˆDÕ!ð ×&Ò&Ø$ˆDŒNð  %×4Ñ4ˆÔà×Ñ×(Ò(¬c°$·.±.Ó.AÀQÒ.FÜ×%Ñ%ðJóð ð —n‘nò 	-ˆFØ×&Ñ& tÕ,ð	-ð ×*Ñ*ò 	%ˆCØ˜1‘vˆHÙ�TÐ$˜C  ˜GÔ$ð	%ð ×Ñ×3Ò3Ø×+Ñ+Ô-à×#Ò#Ø×#Ñ#×4Ò4ØLÐLÓL�uä×,Ñ,ØFóð ð × Ò Ü $ T×%@Ñ%@Ó AˆDÔà�=‰=˜EÑ!Ø ˆDŒMð ×(Ò(Ø×'Ò'Ø×,Ò,à!×;Ñ;Ó=ˆD�Nà!×3Ñ3Ó5ˆDŒNà×ÒØ×%Ñ%Ó'ˆEØÐ ð "&§¡×!9Ñ!9Ø! 5Ð)ó"�•ð !ð r�   c                óî   — | j                  | «      }g |_        d|_        i |_        |j	                  |j
                  |«      |_        t        j                  ||j                  |j                  d¬«       |S )a  Creates 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  )
rm  ré   rì   rê   r	  rq  rï   rs  rt  ru  )r·   rX   r  rŒ   s       r‚   r<  z1ORMSelectCompileState._create_entities_collection|  sv   € ð �{‰{˜3ÓˆàˆŒØ#ˆÔØ%'ˆÔ"à!%×!?Ñ!?Ø×Ñ ó"
ˆÔô 	×%Ñ%Ø�%×$Ñ$ d§n¡nÈ$ð 	&ô 	
ð ˆr�   c                ó2   — |j                   }t        |d «      S r†   )rô  Ú_determine_last_joined_entity)r·   r”   Úsetup_joinss      r‚   Údetermine_last_joined_entityz2ORMSelectCompileState.determine_last_joined_entity–  s   € à×,Ñ,ˆä,¨[¸$Ó?Ð?r�   c              #  óJ  K  — |j                   D ]Š  }|j                  rhd|j                  v rZ|j                  d   }|j                  s!|j                  st        |g«      E d {  –—†  ŒYt        |j                  «      E d {  –—†  Œwt        |g«      E d {  –—†  ŒŒ y 7 Œ:7 Œ7 Œ­w)NÚentity_namespace)ru  Úis_selectableÚ_annotationsÚ	is_mapperr,  r-   Ú_all_column_expressions)r·   r”   rn  Úenss       r‚   Úall_selected_columnsz*ORMSelectCompileState.all_selected_columnsœ  s“   è ø€ à ×-Ñ-ò 	8ˆGà×%Ò%Ø&¨'×*>Ñ*>Ñ>à×*Ñ*Ð+=Ñ>�Ø—}’}¨S×-AÒ-AÜ0°'°Ó;×;Ñ;ä0°×1LÑ1LÓM×MÑMä,¨g¨YÓ7×7Ñ7ñ	8ð <øàMøà7ús6   ‚A B#Á"BÁ#B#Â BÂB#ÂB!ÂB#ÂB#Â!B#c                ó€   — | j                  t        j                  j                  d„ |j                  D «       «      «      S )Nc              3  óŒ   K  — | ]<  }d |j                   vr|j                  n|j                   d    j                  «       g–— Œ> y­w)ÚparententityN)r  r¯  Ú__clause_element__r°  s     r‚   r�   zAORMSelectCompileState.get_columns_clause_froms.<locals>.<genexpr>®  sV   è ø€ ò *ð ð &¨W×-AÑ-AÑAð ×)Ò)ð  ×,Ñ,Ø*ñç,Ñ,Ó.ðóñ*ùs   ‚AA)rÖ  r²  r³  r´  ru  r  s     r‚   Úget_columns_clause_fromsz.ORMSelectCompileState.get_columns_clause_froms«  s<   € à×#Ñ#Ü�O‰O×)Ñ)ñ *ð  )×5Ñ5ô*ó ó
ð 	
r�   c                ó  — t        j                  t        j                  ||¬«      }t	        |j
                  |«      }|j                  j                  |j                  |j                  |j                  |j                  ¬«       |S )N)rœ  )r�   rv  rÑ   r  )r%   rŸ  r'   ÚReturnsRowsRolera  ru  rà  Úupdater�   rv  rÑ   r  )r·   r”   Úfrom_statementÚstmts       r‚   r'  z$ORMSelectCompileState.from_statement¼  sw   € ä"×)Ñ)Ü×!Ñ!ØØ"+ô
ˆô ˜Y×3Ñ3°^ÓDˆà�‰×ÑØ#×1Ñ1Ø"+×"AÑ"AØ(×;Ñ;Ø&×7Ñ7ð	 	ô 	
ð ˆr�   c                óþ   — | j                   }| j                  j                  sJ ‚t        |j                  «      dk(  sJ ‚| j                  |j                  d   «      }|r| xj                  ddiz  c_        || _        yy)ú used only for legacy Query casesr   r   rÛ   FN)r�   rë   rÞ   r  r×  Ú_get_select_from_alias_from_objrƒ  )rŒ   rX   r8  s      r‚   ró  z,ORMSelectCompileState._set_select_from_aliasÎ  s{   € ð ×%Ñ%ˆà×#Ñ#×3Ò3Ð3Ð3Ü�5—?‘?Ó# qÒ(Ð(Ð(à×6Ñ6°u·±ÀqÑ7IÓJˆÙØ× Ò Ð%:¸EÐ$BÑBÕ Ø#*ˆDÕ ð r�   c                óœ  — |}d|j                   v r|j                   d   }t        |d«      r-|j                  st        j                  d«      ‚|j
                  S t        |j                  t        j                  j                  «      rF| j                  «       }||j                  u sJ ‚t        t        j                  |j                  |¬«      S y)r*  r!  r  zPA selectable (FromClause) instance is expected when the base alias is being set.©r+  N)r  Úhasattrr,  rk  ÚArgumentErrorÚ_adapterr&  r¤   r#   ÚAliasedReturnsRowsÚ_all_equivsr   r   ÚLEGACY_SELECT_FROM_ALIAS)rŒ   Úfrom_objrÌ  Úequivss       r‚   r+  z5ORMSelectCompileState._get_select_from_alias_from_objÛ  s¼   € ð ˆà˜T×.Ñ.Ñ.Ø×$Ñ$ ^Ñ4ˆDä�4˜Ô"Ø×(Ò(Ü×*Ñ*ðAóð ð
 —}‘}Ð$ä˜Ÿ™¬¯©×)JÑ)JÔKØ×%Ñ%Ó'ˆFØ˜4Ÿ?™?Ñ*Ð*Ð*Ü&Ü×8Ñ8Ø—‘Ø"ôð ð r�   c                ó4   — | j                   d   j                  S )z8return the Mapper associated with the first QueryEntity.r   )ré   r  r™   s    r‚   r  z"ORMSelectCompileState._mapper_zero÷  s   € à�~‰~˜aÑ ×'Ñ'Ð'r�   c                óº   — | j                   D ]!  }d|j                  v sŒ|j                  d   c S  | j                  D ]  }|j                  sŒ|j                  c S  y)z›Return the 'entity' (mapper or AliasedClass) associated
        with the first QueryEntity, or alternatively the 'select from'
        entity if specified.r!  N)rØ  r  ré   Úentity_zero)rŒ   r(  Úqents      r‚   Ú_entity_zeroz"ORMSelectCompileState._entity_zeroû  sg   € ð
 ×$Ñ$ò 	8ˆCØ ×!1Ñ!1Ò1Ø×'Ñ'¨Ñ7Ò7ð	8ð —N‘Nò 	(ˆDØ×ÓØ×'Ñ'Ò'ð	(ð r�   c                ó’   — | j                   | j                  gk7  rt        j                  d|z  «      ‚| j                  j                  S )Nz4%s() can only be used against a single mapped class.)ré   rì   rk  r  r8  )rŒ   Úmethnames     r‚   Ú_only_full_mapper_zeroz,ORMSelectCompileState._only_full_mapper_zero	  sK   € Ø�>‰>˜d×2Ñ2Ð3Ò3Ü×,Ñ,ð)Ø+3ñ4óð ð ×#Ñ#×/Ñ/Ð/r�   c                ó„   — t        | j                  «      dkD  rt        j                  |xs d«      ‚| j	                  «       S )Nr   z8This operation requires a Query against a single mapper.)r  ré   rk  r  r:  )rŒ   Ú	rationales     r‚   Ú_only_entity_zeroz'ORMSelectCompileState._only_entity_zero  sD   € Üˆt�~‰~Ó Ò"Ü×,Ñ,Øò +ð+óð ð
 × Ñ Ó"Ð"r�   c                óš  — i }| j                   j                  «       D ]L  }|D �cg c]  }t        |t        «      r|‘Œ c}D ]'  }|j	                  |j
                  j                  «       Œ) ŒN | j                  D �cg c]  }t        |t        «      sŒ|‘Œ c}D ]'  }|j	                  |j
                  j                  «       Œ) |S c c}w c c}w r†   )rÓ  Úvaluesr&  r'  r&  r  r1  ré   )rŒ   r5  rÚ  r(  s       r‚   r2  z!ORMSelectCompileState._all_equivs  sÃ   € Øˆà!%×!8Ñ!8×!?Ñ!?Ó!Aò 	>Ðð -öàÜ˜c¤=Ô1ò òò >�ð
 —‘˜cŸj™j×<Ñ<Õ=ñ>ð	>ð  Ÿ>™>ö
Ø¬Z¸¼]Õ-KŠCò
ò 	:ˆCð �M‰M˜#Ÿ*™*×8Ñ8Õ9ð	:ð ˆùòùò
s   ¤CÁ:CÂCc           	     óf  — | j                   rj| j                   D �cg c]4  }t        |t        j                  j                  «      r|j
                  n|‘Œ6 }}t        j                  | j                  |«      }ng }d } | j                  | j                  |D �cg c]  }|| j                  vsŒ|‘Œ c}z   | j                  | j                  | j                  | j                  | j                   f| j                  | j                   j"                  | j                   j$                  | j&                  | j(                  dœ| j*                  ¤Ž}|j-                  «       }| j/                  «       }t1        t2        j4                  ||¬«      | _        t9        j:                  |g| j<                  z   Ž }| j                  |_        | j                  �'| j                  j@                  €| j                  |_        |}| jB                  jE                  «       D ]#  }	t        jF                  ||	|	jH                  «      }Œ% |jJ                  jM                  ||«       |r6 |j                   jL                  |g| j6                  jO                  |«      ¢­Ž   |j                   jL                  |g| jP                  ¢­Ž  |S c c}w c c}w )N©Ú
for_updateÚhintsÚstatement_hintsr  r  r-  ))ry  r&  r#   ÚelementsÚ_label_referencern  rJ  Ú expand_column_list_from_order_byrð   Ú_select_statementrò   rØ  rö  rø  r
  r¿  r�   Ú_hintsÚ_statement_hintsr  r  Ú_select_argsÚaliasr2  r   r   ÚCOMPOUND_EAGER_STATEMENTr—  r!   rÈ  rñ   rq  Úofr˜  rB  Úsplice_joinsÚstop_onÚselect_fromÚnon_generativerý  rÔ  )
rŒ   ÚelemÚunwrapped_order_byÚorder_by_col_exprrU  Úinnerr5  r”   Úfrom_clauseÚ
eager_joins
             r‚   r  z/ORMSelectCompileState._compound_eager_statement+  s‘  € ð
 �=Š=ð !ŸM™Mö"ð ô " $¬¯©×(EÑ(EÔFð —L’Làñð"Ðð "ô !)× IÑ IØ×$Ñ$Ð&8ó!Ñð !#ÐØ!%Ðð '�×&Ñ&Ø× Ñ Ø+ÖL�Q¨q¸×8KÑ8KÒ/KŠqÒLñMà×ÑØ× Ñ Ø×!Ñ!Ø×ÑØ�M‰Mð
ð ×+Ñ+Ø×'Ñ'×.Ñ.Ø ×1Ñ1×BÑBØ—n‘nØ!×2Ñ2ñ
ð ×Ññ
ˆð  —‘“ˆà×!Ñ!Ó#ˆä&9Ü×4Ñ4°eÈô'
ˆÔ#ô —M‘MØˆg˜×.Ñ.Ñ.ð
ˆ	ð "&×!1Ñ!1ˆ	Ôð × Ñ Ð,Ø×$Ñ$×'Ñ'Ð/à(,×(<Ñ(<ˆIÔ%àˆØ×*Ñ*×1Ñ1Ó3ò 	ˆJô #×/Ñ/Ø˜Z¨×);Ñ);ó‰Kð		ð 	×Ñ×,Ñ,¨Y¸ÔDáØ-ˆI×Ñ×-Ñ-Øðà×,Ñ,×=Ñ=Ø&óóð 	*ˆ	×Ñ×)Ñ)¨)ÐJ°d×6IÑ6IÓJØÐùò["ùò( Ms   ›9J)ÂJ.
Â*J.
c           	     ó4  —  | j                   | j                  | j                  z   t        | j                  «      t        | j
                  j                  «       «      z   | j                  | j                  | j                  | j                  f| j                  | j                  j                  | j                  j                  | j                  | j                   dœ| j"                  ¤Ž}| j$                  r' |j                  j&                  |g| j$                  ¢­Ž  |S )NrD  )rK  rð   rñ   r‘   rØ  r˜  rB  rö  rø  r
  ry  r¿  r�   rL  rM  r  r  rN  rÔ  rU  )rŒ   r”   s     r‚   r  z'ORMSelectCompileState._simple_statement†  sñ   € Ø*�D×*Ñ*Ø× Ñ  4×#9Ñ#9Ñ9Ü�$×#Ñ#Ó$¤u¨T×-=Ñ-=×-DÑ-DÓ-FÓ'GÑGØ× Ñ Ø×!Ñ!Ø×ÑØ�M‰Mð
ð ×+Ñ+Ø×'Ñ'×.Ñ.Ø ×1Ñ1×BÑBØ—n‘nØ!×2Ñ2ñ
ð ×Ññ
ˆ	ð ×ÒØ-ˆI×Ñ×-Ñ-¨iÐN¸$×:MÑ:MÓNØÐr�   c                óz  — t        j                  |||¬«      }|r||_        |r||_        |r|xj                  t        |«      z  c_        |r |j                  j                  |g|¢­Ž  n|r|j                  j                  |«       |r|xj                  t        |«      z  c_        ||_	        ||_
        ||_        ||_        ||_        ||_        |r||_        |r||_        ||_        |r||_        |	r|	|_        |
r |j(                  j                  |g|
¢­Ž  |� |j*                  j                  |g|¢­Ž  |S )N)ru  r×  rq  )r:   Ú_create_raw_selectrö  rø  r÷  r‘   r  rU  rù  Ú_limit_clauseÚ_offset_clauseÚ_fetch_clauseÚ_fetch_clause_optionsÚ_independent_ctesÚ_independent_ctes_optsÚ	_prefixesÚ	_suffixesr¿  rL  rM  r  r  )rŒ   Úraw_columnsr4  Úwhere_criteriaÚhaving_criteriar
  ry  rE  rF  rG  r  r  Úlimit_clauseÚoffset_clauseÚfetch_clauseÚfetch_clause_optionsr  rÿ  ÚprefixesÚsuffixesrû  Úindependent_ctesÚindependent_ctes_optsr”   s                           r‚   rK  z'ORMSelectCompileState._select_statementš  sK  € ô2 ×-Ñ-Ø$ØØ$ô
ˆ	ñ Ø(6ˆIÔ%ÙØ)8ˆIÔ&áØ×'Ò'¬5°«?Ñ:Õ'áØ-ˆI×Ñ×-Ñ-¨iÐF¸+ÔFÙØ×Ñ×-Ñ-¨iÔ8áØ×'Ò'¬5°«?Ñ:Õ'à".ˆ	ÔØ#0ˆ	Ô Ø".ˆ	ÔØ*>ˆ	Ô'Ø&6ˆ	Ô#Ø+@ˆ	Ô(áØ"*ˆIÔáØ"*ˆIÔà$.ˆ	Ô!áØ$ˆIÔÙØ)8ˆIÔ&áØ.ˆI×Ñ×.Ñ.¨yÐE¸9ÓEàÐ'Ø5ˆI×&Ñ&×5Ñ5ØðØ,óð Ðr�   c                óh  — d|j                   v r>|j                   d   }| j                  j                  |d «      }|r|j                  |«      S t	        |t
        j                  «      r|}nt        |d«      r|j                  }ny | j                  j                  |d «      }|r|j                  |«      S y )Nr!  ro  )	r  rê   r©   Úadapt_clauser&  r&   Ú
FromClauser.  ro  )rŒ   rn  ÚsearchrO  s       r‚   Ú_adapt_polymorphic_elementz0ORMSelectCompileState._adapt_polymorphic_elementç  s¨   € Ø˜W×1Ñ1Ñ1Ø×)Ñ)¨.Ñ9ˆFØ×.Ñ.×2Ñ2°6¸4Ó@ˆEÙØ×)Ñ)¨'Ó2Ð2ä�gœz×4Ñ4Ô5Ø‰FÜ�W˜gÔ&Ø—]‘]‰Fàà×*Ñ*×.Ñ.¨v°tÓ<ˆÙØ×%Ñ% gÓ.Ð.ð r�   c                óB   — |r|D �cg c]  } ||d«      ‘Œ c}S |S c c}w )NTr€   )rŒ   r‡  rˆ  Úos       r‚   r‰  z%ORMSelectCompileState._adapt_col_listù  s'   € ÙØ6:Ö;°‘O A tÕ,Ò;Ð;àˆKùò <s   ‡c                óÔ   ‡— g Š| j                   r'‰j                  d| j                   j                  f«       | j                  r‰j                  d| j                  f«       ‰sy ˆfd„}|S )NTFc                ó<   •— ˆfd„}t        j                  | i |«      S )Nc                ó|   •— d| j                   v xs d| j                   v }‰D ]  \  }}|s|sŒ || «      }|€Œ|c S  y )NÚ
_orm_adaptr!  )r  )rV  Úis_orm_adaptÚalways_adaptr8  ÚeÚadapterss        €r‚   ÚreplacezRORMSelectCompileState._get_current_adapter.<locals>._adapt_clause.<locals>.replace   sW   ø€ à  D×$5Ñ$5Ð5ò ;Ø%¨×):Ñ):Ð:ð ð .6ò %Ñ)�L 'Ù#¢|Ù# D›M˜Ø™=Ø#$šHñ	%r�   )r(   Úreplacement_traverse)r  rL  r�  r€  s      €r‚   Ú_adapt_clausezAORMSelectCompileState._get_current_adapter.<locals>._adapt_clause  s   ø€ ô	%ô ×0Ñ0°¸¸WÓEÐEr�   )rƒ  rý   r�  rê   rv  )rŒ   rƒ  r€  s     @r‚   rŒ  z*ORMSelectCompileState._get_current_adapterÿ  sl   ø€ Øˆà×Òð �O‰OàØ×(Ñ(×0Ñ0ðôð ×%Ò%Ø�O‰O˜U D×$CÑ$CÐDÔEáØô	Fð" Ðr�   c           
     óâ  — |D �]¿  \  }}}}|d   }|d   }t        |«      }|�t        |«      }t        |t        j                  «      r|�t	        j
                  d«      ‚|}d }nd|j                  v r|j                  d   }|€-|j                  s!t        |d«      st	        j                  d«      ‚t        |t        j                  «      r×t        |dd «      }	|€|	r|	}n|j                  }	 |j                  }|j                  }|j                  }t        |t        j                   «      s|}|||j"                  f| j$                  v r�ŒE|�b||ur^|j                  j'                  dd «      |ur@t	        j
                  d	|j                  j'                  d|«      ›d
|›�«      ‚|�d }|}nd x}}| j)                  |||||||«       �ŒÂ y # t        $ r}
t	        j                  d|z  «      |
‚d }
~
ww xY w)NÚisouterÚfullzUNo 'on clause' argument may be passed when joining to a relationship path as a targetr!  r  z9Expected mapped entity or selectable/table as join targetÚ_of_typez0Join target %s does not refer to a mapped entityzexplicit from clause z4 does not match left side of relationship attribute )r"   r&  r   ÚPropComparatorrk  r  r  r  r.  r/  r  r?  r…  ÚAttributeErrorÚ_parententityr   ÚQueryableAttributer  Ú_already_joined_edgesr©   Ú_join_left_to_right)rŒ   ÚargsÚentities_collectionÚrightÚonclauseÚfrom_Úflagsr…  r†  Úof_typeÚerrÚleftrX  s                r‚   rõ  zORMSelectCompileState._join/  s@  € Ø-1ó Z	Ñ)ˆE�8˜U EØ˜IÑ&ˆGØ˜‘=ˆDä˜E“NˆEØÐ#Ü" 8Ó,�ä˜%¤×!:Ñ!:Ô;ØÐ'Ü ×4Ñ4ð=óð ð
 !�Ø‘Ø 5×#5Ñ#5Ñ5Ø×*Ñ*¨>Ñ:�àÐØ×*Ò*´7¸5À(Ô3KÜ ×.Ñ.ð:óð ô
 ˜(¤J×$=Ñ$=Ô>ô " (¨J¸Ó=�à�=ÙØ '™à (× 1Ñ 1˜ð'Ø$)§L¡L˜Eð  ×-Ñ-�à×(Ñ(�Ü! (¬J×,IÑ,IÔJØ#�Hð ˜% §¡Ð*¨d×.HÑ.HÑHÙàÐ$à TÑ)Ø!×.Ñ.×2Ñ2°>À4ÓHØ#ñ$ô %×8Ò8ð !&× 2Ñ 2× 6Ñ 6°~ÀuÕ MÙ (ð	óð ð Ð"Ø�Ø‘ð #Ð"��tð ×$Ñ$Ø#ØØØØØØöñeZ	øôR  .ò 'Ü"(×"6Ñ"6ð!0Ø27ñ!8ó#ð $'ð'ûð'ús   Ã+GÇ	G.ÇG)Ç)G.c           	     óN  — |€|�J ‚| j                  ||||«      \  }}}	n| j                  ||«      \  }}	||u rt        j                  d|›d|›d�«      ‚| j	                  ||||«      \  }
}}|
j
                  s| j                  |
«      }nd}|�J| j                  |   }| j                  d| t        ||||||¬«      gz   | j                  |dz   d z   | _        y|	�%t        ||	   t        «      sJ ‚||	   j                  }n|}| j                  t        ||
||||¬«      gz   | _        y)zÆgiven 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)

        NzCan't construct a join from z to z, they are the same entityr€   )r…  r†  Ú_extra_criteriar   )Ú"_join_determine_implicit_left_sideÚ_join_place_explicit_left_siderk  r  Ú _join_check_and_adapt_right_sider  Ú_get_extra_criteriarØ  r   r&  r'  r¤   )rŒ   r�  r–  r�  r‘  rX  Ú	outerjoinr†  Úreplace_from_obj_indexÚuse_entity_indexÚr_infoÚextra_criteriaÚleft_clauses                r‚   r�  z)ORMSelectCompileState._join_left_to_rightŒ  s«  € ð  ˆ<ð �<Ð�<ð
 ×7Ñ7Ø# T¨5°(óñ	ØØ&Ù ð ×3Ñ3Ð4GÈÓNñØ&Ø ð �5‰=Ü×,Ò,â)-ªuð6óð ð #'×"GÑ"GØ�%˜ 4ó#
Ñˆ��xð ×#Ò#Ø!×5Ñ5°fÓ=‰NàˆNà!Ð-ð ×+Ñ+Ð,BÑCˆKð ×!Ñ!Ð"9Ð#9Ð:äØ#ØØ Ø )Ø!Ø(6ôð	ñ
ð ×#Ñ#Ð$:¸QÑ$>Ð$@ÐAñBð Õð   Ð+ô "Ø'Ð(8Ñ9¼=ôð ð ð 2Ð2BÑC×NÑN‘à"�à $× 1Ñ 1ÜØØØØ%ØØ$2ôð	5ñ 	!ˆDÕr�   c                óz  — t        |«      }dx}}| j                  r‹t        j                  | j                  |j                  |«      }t        |«      dk(  r|d   }| j                  |   }�nMt        |«      dkD  rt        j                  d«      ‚t        j                  d|›d�«      ‚|rúi }	t        |«      D ]W  \  }
}|j                  }|€Œt        |«      }||u rŒ%t        |t        «      r|
|f|	|j                  <   ŒGd|f|	|j                  <   ŒY t        |	j                  «       «      }t        j                  ||j                  |«      }t        |«      dk(  r|	||d         \  }}nQt        |«      dkD  rt        j                  d«      ‚t        j                  d|›d�«      ‚t        j                  d«      ‚|||fS )z­When 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.

        Nr   r   a  Can'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.zDon'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"   rØ  rJ  Úfind_left_clause_to_join_fromr¤   r  rk  r  Ú	enumerateÚentity_zero_or_selectabler&  r'  r	  Úkeys)rŒ   r�  r–  r�  r‘  r   rž  rŸ  ÚindexesÚ	potentialÚentity_indexr(  r…  Úent_infoÚall_clausess                  r‚   r™  z8ORMSelectCompileState._join_determine_implicit_left_sideï  sü  € ô& ˜“ˆà48Ð8ÐÐ!1à×Òô ×<Ñ<Ø×!Ñ! 6×#4Ñ#4°hóˆGô �7‹|˜qÒ Ø)0°©Ð&Ø×(Ñ(Ð)?Ñ@’Ü�W“ Ò!Ü×0Ñ0ð5óð ô ×0Ò0ò
 9>ð	@óð ñ !ð ˆIÜ%.Ð/BÓ%Cò DÑ!�˜cØ×6Ñ6�Ø�>ØÜ" 6›?�Ø˜vÑ%Øô
 ˜c¤=Ô1Ø1=¸vÐ0F�I˜cŸn™nÒ-à6:¸F°^�I˜h×1Ñ1Ò2ðDô  ˜yŸ~™~Ó/Ó0ˆKÜ×<Ñ<Ø˜V×.Ñ.°óˆGô �7‹|˜qÒ Ø)2°;¸wÀq¹zÑ3JÑ)KÑ&Ð ¡$Ü�W“ Ò!Ü×0Ñ0ð5óð ô ×0Ò0ò
 9>ð	@óð ô ×,Ñ,ð1óð ð Ð+Ð-=Ð=Ð=r�   c                ó€  — dx}}t        |«      }| j                  rTt        j                  | j                  |j                  «      }t        |«      dkD  rt        j                  d«      ‚|r|d   }|€J|rHt        |d«      r<t        |«      D ].  \  }}t        |t        «      sŒ|j                  |«      sŒ)|} ||fS  ||fS )zøWhen join conditions express a left side explicitly, determine
        where in our existing list of FROM clauses we should join towards,
        or if we need to make a new join, and if so is it from one of our
        existing entities.

        Nr   zrCan't identify which entity in which to assign the left side of this join.   Please use a more specific ON clause.r   r  )r"   rØ  rJ  Ú#find_left_clause_that_matches_givenr¤   r  rk  r  r.  r¥  r&  r'  Úcorresponds_to)	rŒ   r�  r–  rž  rŸ  Úl_infor¨  Úidxr(  s	            r‚   rš  z4ORMSelectCompileState._join_place_explicit_left_sideY  sâ   € ð2 59Ð8ÐÐ!1ä˜“ˆØ×ÒÜ×BÑBØ×!Ñ! 6×#4Ñ#4óˆGô �7‹|˜aÒÜ×0Ñ0ð!óð ñ Ø)0°©Ð&ð #Ð*Ù#Ü˜ Ô)ä%Ð&9Ó:ò ‘��Sô ˜c¤=Õ1°c×6HÑ6HÈÕ6NØ'*Ð$Øà%Ð'7Ð7Ð7ðð &Ð'7Ð7Ð7r�   c           	     ó€  — t        |«      }t        |«      }d}t        |dd«      }|r•|j                  s$t        |j                  t
        j                  «      re| j                  xs |j                  gD ]G  }	t        j                  |j                  |	«      sŒ$t        j                  |	|j                  «      sŒEd} n |r:|j                  |j                  u r"t        j                  d|j                  z  «      ‚t        |dd«      |j                  t        |dd«      }}
}|r8|r6|j                  |j                  «      st        j                  d|›d|›�«      ‚t        |d«      r| xj                   |fz  c_        d}|j"                  rô|r|j                  }|
j$                  r| j'                  «       }|�È ||d«      }n¾|r¼|
j)                  |j                  «      s:t        j                  d	|
j*                  ›d
|j                  j*                  ›d�«      ‚t        |
t
        j,                  «      r&t/        j0                  t2        j4                  |
«      }
d}t7        ||
«      }t9        j:                  d|z  dd¬«       |xr | xr |}|s+|r)t7        |d¬«      }d}t9        j<                  d|z  d¬«       |rF|sJ ‚t?        t@        jB                  t        |«      |jD                  ¬«      }| jG                  ||«       n[|j"                  sO|sM|jH                  rA| jG                  |t?        t@        jJ                  ||j                  |jD                  ¬«      «       t        |t
        jL                  «      r| j'                  «       }|r	 ||d«      }|r#| xjN                  |||jP                  ffz  c_'        t        |«      ||fS )zútransform the "right" side of the join as well as the onclause
        according to polymorphic mapping translations, aliasing on the query
        or on the join, special cases where the right and left side have
        overlapping tables.

        Fr  NTz*Can't join table/selectable '%s' to itselfr,  zJoin target z9 does not correspond to the right side of join condition zSelectable 'z' is not derived from 'ú'zÕAn alias is being generated automatically against joined entity %s for raw clauseelement, which is deprecated and will be removed in a later release. Use the aliased() construct explicitly, see the linked example.z1.4Úxaj1)Úcode)Úflatz÷An alias is being generated automatically against joined entity %s due to overlapping tables.  This is a legacy pattern which may be deprecated in a later release.  Use the aliased(<entity>, flat=True) construct explicitly, see the linked example.Úxaj2r-  )r¤   r+  ))r"   r  Úwith_polymorphicr&  r-  r&   ÚJoinrØ  r¤   rJ  Úselectables_overlaprk  r  Úcommon_parentr  r.  rò  Úis_clause_elementÚ_is_lateralrŒ  Úis_derived_fromÚdescriptionrP   r%   rŸ  r'   ÚFromClauseRoler   r$   Úwarn_deprecatedÚwarnr   r   Ú DEPRECATED_JOIN_ADAPT_RIGHT_SIDEr1  r/  Ú#_has_aliased_polymorphic_fromclauseÚ#WITH_POLYMORPHIC_ADAPTER_RIGHT_JOINÚClauseElementrŒ  r  )rŒ   r–  r�  r‘  rX  r°  r   ÚoverlapÚright_mapperr4  Úright_selectableÚright_is_aliasedÚneed_adapterrˆ  Úaliased_entityr8  s                   r‚   r›  z6ORMSelectCompileState._join_check_and_adapt_right_side›  s·  € ô ˜“ˆÜ˜“ˆàˆä˜v x°Ó6ˆñ Ø×)Ò)Ü˜,×9Ñ9¼:¿?¹?ÔKà ×-Ñ-ÒD°&×2CÑ2CÐ1Dò �Ü×/Ñ/Ø×%Ñ% xõä×2Ñ2Ø˜f×/Ñ/õð #�GÙðñ �v×(Ñ(¨F×,=Ñ,=Ñ=Ü×,Ñ,Ø<Ø×#Ñ#ñ$óð ô �F˜H dÓ+Ø×ÑÜ�FÐ.°Ó6ð )9Ð&ˆñ ÙØ ×.Ñ.¨t¯{©{Ô;ä×,Ò,â9>ÁðJóð ô �6˜8Ô$Ø×Ò F 9Ñ,Õàˆð ×#Ò#ÙØ#Ÿ{™{�à×+Ò+ð #'×";Ñ";Ó"=�Ø"Ð.ñ ,¨E°4Ó8‘Eáð (×7Ñ7Ø ×3Ñ3ôô !×4Ò4ð -×8Ó8Ø(×;Ñ;×GÓGðóð ô Ð.´
×0EÑ0EÔFÜ'0×'7Ñ'7Ü×,Ñ,Ð.>ó(Ð$ð $(�Lô % \Ð3CÓD�ä×$Ñ$ðDð
 #ñ#ð Øõ	ð &ÒJÐ.>Ð*>ÒJÀ7ˆá¡ô ! ¨TÔ2ˆEØˆLä�I‰Ið@ð
 COñOð õñ ñ  Ð�<ä Ü×@Ñ@Ü˜“Ø(×<Ñ<ôˆGð ×3Ñ3°LÀ'ÕJà×(Ò(Ù$Ø×@Ò@ð ×3Ñ3ØÜÜ#×GÑGØ Ø+×6Ñ6Ø ,× @Ñ @ô	ôô �h¤
× 8Ñ 8Ô9Ø"×7Ñ7Ó9ˆOÙÙ*¨8°TÓ:�ñ Ø×&Ò&¨D°%¸¿¹Ð+BÐ*DÑDÕ&ä�u‹~˜u hÐ.Ð.r�   c                ó¢  — | j                   j                  | j                   j                  | j                  | j                  | j                   j
                  | j                   j                  | j                  xs d | j                   j                  | j                   j                  | j                   j                  | j                   j                  dœS )N)rj  rk  r  rÿ  rn  ro  rû  rl  rm  rp  rq  )r�   r_  r`  r  rÿ  re  rf  rû  ra  rb  rc  rd  r™   s    r‚   rN  z"ORMSelectCompileState._select_argsX	  s¢   € ð !×1Ñ1×?Ñ?Ø!×2Ñ2×AÑAØŸ™Ø×+Ñ+Ø×-Ñ-×7Ñ7Ø×-Ñ-×7Ñ7ØŸ™Ò-¨Ø ×1Ñ1×?Ñ?à×%Ñ%×;Ñ;à $× 5Ñ 5× GÑ Gà×%Ñ%×<Ñ<ñ
ð 	
r�   c                óâ   — | j                   }|j                  d«      d uxsO |j                  d«      d uxs: |j                  dd«      xs& |j                  dd«      xs |j                  dd«      S )Nrj  rk  r  Frÿ  r€   rû  )rN  r©   )rŒ   Úkwargss     r‚   r
  z-ORMSelectCompileState._should_nest_selectablel	  sv   € à×"Ñ"ˆà�J‰J�~Ó&¨dÐ2ò -Ø�z‰z˜/Ó*°$Ð6ò-à�z‰z˜* eÓ,ò-ð �z‰z˜-¨Ó,ò-ð �z‰z˜* eÓ,ð	
r�   c                ó˜   ‡ ‡— d‰j                   f‰ j                  v r.t        ˆˆ fd„‰ j                  d‰j                   f   D «       «      S y)NÚadditional_entity_criteriac              3  ó–   •K  — | ]@  }|j                   s|j                  ‰u r$|j                  ‰«      r|j                  ‰«      –— ŒB y ­wr†   )Úinclude_aliasesr…  Ú_should_includeÚ_resolve_where_criteria)r‰   Úaer2  rŒ   s     €€r‚   r�   z<ORMSelectCompileState._get_extra_criteria.<locals>.<genexpr>|	  sH   øè ø€ ò àð ×&Ò&¨"¯)©)°xÑ*?Ø×&Ñ& tÔ,ð ×*Ñ*¨8×4ñùs   ƒAA	r€   )r  r¥   r‘   )rŒ   r2  s   ``r‚   rœ  z)ORMSelectCompileState._get_extra_criteriaw	  sZ   ù€ à(Ø�O‰Oð
ð ×#Ñ#ñ$ô ô à×0Ñ0Ø1°8·?±?ÐCñôó ð ð r�   c                ó  — | j                   D ]Š  }|j                  j                  dd«      }|sŒ"|j                  j                  €d|j                  f| j
                  v sŒS|| j                  vsŒb||j                  r|j                  ndf| j                  |<   ŒŒ t        | j                  j                  «       «      }|D ]¿  \  }}|| j                  v rŒ|j                  j                  }| j                  j                  rg }n| j                  |«      }|�||fz  }| j                  «       }|D ]N  }|r|j!                  |«      }|r!t#        j$                  |ddi«      } ||d«      }| xj&                  |fz  c_        ŒP ŒÁ y)aà  Apply 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!  NrÑ  r|  TF)rØ  r  r©   r  Ú_single_table_criterionr¥   rz  r,  r0  rw  rB  rò  rë   rß   rœ  rŒ  ÚtraverserJ  Ú_deep_annotaterö  )	rŒ   Ú
fromclauser2  ru  r8  Úsingle_critrÑ  rˆ  ræ  s	            r‚   r  z0ORMSelectCompileState._adjust_for_extra_criteria‡	  s‹  € ð ×+Ñ+ò 	ˆJØ!×.Ñ.×2Ñ2°>À4ÓHˆHò à—O‘O×;Ñ;ÐGØ4°h·o±oÐFØ×-Ñ-ò.ð  D×$@Ñ$@Ò@ð Ø)1×)BÒ)B�H×%Ò%Èð:�×,Ñ,¨XÒ6ð	ô" �T×1Ñ1×8Ñ8Ó:Ó;ˆà!'ò 	0ÑˆH�gØ˜4×.Ñ.Ñ.Øà"Ÿ/™/×AÑAˆKà×#Ñ#×6Ò6Ø-/Ñ*à-1×-EÑ-EÀhÓ-OÐ*àÐ&Ø*¨{¨nÑ<Ð*à"×7Ñ7Ó9ˆOØ2ò 0�ÙØ"×+Ñ+¨DÓ1�Dá"Ü#×2Ñ2°4¸,ÈÐ9MÓN�DÙ*¨4°Ó7�DØ×$Ò$¨¨Ñ/Ö$ñ0ñ	0r�   )
r”   rø   r®   rí   r­   r=  r¸   r   rœ   r§  r†   )0rq   rr   rs   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  r  r  rK  rv  r‰  rŒ  rõ  r�  r™  rš  r›  r?  rN  r
  rœ  r  r€   r�   r‚   r§  r§  -  sž  „ àÐà$Ðà€OØ ÐàÐØ#ÐØÐØ!Ðà€IØÐØ€OØÐàð`à/ð`ð ð	`ð
 (ð`ð ð`ð 
ò`ó ð`òD
5òKðZ ñó ðð2 ñ@ó ð@ð
 ñ8ó ð8ð ñ
ó ð
ð  ñó ðò"+òò8(òò0ó#òò"Yòvò(KòZ/ò$ò.ò`[òzaòFh>òT@8òD{/ðz ñ
ó ð
ð& ñ
ó ð
òó 70r�   r§  c                ój  — |€t         j                  | |¬«      }|}|j                  D �cg c]  }||j                  f‘Œ c}D ��cg c][  \  }}|j                  |j
                  t        |dd«      |j                  |j                  �|j                  st        |dd «      nd dœ‘Œ] }}}|S c c}w c c}}w )N)r  r,  Fr…  )r  ÚtypeÚaliasedÚexprr…  )	r§  r<  ré   r8  Ú_label_namerÞ  r  rà  r¼  )Úquery_or_select_stmtrW   r  r  Ú_entr(  Úinsp_entÚds           r‚   r  r  Á	  sÍ   € ð
 ÐÜ-×IÑIØ ¨ð Jó 
ˆð €Cð 25·±ö
Ø)-ˆT�4×#Ñ#Ò$ò
÷	ñ ˆC�ð —O‘OØ—H‘HÜ˜xÐ);¸UÓCØ—H‘Hð —?‘?Ð.Ø ×2Ò2ô ˜ (¨DÔ1ð ó	
ð	€Añ 	ð" €Hùò	
ùó	s   ªB*ÁA B/c                óÚ   — | }|j                   r|j                  }|�|S |j                  r7d|j                  d   j                  v r|j                  d   j                  d   S t	        |«      S )Nr!  r   )rô  Ú_last_joined_entityr×  r  Ú_entity_from_pre_ent_zero)Úquery_or_augmented_selectrŒ   rç  s      r‚   Ú_legacy_filter_by_entity_zerorê  ß	  sl   € ð %€DØ×ÒØ"×6Ñ6ÐØÐ*Ø&Ð&à‡~‚~˜.¨D¯N©N¸1Ñ,=×,JÑ,JÑJØ�~‰~˜aÑ ×-Ñ-¨nÑ=Ð=ä$ TÓ*Ð*r�   c                óî   — | }|j                   sy |j                   d   }d|j                  v r|j                  d   S t        |t        «      r|j                  S d|j                  v r|j                  d   S |S )Nr   r!  Úbundle)ru  r  r&  r   r…  )ré  rŒ   r(  s      r‚   rè  rè  î	  s}   € ð %€DØ×ÒØà
×
Ñ
˜AÑ
€Cà˜×)Ñ)Ñ)Ø×Ñ Ñ/Ð/Ü	�CÔ-Ô	.Ø�z‰zÐØ	�S×%Ñ%Ñ	%Ø×Ñ Ñ)Ð)àˆ
r�   c                ól   — | sy | d   \  }}}}t        |t        j                  «      r|j                  S |S )Néÿÿÿÿ)r&  r   r‹  r…  )r  r8  Útargetr‘  r’  r“  s         r‚   r  r  
  sA   € ñ Øà'2°2¡Ñ$€VˆX�u˜eäØÜ×%Ñ%ôð �}‰}Ðàˆr�   c                  ó†   — e Zd ZU dZdZded<   dZdZdZded<   ded	<   d
ed<   ded<   dd„Z		 	 	 	 	 	 dd„Z
d„ Zed„ «       Zy)rs  z:represent an entity column returned within a Query result.r€   rí   Úsupports_single_entityFzOptional[str]rá  z!Union[Type[Any], TypeEngine[Any]]rÞ  z.Union[_InternalEntityType, ColumnElement[Any]]rà  zOptional[_InternalEntityType]r8  c                ó   — t        «       ‚r†   r»   ©rŒ   rW   s     r‚   r{  z _QueryEntity.setup_compile_state#
  rö   r�   c                ó   — t        «       ‚r†   r»   ©rŒ   rW   r8  s      r‚   r’  z._QueryEntity.setup_dml_returning_compile_state&
  s   € ô
 "Ó#Ð#r�   c                ó   — t        «       ‚r†   r»   )rŒ   r   rÄ   s      r‚   Úrow_processorz_QueryEntity.row_processor-
  rö   r�   c                óŒ  — t        |«      D �]4  \  }}|j                  r7|j                  r| j                  ||j                  ||«       Œ>|j                  }|j
                  rÄ|j                  rAd|j                  v rt        ||||«       Œt        j                  ||j                  |||«       Œ£|j                  j                  dd«      rt        ||||«       ŒÎ|j                  r$t        j                  ||j                  |||«       Œþt        j                  ||g|||«       �Œ|j                  s�Œ(t        |||«       �Œ7 |S )Nr!  rì  F)r¥  Ú_is_lambda_elementÚ_is_sequencert  Ú	_resolvedr¼  r  r  r'  Ú_ColumnEntityÚ_for_columnsÚ_select_iterabler©   Ú_BundleEntityÚ_is_clause_listÚ	is_bundle)r·   rW   r¢  r�  rg  r±  r…  s          r‚   rt  z_QueryEntity.to_compile_state0
  sX  € ô % XÓ.ó 9	J‰KˆC�Ø×(Ò(Ø×&Ò&Ø×(Ñ(Ø%Ø×(Ñ(Ø+Ø+ô	ð à#×-Ñ-�Fà×'Ò'Ø×'Ò'Ø%¨×)<Ñ)<Ñ<Ü%Ø)Ø"Ø/Ø/õ	ô &×2Ñ2Ø)Ø"×3Ñ3Ø/ØØ/õð ×*Ñ*×.Ñ.¨x¸Ô?Ü%Ø)Ø"Ø/Ø/õ	ð  ×/Ò/ô &×2Ñ2Ø)Ø"×3Ñ3Ø/ØØ/õô &×2Ñ2Ø)Ø#˜HØ/ØØ/öð ×!Ô!Ü˜m¨VÐ5HÖIðs9	Jðv #Ð"r�   N)rW   rn   rœ   ÚNone©rW   rn   r8  z Optional[_DMLReturningColFilter]rœ   r  )rq   rr   rs   rÓ   r�   rž   Ú_non_hashable_valueÚ_null_column_typeÚuse_id_for_hashr{  r’  r÷  rÉ   rt  r€   r�   r‚   rs  rs  
  sx   … ÙDà€Ià Ó àÐØÐØ€OàÓØ
+Ó+Ø
8Ó8Ø.Ó.ó$ð$à&ð$ð 2ð$ð 
ó	$ò$ð ñ>#ó ñ>#r�   rs  c                  ó°   — e Zd ZU dZdZded<   ded<   ded<   ded	<   d
ed<   ded<   d„ ZdZdZdZ	e
d„ «       Ze
d„ «       Zd„ Zd„ Zd„ Z	 	 	 	 	 	 dd„Zd„ Zy)r'  z mapper/class/AliasedClass entity)
rà  r  r8  r,  ÚpathÚ_extra_entitiesrá  r6  r¤   Ú_polymorphic_discriminatorr?   rà  zMapper[Any]r  r8  rí   r,  r   r  Ústrrá  c                ó’  — |j                  | «       |r!|j                  €| |_        d|_        d|_        |j                  d   }|j
                   |x}| _        |j                  }|| _        |j                  x| _	        }| j                  f| _
        |j                  r|j                  | _        n|j                  j                  | _        |j                  | _        |j                   | _        |j$                  | _        |j&                  | _        |j*                  | _        |j.                  r|j1                  || j$                  «       y y )NTr!  )rý   rì   r>  r”  r  Ú_post_inspectr8  r…  rà  r  r	  r,  r  rá  Úclass_rq   ræ   r  r¤   Úwith_polymorphic_mappersr6  Úpolymorphic_onr
  Ú _should_select_with_poly_adapterr4  )rŒ   rW   r…  r�  rg  r2  r  s          r‚   r—   z_MapperEntity.__init__‰
  s  € ð 	×"Ñ" 4Ô(ÙØ×,Ñ,Ð4Ø04�Ô-Ø15ˆMÔ.Ø.2ˆMÔ+à×$Ñ$ ^Ñ4ˆØ×ÒØ&,Ð,ˆ�4Ô#Ø—‘ˆàˆŒ	Ø'Ÿ™Ð.ˆŒ�fà $§	¡	˜|ˆÔà×$Ò$Ø'Ÿ}™}ˆDÕà%Ÿ}™}×5Ñ5ˆDÔà (× 9Ñ 9ˆÔØ×+Ñ+ˆŒ	à"×-Ñ-ˆŒØ)1×)JÑ)JˆÔ&Ø*2×*AÑ*AˆÔ'à×2Ò2Ø×:Ñ:Ø˜$Ÿ/™/õð 3r�   Tc                ó.   — | j                   j                  S r†   )r  r  r™   s    r‚   rÞ  z_MapperEntity.type³
  s   € à�{‰{×!Ñ!Ð!r�   c                ó   — | j                   S r†   )r8  r™   s    r‚   r¦  z'_MapperEntity.entity_zero_or_selectable·
  s   € à×ÑÐr�   c                ó.   — t        | j                  |«      S r†   )r   r8  ©rŒ   r…  s     r‚   r¯  z_MapperEntity.corresponds_to»
  s   € Ü% d×&6Ñ&6¸Ó?Ð?r�   c                ó*  — d }| j                   s3|j                  r=|j                  j                  | j                  d «      }n| j                  j
                  }|r-|j                  r|j                  |j                  «      }|S |}|S |j                  }|S r†   )r,  rê   r©   r  r8  r0  rƒ  Úwrap)rŒ   rW   r8  Úrets       r‚   Ú_get_entity_clausesz!_MapperEntity._get_entity_clauses¾
  s’   € Øˆà×$Ò$Ø×2Ò2Ø'×=Ñ=×AÑAØ—K‘K ó‘ð ×&Ñ&×/Ñ/ˆGáØ×,Ò,Ø—l‘l =×#@Ñ#@ÓA�ð ˆ
ð	 �ð ˆ
ð  ×/Ñ/ˆCàˆ
r�   c                óÀ  — |j                   }| j                  |«      }|j                  r|r|j                  |j                  «      }n|s|j                  }|j                  | u r#|j
                  j                  }|j                  }nd x}}t        j                  | | j                  ||| j                  |||| j                  ¬«	      }|| j                  | j                  fS )N)Úonly_load_propsrc   Úpolymorphic_discriminator)rW   r  r—  r  rì   rë   rÝ   rc   r   Ú_instance_processorr  r  r
  rá  r	  )rŒ   r   rÄ   rW   r8  r  rc   Ú	_instances           r‚   r÷  z_MapperEntity.row_processorÓ
  sÒ   € Ø×-Ñ-ˆØ×*Ñ*¨=Ó9ˆà×/Ò/±GØ—l‘l =×#GÑ#GÓH‰GÙØ#×:Ñ:ˆGà×(Ñ(¨DÑ0Ø+×;Ñ;×LÑLˆOØ#×1Ñ1‰Mà.2Ð2ˆO˜mä×/Ñ/ØØ�K‰KØØØ�I‰IØØ+Ø'Ø&*×&EÑ&Eô

ˆ	ð ˜$×*Ñ*¨D×,@Ñ,@Ð@Ð@r�   c                óÌ   — t        j                  || j                  | | j                  ||j                  | j
                  |j                  j                  | j                  ¬«	       y )N©r¸  r  r  )	r   Ú_setup_entity_queryr  r  rð   r6  rë   rÝ   r
  rõ  s      r‚   r’  z/_MapperEntity.setup_dml_returning_compile_stateð
  sS   € ô
 	×#Ñ#ØØ�K‰KØØ�I‰IØØ×)Ñ)Ø!×;Ñ;Ø)×9Ñ9×JÑJØ&*×&EÑ&Eö
	
r�   c                ó  — | j                  |«      }| j                  j                  }|€d| j                  f|j                  v r5| j                  }||j
                  r|j                  nd f|j                  |<   t        j                  || j                  | | j                  ||j                  | j                  |j                  j                  | j                  ¬«	       |j                   j#                  | j$                  «       y )NrÑ  r   )r  r  rØ  r¥   r8  r,  r0  rz  r   r!  r  rð   r6  rë   rÝ   r
  rx  rý   r¤   )rŒ   rW   r8  Úsingle_table_critr2  s        r‚   r{  z!_MapperEntity.setup_compile_state  sâ   € Ø×*Ñ*¨=Ó9ˆà ŸK™K×?Ñ?ÐàÐ)Ø,¨d¯k©kÐ:Ø×.Ñ.ñ/ð ×'Ñ'ˆHàØ%-×%>Ò%>�×!Ò!ÀDð?ˆM×1Ñ1°(Ñ;ô
 	×#Ñ#ØØ�K‰KØØ�I‰IØØ×)Ñ)Ø!×;Ñ;Ø)×9Ñ9×JÑJØ&*×&EÑ&Eõ
	
ð 	×,Ñ,×3Ñ3°D·O±OÕDr�   Nr  )rq   rr   rs   rÓ   r�   rž   r—   rñ  r  r  r?  rÞ  r¦  r¯  r  r÷  r’  r{  r€   r�   r‚   r'  r'  r
  s©   … Ù*ð€Ið ÓØÓØ$Ó$ØÓØ
ÓØÓò#ðJ "ÐàÐØ€Oàñ"ó ð"ð ñ ó ð ò@òò*Að:
à&ð
ð 2ð
ð 
ó	
ó"Er�   r'  c                  ó´   — e Zd ZU dZdZded<   ded<   ded<   d	ed
<   ded<   ded<   	 	 dd„Zed„ «       Zed„ «       Z	d„ Z
ed„ «       Zd„ Z	 	 	 	 	 	 dd„Zd„ Zy)rÿ  r€   )rì  rà  rÞ  rá  ré   rñ  rè   ré   r   rì  z	Type[Any]rÞ  r  rá  rí   rñ  rà  Nc           	     óˆ  — d|_         |j                  d   }|r|j                  j                  | «       n|j                  | «       t	        |t
        j                  t        j                  f«      r|j                  «       }n|}|x| _
        | _        t        |«      | _        |j                  | _        g | _        |rm|j                  D ]^  }d|j                  v rt!        ||||| ¬«       Œ"t	        |t"        «      rt!        ||||| ¬«       ŒCt$        j'                  ||g|d || ¬«       Œ` | j                  j(                  | _        y )NTrì  ©Úparent_bundle)r”  r  ré   rý   r&  r   r‹  r   rˆ  r"  rì  rà  rÞ  r  rá  Úexprsrÿ  r   Ú_ORMColumnEntityrý  Úsingle_entityrñ  )rŒ   rW   rà  r�  rg  Úsetup_entitiesr'  rì  s           r‚   r—   z_BundleEntity.__init__1  s;  € ð +/ˆÔ'à× Ñ  Ñ*ˆÙØ×#Ñ#×*Ñ*¨4Õ0à×&Ñ& tÔ,äØ”:×0Ñ0´*×2KÑ2KÐLô
ð ×,Ñ,Ó.‰FàˆFà"(Ð(ˆŒ�d”iÜ˜“LˆŒ	Ø!Ÿ;™;ˆÔØˆŒáØŸ™ò �Ø˜t×0Ñ0Ñ0Ü!Ø%ØØ+Ø+Ø&*öô   ¤fÔ-Ü!Ø%ØØ+Ø+Ø&*öô %×1Ñ1Ø%Ø˜Ø+ØØ+Ø&*ð 2õ ð%ð6 '+§k¡k×&?Ñ&?ˆÕ#r�   c                ó8   — | j                   }|�|j                  S y r†   )r8  r  )rŒ   r  s     r‚   r  z_BundleEntity.mapperl  s    € à× Ñ ˆØÐØ—<‘<Ðàr�   c                óJ   — | j                   D ]  }|j                  }|€Œ|c S  y r†   )ré   r8  ©rŒ   r(  r  s      r‚   r8  z_BundleEntity.entity_zerot  s.   € à—>‘>ò 	ˆCØ—O‘OˆEØÑ Ø’ð	ð
 r�   c                 ó   — yrç  r€   r  s     r‚   r¯  z_BundleEntity.corresponds_to}  s   € ð r�   c                óJ   — | j                   D ]  }|j                  }|€Œ|c S  y r†   )ré   r¦  r.  s      r‚   r¦  z'_BundleEntity.entity_zero_or_selectable‚  s0   € à—>‘>ò 	ˆCØ×1Ñ1ˆEØÑ Ø’ð	ð
 r�   c                óH   — | j                   D ]  }|j                  |«       Œ y r†   )ré   r{  )rŒ   rW   r(  s      r‚   r{  z!_BundleEntity.setup_compile_state‹  s#   € Ø—>‘>ò 	3ˆCØ×#Ñ# MÕ2ñ	3r�   c                ó$   — | j                  |«      S r†   ©r{  rõ  s      r‚   r’  z/_BundleEntity.setup_dml_returning_compile_state�  ó   € ð
 ×'Ñ'¨Ó6Ð6r�   c           	     óô   — t        | j                  D �cg c]  }|j                  ||«      ‘Œ c}Ž \  }}}| j                  j	                  |j
                  ||«      }|| j                  | j                  fS c c}w r†   )r’   ré   r÷  rì  Úcreate_row_processorrX   rá  r	  )rŒ   r   rÄ   r(  ÚprocsÚlabelsÚextraÚprocs           r‚   r÷  z_BundleEntity.row_processor–  so   € Ü"Ø<@¿N¹NÖK°Sˆc×Ñ ¨Õ0ÒKð 
Ñˆˆv�uð �{‰{×/Ñ/°·±¸uÀfÓMˆà�T×%Ñ% t×';Ñ';Ð;Ð;ùò Ls   ”A5rä  r  )rq   rr   rs   r	  r�   rž   r—   r?  r  r8  r¯  r¦  r{  r’  r÷  r€   r�   r‚   rÿ  rÿ    s¬   … Ø€Oð€Ið "Ó!ØƒNØ
ƒOØÓØ Ó Ø
ƒLð Øó9@ðv ñó ðð ñó ðòð
 ñó ðò3ð7à&ð7ð 2ð7ð 
ó	7ó<r�   rÿ  c                  óZ   — e Zd ZdZe	 dd„«       Zed„ «       Zed„ «       Zed„ «       Z	d„ Z
y)	rü  )Ú_fetch_columnÚ_row_processorÚraw_column_indexÚtranslate_raw_columnNc           
     óø   — |D ]u  }|j                   }d|v r|d   }	nt        j                  |d«      }	|	r4d|j                   v rt        ||||	|||¬«       ŒRt	        ||||	|||¬«       Œet        ||||||¬«       Œw y )Nr!  ri   r&  )r  rJ  Úextract_first_column_annotationÚ_IdentityTokenEntityr)  Ú_RawColumnEntity)
r·   rW   rB  r�  r>  rg  r'  Úcolumnr   Ú_entitys
             r‚   rý  z_ColumnEntity._for_columns¨  s°   € ð ò &	ˆFØ ×-Ñ-ˆKØ Ñ,Ø% nÑ5‘ä"×BÑBØ˜Nó�ñ Ø# v×':Ñ':Ñ:Ü(Ø%ØØ+ØØ(Ø+Ø&3öô %Ø%ØØ+ØØ(Ø+Ø&3öô !Ø!ØØ'Ø$Ø'Ø"/öñ?&	r�   c                ó.   — | j                   j                  S r†   )rD  rÞ  r™   s    r‚   rÞ  z_ColumnEntity.typeÚ  s   € à�{‰{×ÑÐr�   c                óD   — | j                   j                  j                   S r†   )rD  rÞ  Úhashabler™   s    r‚   r  z!_ColumnEntity._non_hashable_valueÞ  s   € à—;‘;×#Ñ#×,Ñ,Ð,Ð,r�   c                óB   — | j                   j                  j                  S r†   )rD  rÞ  Ú_isnullr™   s    r‚   r  z_ColumnEntity._null_column_typeâ  s   € à�{‰{×Ñ×'Ñ'Ð'r�   c                óÖ  — |j                   }| j                  �H| j                  \  }}}| j                  r'||j                  j                  | j
                     fz  }|||fS | j                  �| j                  }nM| j                  }|j                  r|j                  j                  |   }|j                  r|j                  «       }|j                  r|j                  j                  |   }|j                  |«      }|| j                  | j                  f}|| _        | j                  r@| j                  |j                  j                  | j
                     fz   }|| j                  |fS |S r†   )rW   r=  r?  rX   ru  r>  r<  rD  rƒ  rB  r  Ú_deannotater—  Ú_getterrá  r	  )	rŒ   r   rÄ   rW   ÚgetterÚ
label_nameÚextra_entitiesrD  r  s	            r‚   r÷  z_ColumnEntity.row_processoræ  sg  € Ø×-Ñ-ˆð ×ÑÐ*Ø15×1DÑ1DÑ.ˆF�J Ø×(Ò(ØØ—M‘M×.Ñ.¨t×/DÑ/DÑEð#ñ �ð ˜: ~Ð5Ð5ð ×ÑÐ)Ø×'Ñ'‰Fð —[‘[ˆFð ×,Ò,Ø&×6Ñ6×>Ñ>¸vÑF�à×"Ò"ð  ×+Ñ+Ó-�à×/Ò/Ø"×9Ñ9×AÑAÀ&ÑIˆFà—‘ Ó'ˆØ�d×&Ñ&¨×(<Ñ(<Ð<ˆØ!ˆÔà×$Ò$Ø!×1Ñ1Ø—‘×*Ñ*¨4×+@Ñ+@ÑAð5ñ ˆNð ˜4×+Ñ+¨^Ð;Ð;àˆJr�   r†   )rq   rr   rs   r�   rÉ   rý  r?  rÞ  r  r  r÷  r€   r�   r‚   rü  rü     sd   „ ð€Ið ð ò/ó ð/ðb ñ ó ð ð ñ-ó ð-ð ñ(ó ð(ó0r�   rü  c                  óF   — e Zd ZdZdZdZdZ	 dd„Zd„ Z	 	 	 	 	 	 d	d„Z	d„ Z
y)
rC  NF)rà  rD  rá  r¦  r	  c                ó&  — || _         || _        |d u| _        |j                  r|xj                  ddiz  c_        |r|j
                  rd | _        n*|r|j                  | _        n|j                  |«      | _        |r|j                  j                  | «       n|j                  | «       || _        | j                  j                  r| j                  j                  d   nd | _        | j                   | j                  f| _        d x| _        | _        y )Nrá   Tr   )rà  r>  r?  rá   rë   Ú_is_text_clauserá  Ú
_proxy_keyrï   ré   rý   rD  r¯  r¦  r	  r<  r=  )rŒ   rW   rD  r�  r>  rg  r'  s          r‚   r—   z_RawColumnEntity.__init__&  sï   € ð ˆŒ	Ø 0ˆÔØ$4¸DÐ$@ˆÔ!à�?Š?Ø×)Ò)¨j¸$Ð-?Ñ?Õ)á" f×&<Ò&<Ø#ˆDÕáØ#)×#4Ñ#4�Õ à#0×#BÑ#BÀ6Ó#J�Ô áØ×#Ñ#×*Ñ*¨4Õ0à×&Ñ& tÔ,àˆŒà,0¯K©K×,EÒ,EˆD�K‰K×%Ñ% aÒ(È4ð 	Ô&ð !%§	¡	¨4¯;©;Ð7ˆÔØ37Ð7ˆÔ˜TÕ0r�   c                 ó   — yrç  r€   r  s     r‚   r¯  z_RawColumnEntity.corresponds_toJ  s   € Ør�   c                ó$   — | j                  |«      S r†   r3  rõ  s      r‚   r’  z2_RawColumnEntity.setup_dml_returning_compile_stateM  r4  r�   c                ó  — |j                  «       }|r || j                  d«      }|€y | j                  }|j                  r|j                  «       }|j                  j                  |«       |j                  j                  |«       || _        y rç  )	rŒ  rD  r  rL  rò   rü   rð   rý   r<  )rŒ   rW   rˆ  rD  s       r‚   r{  z$_RawColumnEntity.setup_compile_stateT  s}   € Ø'×<Ñ<Ó>ˆÙÙ$ T§[¡[°%Ó8ˆFØˆ~Øà—[‘[ˆFà×Òð ×'Ñ'Ó)ˆFà×$Ñ$×(Ñ(¨Ô0Ø×%Ñ%×,Ñ,¨VÔ4Ø#ˆÕr�   r†   r  )rq   rr   rs   r8  r  rñ  r�   r—   r¯  r’  r{  r€   r�   r‚   rC  rC    sO   „ Ø€KØ€FØ"Ðð€Ið ó"8òHð7à&ð7ð 2ð7ð 
ó	7ó$r�   rC  c                  óB   — e Zd ZdZdZdZ	 d	d„Zd„ Z	 	 	 	 	 	 d
d„Zd„ Z	y)r)  zColumn/expression based entity.F)rà  r  rD  rá  r¦  r8  r	  Nc                óØ  — |j                   }|}	 |j                  dd «      }
 |j                  d|	«      }|
r#t        |j                  |
«      | _        d| _        n|| _        |d u| _        || _        |r1|r|
r|
n|j                  | _        n |j                  ||
¬«      | _        nd | _        |	j                   |	x| _        x| _        }|	j                  x| _        }|r|j                  j                  | «       n|j                  | «       d|_        || _        d x| _        | _        | j                  | j"                  f| _        |j*                  r|j-                  ||j.                  «       y y )NÚ	proxy_keyÚproxy_ownerF)r  T)r  r©   r  r…  rà  r?  r>  rT  rá  rï   r  r8  r¦  r  ré   rý   r”  rD  r<  r=  r	  r  r4  r¤   )rŒ   rW   rD  r�  r!  r>  rg  r'  r   rE  Úorm_keyr[  r  r  s                 r‚   r—   z_ORMColumnEntity.__init__v  se  € ð ×)Ñ)ˆàˆð "�+—/‘/ +¨tÓ4ˆØ%�k—o‘o m°WÓ=ˆÙÜ × 2Ñ 2°GÓ<ˆDŒIØ(-ˆDÕ%ð ˆDŒIØ(8ÀÐ(DˆDÔ%à 0ˆÔáÙÙ.5¡7¸6×;LÑ;L�Õ à#0×#BÑ#BØ Wð $Có $�Õ ð  $ˆDÔà×ÒØDKÐKˆÔÐK˜4Ô9¸EØ&Ÿ~™~Ð-ˆŒ�fáØ×#Ñ#×*Ñ*¨4Õ0à×&Ñ& tÔ,à*.ˆÔ'àˆŒà37Ð7ˆÔ˜TÔ0à $§	¡	¨4¯;©;Ð7ˆÔà×2Ò2Ø×:Ñ:Ø�u×'Ñ'õð 3r�   c                óš   — t        |«      r|| j                  u S t        | j                  «       xr |j                  | j                  «      S r†   )r   r8  r»  r  s     r‚   r¯  z_ORMColumnEntity.corresponds_to¹  sO   € Ü˜VÔ$à˜T×-Ñ-Ð-Ð-ä(Ø× Ñ óð ò 9à×&Ñ& t×'7Ñ'7Ó8ð9r�   c                ó²   — | j                   x| _        }|r	 ||d«      }|�7|j                  j                  |«       |j                  j                  |«       y y rç  )rD  r<  rò   rü   rð   rý   )rŒ   rW   r8  rD  s       r‚   r’  z2_ORMColumnEntity.setup_dml_returning_compile_stateÂ  sW   € ð '+§k¡kÐ1ˆÔ˜VÙÙ˜V UÓ+ˆFàÐØ×(Ñ(×,Ñ,¨VÔ4Ø×)Ñ)×0Ñ0°Õ8ð r�   c                ó  — |j                  «       }|r5 || j                  d«      }|€,|j                  sJ ‚| j                  | _        y | j                  }| j                  }| j
                  j                  }|€d| j
                  f|j                  v r)||j                  r|j                  nd f|j                  |<   |j                  r|j                  s|j                  «       }t        | j                  j                  «      j!                  |j"                  j                  «      r%|j$                  j'                  |j"                  «       |j(                  j+                  |«       |j,                  j'                  |«       || _        y )NFrÑ  )rŒ  rD  rÈ   r<  r8  r  rØ  r¥   r,  r0  rz  r  Ú_expression_labelrL  rw  r¯  Úintersectionr¤   rx  rý   rò   rü   rð   )rŒ   rW   rˆ  rD  r  r#  s         r‚   r{  z$_ORMColumnEntity.setup_compile_stateÐ  sO  € Ø'×<Ñ<Ó>ˆÙÙ$ T§[¡[°%Ó8ˆFØˆ~Ø$×5Ò5Ð5Ð5Ø%)§[¡[�Ô"Øà—[‘[ˆFà× Ñ ˆà ŸK™K×?Ñ?ÐàÐ)Ø,¨d¯k©kÐ:Ø×.Ñ.ñ/ð Ø"'×"8Ò"8�—’¸dð<ˆM×1Ñ1°%Ñ8ð
 ×Ò v×'?Ò'?ð ×'Ñ'Ó)ˆFô ˆt�{‰{×(Ñ(Ó)×6Ñ6Ø×Ñ×*Ñ*ô
ð ×0Ñ0×7Ñ7¸×8HÑ8HÔIà×$Ñ$×(Ñ(¨Ô0Ø×%Ñ%×,Ñ,¨VÔ4Ø#ˆÕr�   r†   r  )
rq   rr   rs   rÓ   rñ  r�   r—   r¯  r’  r{  r€   r�   r‚   r)  r)  g  sI   „ Ù)à"Ðð€Ið$ óAòF9ð9à&ð9ð 2ð9ð 
ó	9ó)$r�   r)  c                  ó   — e Zd ZdZd„ Zd„ Zy)rB  Fc                 ó   — y r†   r€   ró  s     r‚   r{  z(_IdentityTokenEntity.setup_compile_stateÿ  s   € Ør�   c                ó@   ‡— ˆfd„}|| j                   | j                  fS )Nc                ó0   •— ‰j                   j                  S r†   )r[   ry   )Úrowr   s    €r‚   rN  z2_IdentityTokenEntity.row_processor.<locals>.getter  s   ø€ Ø×'Ñ'×7Ñ7Ð7r�   )rá  r	  )rŒ   r   rÄ   rN  s    `  r‚   r÷  z"_IdentityTokenEntity.row_processor  s#   ø€ ô	8ð �t×'Ñ'¨×)=Ñ)=Ð=Ð=r�   N)rq   rr   rs   r?  r{  r÷  r€   r�   r‚   rB  rB  ü  s   „ Ø Ðòó>r�   rB  rç  )râ  z#Union[Query, Select, FromStatement]rW   zOptional[ORMSelectCompileState]r  rí   rœ   zList[ORMColumnDescription])ré  zUnion[Query[Any], Select[Any]]rœ   ú"Optional[_InternalEntityType[Any]]r†   )r  zTuple[_SetupJoinsElement, ...]r8  rg  rœ   z=Optional[Union[_InternalEntityType[Any], _JoinTargetElement]])�Ú
__future__r   r²  Útypingr   r   r   r   r   r	   r
   r   r   r   r   r   Ú r   r   r   Úbaser   r   r   Úpath_registryr   r$   r   r   r   r   r   r   r   r    rk  r!   r"   r#   r%   r&   r'   rJ  r(   Úsql._typingr)   r*   r+   r,   Úsql.baser-   r.   r/   r0   r1   r2   Úsql.dmlr3   Úsql.elementsr4   r5   Úsql.selectabler6   r7   r8   r9   r:   r;   r<   r=   Úsql.visitorsr>   Ú_typingr?   r@   rA   r  rB   rX   rC   r^   rD   rE   ÚenginerF   Úengine.interfacesrG   rH   Úsql.compilerrI   rJ   rK   rL   rM   rN   rO   rP   Úsql.type_apirQ   rR   Úrootræ   rÏ  rŽ   rÑ  rU   r  r¡   rÍ   rn   rA  rR  r[  Ú
plugin_forr`  ra  rÇ  r§  r  rê  rè  r  rs  r'  rÿ  rü  rC  r)  rB  r€   r�   r‚   ú<module>rz     sS  ðõ #ã Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý  Ý Ý å Ý Ý Ý #Ý ,Ý ,Ý 'Ý (Ý Ý !Ý Ý Ý Ý %Ý Ý Ý Ý Ý Ý Ý Ý Ý "Ý Ý Ý  Ý *Ý (Ý (Ý 'Ý #Ý !Ý !Ý Ý  Ý )Ý %Ý 0Ý :Ý -Ý ;Ý #Ý -Ý (Ý -Ý ,áÝ,Ý3Ý!ÝÝÝ'Ý ÝÝ<Ý4Ý*Ý*Ý,Ý3Ý9Ý3Ý6Ý+Ý)áˆT˜Ô€Ø×"Ñ"€à ˆd× Ñ Ó"€ð *×@Ñ@Ð ÷q.ñ q.ðh ,˜×+Ñ+Ø'¨Ð.óÐ ô
i$˜lô i$ôX*Ð#:ô *ôZf
Ð-ô f
÷R	$$ñ $$ôN>Ð'=ô >ô&Ð)?ô ð0 ‡�×Ñ×!Ñ! %Ð)=Ó>ôwD ?ó wDó ?ðwDôtuP�N JÐ0@ÀÑ0Eô uPðp ‡�×Ñ×!Ñ! %Ð):Ó;ô	Ø Ð"5ó	ó <ð	ð ‡�×Ñ×!Ñ! %¨Ó2ôP0˜O¨[ó P0ó 3ðP0ðj, 6:ØðØ=ðà2ðð ðð  ó	ð<+Ø=ð+à'ó+ðØ=ðà'óð* 7;ðØ/ðà3ðð Có÷$\#ñ \#ô~iE�Lô iEôX<�Lô <ôDv�Lô vôrK$�}ô K$ô\R$�}ô R$ôj
>Ð+õ 
>r�   