Ë
    Š)f-ž  ã                  ó   — d dl mZ d dlmZ d dlZd dl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( ej*                  r–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)lm1Z1 dd*l2m3Z3 dd+l)m4Z4 dd,l)m5Z5 dd-l)m6Z6 dd.l)m7Z7 dd/l)m8Z8 dd0l)m9Z9 dd1l)m:Z: dd2l+m;Z; 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  ed:ej†                  ¬;«      ZD ed<e	d=ef   ¬;«      ZE ed>ejŒ                  ¬;«      ZG ed?e¬;«      ZHd@„ ZIdA„ ZJ	 	 	 	 	 	 	 	 d·dB„ZK	 	 	 	 	 	 	 	 d¸dC„ZLe	 	 	 	 	 	 	 	 d¹dD„«       ZMed=dEœ	 	 	 	 	 	 	 	 	 dºdF„«       ZMe	 	 	 	 	 	 	 	 d»dG„«       ZMe	 	 	 	 	 	 	 	 d¼dH„«       ZMe	 	 	 	 	 	 	 	 d½dI„«       ZMe	 	 	 	 	 	 	 	 d¾dJ„«       ZMe	 	 	 	 	 	 	 	 d¿dK„«       ZMe	 	 	 	 	 	 	 	 dÀdL„«       ZMe	 	 	 	 	 	 	 	 dÁdM„«       ZMe	 	 	 	 	 	 	 	 dÂdN„«       ZMe	 	 	 	 	 	 	 	 dÃdO„«       ZMe	 	 	 	 	 	 	 	 dÄdP„«       ZMe	 	 	 	 	 	 	 	 dÅdQ„«       ZMed=dRœ	 	 	 	 	 	 	 	 	 dÆdS„«       ZMe	 	 	 	 	 	 	 	 dÇdT„«       ZMe	 	 	 	 	 	 	 	 dÈdU„«       ZMe	 	 	 	 	 	 	 	 dÉdV„«       ZMdddWdWdXœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dÊdY„ZM	 	 	 	 	 	 	 	 dËdZ„ZN	 	 	 	 	 	 dÌd[„ZO G d\„ d]«      ZP G d^„ d_«      ZQ G d`„ da«      ZR G db„ dceP«      ZS G dd„ deeP«      ZTde$jª                  ddf	 	 	 	 	 	 	 	 	 	 	 dÍdf„ZV G dg„ dheP«      ZW G di„ djeP«      ZX G dk„ dleP«      ZY G dm„ dneP«      ZZ G do„ dpeP«      Z[ G dq„ dreP«      Z\ G ds„ dteTeP«      Z] G du„ dve]eP«      Z^ G dw„ dxeP«      Z_ G dy„ dzeTeP«      Z` G d{„ d|eXeTeP«      Za G d}„ d~eXeP«      Zb G d„ d€eWeP«      Zc G d�„ d‚eSeP«      Zd G dƒ„ d„eXeP«      Ze G d…„ d†eXeTePejÌ                  «      Zg G d‡„ dˆegeP«      Zh G d‰„ dŠegeP«      Zi G d‹„ dŒeSeP«      Zj G d�„ dŽeP«      Zk G d�„ d�eReP«      Zl G d‘„ d’eQeXeP«      Zm G d“„ d”eQeSeP«      Zn G d•„ d–en«      Zo G d—„ d˜eP«      Zp G d™„ dše]«      Zq G d›„ dœeZeXeP«      Zr G d�„ džeP«      Zs G dŸ„ d eXeP«      Zt G d¡„ d¢eWeP«      Zu G d£„ d¤es«      Zv G d¥„ d¦eP«      Zw G d§„ d¨eP«      Zx G d©„ dªeZeWeP«      Zy G d«„ d¬ey«      Zz G d­„ d®ez«      Z{ G d¯„ d°eZeWeP«      Z| G d±„ d²eWeP«      Z} G d³„ d´eWeP«      Z~i Z e€e«      D ]P  Z� e‚ee�«      Zƒe��j	                  dµ«      sŒe��j                  dµd¶«      Z�e� e†«       v sŒ<  e†«       e�   eƒ«      Z‡e‡eeƒ<   ŒR es/ee�j                     Z‰eŠe‹eŒe�fD ]  ZŽe‰ee�j                  eŽ   <   Œ yy)Îé    )ÚannotationsN)ÚAny)ÚCallable)Úcast)ÚDict)ÚIterable)ÚIterator)ÚList)ÚNoReturn)ÚOptional)Úoverload)ÚSequence)ÚTuple)ÚType)ÚTYPE_CHECKING)ÚTypeVar)ÚUnioné   )Ú	operators)Úroles)Úvisitors)Úis_from_clause)ÚExecutableOption)ÚOptions)ÚHasCacheKey)Ú	Visitableé   )Úexc)Ú
inspection)Úutil)ÚLiteral)Úelements)Úlambdas)Úschema)Ú
selectable)Ú_ColumnExpressionArgument)Ú_ColumnsClauseArgument)Ú_DDLColumnArgument)Ú_DMLTableArgument)Ú_FromClauseArgument)Ú_DMLTableElement)ÚBindParameter)ÚClauseElement)ÚColumnClause)ÚColumnElement)ÚDQLDMLClauseElement)ÚNamedColumn)ÚSQLCoreOperations)ÚColumn)Ú_ColumnsClauseElement)Ú_JoinTargetProtocol)Ú
FromClause)ÚHasCTE)Ú
SelectBase)ÚSubquery)Ú_TraverseCallableTypeÚ_SR)ÚboundÚ_F.Ú_StringOnlyRÚ_Tc                ób   — t        | t        t        j                  f«       xr t	        | d«       S )zhReturn whether or not the element is a "literal" in the context
    of a SQL expression construct.

    Ú__clause_element__)Ú
isinstancer   r$   ÚSchemaEventTargetÚhasattr)Úelements    úU/var/www/html/flask-app/venv/lib/python3.12/site-packages/sqlalchemy/sql/coercions.pyÚ_is_literalrG   O   s<   € ô ØÜ	”F×,Ñ,Ð-óð ò 5ô �gÐ3Ó4Ð
4ð5ó    c                ór  — t        | t        j                  «      r%t        | t        «      s| D ]  }t	        |«      rŒ y yt        | t
        t        j                  t        t        t        j                  j                  f«       xr3 t        | d«       xr$ t        | t        «       xs t        | t        «       S )a  Return whether or not the element is a "literal" in the context
    of a SQL expression construct.

    does a deeper more esoteric check than _is_literal.   is used
    for lambda elements that have to distinguish values that would
    be bound vs. not without any context.

    FTrA   )rB   Úcollections_abcr   ÚstrÚ_deep_is_literalr   r$   rC   r   r   r    ÚlanghelpersÚsymbolrD   ÚtypeÚ
issubclass)rE   Úelems     rF   rL   rL   [   s¹   € ô �'œ?×3Ñ3Ô4¼ZØ”ô>ð ò 	ˆDÜ# DÕ)Ùð	ð ô ØäÜ×(Ñ(ÜÜÜ× Ñ ×'Ñ'ðó	
ð 		
ò 	
ô ˜Ð!5Ó6Ð6ò	
ô ˜7¤DÓ)Ð)ò 4Ü˜g¤{Ó3Ð3ðrH   c                ó<   — t        j                  | d|›d|›d�«      S )Nz.. warning:: The z argument to z¤ can be passed as a Python string argument, which will be treated as **trusted SQL text** and rendered as given.  **DO NOT PASS UNTRUSTED INPUT TO THIS PARAMETER**.)r    Úadd_parameter_text)Ú	paramnameÚmeth_rstÚ	param_rsts      rF   Ú_document_text_coercionrW   �   s&   € ô ×"Ñ"Ùò ’hð	 ó
ð 
rH   c                óò   — |rjt        |d   t        t        t        f«      rLt	        |«      dk(  r>t        |d   t        «      rt        j                  d| › d|› d�«      ‚t        d|d   «      S t        d|«      S )Nr   r   zThe "z" argument to zt(), when referring to a sequence of items, is now passed as a series of positional elements, rather than as a list. úSequence[_T])rB   ÚlistÚsetÚdictÚlenr   ÚArgumentErrorr   )ÚattrnameÚfnnameÚargss      rF   Ú!_expression_collection_was_a_listrb   ‘   s}   € ñ
 ”
˜4 ™7¤T¬3´Ð$5Ô6¼3¸t»9Èº>Ü�d˜1‘gœtÔ$Ü×#Ñ#Ø˜�z °¨xð 84ð 4óð ô �N D¨¡GÓ,Ð,ä� Ó%Ð%rH   c                 ó   — y ©N© ©ÚrolerE   Úkws      rF   Úexpectri   £   ó   € ð
 rH   )Úas_keyc                ó   — y rd   re   )rg   rE   rk   rh   s       rF   ri   ri   «   s   € ð rH   c                 ó   — y rd   re   rf   s      rF   ri   ri   µ   s   € ð
 rH   c                 ó   — y rd   re   rf   s      rF   ri   ri   ½   s   € ð
 rH   c                 ó   — y rd   re   rf   s      rF   ri   ri   Å   s   € ð
 "rH   c                 ó   — y rd   re   rf   s      rF   ri   ri   Í   ó   € ð
 rH   c                 ó   — y rd   re   rf   s      rF   ri   ri   Õ   s   € ð
 rH   c                 ó   — y rd   re   rf   s      rF   ri   ri   Ý   s   € ð rH   c                 ó   — y rd   re   rf   s      rF   ri   ri   é   s   € ð rH   c                 ó   — y rd   re   rf   s      rF   ri   ri   ÷   s   € ð
 rH   c                 ó   — y rd   re   rf   s      rF   ri   ri   ÿ   s   € ð
 rH   c                 ó   — y rd   re   rf   s      rF   ri   ri     ó   € ð
 rH   c                 ó   — y rd   re   rf   s      rF   ri   ri     rx   rH   )Úexplicit_subqueryc                ó   — y rd   re   )rg   rE   rz   rh   s       rF   ri   ri     s   € ð rH   c                 ó   — y rd   re   rf   s      rF   ri   ri   !  s   € ð
  rH   c                 ó   — y rd   re   rf   s      rF   ri   ri   )  rq   rH   c                 ó   — y rd   re   rf   s      rF   ri   ri   2  rj   rH   F)Úapply_propagate_attrsÚargnameÚpost_inspectÚdisable_inspectionc          	     ó  — | j                   rCt        |«      r8t        |d«      r,t        j                  || t        j
                  di |¤Ž|¬«      S t        |    }|}t        |t        j                  t        j                  t        j                  t        j                  f«      sêd }	|j                  r |j                  |fi |¤Ž}	n÷|}d}
|j                   rt        || «      rt        |d«      rd}
n:t        |d«      r.d}
t#        |dd«      s|j%                  «       }nnt        |d«      rŒ.|
s^|j&                  r:|s8t)        j*                  |d¬«      }|�|r|j,                   	 |j%                  «       }	|	€H |j                  |fd|i|¤Ž}	n2|}	n/t        |t        j                  «      r |j2                  di |¤Ž}	n|}	|�Rt4        j6                  rt        |	t8        t:        f«      sJ ‚|j<                  st#        |	d	d «      r|	j<                  |_        |j>                  |	j@                  jB                  v r$|jD                  r |jD                  |	f||d
œ|¤Ž}	|	S  |jF                  ||	fd|i|¤ŽS # t.        $ r |j1                  ||«       Y �Œw xY w)NÚ__code__)r   FrA   TÚis_clause_element)Úraiseerrr€   Ú_propagate_attrs)r€   Úoriginal_elementre   )$Úallows_lambdaÚcallablerD   r#   ÚLambdaElementÚLambdaOptionsÚ_impl_lookuprB   r"   ÚCompilerElementr$   Ú
SchemaItemÚFetchedValueÚ	PyWrapperÚ_resolve_literal_onlyÚ_literal_coercionÚ$_skip_clauseelement_for_target_matchÚgetattrrA   Ú_use_inspectionr   ÚinspectÚ_post_inspectÚAttributeErrorÚ_raise_for_expectedÚ_sa__py_wrapper_literalÚtypingr   r2   r-   r‡   Ú_role_classÚ	__class__Ú__mro__Ú_post_coercionÚ_implicit_coercions)rg   rE   r   r€   r�   r‚   rh   Úimplrˆ   Úresolvedr…   Úinsps               rF   ri   ri   :  s¾  € ð 	×Òô
 �WÔÜ�G˜ZÔ(ä×$Ñ$ØØÜ×!Ñ!Ñ' BÑ'Ø"7ô	
ð 	
ô ˜Ñ€DàÐäØä×$Ñ$Ü×ÑÜ×ÑÜ×Ñð		
ôð ˆà×%Ò%Ø-�t×-Ñ-¨gÑ<¸Ñ<‰Hà&Ðà %Ðð ×9Ò9Ü˜w¨Ô-Ü˜GÐ%9Ô:à$(Ñ!ä˜gÐ';Ô<Ø(,Ð%ä" 7Ð,?ÀÔGØ")×"<Ñ"<Ó">™àô ˜gÐ';Õ<ñ %Ø×'Ò'Ñ0BÜ%×-Ñ-¨gÀÔF�DØÐ'Ù'Ø ×.Ò.ðPØ'+×'>Ñ'>Ó'@˜Hð Ð#Ø5˜t×5Ñ5Øñ Ø)0ð Ø46ñ ‘Hð #‘Ü	�GœW×.Ñ.Ô	/Ø2�7×2Ñ2Ñ8°RÑ8‰àˆàÐ(Ü×ÒÜ˜hÔ):¼MÐ(JÔKÑKà$×5Ò5¼'ØÐ(¨$ô;
ð 6>×5NÑ5NÐ!Ô2à×Ñ˜8×-Ñ-×5Ñ5Ñ5Ø×ÒØ*�t×*Ñ*ØðàØ!1ñð ñ	ˆHð ˆà'ˆt×'Ñ'Ø˜hñ
Ø07ð
Ø;=ñ
ð 	
øôC  .ò PØ ×4Ñ4Ð5EÀw×OðPús   Å"I, É,JÊ
Jc                óD   — |j                  dd «       t        | |fddi|¤ŽS )Nrk   T)Úpopri   rf   s      rF   Úexpect_as_keyr§   ®  s)   € ð ‡F�Fˆ8�TÔÜ�$˜Ñ3¨Ð3°Ñ3Ð3rH   c              #  ó   K  — |D ]u  }d }d }t        | |«      }t        |t        «      rt        |t        «      sJ ‚|x}}n.g }|j                  }t	        j
                  |i d|i«       |r|d   }|�|n|}||||f–— Œw y ­w)NÚcolumnr   )ri   rB   rK   Úappendr   Útraverse)	rg   ÚexpressionsÚexprÚstrnamer©   r£   ÚcolsÚ
col_appendÚadd_elements	            rF   Ú expect_col_expression_collectionr²   µ  sš   è ø€ ð ò 5ˆØˆØˆä,2°4¸Ó,>ˆÜ�h¤Ô$Ü˜d¤CÔ(Ñ(Ø!%Ð%ˆG‘hà&(ˆDØ=A¿[¹[ˆJÜ×Ñ˜h¨¨X°zÐ,BÔCÙØ˜a™�Ø &Ð 2‘f¸ˆà˜ ¨Ð4Ó4ñ!5ùs   ‚A<A>c                  ó„   — e Zd ZU dZd„ ZdZded<   dZdZd„ Z		 d
	 	 	 	 	 	 	 	 	 dd„Z
	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd	„Zy)ÚRoleImpl)r�   Únamer–   c                ó   — t        «       ‚rd   )ÚNotImplementedError©ÚselfrE   rh   s      rF   r“   zRoleImpl._literal_coercionÖ  s   € Ü!Ó#Ð#rH   Nr   r    Fc                ór   — || _         |j                  | _        t        |t        j
                  «      | _        y rd   )r�   Ú
_role_namerµ   rP   r   ÚUsesInspectionr–   )r¹   Ú
role_classs     rF   Ú__init__zRoleImpl.__init__Ý  s,   € Ø%ˆÔØ×)Ñ)ˆŒ	Ü)¨*´e×6JÑ6JÓKˆÕrH   c                ó*   — | j                  |||«       y rd   ©rš   ©r¹   rE   r£   r€   rh   s        rF   r¡   zRoleImpl._implicit_coercionsâ  s   € ð 	× Ñ  ¨'°8Õ<rH   c                óÎ   — |�||ur	|›d|›d�}nt        |«      }|r| j                  ›d|›d|›d�}	n| j                  ›d|›d�}	|r|	d|z   z  }	t        j                  |	|¬«      |‚)	Nz object resolved from z objectz expected for argument z; got ú.z expected, got ú )Úcode)Úreprrµ   r   r^   )
r¹   rE   r€   r£   ÚadvicerÅ   Úerrrh   ÚgotÚmsgs
             rF   rš   zRoleImpl._raise_for_expectedë  sq   € ð Ð H°GÑ$;Ú9AÂ7ÐK‰Cä�w“-ˆCáà—	“	ÚÚð‰Cð -1¯I«I²sÐ;ˆCáØ�3˜‘<ÑˆCä×Ñ ¨$Ô/°SÐ8rH   rd   ©
rE   r   r£   r   r€   úOptional[str]rh   r   Úreturnr   ©NNNNN©rE   r   r€   rÌ   r£   zOptional[Any]rÇ   rÌ   rÅ   rÌ   rÈ   úOptional[Exception]rh   r   rÍ   r   )Ú__name__Ú
__module__Ú__qualname__Ú	__slots__r“   r    Ú__annotations__r’   r”   r¾   r¡   rš   re   rH   rF   r´   r´   Ó  sÈ   … Ø:€Iò$ð €N�CÓØ!ÐØ+0Ð(òLð "&ð	=àð=ð ð=ð ð	=ð
 ð=ð 
ó=ð "&Ø"&Ø $Ø"Ø#'ð9àð9ð ð9ð  ð	9ð
 ð9ð ð9ð !ð9ð ð9ð 
ô9rH   r´   c                  ó   — e Zd ZdZd„ Zy)Ú_Deannotatere   c                ó   — ddl m}  ||«      S )Nr   )Ú_deep_deannotate)r    rÙ   )r¹   r£   rh   rÙ   s       rF   r    z_Deannotate._post_coercion  s   € Ý*á Ó)Ð)rH   N©rÑ   rÒ   rÓ   rÔ   r    re   rH   rF   r×   r×   	  s   „ Ø€Ió*rH   r×   c                  ó   — e Zd ZdZdZy)Ú_StringOnlyre   TN)rÑ   rÒ   rÓ   rÔ   r’   re   rH   rF   rÜ   rÜ     s   „ Ø€Ià ÑrH   rÜ   c                  ó   — e Zd ZdZdd„Zd„ Zy)Ú_ReturnsStringKeyre   Nc                óN   — t        |t        «      r|S | j                  |||«       y rd   ©rB   rK   rš   rÁ   s        rF   r¡   z%_ReturnsStringKey._implicit_coercions  s#   € Ü�gœsÔ#ØˆNà×$Ñ$ W¨g°xÕ@rH   c                ó   — |S rd   re   r¸   s      rF   r“   z#_ReturnsStringKey._literal_coercion!  ó   € ØˆrH   rd   ©rÑ   rÒ   rÓ   rÔ   r¡   r“   re   rH   rF   rÞ   rÞ     s   „ Ø€IóAórH   rÞ   c                  ó   — e Zd ZdZd„ Zdd„Zy)Ú_ColumnCoercionsre   c                ó.   — t        j                  d«       y )Nz|implicitly coercing SELECT object to scalar subquery; please use the .scalar_subquery() method to produce a scalar subquery.)r    Úwarn)r¹   s    rF   Ú"_warn_for_scalar_subquery_coercionz3_ColumnCoercions._warn_for_scalar_subquery_coercion(  s   € Ü�	‰	ðõ	
rH   Nc                ó°  — |}t        |dd«      s| j                  |||«       y |j                  r | j                  «        |j	                  «       S |j
                  rDt        |t        j                  «      r*| j                  «        |j                  j	                  «       S | j                  j                  r|j                  r|S | j                  |||«       y )Nr…   F)r•   rš   Ú_is_select_baserè   Úscalar_subqueryÚ_is_from_clauserB   r%   r9   rE   r�   r‰   Ú_is_lambda_element)r¹   rE   r£   r€   rh   rˆ   s         rF   r¡   z$_ColumnCoercions._implicit_coercions/  s¹   € Ø"ÐÜ�xÐ!4°eÔ<Ø×$Ñ$Ð%5°wÀÕIØ×%Ò%Ø×3Ñ3Ô5Ø×+Ñ+Ó-Ð-Ø×%Ò%¬*Ø”j×)Ñ)ô+
ð ×3Ñ3Ô5Ø×#Ñ#×3Ñ3Ó5Ð5Ø×Ñ×+Ò+°×0KÒ0KØˆOà×$Ñ$Ð%5°wÀÕIrH   rd   )rÑ   rÒ   rÓ   rÔ   rè   r¡   re   rH   rF   rå   rå   %  s   „ Ø€Iò
ôJrH   rå   c                ód   —  |dt        j                  | «      |rd|›�nd|rd|z  nddœz  «      |‚)Nzc%(extra)sTextual SQL expression %(expr)r %(argname)sshould be explicitly declared as text(%(expr)r)úfor argument Ú z%s )r­   r€   Úextra)r    Úellipses_string)rE   r€   Úexc_clsrñ   rÈ   s        rF   Ú_no_text_coercionrô   A  sJ   € ñ ð	0ô ×(Ñ(¨Ó1Ú9@©GÑ5ÀbÙ&+�U˜U’]°ñ
ñ	
óð ðrH   c                  ó   — e Zd ZdZdd„Zy)Ú_NoTextCoercionre   Nc                óª   — t        |t        «      r1t        t        j                  | j
                  «      rt        ||«       y | j                  ||«       y rd   )rB   rK   rP   r"   Ú
TextClauser�   rô   rš   ©r¹   rE   r€   rh   s       rF   r“   z!_NoTextCoercion._literal_coercionV  s@   € Ü�gœsÔ#¬
Ü×Ñ ×!1Ñ!1ô)
ô ˜g wÕ/à×$Ñ$ W¨gÕ6rH   rd   ©rÑ   rÒ   rÓ   rÔ   r“   re   rH   rF   rö   rö   S  s   „ Ø€Iô7rH   rö   c                  ó,   — e Zd ZdZdZdZdZdd„Zdd„Zy)Ú_CoerceLiteralsre   FNc                ó   — t        ||«      S rd   ©rô   ©r¹   rE   r€   s      rF   Ú_text_coercionz_CoerceLiterals._text_coercione  ó   € Ü  ¨'Ó2Ð2rH   c                óð  — t        |t        «      r<| j                  r|dk(  rt        j                  dd¬«      S  | j
                  ||fi |¤ŽS | j                  rF|€t        j                  «       S |du rt        j                  «       S |du rt        j                  «       S | j                  r:t        |t        j                  «      r t        j                  t        |«      d¬«      S | j                  ||«       y )NÚ*T)Ú
is_literalF)rB   rK   Ú_coerce_starr"   r.   r   Ú_coerce_constsÚNullÚFalse_ÚTrue_Ú_coerce_numericsÚnumbersÚNumberrš   rù   s       rF   r“   z!_CoerceLiterals._literal_coercionh  sÈ   € Ü�gœsÔ#Ø× Ò  W°¢^Ü×,Ñ,¨S¸TÔBÐBà*�t×*Ñ*¨7°GÑB¸rÑBÐBà×ÒØˆÜ—}‘}“Ð&Ø˜EÑ!Ü—‘Ó(Ð(Ø˜D‘Ü—~‘~Ó'Ð'à× Ò ¤Z°¼'¿.¹.Ô%JÜ×(Ñ(¬¨W«À$ÔGÐGà× Ñ  ¨'Õ2rH   rd   )	rÑ   rÒ   rÓ   rÔ   r  r  r
  r   r“   re   rH   rF   rü   rü   _  s!   „ Ø€IØ€NØ€LØÐó3ô3rH   rü   c                  ó$   — e Zd ZdZ	 	 dd„Zdd„Zy)ÚLiteralValueImplTNc                óx   — t        |«      s | j                  |f||dœ|¤Ž t        j                  d ||d|¬«      S )N)r£   r€   T)Útype_ÚuniqueÚliteral_execute)rG   rš   r"   r,   )r¹   rE   r£   r€   r  r  rh   s          rF   r¡   z$LiteralValueImpl._implicit_coercions€  sU   € ô ˜8Ô$Ø$ˆD×$Ñ$ØðØ"*°GñØ?Aòô ×%Ñ%ØØØØØ+ô
ð 	
rH   c                ó   — |S rd   re   )r¹   rE   r€   r  rh   s        rF   r“   z"LiteralValueImpl._literal_coercion–  râ   rH   ©NF©NN)rÑ   rÒ   rÓ   r’   r¡   r“   re   rH   rF   r  r  }  s   „ Ø Ðð Øó
ô,rH   r  c                  óN   ‡ — e Zd ZdZ	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dˆ fd„Zˆ xZS )Ú_SelectIsNotFromre   c           	     óÒ   •— |st        |t        j                  «      st        |t        j                  «      rd|�|j                  n|›d�}d}nd }t	        ‰| �  |f|||||dœ|¤Ž J ‚)NzTo create a FROM clause from a z$ object, use the .subquery() method.Ú89ve)r€   r£   rÇ   rÅ   rÈ   )rB   r   ÚSelectStatementRolerž   Úsuperrš   )	r¹   rE   r€   r£   rÇ   rÅ   rÈ   rh   rž   s	           €rF   rš   z$_SelectIsNotFrom._raise_for_expected�  sˆ   ø€ ñ Ü˜7¤E×$=Ñ$=Ô>Ü˜(¤E×$=Ñ$=Ô>øð
 *2Ð)=�8×%Ò%À7ÑJðMð ð
 ‰DàˆDä‰Ñ#Øð	
àØØØØñ	
ð ò	
ñ 	rH   rÎ   rÏ   ©rÑ   rÒ   rÓ   rÔ   rš   Ú__classcell__©rž   s   @rF   r  r  š  sq   ø„ Ø€Ið
 "&Ø"&Ø $Ø"Ø#'ð"àð"ð ð"ð  ð	"ð
 ð"ð ð"ð !ð"ð ð"ð 
÷"ñ "rH   r  c                  ó4   — e Zd ZdZ	 d	 	 	 	 	 	 	 	 	 dd„Zd„ Zy)ÚHasCacheKeyImplre   Nc                óN   — t        |t        «      r|S | j                  |||«       y rd   )rB   r   rš   rÁ   s        rF   r¡   z#HasCacheKeyImpl._implicit_coercionsÅ  s%   € ô �gœ{Ô+ØˆNà×$Ñ$ W¨g°xÕ@rH   c                ó   — |S rd   re   r¸   s      rF   r“   z!HasCacheKeyImpl._literal_coercionÑ  râ   rH   rd   rË   rã   re   rH   rF   r   r   Â  óL   „ Ø€Ið "&ð	
Aàð
Að ð
Að ð	
Að
 ð
Að 
ó
AórH   r   c                  ó4   — e Zd ZdZ	 d	 	 	 	 	 	 	 	 	 dd„Zd„ Zy)ÚExecutableOptionImplre   Nc                óN   — t        |t        «      r|S | j                  |||«       y rd   )rB   r   rš   rÁ   s        rF   r¡   z(ExecutableOptionImpl._implicit_coercionsØ  s&   € ô �gÔ/Ô0ØˆNà×$Ñ$ W¨g°xÕ@rH   c                ó   — |S rd   re   r¸   s      rF   r“   z&ExecutableOptionImpl._literal_coercionä  râ   rH   rd   rË   rã   re   rH   rF   r%  r%  Õ  r#  rH   r%  c                  ó.   ‡ — e Zd ZdZ	 dd„Zdˆ fd„	Zˆ xZS )ÚExpressionElementImplre   c                óê   — |€$|s"|�|j                   st        j                  «       S 	 t        j                  |||d|¬«      S # t        j
                  $ r}| j                  ||¬«       Y d }~y d }~ww xY w)NT)r  Ú_is_crud©rÈ   )Úshould_evaluate_noner"   r  r,   r   r^   rš   )r¹   rE   rµ   r  r€   Úis_crudrh   rÈ   s           rF   r“   z'ExpressionElementImpl._literal_coercionë  sx   € ð ˆOÙØ� e×&@Ò&@ô
 —=‘=“?Ð"ð;Ü×-Ñ-Ø˜' 5°Àôð øô ×$Ñ$ò ;Ø×(Ñ(¨°cÐ(×:Ñ:ûð;ús   ¨A ÁA2ÁA-Á-A2c                ó¤   •— t        |t        j                  «      rd}nt        |t        j                  «      rd}nd }t        ‰| �  |f|||dœ|¤ŽS )NzTTo create a column expression from a VALUES clause, use the .scalar_values() method.z`To create a column expression from a FROM clause row as a whole, use the .table_valued() method.©r€   r£   rÇ   )rB   r%   ÚValuesr   ÚAnonymizedFromClauseRoler  rš   ©r¹   rE   r€   r£   rh   rÇ   rž   s         €rF   rš   z)ExpressionElementImpl._raise_for_expectedÿ  si   ø€ ä�gœz×0Ñ0Ô1ð3ñ ô ˜¤×!?Ñ!?Ô@ð>ñ ð
 ˆFä‰wÑ*Øð
Ø$¨xÀñ
ØJLñ
ð 	
rH   ©NNNFr  )rÑ   rÒ   rÓ   rÔ   r“   rš   r  r  s   @rF   r)  r)  è  s   ø„ Ø€Ið EJó;÷(
ñ 
rH   r)  c                  ó"   — e Zd ZdZ	 dd„Zdd„Zy)ÚBinaryElementImplre   Nc                ó’   — 	 |j                  |||¬«      S # t        j                  $ r}| j                  ||¬«       Y d }~y d }~ww xY w)N)r  r,  )Ú_bind_paramr   r^   rš   )r¹   rE   r­   ÚoperatorÚbindparam_typer€   rh   rÈ   s           rF   r“   z#BinaryElementImpl._literal_coercion  sK   € ð	7Ø×#Ñ# H¨g¸^Ð#ÓLÐLøÜ× Ñ ò 	7Ø×$Ñ$ W°#Ð$×6Ñ6ûð	7ús   ‚ –A©AÁAc                óœ   — |j                   j                  r5|j                   j                  s|j                  |�|n|j                   «      }|S rd   )rO   Ú_isnullÚ_with_binary_element_type)r¹   r£   r­   r:  rh   s        rF   r    z BinaryElementImpl._post_coercion  s@   € Ø�=‰=× Ò ¨¯©×):Ò):Ø×9Ñ9Ø"0Ð"<‘À$Ç)Á)óˆHð ˆrH   r  rd   )rÑ   rÒ   rÓ   rÔ   r“   r    re   rH   rF   r6  r6    s   „ Ø€Ið EIó7ôrH   r6  c                  ó@   — e Zd ZdZ	 d	 	 	 	 	 	 	 	 	 dd„Zd„ Zd„ Zd„ Zy)	ÚInElementImplre   Nc                ób  — |j                   r�t        |t        j                  «      rD|j                  j
                  r.| j                  |«        | j                  |j                  fi |¤ŽS | j                  |«        | j                  |j                  «       fi |¤ŽS | j                  |||«       y rd   )
rì   rB   r%   ÚAliasrE   rê   Ú_warn_for_implicit_coercionr    Úselectrš   rÁ   s        rF   r¡   z!InElementImpl._implicit_coercions)  s—   € ð ×#Ò#ä˜8¤Z×%5Ñ%5Ô6Ø×$Ñ$×4Ò4à×0Ñ0°Ô:Ø*�t×*Ñ*¨8×+;Ñ+;ÑB¸rÑBÐBà×0Ñ0°Ô:Ø*�t×*Ñ*¨8¯?©?Ó+<ÑCÀÑCÐCà×$Ñ$ W¨g°xÕ@rH   c                ó\   — t        j                  d|j                  j                  z  «       y )Nz_Coercing %s object into a select() for use in IN(); please pass a select() construct explicitly)r    rç   rž   rÑ   )r¹   rQ   s     rF   rB  z)InElementImpl._warn_for_implicit_coercion=  s%   € Ü�	‰	ð:à�~‰~×&Ñ&ñ(õ	
rH   c           	     óÖ  — t        j                  |«      r¼i }t        |«      }|D ][  }t        |«      s4t	        |t
        j                  «      s | j                  |fi |¤Ž Œ<|||<   ŒB|�ŒEt        j                  «       ||<   Œ] |r9t        j                  |D �cg c]  }||v r||   n|j                  ||«      ‘Œ c}Ž S |j                  ||d¬«      S  | j                  |fi |¤Ž y c c}w )NT)Ú	expanding)r    Úis_non_string_iterablerZ   rG   rB   r   ÚColumnOperatorsrš   r"   r  Ú
ClauseListr8  )r¹   rE   r­   r9  rh   Únon_literal_expressionsÚos          rF   r“   zInElementImpl._literal_coercionD  s  € Ü×&Ñ& wÔ/ð ð $ô ˜7“mˆGØò A�Ü" 1”~Ü% a¬×)BÑ)BÔCØ0˜×0Ñ0°Ñ?¸BÓ?ð 67Ð/°Ò2Ø‘YÜ19·±³Ð+¨AÒ.ðAñ 'Ü×*Ñ*ð ")öð ð  !Ð$;Ñ;ð 4°AÒ6à!%×!1Ñ!1°(¸AÓ!>ñ?òð	ð 	ð ×'Ñ'¨°'ÀTÐ'ÓJÐJð %ˆD×$Ñ$ WÑ3°Ó3ùòs   Â"C&c                ó–  — |j                   r|j                  «       S t        |t        j                  «      r,t        |j                  «      dk(  rJ ‚|j                  |¬«      S t        |t        j                  «      r"|j                  d¬«      }d|_
        ||_        |S t        |t        j                  «      r|j                  «       S |S )Nr   )ÚagainstT)Úmaintain_key)rê   rë   rB   r"   rI  r]   ÚclausesÚ
self_groupr,   Ú_clonerF  Ú	expand_opr%   r1  Úscalar_values)r¹   rE   r­   r9  rh   s        rF   r    zInElementImpl._post_coercionf  s­   € Ø×"Ò"ð ×*Ñ*Ó,Ð,Ü˜¤×!4Ñ!4Ô5Ü˜7Ÿ?™?Ó+¨qÒ0Ñ0Ø×%Ñ%¨hÐ%Ó7Ð7ä˜¤×!7Ñ!7Ô8Ø—n‘n°$�nÓ7ˆGØ $ˆGÔØ (ˆGÔàˆNÜ˜¤×!2Ñ!2Ô3Ø×(Ñ(Ó*Ð*àˆNrH   rd   rË   )rÑ   rÒ   rÓ   rÔ   r¡   rB  r“   r    re   rH   rF   r?  r?  &  sW   „ Ø€Ið "&ð	AàðAð ðAð ð	Að
 ðAð 
óAò(
ò 4óDrH   r?  c                  ó&   — e Zd ZdZdZ	 dd„Zdd„Zy)ÚOnClauseImplre   TNc                ó&   — | j                  |«       y rd   rÀ   )r¹   rE   rµ   r  r€   r.  rh   s          rF   r“   zOnClauseImpl._literal_coercion€  s   € ð 	× Ñ  Õ)rH   c                ó>   — t        |t        j                  «      r|S |S rd   )rB   r   ÚJoinTargetRole)r¹   r£   rˆ   rh   s       rF   r    zOnClauseImpl._post_coercion…  s    € ô Ð&¬×(<Ñ(<Ô=Ø#Ð#ØˆrH   r4  rd   )rÑ   rÒ   rÓ   rÔ   r  r“   r    re   rH   rF   rU  rU  {  s   „ Ø€Ià€Nð EJó*ô
rH   rU  c                  ó   — e Zd ZdZdZdd„Zy)ÚWhereHavingImplre   TNc                ó   — t        ||«      S rd   rþ   rÿ   s      rF   r   zWhereHavingImpl._text_coercion•  r  rH   rd   ©rÑ   rÒ   rÓ   rÔ   r  r   re   rH   rF   rZ  rZ  �  s   „ Ø€Ià€Nô3rH   rZ  c                  ó   — e Zd ZdZdZdd„Zy)ÚStatementOptionImplre   TNc                ó,   — t        j                  |«      S rd   ©r"   rø   rÿ   s      rF   r   z"StatementOptionImpl._text_coercionž  s   € Ü×"Ñ" 7Ó+Ð+rH   rd   r\  re   rH   rF   r^  r^  ™  s   „ Ø€Ià€Nô,rH   r^  c                  ó   — e Zd ZdZy)ÚColumnArgumentImplre   N©rÑ   rÒ   rÓ   rÔ   re   rH   rF   rb  rb  ¢  ó   „ Ø�IrH   rb  c                  ó   — e Zd ZdZy)ÚColumnArgumentOrKeyImplre   Nrc  re   rH   rF   rf  rf  ¦  rd  rH   rf  c                  ó   — e Zd ZdZdd„Zy)ÚStrAsPlainColumnImplre   Nc                ó,   — t        j                  |«      S rd   )r"   r.   rÿ   s      rF   r   z#StrAsPlainColumnImpl._text_coercion­  s   € Ü×$Ñ$ WÓ-Ð-rH   rd   )rÑ   rÒ   rÓ   rÔ   r   re   rH   rF   rh  rh  ª  s   „ Ø€Iô.rH   rh  c                  ó   — e Zd ZdZdZdd„Zy)ÚByOfImplre   TNc                ó,   — t        j                  |«      S rd   )r"   Ú_textual_label_referencerÿ   s      rF   r   zByOfImpl._text_coercion¶  s   € Ü×0Ñ0°Ó9Ð9rH   rd   r\  re   rH   rF   rk  rk  ±  s   „ Ø€Ià€Nô:rH   rk  c                  ó   — e Zd ZdZd„ Zy)ÚOrderByImplre   c                ót   — t        || j                  «      r!|j                  �t        j                  |«      S |S rd   )rB   r�   Ú_order_by_label_elementr"   Ú_label_reference)r¹   r£   rh   s      rF   r    zOrderByImpl._post_coercion½  s4   € ä�x ×!1Ñ!1Ô2Ø×0Ñ0Ð<ä×,Ñ,¨XÓ6Ð6àˆOrH   NrÚ   re   rH   rF   ro  ro  º  s   „ Ø€IórH   ro  c                  ó.   — e Zd ZdZ	 d	 	 	 	 	 	 	 	 	 dd„Zy)ÚGroupByImplre   Nc                óT   — t        |«      rt        j                  |j                  Ž S |S rd   )r   r"   rI  ÚcrÁ   s        rF   r¡   zGroupByImpl._implicit_coercionsÊ  s&   € ô ˜(Ô#Ü×&Ñ&¨¯
©
Ð3Ð3àˆOrH   rd   rË   ©rÑ   rÒ   rÓ   rÔ   r¡   re   rH   rF   rt  rt  Ç  sA   „ Ø€Ið "&ð	
àð
ð ð
ð ð	
ð
 ð
ð 
ô
rH   rt  c                  ó   — e Zd ZdZdd„Zy)ÚDMLColumnImplre   c                ó"   — |r|j                   S |S rd   )Úkey)r¹   rE   rk   rh   s       rF   r    zDMLColumnImpl._post_coercionÚ  s   € ÙØ—;‘;ÐàˆNrH   N©FrÚ   re   rH   rF   ry  ry  ×  s   „ Ø€IôrH   ry  c                  ó   — e Zd ZdZdd„Zy)ÚConstExprImplre   Nc                ó´   — |€t        j                  «       S |du rt        j                  «       S |du rt        j                  «       S | j	                  ||«       y ©NFT)r"   r  r  r	  rš   rù   s       rF   r“   zConstExprImpl._literal_coercionä  sL   € Øˆ?Ü—=‘=“?Ð"Ø˜ÑÜ—?‘?Ó$Ð$Ø˜‰_Ü—>‘>Ó#Ð#à×$Ñ$ W¨gÕ6rH   rd   rú   re   rH   rF   r~  r~  á  s   „ Ø€Iô7rH   r~  c                  ó6   — e Zd ZdZ	 d	 	 	 	 	 	 	 	 	 dd„Zdd„Zy)ÚTruncatedLabelImplre   Nc                óN   — t        |t        «      r|S | j                  |||«       y rd   rà   rÁ   s        rF   r¡   z&TruncatedLabelImpl._implicit_coercionsò  s%   € ô �gœsÔ#ØˆOà×$Ñ$ W¨g°xÕ@rH   c                ód   — t        |t        j                  «      r|S t        j                  |«      S )z¸coerce the given value to :class:`._truncated_label`.

        Existing :class:`._truncated_label` and
        :class:`._anonymous_label` objects are passed
        unchanged.
        )rB   r"   Ú_truncated_labelrù   s       rF   r“   z$TruncatedLabelImpl._literal_coercionþ  s*   € ô �gœx×8Ñ8Ô9ØˆNä×,Ñ,¨WÓ5Ð5rH   rd   rË   rã   re   rH   rF   r‚  r‚  ï  sL   „ Ø€Ið "&ð	
Aàð
Að ð
Að ð	
Að
 ð
Að 
ó
Aô6rH   r‚  c                  ó   — e Zd ZdZdZdd„Zy)ÚDDLExpressionImplre   TNc                ó,   — t        j                  |«      S rd   r`  rÿ   s      rF   r   z DDLExpressionImpl._text_coercion  s   € ô
 ×"Ñ" 7Ó+Ð+rH   rd   r\  re   rH   rF   r‡  r‡    s   „ Ø€Ià€Nô,rH   r‡  c                  ó   — e Zd ZdZy)ÚDDLConstraintColumnImplre   Nrc  re   rH   rF   rŠ  rŠ    rd  rH   rŠ  c                  ó   — e Zd ZdZy)ÚDDLReferredColumnImplre   Nrc  re   rH   rF   rŒ  rŒ    rd  rH   rŒ  c                  ó4   — e Zd ZdZ	 d	 	 	 	 	 	 	 	 	 dd„Zd„ Zy)ÚLimitOffsetImplre   Nc                ó0   — |€y | j                  |||«       y rd   rÀ   rÁ   s        rF   r¡   z#LimitOffsetImpl._implicit_coercions$  s   € ð ÐØà×$Ñ$ W¨g°xÕ@rH   c                ód   — |€y t        j                  |«      }t        j                  |||d¬«      S )NT)r  r  )r    Úasintr%   Ú_OffsetLimitParam)r¹   rE   rµ   r  rh   Úvalues         rF   r“   z!LimitOffsetImpl._literal_coercion0  s4   € Øˆ?Øä—J‘J˜wÓ'ˆEÜ×/Ñ/Ø�e 5°ôð rH   rd   rË   rã   re   rH   rF   rŽ  rŽ  !  sL   „ Ø€Ið "&ð	
Aàð
Að ð
Að ð	
Að
 ð
Að 
ó
AórH   rŽ  c                  ó:   ‡ — e Zd ZdZ	 d	 	 	 	 	 	 	 	 	 dˆ fd„Zˆ xZS )ÚLabeledColumnExprImplre   c                óþ   •— t        |t        j                  «      r|j                  d «      S t	        ‰| �  ||fd|i|¤Ž}t        |t        j                  «      r|j                  d «      S | j                  |||«       y ©Nr€   )rB   r   ÚExpressionElementRoleÚlabelr  r¡   rš   )r¹   rE   r£   r€   rh   Únewrž   s         €rF   r¡   z)LabeledColumnExprImpl._implicit_coercions=  sz   ø€ ô �h¤× ;Ñ ;Ô<Ø—>‘> $Ó'Ð'ä‘'Ñ-Ø˜ñØ+2ðØ68ñˆCô ˜#œu×:Ñ:Ô;Ø—y‘y “Ð&à×(Ñ(¨°'¸8ÕDrH   rd   rË   )rÑ   rÒ   rÓ   rÔ   r¡   r  r  s   @rF   r•  r•  :  sN   ø„ Ø€Ið "&ð	EàðEð ðEð ð	Eð
 ðEð 
÷Eñ ErH   r•  c                  ót   ‡ — e Zd ZdZdZdZdZ ej                  dej                  «      Z
	 dˆ fd„	Zdd„Zˆ xZS )ÚColumnsClauseImplre   Tz^\w\S*$c                óˆ   •— |s,t        |t        «      rddj                  d„ |D «       «      › d�}t        ‰| �  |f|||dœ|¤ŽS )NzDid you mean to say select(z, c              3  ó2   K  — | ]  }t        |«      –— Œ y ­wrd   )rÆ   )Ú.0Úes     rF   ú	<genexpr>z8ColumnsClauseImpl._raise_for_expected.<locals>.<genexpr>_  s   è ø€ Ò6¨œT !ŸWÑ6ùs   ‚z)?r0  )rB   rZ   Újoinr  rš   )r¹   rE   r€   r£   rÇ   rh   rž   s         €rF   rš   z%ColumnsClauseImpl._raise_for_expectedY  s`   ø€ ñ œ* W¬dÔ3à-Ø—9‘9Ñ6¨gÔ6Ó6Ð7°rð;ð ô
 ‰wÑ*Øð
Ø$¨xÀñ
ØJLñ
ð 	
rH   c                óÄ   — t        |«      }| j                  j                  |«       }t        j                  dt        j                  |«      |rd|›�nd|rdnddœz  «      ‚)NzŸTextual column expression %(column)r %(argname)sshould be explicitly declared with text(%(column)r), or use %(literal_column)s(%(column)r) for more specificityrï   rð   Úliteral_columnr©   )r©   r€   r¤  )rK   Ú_guess_straight_columnÚmatchr   r^   r    rò   )r¹   rE   r€   Úguess_is_literals       rF   r   z ColumnsClauseImpl._text_coercionf  si   € Ü�g“,ˆà#×:Ñ:×@Ñ@ÀÓIÐIÐÜ×Ñð#ô
 ×.Ñ.¨wÓ7Ú=D±Ñ9È"á(8Ñ$¸hñ	ñ	
ó
ð 	
rH   )NNNrd   )rÑ   rÒ   rÓ   rÔ   r  r
  r  ÚreÚcompileÚIr¥  rš   r   r  r  s   @rF   rœ  rœ  P  s?   ø„ Ø€Ià€NØÐØ€Là'˜RŸZ™Z¨
°B·D±DÓ9Ðð <@õ
÷
rH   rœ  c                  ó   — e Zd ZdZy)ÚReturnsRowsImplre   Nrc  re   rH   rF   r¬  r¬  y  rd  rH   r¬  c                  óB   ‡ — e Zd ZdZdd„Z	 d	 	 	 	 	 	 	 	 	 dˆ fd„Zˆ xZS )ÚStatementImplre   c                óž   — ||urt        |t        «      s	 |j                   |S |S # t        $ r t	        j
                  d|z  d«       Y |S w xY w)Na  Object %r should not be used directly in a SQL statement context, such as passing to methods such as session.execute().  This usage will be disallowed in a future release.  Please use Core select() / update() / delete() etc. with Session.execute() and other statement execution methods.ú1.4)rB   rK   Ú_execute_on_connectionr™   r    Úwarn_deprecated)r¹   r£   rˆ   r€   rh   s        rF   r    zStatementImpl._post_coercion€  sj   € ØÐ+Ñ+´JØœcô5
ð
Ø ×7Ò7ð ˆˆxˆøô "ò 
Ü×$Ñ$ðð "2ñ2ð õ	ð ˆð
ús   –& ¦"AÁAc                óF   •— |j                   r|S t        ‰| �  ||fd|i|¤ŽS r—  )rí   r  r¡   )r¹   rE   r£   r€   rh   rž   s        €rF   r¡   z!StatementImpl._implicit_coercions–  s:   ø€ ð ×&Ò&ØˆOä‘7Ñ.Ø˜ñØ+2ðØ68ñð rH   rd   rË   )rÑ   rÒ   rÓ   rÔ   r    r¡   r  r  s   @rF   r®  r®  }  sL   ø„ Ø€Ióð4 "&ð	àðð ðð ð	ð
 ðð 
÷ñ rH   r®  c                  ó.   — e Zd ZdZ	 d	 	 	 	 	 	 	 	 	 dd„Zy)ÚSelectStatementImplre   Nc                ób   — |j                   r|j                  «       S | j                  |||«       y rd   )Ú_is_text_clauseÚcolumnsrš   rÁ   s        rF   r¡   z'SelectStatementImpl._implicit_coercions¨  s.   € ð ×#Ò#Ø×#Ñ#Ó%Ð%à×$Ñ$ W¨g°xÕ@rH   rd   rË   rw  re   rH   rF   rµ  rµ  ¥  sG   „ Ø€Ið "&ð	
Aàð
Að ð
Að ð	
Að
 ð
Að 
ô
ArH   rµ  c                  ó   — e Zd ZdZy)Ú
HasCTEImplre   Nrc  re   rH   rF   rº  rº  µ  rd  rH   rº  c                  ó   — e Zd ZdZy)Ú	IsCTEImplre   Nrc  re   rH   rF   r¼  r¼  ¹  rd  rH   r¼  c                  ó@   — e Zd ZdZdZdd„Z	 	 d	 	 	 	 	 	 	 	 	 	 	 dd„Zy)	ÚJoinTargetImplre   TNc                ó(   — | j                  ||«       y rd   rÀ   rù   s       rF   r“   z JoinTargetImpl._literal_coercionÂ  s   € Ø× Ñ  ¨'Õ2rH   c                ó°   — t        |t        j                  «      r|S |r%|j                  rt	        j
                  dd¬«       |S | j                  |||«       y ©NzÀImplicit coercion of SELECT and textual SELECT constructs into FROM clauses is deprecated; please call .subquery() on any Core select or ORM Query object in order to produce a subquery object.r°  )Úversion)rB   r   rX  rê   r    r²  rš   )r¹   rE   r£   r€   Úlegacyrh   s         rF   r¡   z"JoinTargetImpl._implicit_coercionsÅ  sW   € ô �gœu×3Ñ3Ô4ð ˆNÙ˜×0Ò0Ü× Ñ ð6ð õð ˆOà×$Ñ$ W¨g°xÕ@rH   rd   r  )rE   r   r£   r   r€   rÌ   rÃ  Úboolrh   r   rÍ   r   )rÑ   rÒ   rÓ   rÔ   r”   r“   r¡   re   rH   rF   r¾  r¾  ½  s`   „ Ø€Ià+/Ð(ó3ð "&ØðAàðAð ðAð ð	Að
 ðAð ðAð 
ôArH   r¾  c                  óB   — e Zd ZdZ	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Zdd„Zy)ÚFromClauseImplre   Nc                óÎ   — |j                   r8|r|j                  «       S |r#t        j                  dd¬«       |j                  S y |j
                  r|S | j                  |||«       y rÁ  )rê   Úsubqueryr    r²  Ú_implicit_subqueryr·  rš   ©r¹   rE   r£   r€   rz   Úallow_selectrh   s          rF   r¡   z"FromClauseImpl._implicit_coercionsæ  so   € ð ×#Ò#Ù Ø×(Ñ(Ó*Ð*ÙÜ×$Ñ$ð:ð "õð  ×2Ñ2Ð2ð ð ×%Ò%ØˆOà×$Ñ$ W¨g°xÕ@rH   c                ó*   — |r|j                  «       S |S rd   )Ú_deannotate)r¹   rE   Ú
deannotaterh   s       rF   r    zFromClauseImpl._post_coercion   s   € ÙØ×&Ñ&Ó(Ð(àˆNrH   r€  ©rE   r   r£   r   r€   rÌ   rz   rÄ  rË  rÄ  rh   r   rÍ   r   r|  )rÑ   rÒ   rÓ   rÔ   r¡   r    re   rH   rF   rÆ  rÆ  ã  sh   „ Ø€Ið "&Ø"'Ø!ðAàðAð ðAð ð	Að
  ðAð ðAð ðAð 
óAô4rH   rÆ  c                  ó:   — e Zd ZdZ	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Zy)ÚStrictFromClauseImplre   Nc                óŒ   — |j                   r%|r#t        j                  dd¬«       |j                  S | j	                  |||«       y rÁ  )rê   r    r²  rÉ  rš   rÊ  s          rF   r¡   z(StrictFromClauseImpl._implicit_coercions
  sG   € ð ×#Ò#©Ü× Ñ ð#ð õð ×.Ñ.Ð.à×$Ñ$ W¨g°xÕ@rH   )NFFrÏ  rw  re   rH   rF   rÑ  rÑ    sc   „ Ø€Ið "&Ø"'Ø"ðAàðAð ðAð ð	Að
  ðAð ðAð ðAð 
ôArH   rÑ  c                  ó   — e Zd ZdZdd„Zy)ÚAnonymizedFromClauseImplre   Nc                ó.   — |�J ‚|j                  |¬«      S )N)Úflat)Ú_anonymous_fromclause)r¹   rE   rÖ  rµ   rh   s        rF   r    z'AnonymizedFromClauseImpl._post_coercion#  s   € Øˆ|Ñà×,Ñ,°$Ð,Ó7Ð7rH   )FNrÚ   re   rH   rF   rÔ  rÔ     s   „ Ø€Iô8rH   rÔ  c                  ó   — e Zd ZdZd„ Zy)ÚDMLTableImplre   c                ó@   — d|j                   v r|j                   d   S |S )NÚ	dml_table)Ú_annotationsr¸   s      rF   r    zDMLTableImpl._post_coercion,  s&   € Ø˜'×.Ñ.Ñ.Ø×'Ñ'¨Ñ4Ð4àˆNrH   NrÚ   re   rH   rF   rÙ  rÙ  )  s   „ Ø€IórH   rÙ  c                  ó.   — e Zd ZdZ	 d	 	 	 	 	 	 	 	 	 dd„Zy)ÚDMLSelectImplre   Nc                óÚ   — |j                   rLt        |t        j                  «      r"|j                  j
                  r|j                  S |j                  «       S | j                  |||«       y rd   )rì   rB   r%   rA  rE   rê   rC  rš   rÁ   s        rF   r¡   z!DMLSelectImpl._implicit_coercions6  sW   € ð ×#Ò#ä˜8¤Z×%5Ñ%5Ô6Ø×$Ñ$×4Ò4à×'Ñ'Ð'à—‘Ó(Ð(à×$Ñ$ W¨g°xÕ@rH   rd   rË   rw  re   rH   rF   rÞ  rÞ  3  sG   „ Ø€Ið "&ð	AàðAð ðAð ð	Að
 ðAð 
ôArH   rÞ  c                  ó$   ‡ — e Zd ZdZdˆ fd„	Zˆ xZS )ÚCompoundElementImplre   c                óˆ   •— t        |t        j                  «      r|j                  rd}nd}nd }t	        ‰| �  |f|||dœ|¤ŽS )NzFUse the plain select() object without calling .subquery() or .alias().z9To SELECT from any FROM clause, use the .select() method.r0  )rB   r   ÚFromClauseRoleÚ_is_subqueryr  rš   r3  s         €rF   rš   z'CompoundElementImpl._raise_for_expectedL  sa   ø€ Ü�gœu×3Ñ3Ô4Ø×#Ò#ð7ñ ð Pñ ð ˆFÜ‰wÑ*Øð
Ø$¨xÀñ
ØJLñ
ð 	
rH   r  r  r  s   @rF   rá  rá  I  s   ø„ Ø€I÷
ñ 
rH   rá  ÚRoleÚImpl)rT   rK   rU   rK   rV   rK   rÍ   zCallable[[_F], _F])r_   rK   r`   rK   ra   z+Union[Sequence[_T], Sequence[Sequence[_T]]]rÍ   rY   )rg   zType[roles.TruncatedLabelRole]rE   r   rh   r   rÍ   rK   )
rg   úType[roles.DMLColumnRole]rE   r   rk   úLiteral[True]rh   r   rÍ   rK   )rg   zType[roles.LiteralValueRole]rE   r   rh   r   rÍ   zBindParameter[Any])rg   z!Type[roles.DDLReferredColumnRole]rE   r   rh   r   rÍ   zColumn[Any])rg   ú#Type[roles.DDLConstraintColumnRole]rE   r   rh   r   rÍ   zUnion[Column[Any], str])rg   zType[roles.StatementOptionRole]rE   r   rh   r   rÍ   r0   )rg   z&Type[roles.LabeledColumnExprRole[Any]]rE   ú_ColumnExpressionArgument[_T]rh   r   rÍ   zNamedColumn[_T])rg   zgUnion[Type[roles.ExpressionElementRole[Any]], Type[roles.LimitOffsetRole], Type[roles.WhereHavingRole]]rE   rê  rh   r   rÍ   zColumnElement[_T])rg   z¡Union[Type[roles.ExpressionElementRole[Any]], Type[roles.LimitOffsetRole], Type[roles.WhereHavingRole], Type[roles.OnClauseRole], Type[roles.ColumnArgumentRole]]rE   r   rh   r   rÍ   zColumnElement[Any])rg   zType[roles.DMLTableRole]rE   r)   rh   r   rÍ   r+   )rg   zType[roles.HasCTERole]rE   r7   rh   r   rÍ   r7   )rg   zType[roles.SelectStatementRole]rE   r8   rh   r   rÍ   r8   )rg   úType[roles.FromClauseRole]rE   r*   rh   r   rÍ   r6   )
rg   rë  rE   r8   rz   rè  rh   r   rÍ   r9   )rg   zType[roles.ColumnsClauseRole]rE   z_ColumnsClauseArgument[Any]rh   r   rÍ   r4   )rg   zType[roles.JoinTargetRole]rE   r5   rh   r   rÍ   r5   )rg   ú	Type[_SR]rE   r   rh   r   rÍ   r   )rg   rì  rE   r   r   zOptional[ClauseElement]r€   rÌ   r�   rÄ  r‚   rÄ  rh   r   rÍ   r   )rg   rç  rE   r   rh   r   rÍ   rK   )rg   ré  r¬   zIterable[_DDLColumnArgument]rÍ   zwIterator[Tuple[Union[str, Column[Any]], Optional[ColumnClause[Any]], Optional[str], Optional[Union[Column[Any], str]]]])rE   r   r€   rÌ   ró   zType[exc.SQLAlchemyError]rñ   rÌ   rÈ   rÐ   rÍ   r   )�Ú
__future__r   Úcollections.abcÚabcrJ   r  r¨  rœ   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   rð   r   r   r   Ú_typingr   Úbaser   r   Ú	cache_keyr   r   r   r   r    Úutil.typingr!   r"   r#   r$   r%   r&   r'   r(   r)   r*   Údmlr+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   ÚSQLRoler;   r=   Ú
StringRoler>   r?   rG   rL   rW   rb   ri   r§   r²   r´   r×   rÜ   rÞ   rå   r^   rô   rö   rü   r  r  r   r%  r)  r6  r?  rU  rZ  r^  rb  rf  rh  ÚByOfRolerk  ro  rt  ry  r~  r‚  r‡  rŠ  rŒ  rŽ  r•  rœ  r¬  r®  rµ  rº  r¼  r¾  rÆ  rÑ  rÔ  rÙ  rÞ  rá  r�   Údirrµ   r•   ÚclsÚendswithÚreplaceÚglobalsr¢   r˜  Úee_implÚintrÄ  rK   ÚfloatÚpy_typere   rH   rF   ú<module>r     sW	  ðõ #å )Û Û 	Û Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý  Ý Ý å Ý Ý Ý #Ý "Ý Ý "Ý Ý Ý Ý Ý !à	×ÒåÝÝÝÝ2Ý/Ý+Ý*Ý,Ý%Ý'Ý'Ý&Ý'Ý-Ý%Ý+ÝÝ1Ý/Ý&Ý"Ý&Ý$Ý/áˆe˜5Ÿ=™=Ô)€ÙˆT˜ # s (Ñ+Ô,€Ù�~¨U×-=Ñ-=Ô>€ÙˆT˜Ô€ò	5ò#ðLØðØ!ðØ.1ðàóð &Øð&àð&ð 6ð&ð ó	&ð$ 
ðØ
(ðàðð ðð 	ò	ó 
ðð 
ð
  ñ	Ø
#ðàðð ð	ð
 ðð 	òó 
ðð 
ðØ
&ðàðð ðð ò	ó 
ðð 
ðØ
+ðàðð ðð ò	ó 
ðð 
ð"Ø
-ð"àð"ð ð"ð ò	"ó 
ð"ð 
ðØ
)ðàðð ðð ò	ó 
ðð 
ðØ
0ðà*ðð ðð ò	ó 
ðð 
ðððð +ðð ðð òó 
ðð 
ð
ðð
ð ð
ð ð
ð ò
ó 
ð
ð 
ðØ
"ðàðð ðð ò	ó 
ðð 
ðØ
 ðàðð ðð ò	ó 
ðð 
ðØ
)ðàðð ðð ò	ó 
ðð 
ðØ
$ðà ðð ðð ò	ó 
ðð 
ð
 (+ñ	Ø
$ðàðð %ð	ð
 ðð òó 
ðð 
ð Ø
'ð à(ð ð ð ð ò	 ó 
ð ð 
ðØ
$ðà ðð ðð ò	ó 
ðð 
ðØ
ðàðð ðð 	ò	ó 
ðð 6:Ø!ØØ$ñq
Ø
ðq
àðq
ð 3ð	q
ð
 ðq
ð ðq
ð ðq
ð ðq
ð 	óq
ðh4Ø
#ð4Ø.1ð4Ø9<ð4àó4ð5Ø
-ð5à-ð5ðó5÷<39ñ 39÷l*ñ *÷!ñ !ô
˜ô 
ôJ�xô Jð< "Ø),×):Ñ):ØØ#ðØðàðð 'ðð ð	ð
 
ðð óô$	7�hô 	7ô3�hô 3ô<�xô ô:%�xô %ôP�hô ô&˜8ô ô&(
Ð,¨hô (
ôVÐ-¨xô ô&R�Hô RôjÐ# Xô ô*3�oÐ'7¸ô 3ô,˜/¨8ô ,ô˜¨(ô ôÐ/°ô ô.˜?¨Hô .ô:ˆÐ 0°(¸E¿N¹Nô :ô
�(˜Hô 
ô�(˜Hô ô Ð% xô ô7�Hô 7ô6˜ hô 6ô:
,˜ _°hô 
,ô˜kÐ+<¸hô ôÐ3ô ô�hô ô2EÐ1ô Eô,&
Ð(¨/¸8ô &
ôR�hô ô%�O Xô %ôPA˜/¨8ô Aô �ô ô�ô ô#A�Xô #AôL!Ð% ¸ô !ôHA˜>ô Aô28Ð3ô 8ôÐ# _°hô ôA�O Xô Aô,
˜/¨8ô 
ð* €ñ �‹Jò %€DÙ
�%˜Ó
€CØ‡}‚}�VÕØ�|Š|˜F FÓ+ˆØ‘7“9ÒØ"‘7“9˜T‘? 3Ó'ˆDØ $ˆL˜Òð%ñ Ø˜5×6Ò6Ñ7€Gà˜˜s EÐ*ò EˆØ=Dˆ�U×0Ò0°Ñ9Ò:ñEð rH   