§
    ZøÁiFL  ã                  óæ  — d dl m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' d dl#m(Z( d d l)m*Z* d d!l+m,Z, erZd d"lm-Z- d d#lm.Z. d d$lm/Z/ d d%lm0Z0 d d&lm1Z1 d d'lm2Z2 d d(l3m4Z4 d d)l!m5Z5 d d*l6m7Z7 d d+l8m9Z9 d d,l#m:Z: d d-l;m<Z< d d.l;m=Z= d d/l>m?Z? d d0l>m@Z@  ed1ed2         ¬3¦  «        ZA G d4„ d5e¦  «        ZBdÈd:„ZC eDd;„  ejE        d<e¦  «        D ¦   «         ¦  «        ZFeFd=k    ZGeFd>k    ZHeFd?k    ZIeFd@k    ZJeFdAk    ZKeZL	 d dBlMmNZN n# eO$ r	 d dBl#mNZN Y nw xY w G dC„ dD¦  «        ZPerdÉdI„ZQnd dJlRmQZQ 	 d dKlmSZS dLZTeFdMk    ZUn# eO$ r es G dN„ dOeP¦  «        ZSdPZTdPZUY nw xY w	 d dQlmVZV  eWeVe"¦  «        ZX	 dÊdËdW„ZYdLZZn# eO$ r es G dX„ dYeP¦  «        ZVdPZZY nw xY weKrd dZl!m[Z[ nd d[l\m]Z[ ede^e[f         Z_ee^e[f         Z`dÌd_„ZadÍda„ZbdÎdc„ZcddZdeje        dÏdh„¦   «         ZfdÐdi„ZgdÑdl„ZhdÒdn„ZidÒdo„ZjdÓdp„ZkdÔdt„ZldÕdv„ZmdÖdx„Znd×dz„ZodØd„Zpd€„ Zqd�„ ZrdÙd‚„ZsdÙdƒ„ZtdÚd‡„Zudˆ„ ZvdÛdŒ„Zwd�„ Zx eyejz        dŽ¦  «        rd�„ Z{d�„ Z|nd‘„ Z{d’„ Z|dÜd•„Z}dÝd–„Z~dÞd—„Zd˜„ Z€dßd�„Z�dàd¡„Z‚dád¤„Zƒ G d¥„ d¦ej:        ¦  «        Z„ eQe„¦  «        dâd©„¦   «         Z… G dª„ d«e$¦  «        Z† eQe†¦  «        dãd¬„¦   «         Z‡däd°„Zˆdåd´„Z‰dæd¶„ZŠdçd¹„Z‹dº„ ZŒdèd½„Z�eHrd d¾lmŽZŽ d d¿lm�Z� e�Z‘nd dÀlm’Z’ dÁ„ ZŽdédÃ„Z‘dêdÅ„Z“dëdÇ„Z”dS )ìé    )ÚannotationsN)ÚAny)ÚCallable)ÚDict)ÚIterable)ÚIterator)ÚMapping)ÚOptional)ÚProtocol)ÚSet)ÚType)ÚTYPE_CHECKING)ÚTypeVar)ÚUnion)Ú__version__)Úinspect©Úschema)Úsql)Útypes)Úurl)ÚCheckConstraint)ÚColumn)ÚForeignKeyConstraint)Úvisitors)ÚDialectKWArgs)ÚBindParameter)ÚColumnClause)Úquoted_name)Ú
TextClause)ÚUnaryExpression)Útraverse)Ú	TypeGuard)ÚClauseElement)ÚIndex)ÚTable)Ú
Connection)ÚDialect)ÚTransaction)Ú	Inspector)ÚColumnCollection)ÚSQLCompiler)ÚInsert)ÚColumnElement)Ú
Constraint)Ú
SchemaItem)ÚSelect)ÚTableClauseÚ_CE)zColumnElement[Any]r0   )Úboundc                  ó   — e Zd Zd	d„ZdS )
Ú_CompilerProtocolÚelementr   ÚcompilerÚkwÚreturnÚstrc                ó   — d S ©N© )Úselfr7   r8   r9   s       úb/var/www/html/jarvis.com/web/backend/venv/lib/python3.11/site-packages/alembic/util/sqla_compat.pyÚ__call__z_CompilerProtocol.__call__>   s   € € € ó    N)r7   r   r8   r   r9   r   r:   r;   )Ú__name__Ú
__module__Ú__qualname__rA   r>   rB   r@   r6   r6   =   s   € € € € € ØJÐJÐJÐJÐJÐJrB   r6   Úvaluer;   r:   úUnion[int, str]c                ó4   — 	 t          | ¦  «        S #  | cY S xY wr=   )Úint)rF   s    r@   Ú	_safe_intrJ   A   s%   € ðÝ�5‰zŒzÐøðØˆˆˆøøøs   ‚ ‘c                ó,   — g | ]}t          |¦  «        ‘ŒS r>   )rJ   )Ú.0Úxs     r@   ú
<listcomp>rN   I   s   € ÐEÐEÐE�a…Yˆq�\„\ÐEÐEÐErB   z(\d+|[abc]\d))é   é   )rO   é   )rO   rQ   é   )rO   rQ   é   )é   )Ú
_NONE_NAMEc                  ó   — e Zd ZdZdS )Ú_Unsupportedz.Placeholder for unsupported SQLAlchemy classesN)rC   rD   rE   Ú__doc__r>   rB   r@   rW   rW   Y   s   € € € € € Ø4Ð4Ð4Ð4rB   rW   r7   úType[ClauseElement]Údialectsú0Callable[[_CompilerProtocol], _CompilerProtocol]c                ó   — d S r=   r>   )r7   rZ   s     r@   Úcompilesr]   _   s   € à;>¸3rB   )r]   )ÚComputedT)rO   rP   é   c                  ó   — e Zd ZdS )r^   N©rC   rD   rE   r>   rB   r@   r^   r^   k   ó   € € € € € ØˆDrB   r^   F)ÚIdentityÚidentityú&Union[Identity, schema.Sequence, None]Údialect_kwargsÚboolúDict[str, Any]c                óX  ‡ — ‰ €i S t           rH‰                      ¦   «         }|r1t          ‰ t          ¦  «        sJ ‚|                     ‰ j        ¦  «         nUi }t          ‰ t          ¦  «        r‰ j        |d<   ‰ j        �
‰ j        |d<   d}|                     ˆ fd„|D ¦   «         ¦  «         |S )NÚalwaysÚon_null)	ÚstartÚ	incrementÚminvalueÚmaxvalueÚ
nominvalueÚ
nomaxvalueÚcycleÚcacheÚorderc                óV   •— i | ]%}t          ‰|d ¦  «        ®|t          ‰|d ¦  «        “Œ&S r=   )Úgetattr)rL   Úkeyrd   s     €r@   ú
<dictcomp>z._get_identity_options_dict.<locals>.<dictcomp>Ÿ   sC   ø€ ð ð ð àÝ˜x¨¨dÑ3Ô3Ð?ð � ¨3°Ñ5Ô5à?Ð?Ð?rB   )	Úidentity_has_dialect_kwargsÚ_as_dictÚ
isinstancer   Úupdaterf   rc   rj   rk   )rd   rf   Úas_dictÚattrss   `   r@   Ú_get_identity_options_dictr   €   sâ   ø€ ð ÐØˆIÝ(ð 	Ø×'Ò'Ñ)Ô)ˆGØð 8Ý! (­MÑ:Ô:Ð:Ð:Ð:Ø—’˜xÔ6Ñ7Ô7Ð7øàˆGÝ˜(¥HÑ-Ô-ð :à$,¤O�˜Ñ!ØÔ#Ð/Ø)1Ô)9�G˜IÑ&ð
ˆEð �NŠNðð ð ð à$ðñ ô ñô ð ð ˆrB   c                  ó   — e Zd ZdS )rc   Nra   r>   rB   r@   rc   rc   y   rb   rB   rc   )Ú	_NoneName)ÚsymbolÚnameÚ_ConstraintNameú!TypeGuard[_ConstraintNameDefined]c                óL   — | t           u pt          | t          t          f¦  «        S r=   )rU   r{   r;   r�   ©rƒ   s    r@   Úconstraint_name_definedrˆ   ´   s#   € ð •:ÐÐC¥¨Dµ3½	Ð2BÑ!CÔ!CÐCrB   úTypeGuard[str]c                ó,   — t          | t          ¦  «        S r=   )r{   r;   r‡   s    r@   Úconstraint_name_stringr‹   º   s   € õ �d�CÑ Ô Ð rB   úOptional[str]c                ó(   — t          | ¦  «        r| nd S r=   )r‹   r‡   s    r@   Úconstraint_name_or_nonerŽ   À   s   € õ *¨$Ñ/Ô/Ð9ˆ4ˆ4°TÐ9rB   ÚautoÚ
connectionúOptional[Connection]úIterator[None]c              #  óÚ   K  — 	 | j         }n# t          $ r d }Y nw xY w|€d V — d S  |¦   «         s7| €J ‚|                      ¦   «         5  d V — d d d ¦  «         d S # 1 swxY w Y   d S d V — d S r=   )Úin_transactionÚAttributeErrorÚbegin©r�   r”   s     r@   Ú_ensure_scope_for_ddlr˜   É   sù   è è € ðØ#Ô2ˆˆøÝð ð ð àˆØˆðøøøð ÐØˆˆˆˆˆàˆ~ÑÔð 	ØÐ)Ð)Ð)Ø×!Ò!Ñ#Ô#ð ð Ø���ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð ð ˆEˆEˆEˆEˆEs   „ ŒšÁAÁAÁ!Ac                óT   — t           r | j        |¬¦  «        S  | j        |¬¦  «        S )N)Úhide_password)Úsqla_14Úrender_as_stringÚ__to_string__)r   rš   s     r@   Úurl_render_as_stringrž   à   s6   € Ýð >Ø#ˆsÔ#°-Ð@Ñ@Ô@Ð@à ˆsÔ ¨}Ð=Ñ=Ô=Ð=rB   r'   r)   c                óP   — t          | ¦  «        }|r|S |                      ¦   «         S r=   )Ú_get_connection_transactionr–   ©r�   Útransactions     r@   Ú"_safe_begin_connection_transactionr£   ç   s1   € õ .¨jÑ9Ô9€KØð "ØÐà×ÒÑ!Ô!Ð!rB   ÚNonec                óT   — t          | ¦  «        }|r|                     ¦   «          d S d S r=   )r    Úcommitr¡   s     r@   Ú#_safe_commit_connection_transactionr§   ñ   s;   € õ .¨jÑ9Ô9€KØð Ø×ÒÑÔÐÐÐðð rB   c                óT   — t          | ¦  «        }|r|                     ¦   «          d S d S r=   )r    Úrollbackr¡   s     r@   Ú%_safe_rollback_connection_transactionrª   ù   s;   € õ .¨jÑ9Ô9€KØð Ø×ÒÑÔÐÐÐðð rB   c                óH   — 	 | j         } |¦   «         S # t          $ r Y dS w xY w)NF)r”   r•   r—   s     r@   Ú_get_connection_in_transactionr¬     sC   € ð Ø#Ô2ˆð
 ˆ~ÑÔÐøõ	 ð ð ð àˆuˆuðøøøs   ‚ “
! !Úidxr%   úIterable[ColumnElement[Any]]c                ó   — | j         S r=   )Úexpressions)r­   s    r@   Ú_idx_table_bound_expressionsr±     s
   € ØŒ?ÐrB   Úschema_itemc                óV   — t          | d¦  «        r | j        di |¤ŽS  | j        di |¤ŽS )NÚ_copyr>   )Úhasattrr´   Úcopy)r²   r9   s     r@   r´   r´     sF   € Ýˆ{˜GÑ$Ô$ð &Ø ˆ{Ô Ð&Ð& 2Ð&Ð&Ð&àˆ{ÔÐ%Ð% "Ð%Ð%Ð%rB   úOptional[Transaction]c                óT   — t           r|                      ¦   «         S | j        }|j        S r=   )r›   Úget_transactionÚ_rootÚ_Connection__transaction)r�   Úrs     r@   r    r      s/   € õ ð *Ø×)Ò)Ñ+Ô+Ð+àÔˆØÔ)Ð)rB   úurl.URLc                 ó„   — t          t          j        d¦  «        rt          j        j        | i |¤ŽS t          j        | i |¤ŽS )NÚcreate)rµ   r   ÚURLr¿   )Úargr9   s     r@   Ú_create_urlrÂ      sB   € Ý�sŒw˜Ñ!Ô!ð #ÝŒwŒ~˜sÐ) bÐ)Ð)Ð)åŒw˜Ð"˜rÐ"Ð"Ð"rB   ÚconnectableÚ	tablenameÚ
schemanameúUnion[str, None]c                óŽ   — t           r#t          | ¦  «                             ||¦  «        S | j                             | ||¦  «        S r=   )r›   r   Ú	has_tableÚdialect)rÃ   rÄ   rÅ   s      r@   Ú_connectable_has_tablerÊ   '  sL   € õ ð 
Ý�{Ñ#Ô#×-Ò-¨i¸ÑDÔDÐDàÔ"×,Ò,Ø˜ Jñ
ô 
ð 	
rB   c                óÎ   — t           rD|                      ¦   «         5 }|                     ||¦  «        cd d d ¦  «         S # 1 swxY w Y   d S | j                             ||¦  «        S r=   )r›   Ú_operation_contextÚexecuteÚbind)Ú	inspectorÚ	statementÚparamsÚconns       r@   Ú_exec_on_inspectorrÓ   2  s¨   € Ýð 9Ø×)Ò)Ñ+Ô+ð 	3¨tØ—<’< 	¨6Ñ2Ô2ð	3ð 	3ð 	3ð 	3ñ 	3ô 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3øøøð 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð Œ~×%Ò% i°Ñ8Ô8Ð8s   œ?¿AÁAc                óF   — t           s| j        S ddlm} | j        |j        u S )Nr   r   )r›   ÚnullableÚsqlalchemy.sqlr   Ú_user_defined_nullableÚNULL_UNSPECIFIED)Úmetadata_columnr   s     r@   Ú_nullability_might_be_unsetrÚ   :  s:   € Ýð 
ØÔ'Ð'à)Ð)Ð)Ð)Ð)Ð)ð Ô2°fÔ6MÐMð	
rB   c                 óF   — t           sdS t          d„ | D ¦   «         ¦  «        S )NFc              3  ó@   K  — | ]}t          |t          ¦  «        V — Œd S r=   )r{   r^   ©rL   Úsds     r@   ú	<genexpr>z._server_default_is_computed.<locals>.<genexpr>I  ó,   è è € ÐEÐE°•:˜b¥(Ñ+Ô+ÐEÐEÐEÐEÐEÐErB   )Úhas_computedÚany©Úserver_defaults    r@   Ú_server_default_is_computedrå   E  s-   € Ýð FØˆuåÐEÐE°nÐEÑEÔEÑEÔEÐErB   c                 óF   — t           sdS t          d„ | D ¦   «         ¦  «        S )NFc              3  ó@   K  — | ]}t          |t          ¦  «        V — Œd S r=   )r{   rc   rÝ   s     r@   rß   z._server_default_is_identity.<locals>.<genexpr>P  rà   rB   )r›   râ   rã   s    r@   Ú_server_default_is_identityrè   L  s-   € Ýð FØˆuåÐEÐE°nÐEÑEÔEÑEÔEÐErB   Ú
constraintr/   r&   c                óT   — t          | t          ¦  «        r| j        }|€J ‚|S | j        S r=   )r{   r   ÚparentÚtable)ré   rì   s     r@   Ú_table_for_constraintrí   S  s7   € Ý�*Õ2Ñ3Ô3ð  ØÔ!ˆØÐ Ð Ð ØˆàÔÐrB   c                óÈ   — t          | t          ¦  «        rd„ | j        D ¦   «         S t          | t          ¦  «        rt	          | j        ¦  «        S t          | j        ¦  «        S )Nc                ó   — g | ]	}|j         ‘Œ
S r>   )rë   )rL   Úfks     r@   rN   z+_columns_for_constraint.<locals>.<listcomp>^  s   € Ð8Ð8Ð8˜b�”	Ð8Ð8Ð8rB   )r{   r   Úelementsr   Ú_find_columnsÚsqltextÚlistÚcolumns©ré   s    r@   Ú_columns_for_constraintr÷   \  s`   € Ý�*Õ2Ñ3Ô3ð (Ø8Ð8 JÔ$7Ð8Ñ8Ô8Ð8Ý	�J¥Ñ	0Ô	0ð (Ý˜ZÔ/Ñ0Ô0Ð0å�JÔ&Ñ'Ô'Ð'rB   rÏ   r*   rì   c                óh   — t           r|                      |d ¦  «        S |                      |d ¦  «        S r=   )r›   Úreflect_tableÚreflecttable)rÏ   rì   s     r@   Ú_reflect_tablerû   e  s=   € Ýð 
Ø×&Ò& u¨dÑ3Ô3Ð3à×%Ò%Ø�4ñ
ô 
ð 	
rB   c                ó~   — t          | ¦  «        r-t          | ¦  «        \  }}|                     |j        |¦  «        S | S r=   )Ú_type_has_variantsÚ_get_variant_mappingÚgetrƒ   )Útype_rÉ   Ú	base_typeÚmappings       r@   Ú_resolve_for_variantr  n  s?   € Ý˜%Ñ Ô ð Ý1°%Ñ8Ô8Ñˆ	�7Ø�{Š{˜7œ<¨Ñ3Ô3Ð3àˆrB   Ú_variant_mappingc                ó*   — t          | j        ¦  «        S r=   )rg   r  ©r   s    r@   rý   rý   x  s   € Ý�EÔ*Ñ+Ô+Ð+rB   c                ó   — | | j         fS r=   )r  r  s    r@   rþ   rþ   {  s   € Ø�eÔ,Ð,Ð,rB   c                ó8   — t          | ¦  «        t          j        u S r=   )ÚtypeÚsqltypesÚVariantr  s    r@   rý   rý   €  s   € Ý�E‰{Œ{�hÔ.Ð.Ð.rB   c                ó   — | j         | j        fS r=   )Úimplr  r  s    r@   rþ   rþ   ƒ  s   € ØŒz˜5œ=Ð(Ð(rB   r   r   c           
     ó¦  ‡ — t           r.‰ j        €J ‚‰ j        €J ‚t          ‰ j        t
          ¦  «        sJ ‚ˆ fd„‰ j        D ¦   «         }‰ j        j        }‰ j        j        }‰ j        d         j	        j
        j        }‰ j        d         j	        j
        j        }d„ ‰ j        D ¦   «         }‰ j        }‰ j        }‰ j        }	‰ j        }
|||||||||	|
f
S )Nc                ó4   •— g | ]}‰j         |         j        ‘ŒS r>   )rõ   rƒ   )rL   rw   ré   s     €r@   rN   z_fk_spec.<locals>.<listcomp>�  s1   ø€ ð ð ð Ø),ˆ
Ô˜3ÔÔ$ðð ð rB   r   c                ó&   — g | ]}|j         j        ‘ŒS r>   )Úcolumnrƒ   )rL   r7   s     r@   rN   z_fk_spec.<locals>.<listcomp>•  s   € ÐMÐMÐM¨g�g”nÔ)ÐMÐMÐMrB   )r   rõ   rñ   r{   rë   r&   Úcolumn_keysrƒ   r   r  rì   ÚondeleteÚonupdateÚ
deferrableÚ	initially)ré   Úsource_columnsÚsource_tableÚsource_schemaÚtarget_schemaÚtarget_tableÚtarget_columnsr  r  r  r  s   `          r@   Ú_fk_specr  ‡  s  ø€ Ýð 4ØÔ!Ð-Ð-Ð-ØÔ"Ð.Ð.Ð.Ý˜*Ô+­UÑ3Ô3Ð3Ð3Ð3ðð ð ð Ø0:Ô0Fðñ ô €Nð Ô$Ô)€LØÔ%Ô,€MØÔ'¨Ô*Ô1Ô7Ô>€MØÔ& qÔ)Ô0Ô6Ô;€LØMÐM¸Ô9LÐMÑMÔM€NØÔ"€HØÔ"€HØÔ&€JØÔ$€IàØØØØØØØØØðð rB   c                óð   — | j         d                              ¦   «         }|                     d¦  «        }|                     d¦  «         d                     |¦  «        }| j        €J ‚|| j        j        k    S )Nr   ú.éÿÿÿÿ)rñ   Ú_get_colspecÚsplitÚpopÚjoinrë   rw   )ré   ÚspecÚtokensÚtablekeys       r@   Ú_fk_is_self_referentialr(  ¨  sj   € ØÔ˜qÔ!×.Ò.Ñ0Ô0€DØ�ZŠZ˜‰_Œ_€FØ
‡J‚Jˆr�N„N€NØ�xŠx˜ÑÔ€HØÔÐ(Ð(Ð(Ø�zÔ(Ô,Ò,Ð,rB   c                ó   — | j         S r=   )Ú_type_boundrö   s    r@   Ú_is_type_boundr+  ±  s   € ð Ô!Ð!rB   c                óR   — t          ¦   «         }t          | i d|j        i¦  «         |S )z2locate Column objects within the given expression.r  )Úsetr"   Úadd)ÚclauseÚcolss     r@   rò   rò   ¸  s+   € õ %(¡E¤E€DÝˆV�R˜( D¤HÐ-Ñ.Ô.Ð.Ø€KrB   Ú
collectionr+   r  ú%Union[Column[Any], ColumnClause[Any]]c                óÔ   — |j         €J ‚| |j                  }t          | d¦  «        st          | d¦  «        r| j                             |¦  «         dS |                      |¦  «         dS )z(remove a column from a ColumnCollection.NÚ
_immutableÚ	_readonly)rw   rµ   Ú_parentÚremove)r1  r  Ú	to_removes      r@   Ú_remove_column_from_collectionr9  À  sz   € ð Œ:Ð!Ð!Ð!Ø˜6œ:Ô&€Iõ ˆz˜<Ñ(Ô(ð %­G°JÀÑ,LÔ,Lð %ØÔ×!Ò! )Ñ,Ô,Ð,Ð,Ð,à×Ò˜)Ñ$Ô$Ð$Ð$Ð$rB   Útext_ú*Union[str, TextClause, ColumnElement[Any]]ú&Union[ColumnElement[Any], Column[Any]]c                óž  — t          |t          ¦  «        r1t          |t          j        ¦  «        }|                      |¦  «         |S t          |t          ¦  «        rt          | |¦  «        S t          |t          ¦  «        rt          | |j	        ¦  «        S t          |t          j        ¦  «        rt          || ¦  «        S t          d¦  «        ‚)zAa workaround for the Index construct's severe lack of flexibilityz#String or text() construct expected)r{   r;   r   r
  ÚNULLTYPEÚappend_columnr    Ú_textual_index_elementÚ_textual_index_columnÚtextr   r.   Ú_copy_expressionÚ
ValueError)rì   r:  Úcs      r@   rA  rA  Ò  sÀ   € õ �%�ÑÔð @Ý�5�(Ô+Ñ,Ô,ˆØ×Ò˜AÑÔÐØˆÝ	�E�:Ñ	&Ô	&ð @Ý% e¨UÑ3Ô3Ð3Ý	�EÕ1Ñ	2Ô	2ð @Ý$ U¨E¬JÑ7Ô7Ð7Ý	�E�3Ô,Ñ	-Ô	-ð @Ý  uÑ-Ô-Ð-åÐ>Ñ?Ô?Ð?rB   Ú
expressionr  c                ó:   ‡— ˆfd„}t          j        | i |¦  «        S )Nc                óÞ   •— t          | t          ¦  «        rV| j        �O| j        ‰urF| j        ‰j        v r‰j        | j                 S t          | ¦  «        }‰                     |¦  «         |S d S r=   )r{   r   rì   rƒ   rE  r´   r?  )ÚcolrE  r  s     €r@   Úreplacez!_copy_expression.<locals>.replaceå  sq   ø€ å�s�FÑ#Ô#ð	à”	Ð%Ø”	 Ð-Ð-àŒx˜<œ>Ð)Ð)Ø#”~ c¤hÔ/Ð/å˜#‘J”J�Ø×*Ò*¨1Ñ-Ô-Ð-Ø�à�4rB   )r   Úreplacement_traverse)rF  r  rJ  s    ` r@   rC  rC  ä  s:   ø€ ðð ð ð ð õ Ô(Ø�B˜ñô ð rB   c                  ó$   — e Zd ZdZdZdd	„Zd
„ ZdS )r@  aQ  Wrap around a sqlalchemy text() construct in such a way that
    we appear like a column-oriented SQL expression to an Index
    construct.

    The issue here is that currently the Postgresql dialect, the biggest
    recipient of functional indexes, keys all the index expressions to
    the corresponding column expressions when rendering CREATE INDEX,
    so the Index we create here needs to have a .columns collection that
    is the same length as the .expressions collection.  Ultimately
    SQLAlchemy should support text() expressions in indexes.

    See SQLAlchemy issue 3174.

    Ú_textual_idx_elementrì   r&   rB  r    r:   r¤   c                óÊ   — || _         || _        |j        | _        t          j        | j        j        t
          j        ¦  «        | _        |                     | j        ¦  «         d S r=   )	rì   rB  rw   r   r   r
  r>  Úfake_columnr?  )r?   rì   rB  s      r@   Ú__init__z_textual_index_element.__init__  sQ   € ØˆŒ
ØˆŒ	Ø”9ˆŒÝ!œ=¨¬¬½Ô9JÑKÔKˆÔØ×Ò˜DÔ,Ñ-Ô-Ð-Ð-Ð-rB   c                ó   — | j         gS r=   )rO  )r?   r9   s     r@   Úget_childrenz#_textual_index_element.get_children  s   € ØÔ Ð!Ð!rB   N)rì   r&   rB  r    r:   r¤   )rC   rD   rE   rX   Ú__visit_name__rP  rR  r>   rB   r@   r@  r@  ù  sH   € € € € € ðð ð ,€Nð.ð .ð .ð .ð"ð "ð "ð "ð "rB   r@  r8   r,   c                ó(   —  |j         | j        fi |¤ŽS r=   )ÚprocessrB  ©r7   r8   r9   s      r@   Ú_render_textual_index_columnrW    s!   € ð ˆ8Ô˜GœLÐ/Ð/¨BÐ/Ð/Ð/rB   c                  ó   — e Zd ZdS )Ú_literal_bindparamNra   r>   rB   r@   rY  rY    s   € € € € € Ø€DrB   rY  c                ó   —  |j         | fi |¤ŽS r=   )Úrender_literal_bindparamrV  s      r@   Ú_render_literal_bindparamr\  !  s   € ð -ˆ8Ô,¨WÐ;Ð;¸Ð;Ð;Ð;rB   rI  r   r	   c                ó"   — t           r| j        S i S r=   )Úsqla_13Úkwargs)rI  s    r@   Ú_column_kwargsr`  (  s   € Ýð ØŒzÐàˆ	rB   úUnion[Index, Constraint]rÉ   úOptional[Dialect]c                óì  — | j         €d S |€J ‚t          r|j                             | d¬¦  «        S t	          | j         d¦  «        rt          | j         ¦  «        }nt          } |t          | j         ¦  «        d¬¦  «        }|                      |¬¦  «        } t          | t          j        ¦  «        r+|                     |d ¦  «        }|                     | ¦  «        S |j                             | ¦  «        S )NF©Ú_alembic_quoteÚquote)rf  r‡   )rƒ   r›   Úidentifier_preparerÚformat_constraintrµ   r	  r   r;   Ú	__class__r{   r   r%   Úddl_compilerÚ_prepared_index_name)ré   rÉ   Úquoted_name_clsÚnew_nameÚds        r@   Ú_get_constraint_final_namero  /  s  € ð „ÐØˆtØÐÐÐÝð Mð Ô*×<Ò<Ø uð =ñ 
ô 
ð 	
õ �:”? GÑ,Ô,ð 	*õ %)¨¬Ñ$9Ô$9ˆOˆOå)ˆOà"�?¥3 z¤Ñ#7Ô#7¸uÐEÑEÔEˆØ×)Ò)¨xÐ)Ñ8Ô8ˆ
å�j¥&¤,Ñ/Ô/ð 	Mà×$Ò$ W¨dÑ3Ô3ˆAØ×)Ò)¨*Ñ5Ô5Ð5ð Ô.×@Ò@ÀÑLÔLÐLrB   úUnion[Constraint, Index]c                ó|   — t           r-| j        €dS |€J ‚|j                             | d¬¦  «        }|d uS | j        d uS )NFrd  )r›   rƒ   rg  rh  )ré   rÉ   rƒ   s      r@   Ú_constraint_is_namedrr  T  sa   € õ ð 	+ØŒ?Ð"Ø�5ØÐ"Ð"Ð"ØÔ*×<Ò<Ø uð =ñ 
ô 
ˆð ˜4ÐÐàŒ dÐ*Ð*rB   Úmysql_dialectr(   c                óT   — t           r| j        S t          | j        o| j        ¦  «        S r=   )r›   Ú
is_mariadbrg   Úserver_version_infoÚ_is_mariadb©rs  s    r@   rw  rw  c  s6   € Ýð 
ØÔ'Ð'åØÔ-ð *ØÔ)ñ
ô 
ð 	
rB   c                ó   — | j         S r=   )Ú _mariadb_normalized_version_inforx  s    r@   rz  rz  m  s   € ØÔ9Ð9rB   úUnion[TableClause, Table]r-   c                óˆ   — t           r&|                      ¦   «                              ¦   «         S |                      d¬¦  «        S )NT)Úinline)r›   Úinsertr}  )rì   s    r@   Ú_insert_inliner  q  s8   € Ýð )Ø�|Š|‰~Œ~×$Ò$Ñ&Ô&Ð&à�|Š| 4ˆ|Ñ(Ô(Ð(rB   )Úcreate_mock_engine)Úselect©Úcreate_enginec                ó&   — t          dd|¬¦  «        S )Nzpostgresql://Úmock)ÚstrategyÚexecutorr‚  )r   r‡  r9   s      r@   r€  r€  ‚  s    € ÝØ f°xð
ñ 
ô 
ð 	
rB   r1   c                 ó@   — t          j        t          | ¦  «        fi |¤ŽS r=   )r   r�  rô   )rõ   r9   s     r@   Ú_selectr‰  ‡  s    € ÝŒz�$˜w™-œ-Ð.Ð.¨2Ð.Ð.Ð.rB   Úindexc                ó>   — | j         D ]}t          |¦  «        r dS ŒdS ©NTF)r°   Úis_expression)rŠ  Úexprs     r@   Úis_expression_indexr�  ‹  s5   € ØÔ!ð ð ˆÝ˜ÑÔð 	Ø�4�4ð	àˆ5rB   rŽ  c                ó¤   — t          | t          ¦  «        r| j        } t          | t          ¦  «        °t          | t          ¦  «        r| j        rdS dS rŒ  )r{   r!   r7   r   Ú
is_literal)rŽ  s    r@   r�  r�  ’  sT   € Ý
�T�?Ñ
+Ô
+ð ØŒ|ˆõ �T�?Ñ
+Ô
+ð å�d�LÑ)Ô)ð ¨T¬_ð ØˆtØˆ5rB   )rF   r;   r:   rG   )r7   rY   rZ   r;   r:   r[   )F)rd   re   rf   rg   r:   rh   )rƒ   r„   r:   r…   )rƒ   r„   r:   r‰   )rƒ   r„   r:   rŒ   )r�   r‘   r:   r’   )T)r�   r'   r:   r)   )r�   r'   r:   r¤   )r�   r‘   r:   rg   )r­   r%   r:   r®   )r²   r3   r:   r3   )r�   r'   r:   r·   )r:   r½   )rÃ   r'   rÄ   r;   rÅ   rÆ   r:   rg   )r:   rg   )ré   r/   r:   r&   )rÏ   r*   rì   r&   r:   r¤   )ré   r   r:   r   )ré   r   r:   rg   )ré   r/   r:   rg   )r1  r+   r  r2  r:   r¤   )rì   r&   r:  r;  r:   r<  )rF  r3   r  r&   r:   r3   )r7   r@  r8   r,   r:   r;   )r7   rY  r8   r,   r:   r;   )rI  r   r:   r	   )ré   ra  rÉ   rb  r:   rŒ   )ré   rp  rÉ   rb  r:   rg   )rs  r(   r:   rg   )rì   r{  r:   r-   )r:   r1   )rŠ  r%   r:   rg   )rŽ  r   r:   rg   )•Ú
__future__r   Ú
contextlibÚreÚtypingr   r   r   r   r   r	   r
   r   r   r   r   r   r   Ú
sqlalchemyr   r   r   r   r   r
  Úsqlalchemy.enginer   Úsqlalchemy.schemar   r   r   rÖ   r   Úsqlalchemy.sql.baser   Úsqlalchemy.sql.elementsr   r   r   r    r!   Úsqlalchemy.sql.visitorsr"   Útyping_extensionsr#   r$   r%   r&   r'   r(   r)   Úsqlalchemy.engine.reflectionr*   r+   Úsqlalchemy.sql.compilerr,   Úsqlalchemy.sql.dmlr-   r.   Úsqlalchemy.sql.schemar/   r0   Úsqlalchemy.sql.selectabler1   r2   r3   r6   rJ   ÚtupleÚfindallÚ_versr^  r›   Ú
sqla_14_18Ú
sqla_14_26Úsqla_2Úsqlalchemy_versionÚsqlalchemy.sql.namingrU   ÚImportErrorrW   r]   Úsqlalchemy.ext.compilerr^   rá   Úhas_computed_reflectionrc   Ú
issubclassry   r   Úhas_identityr�   Úsqlalchemy.utilr‚   r;   r„   Ú_ConstraintNameDefinedrˆ   r‹   rŽ   ÚAUTOINCREMENT_DEFAULTÚcontextmanagerr˜   rž   r£   r§   rª   r¬   r±   r´   r    rÂ   rÊ   rÓ   rÚ   rå   rè   rí   r÷   rû   r  rµ   Ú
TypeEnginerý   rþ   r  r(  r+  rò   r9  rA  rC  r@  rW  rY  r\  r`  ro  rr  rw  rz  r  r€  r�  Ú
_sa_selectr‰  rƒ  r�  r�  r>   rB   r@   ú<module>rµ     sñ
  ðð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø 	€	€	€	Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à "Ð "Ð "Ð "Ð "Ð "Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø (Ð (Ð (Ð (Ð (Ð (Ø !Ð !Ð !Ð !Ð !Ð !Ø -Ð -Ð -Ð -Ð -Ð -Ø $Ð $Ð $Ð $Ð $Ð $Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø #Ð #Ð #Ð #Ð #Ð #Ø -Ð -Ð -Ð -Ð -Ð -Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø /Ð /Ð /Ð /Ð /Ð /Ø .Ð .Ð .Ð .Ð .Ð .Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'àð 6Ø(Ð(Ð(Ð(Ð(Ð(Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø,Ð,Ð,Ð,Ð,Ð,Ø)Ð)Ð)Ð)Ð)Ð)Ø-Ð-Ð-Ð-Ð-Ð-Ø6Ð6Ð6Ð6Ð6Ð6Ø4Ð4Ð4Ð4Ð4Ð4Ø3Ð3Ð3Ð3Ð3Ð3Ø)Ð)Ð)Ð)Ð)Ð)Ø5Ð5Ð5Ð5Ð5Ð5Ø0Ð0Ð0Ð0Ð0Ð0Ø0Ð0Ð0Ð0Ð0Ð0Ø0Ð0Ð0Ð0Ð0Ð0Ø5Ð5Ð5Ð5Ð5Ð5à€gˆe˜5Ð!CÔDÐEÑEÔE€ðKð Kð Kð Kð K˜ñ Kô Kð Kðð ð ð ð 	ˆØEÐE˜:˜2œ:Ð&6¸ÑDÔDÐEÑEÔEñ	ô 	€ð �6Š/€Ø
�6Š/€à�jÒ €
Ø�jÒ €
Ø	�$Š€Ø Ð ðAØ>Ð>Ð>Ð>Ð>Ð>Ð>øØð Að Að AØ@Ð@Ð@Ð@Ð@Ð@Ð@Ð@ðAøøøð5ð 5ð 5ð 5ð 5ñ 5ô 5ð 5ð ð 1ð?ð ?ð ?ð ?ð ?ð
 1Ð0Ð0Ð0Ð0Ð0ð2Ø/Ð/Ð/Ð/Ð/Ð/ð €LØ# zÒ1ÐÐøð ð $ð $ð $Øð ð	ð 	ð 	ð 	ð 	�|ñ 	ô 	ð 	ð €LØ#ÐÐÐð$øøøð3Ø/Ð/Ð/Ð/Ð/Ð/ð #- *¨X°}Ñ"EÔ"EÐð  %ð%ð %ð %ð %ð %ðN €L€Løðc ð ð ð Øð ð	ð 	ð 	ð 	ð 	�|ñ 	ô 	ð 	ð €L€L€Lðøøøðf 
ð 4Ø-Ð-Ð-Ð-Ð-Ð-Ð-à3Ð3Ð3Ð3Ð3Ð3ð ˜˜c 9Ð,Ô-€à˜s I˜~Ô.Ð ðDð Dð Dð Dð!ð !ð !ð !ð:ð :ð :ð :ð Ð ð Ôðð ð ñ Ôðð,>ð >ð >ð >ð"ð "ð "ð "ðð ð ð ðð ð ð ð ð  ð  ð  ðð ð ð ð&ð &ð &ð &ð*ð *ð *ð *ð#ð #ð #ð #ð
ð 
ð 
ð 
ð9ð 9ð 9ð
ð 
ð 
ðFð Fð Fð FðFð Fð Fð Fð ð  ð  ð  ð(ð (ð (ð
ð 
ð 
ð 
ðð ð ð €7ˆ8ÔÐ 2Ñ3Ô3ð )ð,ð ,ð ,ð-ð -ð -ð -ð
/ð /ð /ð)ð )ð )ðð ð ð ðB-ð -ð -ð -ð"ð "ð "ð "ðð ð ð%ð %ð %ð %ð$@ð @ð @ð @ð$ð ð ð ð*"ð "ð "ð "ð "˜SÔ.ñ "ô "ð "ð: 
€Ð
 Ñ!Ô!ð0ð 0ð 0ñ "Ô!ð0ð	ð 	ð 	ð 	ð 	˜ñ 	ô 	ð 	ð 
€Ð
ÑÔð<ð <ð <ñ Ôð<ðð ð ð ð"Mð "Mð "Mð "MðJ+ð +ð +ð +ð
ð 
ð 
ð 
ð:ð :ð :ð)ð )ð )ð )ð ð /Ø-Ð-Ð-Ð-Ð-Ð-ð 0Ð/Ð/Ð/Ð/Ð/à€G€Gà(Ð(Ð(Ð(Ð(Ð(ð
ð 
ð 
ð
/ð /ð /ð /ðð ð ð ðð ð ð ð ð s6   ÆF ÆF$Æ#F$ÇG ÇG-Ç,G-Ç1H ÈH&È%H&