§
    eŠtj F  ã                  ó  — U d Z 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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rdd!l&m'Z' dd"l"m(Z( dd#l"m)Z)  ed$e¬%¦  «        Z*ee+ee,d&f         f         Z- e.¦   «         Z/d'e0d(<   dPd1„Z1dQd3„Z2dRd8„Z3 G d9„ d&¦  «        Z4 G d:„ d;e4¦  «        Z5 G d<„ d=e4¦  «        Z6 G d>„ d?¦  «        Z7 G d@„ dA¦  «        Z8  e!j9        e8¦  «        dB„ ¦  «          G dC„ dD¦  «        Z:dSdG„Z; G dH„ dI¦  «        Z<da=dJe0dK<   dTdO„Z>dS )Uz±Routines to handle the string class registry used by declarative.

This system allows specification of classes and expressions used in
:func:`_orm.relationship` using strings.

é    )ÚannotationsN)ÚAny)ÚCallable)Úcast)ÚDict)Ú	Generator)ÚIterable)ÚList)ÚMapping)ÚMutableMapping)ÚNoReturn)ÚOptional)ÚSet)ÚTuple)ÚType)ÚTYPE_CHECKING)ÚTypeVar)ÚUnioné   )Ú
attributes)Ú
interfaces)ÚSynonymProperty)ÚColumnProperty)Úclass_mapperé   )Úexc)Ú
inspection)Úutil)Ú_get_table_key)ÚCallableReference)ÚRelationshipProperty)ÚMetaData)ÚTableÚ_T)ÚboundÚClsRegistryTokenzSet[ClsRegistryToken]Ú_registriesÚ	classnameÚstrÚclsúType[_T]Údecl_class_registryÚ_ClsRegistryTypeÚreturnÚNonec                ó–  — | |v r@||          }t          |t          ¦  «        s"t          |t          d|¦  «        g¦  «        || <   n||| <   	 t          t          |d         ¦  «        }n%# t          $ r t          dd¦  «        x|d<   }Y nw xY w|j                             d¦  «        }|r¡|                     d¦  «        }|                     |¦  «        }|D ]}|                     |¦  «        }Œ	 | 	                    | |¦  «         nA# t          $ r4}t          |t          ¦  «        st          j        d| › d�¦  «        |‚‚ d}~ww xY w|°ŸdS dS )z^Add a class to the _decl_class_registry associated with the
    given declarative class.

    ú	Type[Any]Ú_sa_module_registryNú.r   úname "ú-" matches both a class name and a module name)Ú
isinstanceÚ_MultipleClassMarkerr   Ú_ModuleMarkerÚKeyErrorÚ
__module__ÚsplitÚpopÚ
get_moduleÚ	add_classÚAttributeErrorr   ÚInvalidRequestError)	r(   r*   r,   ÚexistingÚroot_moduleÚtokensÚtokenÚmoduleÚaes	            úX/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sqlalchemy/orm/clsregistry.pyr>   r>   @   sÌ  € ð Ð'Ð'Ð'à& yÔ1ˆÝ˜(Õ$8Ñ9Ô9ð 	Ý-AØ•d˜;¨Ñ1Ô1Ð2ñ.ô .Ð 	Ñ*øð *-Ð˜IÑ&ð
ÝÝÐ.Ð/DÔEñ
ô 
ˆˆøõ ð 
ð 
ð 
åÐ/°Ñ6Ô6ð	
ÐÐ1Ñ2°[°[°[ð
øøøð
 Œ^×!Ò! #Ñ&Ô&€Fð ð Ø—
’
˜1‘”ˆØ×'Ò'¨Ñ.Ô.ˆØð 	.ð 	.ˆEØ×&Ò& uÑ-Ô-ˆFˆFð		Ø×Ò˜Y¨Ñ,Ô,Ð,Ð,øÝð 	ð 	ð 	Ý˜f¥mÑ4Ô4ð ÝÔ-ð3˜Yð 3ð 3ð 3ñô ð ðð
 øøøøð	øøøð ð ð ð ð ð s*   ÁA' Á'B	ÂB	Ã-D Ä
EÄ/D=Ä=Er1   c                ó  — | |v r6||          }t          |t          ¦  «        r|                     |¦  «         n|| = 	 t          t          |d         ¦  «        }n# t
          $ r Y d S w xY w|j                             d¦  «        }|r‡|                     d¦  «        }| 	                    |¦  «        }|D ]}| 	                    |¦  «        }Œ	 | 
                    | |¦  «         n'# t          $ r t          |t          ¦  «        sn‚ Y nw xY w|°…d S d S )Nr2   r3   r   )r6   r7   Úremove_itemr   r8   r9   r:   r;   r<   r=   Úremove_classr?   )r(   r*   r,   rA   rB   rC   rD   rE   s           rG   rJ   rJ   v   sm  € ð Ð'Ð'Ð'Ø& yÔ1ˆÝ�hÕ 4Ñ5Ô5ð 	/Ø× Ò  Ñ%Ô%Ð%Ð%à# IÐ.ðÝÝÐ.Ð/DÔEñ
ô 
ˆˆøõ ð ð ð Øˆˆðøøøð Œ^×!Ò! #Ñ&Ô&€Fà
ð Ø—
’
˜1‘”ˆØ×'Ò'¨Ñ.Ô.ˆØð 	.ð 	.ˆEØ×&Ò& uÑ-Ô-ˆFˆFð	Ø×Ò 	¨3Ñ/Ô/Ð/Ð/øÝð 	ð 	ð 	Ý˜f¥mÑ4Ô4ð Øàð �ð	øøøð ð ð ð ð ð s#   ¼A Á
A&Á%A&Ã
C! Ã!!DÄDÚkeyÚtestúCallable[[Any], bool]Úboolc                ó®   — | |vrdS ||          }t          |t          ¦  «        r'|j        D ]} ||¦  «        r dS Œt          d¦  «        ‚ ||¦  «         S )a¶  test if a key is empty of a certain object.

    used for unit tests against the registry to see if garbage collection
    is working.

    "test" is a callable that will be passed an object should return True
    if the given object is the one we were looking for.

    We can't pass the actual object itself b.c. this is for testing garbage
    collection; the caller will have to have removed references to the
    object itself.

    TFzunknown codepath)r6   r7   ÚcontentsÚNotImplementedError)rK   r,   rL   ÚthingÚ	sub_things        rG   Ú_key_is_emptyrT   —   s€   € ð$ Ð%Ð%Ð%Øˆtà Ô$€EÝ�%Õ-Ñ.Ô.ð Øœð 	:ð 	:ˆIØˆt�I‰Œð Ø�u�uðõ &Ð&8Ñ9Ô9Ð9à�4˜‘;”;ˆÐó    c                  ó   — e Zd ZdZdZdS )r&   zAan object that can be in the registry._class_registry as a value.© N)Ú__name__r:   Ú__qualname__Ú__doc__Ú	__slots__rW   rU   rG   r&   r&   ·   s   € € € € € ØKÐKà€I€I€IrU   c                  ó`   — e Zd ZU dZdZded<   ded<   	 ddd„Zdd„Zd d„Zd!d„Z	d"d„Z
d#d„ZdS )$r7   zRrefers to multiple classes of the same name
    within _decl_class_registry.

    )Ú	on_removerP   Ú__weakref__zSet[weakref.ref[Type[Any]]]rP   z/CallableReference[Optional[Callable[[], None]]]r]   NÚclassesúIterable[Type[Any]]úOptional[Callable[[], None]]c                óp   ‡ — |‰ _         ˆ fd„|D ¦   «         ‰ _        t                               ‰ ¦  «         d S )Nc                óD   •— h | ]}t          j        |‰j        ¦  «        ’ŒS rW   )ÚweakrefÚrefÚ_remove_item)Ú.0ÚitemÚselfs     €rG   ú	<setcomp>z0_MultipleClassMarker.__init__.<locals>.<setcomp>Î   s5   ø€ ð 
ð 
ð 
Ø59�GŒK˜˜dÔ/Ñ0Ô0ð
ð 
ð 
rU   )r]   rP   r'   Úadd)ri   r_   r]   s   `  rG   Ú__init__z_MultipleClassMarker.__init__È   sP   ø€ ð
 #ˆŒð
ð 
ð 
ð 
Ø=Dð
ñ 
ô 
ˆŒõ 	�Š˜ÑÔÐÐÐrU   r*   r1   r.   r/   c                óT   — |                       t          j        |¦  «        ¦  «         d S ©N)rf   rd   re   ©ri   r*   s     rG   rI   z _MultipleClassMarker.remove_itemÓ   s&   € Ø×Ò�'œ+ cÑ*Ô*Ñ+Ô+Ð+Ð+Ð+rU   ú*Generator[Optional[Type[Any]], None, None]c                ó$   — d„ | j         D ¦   «         S )Nc              3  ó*   K  — | ]} |¦   «         V — Œd S rn   rW   ©rg   re   s     rG   ú	<genexpr>z0_MultipleClassMarker.__iter__.<locals>.<genexpr>×   s(   è è € Ð/Ð/˜#��‘”Ð/Ð/Ð/Ð/Ð/Ð/rU   ©rP   )ri   s    rG   Ú__iter__z_MultipleClassMarker.__iter__Ö   s   € Ø/Ð/ ¤Ð/Ñ/Ô/Ð/rU   Úpathú	List[str]rK   r)   c                óü   — t          | j        ¦  «        dk    r.t          j        dd                     ||gz   ¦  «        z  ¦  «        ‚t          | j        ¦  «        d         } |¦   «         }|€t          |¦  «        ‚|S )Nr   zxMultiple classes found for path "%s" in the registry of this declarative base. Please use a fully module-qualified path.r3   r   )ÚlenrP   r   r@   ÚjoinÚlistÚ	NameError)ri   rw   rK   re   r*   s        rG   Úattempt_getz _MultipleClassMarker.attempt_getÙ   s…   € ÝˆtŒ}ÑÔ Ò!Ð!ÝÔ)ðBð —8’8˜D C 5™LÑ)Ô)ñ+ñô ð õ �t”}Ñ%Ô% aÔ(ˆCØ�#‘%”%ˆCØˆ{Ý ‘n”nÐ$ØˆJrU   re   úweakref.ref[Type[Any]]c                óº   — | j                              |¦  «         | j         s7t                               | ¦  «         | j        r|                      ¦   «          d S d S d S rn   )rP   Údiscardr'   r]   )ri   re   s     rG   rf   z!_MultipleClassMarker._remove_itemè   sj   € ØŒ×Ò˜cÑ"Ô"Ð"ØŒ}ð 	!Ý×Ò Ñ%Ô%Ð%ØŒ~ð !Ø—’Ñ Ô Ð Ð Ð ð	!ð 	!ð!ð !rU   rh   c                ó  — d„ d„ t          | j        ¦  «        D ¦   «         D ¦   «         }|j        |v r%t          j        d|j        ›d|j        ›d�¦  «         | j                             t          j        || j	        ¦  «        ¦  «         d S )Nc                ó    — h | ]}|®|j         ’ŒS rn   )r:   )rg   r*   s     rG   rj   z0_MultipleClassMarker.add_item.<locals>.<setcomp>ó   s'   € ð 
ð 
ð 
àØˆð ŒNàˆˆrU   c                ó"   — g | ]} |¦   «         ‘ŒS rW   rW   rs   s     rG   ú
<listcomp>z1_MultipleClassMarker.add_item.<locals>.<listcomp>õ   s   € Ð=Ð=Ð= #˜˜™œÐ=Ð=Ð=rU   z[This declarative base already contains a class with the same class name and module name as r3   z2, and will be replaced in the string-lookup table.)
r|   rP   r:   r   ÚwarnrX   rk   rd   re   rf   )ri   rh   Úmoduless      rG   Úadd_itemz_MultipleClassMarker.add_itemï   s¢   € ð
ð 
à=Ð=­¨d¬mÑ)<Ô)<Ð=Ñ=Ô=ð
ñ 
ô 
ˆð
 Œ?˜gÐ%Ð%ÝŒIˆIð ”?�?�? D¤M M Mð3ñô ð ð 	Œ×Ò�'œ+ d¨DÔ,=Ñ>Ô>Ñ?Ô?Ð?Ð?Ð?rU   rn   )r_   r`   r]   ra   )r*   r1   r.   r/   )r.   rp   )rw   rx   rK   r)   r.   r1   )re   r   r.   r/   )rh   r1   r.   r/   )rX   r:   rY   rZ   r[   Ú__annotations__rl   rI   rv   r~   rf   rˆ   rW   rU   rG   r7   r7   ½   sÇ   € € € € € € ðð ð
 7€Ià)Ð)Ð)Ñ)Ø>Ð>Ð>Ñ>ð
 37ð	ð 	ð 	ð 	ð 	ð,ð ,ð ,ð ,ð0ð 0ð 0ð 0ðð ð ð ð!ð !ð !ð !ð@ð @ð @ð @ð @ð @rU   r7   c                  ó€   — e Zd ZU dZdZded<   ded<   ded<   d	ed
<   dd„Zdd„Zd d„Zd!d„Z	d"d„Z
d#d„Zd$d„Zd$d„ZdS )%r8   z>Refers to a module name within
    _decl_class_registry.

    )ÚparentÚnamerP   Úmod_nsrw   r^   úOptional[_ModuleMarker]r‹   z5Dict[str, Union[_ModuleMarker, _MultipleClassMarker]]rP   Ú_ModNSr�   rx   rw   rŒ   r)   c                óÞ   — || _         || _        i | _        t          | ¦  «        | _        | j         r| j         j        | j        gz   | _        ng | _        t                               | ¦  «         d S rn   )r‹   rŒ   rP   r�   r�   rw   r'   rk   )ri   rŒ   r‹   s      rG   rl   z_ModuleMarker.__init__  sd   € ØˆŒØˆŒ	ØˆŒÝ˜T‘l”lˆŒØŒ;ð 	ØœÔ(¨D¬I¨;Ñ6ˆDŒIˆIàˆDŒIÝ�Š˜ÑÔÐÐÐrU   r.   rN   c                ó   — || j         v S rn   ru   ©ri   rŒ   s     rG   Ú__contains__z_ModuleMarker.__contains__  s   € Ø�t”}Ð$Ð$rU   r&   c                ó   — | j         |         S rn   ru   r’   s     rG   Ú__getitem__z_ModuleMarker.__getitem__  s   € ØŒ}˜TÔ"Ð"rU   r/   c                óÎ   — | j                              |d ¦  «         | j         sB| j        �| j                             | j        ¦  «         t
                               | ¦  «         d S d S rn   )rP   r<   r‹   rf   rŒ   r'   r�   r’   s     rG   rf   z_ModuleMarker._remove_item   sh   € ØŒ×Ò˜$ Ñ%Ô%Ð%ØŒ}ð 	&ØŒ{Ð&Ø”×(Ò(¨¬Ñ3Ô3Ð3Ý×Ò Ñ%Ô%Ð%Ð%Ð%ð	&ð 	&rU   rK   úUnion[_ModNS, Type[Any]]c                ó6   — | j                              |¦  «        S rn   )r�   Ú__getattr__©ri   rK   s     rG   Úresolve_attrz_ModuleMarker.resolve_attr'  s   € ØŒ{×&Ò& sÑ+Ô+Ð+rU   c                óŽ   — || j         vrt          || ¦  «        }|| j         |<   n t          t          | j         |         ¦  «        }|S rn   )rP   r8   r   )ri   rŒ   Úmarkers      rG   r=   z_ModuleMarker.get_module*  sH   € Ø�t”}Ð$Ð$Ý" 4¨Ñ.Ô.ˆFØ"(ˆDŒM˜$ÑÐå�-¨¬°tÔ)<Ñ=Ô=ˆFØˆrU   r*   r1   c                óJ  ‡ ‡— ‰‰ j         v ryt          t          ‰ j         ‰         ¦  «        }	 |                     |¦  «         d S # t          $ r4}t          |t          ¦  «        st          j        d‰› d�¦  «        |‚‚ d }~ww xY wt          |gˆˆ fd„¬¦  «        ‰ j         ‰<   d S )Nr4   r5   c                 ó.   •— ‰                      ‰ ¦  «        S rn   )rf   )rŒ   ri   s   €€rG   ú<lambda>z)_ModuleMarker.add_class.<locals>.<lambda>A  s   ø€ ¨×):Ò):¸4Ñ)@Ô)@€ rU   )r]   )rP   r   r7   rˆ   r?   r6   r   r@   )ri   rŒ   r*   rA   rF   s   ``   rG   r>   z_ModuleMarker.add_class2  så   øø€ Ø�4”=Ð Ð ÝÕ0°$´-ÀÔ2EÑFÔFˆHð	Ø×!Ò! #Ñ&Ô&Ð&Ð&Ð&øÝ!ð ð ð Ý! (Õ,@ÑAÔAð ÝÔ1ð7 ð 7ð 7ð 7ñô ð ðð
 øøøøðøøøõ #7Ø�Ð!@Ð!@Ð!@Ð!@Ð!@ð#ñ #ô #ˆDŒM˜$ÑÐÐs   ­A Á
BÁ/A=Á=Bc                ó†   — || j         v r7t          t          | j         |         ¦  «        }|                     |¦  «         d S d S rn   )rP   r   r7   rI   )ri   rŒ   r*   rA   s       rG   rJ   z_ModuleMarker.remove_classD  sH   € Ø�4”=Ð Ð ÝÕ0°$´-ÀÔ2EÑFÔFˆHØ× Ò  Ñ%Ô%Ð%Ð%Ð%ð !Ð rU   N)rŒ   r)   r‹   rŽ   )rŒ   r)   r.   rN   )rŒ   r)   r.   r&   )rŒ   r)   r.   r/   ©rK   r)   r.   r—   )rŒ   r)   r.   r8   )rŒ   r)   r*   r1   r.   r/   )rX   r:   rY   rZ   r[   r‰   rl   r“   r•   rf   r›   r=   r>   rJ   rW   rU   rG   r8   r8     sò   € € € € € € ðð ð
 N€Ià#Ð#Ð#Ñ#ØCÐCÐCÑCØ€N€N�NØ€O€O�Oð	ð 	ð 	ð 	ð%ð %ð %ð %ð#ð #ð #ð #ð&ð &ð &ð &ð,ð ,ð ,ð ,ðð ð ð ðð ð ð ð$&ð &ð &ð &ð &ð &rU   r8   c                  ó.   — e Zd ZU dZded<   dd„Zdd
„ZdS )r�   )Ú__parentr8   Ú_ModNS__parentr‹   c                ó   — || _         d S rn   )r¥   )ri   r‹   s     rG   rl   z_ModNS.__init__O  s   € ØˆŒˆˆrU   rK   r)   r.   r—   c                ó2  — 	 | j         j        |         }|�St          |t          ¦  «        r|j        S t          |t
          ¦  «        sJ ‚|                     | j         j        |¦  «        S n# t          $ r Y nw xY wt          d| j         j
        ›d|›�¦  «        ‚)NzModule z1 has no mapped classes registered under the name )r¥   rP   r6   r8   r�   r7   r~   rw   r9   r}   rŒ   )ri   rK   Úvalues      rG   r™   z_ModNS.__getattr__R  sÁ   € ð
	FØ”MÔ*¨3Ô/ˆEð Ð Ý˜e¥]Ñ3Ô3ð FØ œ<Ð'å% eÕ-AÑBÔBÐBÐBÐBØ ×,Ò,¨T¬]Ô-?ÀÑEÔEÐEð !øõ ð 	ð 	ð 	ØˆDð	øøøõ ˆià.2¬mÔ.@Ð.@Ð.@À#À#ðGñ
ô 
ð 	
s   ‚A* Á*
A7Á6A7N)r‹   r8   r¢   ©rX   r:   rY   r[   r‰   rl   r™   rW   rU   rG   r�   r�   J  sO   € € € € € € Ø€IàÐÐÑðð ð ð ð
ð 
ð 
ð 
ð 
ð 
rU   r�   c                  ó.   — e Zd ZU dZded<   dd„Zdd	„Zd
S )Ú_GetColumns©r*   r1   r*   c                ó   — || _         d S rn   r¬   ro   s     rG   rl   z_GetColumns.__init__i  s   € ØˆŒˆˆrU   rK   r)   r.   r   c                óÄ  — t          | j        d¬¦  «        }|r´||j        vrt          d| j        ›d|›�¦  «        ‚|j        |         }|j        t
          j        j        u rlt          |t          j
        ¦  «        sJ ‚|j        }t          |t          ¦  «        r|j        }n,t          |t          ¦  «        st          j        d|z  ¦  «        ‚t#          | j        |¦  «        S )NF)Ú	configurezClass z% does not have a mapped column named zaProperty %r is not an instance of ColumnProperty (i.e. does not correspond directly to a Column).)r   r*   Úall_orm_descriptorsr?   Úextension_typer   ÚNotExtensionÚNOT_EXTENSIONr6   r   ÚQueryableAttributeÚpropertyr   rŒ   r   r   r@   Úgetattr)ri   rK   ÚmpÚdescÚprops        rG   r™   z_GetColumns.__getattr__l  sø   € Ý˜$œ(¨eÐ4Ñ4Ô4ˆØð 	Ø˜"Ô0Ð0Ð0Ý$�nà”x�x�x  ð&ñô ð ð
 Ô)¨#Ô.ˆDØÔ"¥jÔ&=Ô&KÐKÐKÝ! $­
Ô(EÑFÔFÐFÐFÐFØ”}�Ý˜d¥OÑ4Ô4ð Øœ)�C�CÝ# D­.Ñ9Ô9ð ÝÔ1ð2à47ñ8ñô ð õ
 �t”x Ñ%Ô%Ð%rU   N)r*   r1   ©rK   r)   r.   r   r©   rW   rU   rG   r«   r«   d  sL   € € € € € € Ø€Ià€N€N�Nðð ð ð ð&ð &ð &ð &ð &ð &rU   r«   c                ó4   — t          j        | j        ¦  «        S rn   )r   Úinspectr*   )Útargets    rG   r    r    …  s   € •:Ô% f¤jÑ1Ô1€ rU   c                  ó8   — e Zd ZU dZded<   ded<   dd„Zdd	„Zd
S )Ú	_GetTable©rK   Úmetadatar)   rK   r"   rÁ   c                ó"   — || _         || _        d S rn   rÀ   )ri   rK   rÁ   s      rG   rl   z_GetTable.__init__�  s   € ØˆŒØ ˆŒˆˆrU   r.   r#   c                óL   — | j         j        t          || j        ¦  «                 S rn   )rÁ   Útablesr   rK   rš   s     rG   r™   z_GetTable.__getattr__“  s   € ØŒ}Ô#¥N°3¸¼Ñ$AÔ$AÔBÐBrU   N)rK   r)   rÁ   r"   )rK   r)   r.   r#   r©   rW   rU   rG   r¿   r¿   ‰  s^   € € € € € € Ø!€Ià€H€H�HØÐÐÑð!ð !ð !ð !ðCð Cð Cð Cð Cð CrU   r¿   r¨   r   c                óv   — t          |t          ¦  «        r|                     g | ¦  «        }t          |¦  «        S rn   )r6   r7   r~   r«   )rK   r¨   s     rG   Ú_determine_containerrÆ   —  s8   € Ý�%Õ-Ñ.Ô.ð +Ø×!Ò! " cÑ*Ô*ˆÝ�uÑÔÐrU   c                  ó|   — e Zd ZU dZded<   ded<   ded<   ded	<   d
ed<   ded<   	 ddd„Zdd„Zd d„Zd!d„Zd"d„Z	dS )#Ú_class_resolver)r*   r¹   ÚargÚfallbackÚ_dictÚ
_resolversÚfavor_tablesr1   r*   úRelationshipProperty[Any]r¹   úMapping[str, Any]rÊ   r)   rÉ   rN   rÍ   z Tuple[Callable[[str], Any], ...]rÌ   Fc                ó–   — || _         || _        || _        || _        t	          j        | j        ¦  «        | _        d| _        || _	        d S )NrW   )
r*   r¹   rÉ   rÊ   r   ÚPopulateDictÚ_access_clsrË   rÌ   rÍ   )ri   r*   r¹   rÊ   rÉ   rÍ   s         rG   rl   z_class_resolver.__init__¯  sJ   € ð ˆŒØˆŒ	ØˆŒØ ˆŒÝÔ& tÔ'7Ñ8Ô8ˆŒ
ØˆŒØ(ˆÔÐÐrU   rK   r.   r   c                ó²  — | j         }t          j        |¦  «        }|j        }|€J ‚|j        }|j        }| j        r>||j        v r|j        |         S ||j        v rt          |t          |d|¦  «        ¦  «        S ||v rt          |||         ¦  «        S | j        s>||j        v r|j        |         S ||j        v rt          |t          |d|¦  «        ¦  «        S d|v rM|t          t          |d         ¦  «        v r0t          t          |d         ¦  «        }|                     |¦  «        S | j        r| j        D ]} ||¦  «        }	|	�|	c S Œ| j        |         S )NrÁ   r2   )r*   r   Úmanager_of_classÚregistryÚ_class_registryrÁ   rÍ   rÄ   Ú_schemasr¿   r¶   rÆ   r   r8   r›   rÌ   rÊ   )
ri   rK   r*   ÚmanagerÚ	decl_baser,   rÁ   rÕ   Úresolvr¨   s
             rG   rÒ   z_class_resolver._access_cls¿  s°  € ØŒhˆåÔ-¨cÑ2Ô2ˆØÔ$ˆ	ØÐ$Ð$Ð$Ø'Ô7ÐØÔ%ˆàÔð 	JØ�h”oÐ%Ð%Ø” sÔ+Ð+Ø˜Ô)Ð)Ð)Ý  ¥g¨c°:¸xÑ&HÔ&HÑIÔIÐIàÐ%Ð%Ð%Ý'¨Ð-@ÀÔ-EÑFÔFÐFàÔ ð 	JØ�h”oÐ%Ð%Ø” sÔ+Ð+Ø˜Ô)Ð)Ð)Ý  ¥g¨c°:¸xÑ&HÔ&HÑIÔIÐIà Ð$7Ð7Ð7¸CÅ4ÝÐ.Ð/DÔEñD
ô D
ð =
ð =
õ ÝÐ2Ð3HÔIñô ˆHð ×(Ò(¨Ñ-Ô-Ð-ØŒ_ð 	!Øœ/ð !ð !�Ø˜˜s™œ�ØÐ$Ø �L�L�Lð %ð Œ}˜SÔ!Ð!rU   rŒ   ÚerrÚ	Exceptionr   c                óŽ  — t          j        d|¦  «        }|ry|                     d¦  «                             d¦  «        }t	          j        d| j        j        › d| j        ›d| j        j	        › d|                     d¦  «        › d	|› d
�¦  «        |‚t	          j        d| j        j        ›d| j        ›d|›d| j
        ›d�	¦  «        |‚)Nz(.+)\[(.+)\]r   ú'zWhen initializing mapper z, expression "relationship(z…)" seems to be using a generic class as the argument to relationship(); please state the generic argument using an annotation, e.g. "z	: Mapped[r   z['z']] = relationship()"z, expression z failed to locate a name (zG). If this is a class name, consider adding this relationship() to the z6 class after both dependent classes have been defined.)ÚreÚmatchÚgroupÚstripr   r@   r¹   r‹   rÉ   rK   r*   )ri   rŒ   rÛ   Úgeneric_matchÚclsargs        rG   Ú_raise_for_namez_class_resolver._raise_for_nameæ  s	  € Ýœ °$Ñ7Ô7ˆàð 	Ø"×(Ò(¨Ñ+Ô+×1Ò1°#Ñ6Ô6ˆFÝÔ)ð4¨D¬IÔ,<ð 4ð 4Ø,0¬Hð4ð 4ð
 ”I”Mð4ð 4ð
 -:×,?Ò,?ÀÑ,BÔ,Bð4ð 4ð ð4ð 4ð 4ñô ð ðõ Ô)Ð)ð
 ”9Ô#Ð#Ð# T¤X X X¨t¨t¨t°T´X°X°Xð	?ñô ð ðrU   úUnion[Table, Type[Any], _ModNS]c                óâ  — | j         }| j        }d }	 |                     d¦  «        D ]}|€	||         }Œt          ||¦  «        }Œ	 t	          |t
          ¦  «        r|j        S t          r$t	          |t          t          t          f¦  «        sJ ‚|S # t          $ r!}|                      ||¦  «         Y d }~d S d }~wt          $ r,}|                      |j        d         |¦  «         Y d }~d S d }~ww xY w)Nr3   r   )rÉ   rË   r;   r¶   r6   r«   r*   r   Útyper#   r�   r9   rå   r}   Úargs)ri   rŒ   ÚdÚrvalrD   rÛ   Úns          rG   Ú_resolve_namez_class_resolver._resolve_nameý  s,  € ØŒxˆØŒJˆØˆð	ØŸš C™œð 0ð 0�Ø�<Ø˜Uœ8�D�Då" 4¨Ñ/Ô/�D�Dð	0õ ˜$¥Ñ,Ô,ð Ø”x�å ð CÝ% d­Tµ5½&Ð,AÑBÔBÐBÐBÐBØ�øõ ð 	,ð 	,ð 	,Ø× Ò   sÑ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+Ð+øøøøÝð 	/ð 	/ð 	/Ø× Ò  ¤¨¤¨AÑ.Ô.Ð.Ð.Ð.Ð.Ð.Ð.Ð.øøøøð	/øøøs#   ’3B Â
C.ÂB5Â5C.Ã!C)Ã)C.c                ó   — 	 t          | j        t          ¦   «         | j        ¦  «        }t	          |t
          ¦  «        r|j        S |S # t          $ r,}|                      |j	        d         |¦  «         Y d }~d S d }~ww xY w)Nr   )
ÚevalrÉ   ÚglobalsrË   r6   r«   r*   r}   rå   ré   )ri   Úxrì   s      rG   Ú__call__z_class_resolver.__call__  s‹   € ð	/Ý�T”X�w™yœy¨$¬*Ñ5Ô5ˆAå˜!�[Ñ)Ô)ð Ø”u�à�øÝð 	/ð 	/ð 	/Ø× Ò  ¤¨¤¨AÑ.Ô.Ð.Ð.Ð.Ð.Ð.Ð.Ð.øøøøð	/øøøs   ‚AA ÁA Á
A=Á!A8Á8A=N©F)
r*   r1   r¹   rÎ   rÊ   rÏ   rÉ   r)   rÍ   rN   rº   )rŒ   r)   rÛ   rÜ   r.   r   )r.   ræ   )r.   r   )
rX   r:   rY   r[   r‰   rl   rÒ   rå   rí   rò   rW   rU   rG   rÈ   rÈ   �  sÐ   € € € € € € ð€Ið €N€N�NØ#Ð#Ð#Ñ#ØÐÐÑØ€H€H�HØÐÐÑØ0Ð0Ð0Ñ0ð #ð)ð )ð )ð )ð )ð %"ð %"ð %"ð %"ðNð ð ð ð.ð ð ð ð,	/ð 	/ð 	/ð 	/ð 	/ð 	/rU   rÈ   rÏ   Ú_fallback_dictr¹   rÎ   úmTuple[Callable[[str], Callable[[], Union[Type[Any], Table, _ModNS]]], Callable[[str, bool], _class_resolver]]c                ó¸   ‡ ‡— t           €?dd l}ddlm} ddlm} t          j        |j        ¦  «                             ||dœ¦  «        a ddˆ ˆfd„}dˆ ˆfd„}||fS )Nr   r   )Úforeign)Úremote)r÷   rø   FrÉ   r)   rÍ   rN   r.   rÈ   c                ó6   •— t          ‰‰t          | |¬¦  «        S )N)rÍ   )rÈ   rô   )rÉ   rÍ   r*   r¹   s     €€rG   Úresolve_argz_resolver.<locals>.resolve_arg1  s%   ø€ ÝØ�•~ s¸ð
ñ 
ô 
ð 	
rU   ú-Callable[[], Union[Type[Any], Table, _ModNS]]c                ó<   •— t          ‰‰t          | ¦  «        j        S rn   )rÈ   rô   rí   )rÉ   r*   r¹   s    €€rG   Úresolve_namez_resolver.<locals>.resolve_name6  s   ø€ õ ˜s D­.¸#Ñ>Ô>ÔLÐLrU   ró   )rÉ   r)   rÍ   rN   r.   rÈ   )rÉ   r)   r.   rû   )	rô   Ú
sqlalchemyÚ r÷   rø   r   ÚimmutabledictÚ__dict__Úunion)r*   r¹   rþ   r÷   rø   rú   rý   s   ``     rG   Ú	_resolverr  "  sÉ   øø€ õ ÐØÐÐÐØÐÐÐÐÐØÐÐÐÐÐåÔ+¨JÔ,?Ñ@Ô@×FÒFØ¨6Ð2Ð2ñ
ô 
ˆð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð
Mð Mð Mð Mð Mð Mð Mð
 ˜Ð$Ð$rU   )r(   r)   r*   r+   r,   r-   r.   r/   )r(   r)   r*   r1   r,   r-   r.   r/   )rK   r)   r,   r-   rL   rM   r.   rN   )rK   r)   r¨   r   r.   r«   )r*   r1   r¹   rÎ   r.   rõ   )?rZ   Ú
__future__r   rß   Útypingr   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   rd   rÿ   r   r   Údescriptor_propsr   Ú
propertiesr   r   r   r   r   Ú
sql.schemar   Úutil.typingr    Úrelationshipsr!   r"   r#   r$   r)   rè   r-   Úsetr'   r‰   r>   rJ   rT   r&   r7   r8   r�   r«   Ú	_inspectsr¿   rÆ   rÈ   rô   r  rW   rU   rG   ú<module>r     sž  ððð ð ð #Ð "Ð "Ð "Ð "Ð "à 	€	€	€	Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø €€€à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø -Ð -Ð -Ð -Ð -Ð -Ø &Ð &Ð &Ð &Ð &Ð &Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø +Ð +Ð +Ð +Ð +Ð +àð #Ø3Ð3Ð3Ð3Ð3Ð3Ø%Ð%Ð%Ð%Ð%Ð%Ø"Ð"Ð"Ð"Ð"Ð"à€WˆT˜ÐÑÔ€à! # u¨TÐ3EÐ-EÔ'FÐ"FÔGÐ ð &) S¡U¤U€Ð *Ð *Ð *Ñ *ð3ð 3ð 3ð 3ðlð ð ð ðBð ð ð ð@ð ð ð ð ñ ô ð ðB@ð B@ð B@ð B@ð B@Ð+ñ B@ô B@ð B@ðJE&ð E&ð E&ð E&ð E&Ð$ñ E&ô E&ð E&ðP
ð 
ð 
ð 
ð 
ñ 
ô 
ð 
ð4&ð &ð &ð &ð &ñ &ô &ð &ð@ "Ð €
Ô �[Ñ !Ô !Ø1Ð1ñô ð ð
Cð Cð Cð Cð Cñ Cô Cð Cðð ð ð ð/ð /ð /ð /ð /ñ /ô /ð /ðD %)€Ð (Ð (Ð (Ñ (ð%ð %ð %ð %ð %ð %rU   