ó
    Ñ]j F  ã                  ó  • % S r SSKJr  SSKrSSKJr  SSKJr  SSKJr  SSKJr  SSKJ	r	  SS	KJ
r
  SS
KJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKrSSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJ r   SSKJ!r!  SSKJr  SSK"J#r#  SS K$J%r%  \(       a  SS!K&J'r'  SS"K"J(r(  SS#K"J)r)  \" S$\S%9r*\\+\\,S&4   4   r-\." 5       r/S'\0S('           S>S) jr1        S?S* jr2        S@S+ jr3 " S, S&5      r4 " S- S.\45      r5 " S/ S0\45      r6 " S1 S25      r7 " S3 S45      r8\!Rr                  " \85      " S5 5         " S6 S75      r:SAS8 jr; " S9 S:5      r<Sq=S;\0S<'   SBS= jr>g)Cz±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]Ú_registriesc                ó`  • X;   a3  X    n[        U[        5      (       d  [        U[        SU5      /5      X '   OXU '    [        [        US   5      nUR
                  R                  S5      nU(       aX  UR                  S5      nUR                  U5      nU H  nUR                  U5      nM      UR                  X5        U(       a  MW  gg! [         a    [        SS5      =US'   n N˜f = f! [         a6  n[        U[        5      (       d  [        R                  " SU  S35      Uee SnAff = f)zVAdd 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)	Ú	classnameÚclsÚdecl_class_registryÚexistingÚroot_moduleÚtokensÚtokenÚmoduleÚaes	            ÚW/home/mande/repo/quber/.venv/lib/python3.13/site-packages/sqlalchemy/orm/clsregistry.pyr6   r6   @   sG  € ð Ó'à&Ñ1ˆÜ˜(Ô$8×9Ñ9Ü-AØ”d˜;¨Ó1Ð2ó.ÐÑ*øð *-˜IÑ&ð
ÜÜÐ.Ð/DÑEó
ˆð �^‰^×!Ñ! #Ó&€Fö Ø—
‘
˜1“ˆØ×'Ñ'¨Ó.ˆÛˆEØ×&Ñ& uÓ-ŠFñ ð		Ø×Ñ˜YÔ,÷ Š&øô ó 
äÐ/°Ó6ð	
ÐÐ1Ñ2²[ð
ûô. ó 	Ü˜f¤m×4Ñ4Ü×-Ò-Ø˜Y˜Kð (3ð 3óð ðð
 ûð	ús)   ¾C Â0C- ÃC*Ã)C*Ã-
D-Ã71D(Ä(D-c                óð  • X;   a-  X    n[        U[        5      (       a  UR                  U5        OX 	  [        [        US   5      nUR                  R                  S5      nU(       aX  UR                  S5      nUR                  U5      nU H  nUR                  U5      nM      UR                  X5        U(       a  MW  g g ! [
         a     g f = f! [         a    [        U[        5      (       d   N<e f = f)Nr*   r+   r   )r.   r/   Úremove_itemr   r0   r1   r2   r3   r4   r5   Úremove_classr7   )r9   r:   r;   r<   r=   r>   r?   r@   s           rB   rE   rE   v   sð   € ð Ó'Ø&Ñ1ˆÜ�hÔ 4×5Ñ5Ø× Ñ  Õ%à#Ð.ðÜÜÐ.Ð/DÑEó
ˆð �^‰^×!Ñ! #Ó&€Fæ
Ø—
‘
˜1“ˆØ×'Ñ'¨Ó.ˆÛˆEØ×&Ñ& uÓ-ŠFñ ð	Ø×Ñ 	Ô/÷ Š&øô ó Ùðûô ó 	Ü˜f¤m×4Ñ4Ùàð		ús#   ´C Â&C Ã
CÃCÃC5Ã3C5c                ó´   • X;  a  gX   n[        U[        5      (       a-  UR                   H  nU" U5      (       d  M    g   [        S5      eU" U5      (       + $ )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)r.   r/   ÚcontentsÚNotImplementedError)Úkeyr;   ÚtestÚthingÚ	sub_things        rB   Ú_key_is_emptyrM   —   sW   € ð$ Ó%ØàÑ$€EÜ�%Ô-×.Ñ.ØŸœˆIÙ�I�‹Ùñ (ô &Ð&8Ó9Ð9á˜“;ŒÐó    c                  ó   • \ rS rSrSrSrSrg)r&   é·   zAan object that can be in the registry._class_registry as a value.© N)Ú__name__r2   Ú__qualname__Ú__firstlineno__Ú__doc__Ú	__slots__Ú__static_attributes__rQ   rN   rB   r&   r&   ·   s
   † ÙKàƒIrN   c                  óz   • \ rS rSr% SrSrS\S'   S\S'    S   SS	 jjrSS
 jrSS jr	SS jr
SS jrSS jrSrg)r/   é½   zJrefers to multiple classes of the same name
within _decl_class_registry.

)Ú	on_removerG   Ú__weakref__zSet[weakref.ref[Type[Any]]]rG   z/CallableReference[Optional[Callable[[], None]]]rZ   Nc                ó°   • X l         U Vs1 s H#  n[        R                  " X0R                  5      iM%     snU l        [
        R                  U 5        g s  snf ©N)rZ   ÚweakrefÚrefÚ_remove_itemrG   r'   Úadd)ÚselfÚclassesrZ   Úitems       rB   Ú__init__Ú_MultipleClassMarker.__init__È   sF   € ð
 #Œá=Dó
Ú=D°TŒG�KŠK˜×/Ñ/Ö0¹Wñ
ˆŒô 	�‰˜Õùò
s   ‹*Ac                óN   • U R                  [        R                  " U5      5        g r]   )r`   r^   r_   ©rb   r:   s     rB   rD   Ú _MultipleClassMarker.remove_itemÓ   s   € Ø×Ñœ'Ÿ+š+ cÓ*Õ+rN   c                ó(   • S U R                    5       $ )Nc              3  ó.   #   • U  H  o" 5       v •  M     g 7fr]   rQ   )Ú.0r_   s     rB   Ú	<genexpr>Ú0_MultipleClassMarker.__iter__.<locals>.<genexpr>×   s   é € Ð/¢˜#�—�¢ùs   ‚©rG   )rb   s    rB   Ú__iter__Ú_MultipleClassMarker.__iter__Ö   s   € Ù/ §¢Ó/Ð/rN   c                óè   • [        U R                  5      S:”  a+  [        R                  " SSR	                  X/-   5      -  5      e[        U R                  5      S   nU" 5       nUc  [        U5      eU$ )Nr   zxMultiple classes found for path "%s" in the registry of this declarative base. Please use a fully module-qualified path.r+   r   )ÚlenrG   r   r8   ÚjoinÚlistÚ	NameError)rb   ÚpathrI   r_   r:   s        rB   Úattempt_getÚ _MultipleClassMarker.attempt_getÙ   ss   € Üˆt�}‰}Ó Ó!Ü×)Ò)ðBð —8‘8˜D 5™LÓ)ñ+óð ô �t—}‘}Ó% aÑ(ˆCÙ“%ˆCØ‰{Ü “nÐ$ØˆJrN   c                óÌ   • U R                   R                  U5        U R                   (       d8  [        R                  U 5        U R                  (       a  U R                  5         g g g r]   )rG   Údiscardr'   rZ   )rb   r_   s     rB   r`   Ú!_MultipleClassMarker._remove_itemè   sD   € Ø�‰×Ñ˜cÔ"Ø�}�}Ü×Ñ Ô%Ø�~�~Ø—‘Õ ð ð rN   c                ó¢  • [        U R                  5       Vs/ s H	  o"" 5       PM     sn Vs1 s H  nUc  M  UR                  iM     nnUR                  U;   a3  [        R                  " SUR                  < SUR
                  < S35        U R                  R                  [        R                  " XR                  5      5        g s  snf s  snf )Nz[This declarative base already contains a class with the same class name and module name as r+   z2, and will be replaced in the string-lookup table.)
ru   rG   r2   r   ÚwarnrR   ra   r^   r_   r`   )rb   rd   r_   r:   Úmoduless        rB   Úadd_itemÚ_MultipleClassMarker.add_itemï   s¤   € ô *.¨d¯m©mÔ)<Ó=Ò)< #˜žÑ)<Ò=ó
â=�Øó ˆC�NŒNÙ=ð 	ð 
ð
 �?‰?˜gÓ%Ü�I‹Ið —?”? D§M¤Mð3ôð 	�‰×Ñœ'Ÿ+š+ d×,=Ñ,=Ó>Õ?ùò >ùò
s   ˜C­C¸C)rG   rZ   r]   )rc   zIterable[Type[Any]]rZ   zOptional[Callable[[], None]])r:   r)   ÚreturnÚNone)r‚   z*Generator[Optional[Type[Any]], None, None])rw   ú	List[str]rI   Ústrr‚   r)   )r_   zweakref.ref[Type[Any]]r‚   rƒ   )rd   r)   r‚   rƒ   )rR   r2   rS   rT   rU   rV   Ú__annotations__re   rD   rp   rx   r`   r€   rW   rQ   rN   rB   r/   r/   ½   sP   ‡ ñð
 7€Ià)Ó)Ø>Ó>ð
 37ð	à$ð	ð 0õ	ô,ô0ôô!÷@rN   r/   c                  ó–   • \ rS rSr% SrSrS\S'   S\S'   S\S	'   S
\S'   SS jrSS jrSS jr	SS jr
SS jrSS jrSS jrSS jrSrg)r0   i  z6Refers to a module name within
_decl_class_registry.

)ÚparentÚnamerG   Úmod_nsrw   r[   úOptional[_ModuleMarker]rˆ   z5Dict[str, Union[_ModuleMarker, _MultipleClassMarker]]rG   Ú_ModNSrŠ   r„   rw   c                óø   • X l         Xl        0 U l        [        U 5      U l        U R                   (       a*  U R                   R
                  U R                  /-   U l        O/ U l        [        R                  U 5        g r]   )rˆ   r‰   rG   rŒ   rŠ   rw   r'   ra   )rb   r‰   rˆ   s      rB   re   Ú_ModuleMarker.__init__  sT   € ØŒØŒ	ØˆŒÜ˜T“lˆŒØ�;�;ØŸ™×(Ñ(¨D¯I©I¨;Ñ6ˆD�IàˆDŒIÜ�‰˜ÕrN   c                ó   • XR                   ;   $ r]   ro   ©rb   r‰   s     rB   Ú__contains__Ú_ModuleMarker.__contains__  s   € Ø—}‘}Ñ$Ð$rN   c                ó    • U R                   U   $ r]   ro   r�   s     rB   Ú__getitem__Ú_ModuleMarker.__getitem__  s   € Ø�}‰}˜TÑ"Ð"rN   c                óî   • U R                   R                  US 5        U R                   (       dH  U R                  b%  U R                  R                  U R                  5        [
        R                  U 5        g g r]   )rG   r4   rˆ   r`   r‰   r'   r{   r�   s     rB   r`   Ú_ModuleMarker._remove_item   sP   € Ø�‰×Ñ˜$ Ô%Ø�}�}Ø�{‰{Ñ&Ø—‘×(Ñ(¨¯©Ô3Ü×Ñ Õ%ð rN   c                ó8   • U R                   R                  U5      $ r]   )rŠ   Ú__getattr__©rb   rI   s     rB   Úresolve_attrÚ_ModuleMarker.resolve_attr'  s   € Ø�{‰{×&Ñ& sÓ+Ð+rN   c                ó”   • XR                   ;  a  [        X5      nX R                   U'   U$ [        [        U R                   U   5      nU$ r]   )rG   r0   r   )rb   r‰   Úmarkers      rB   r5   Ú_ModuleMarker.get_module*  sE   € Ø—}‘}Ó$Ü" 4Ó.ˆFØ"(�M‰M˜$Ñð ˆô œ-¨¯©°tÑ)<Ó=ˆFØˆrN   c                óH  ^ ^• TT R                   ;   a0  [        [        T R                   T   5      n UR                  U5        g [        U/UU 4S jS9T R                   T'   g ! [         a6  n[        U[        5      (       d  [        R                  " ST S35      Uee S nAff = f)Nr,   r-   c                 ó&   >• TR                  T 5      $ r]   )r`   )r‰   rb   s   €€rB   Ú<lambda>Ú)_ModuleMarker.add_class.<locals>.<lambda>A  s   ø€ ¨×):Ñ):¸4Ô)@rN   )rZ   )rG   r   r/   r€   r7   r.   r   r8   )rb   r‰   r:   r<   rA   s   ``   rB   r6   Ú_ModuleMarker.add_class2  s£   ù€ Ø�4—=‘=Ó ÜÔ0°$·-±-ÀÑ2EÓFˆHð	Ø×!Ñ! #Õ&ô #7Ø�Õ!@ñ#ˆD�M‰M˜$Òøô "ó Ü! (Ô,@×AÑAÜ×1Ò1Ø   ð '7ð 7óð ðð
 ûðús   ±A! Á!
B!Á+1BÂB!c                ó€   • XR                   ;   a/  [        [        U R                   U   5      nUR                  U5        g g r]   )rG   r   r/   rD   )rb   r‰   r:   r<   s       rB   rE   Ú_ModuleMarker.remove_classD  s5   € Ø—=‘=Ó ÜÔ0°$·-±-ÀÑ2EÓFˆHØ× Ñ  Õ%ð !rN   )rG   rŠ   r‰   rˆ   rw   N)r‰   r…   rˆ   r‹   )r‰   r…   r‚   Úbool)r‰   r…   r‚   r&   )r‰   r…   r‚   rƒ   ©rI   r…   r‚   zUnion[_ModNS, Type[Any]])r‰   r…   r‚   r0   )r‰   r…   r:   r)   r‚   rƒ   )rR   r2   rS   rT   rU   rV   r†   re   r‘   r”   r`   r›   r5   r6   rE   rW   rQ   rN   rB   r0   r0     sM   ‡ ñð
 N€Ià#Ó#ØCÓCØƒNØ
ƒOô	ô%ô#ô&ô,ôô÷$&rN   r0   c                  ó8   • \ rS rSr% SrS\S'   SS jrS	S jrSrg)
rŒ   iJ  )Ú__parentr0   Ú_ModNS__parentc                ó   • Xl         g r]   )r«   )rb   rˆ   s     rB   re   Ú_ModNS.__init__O  s   € Ø�rN   c                óh  •  U R                   R                  U   nUb^  [        U[        5      (       a  UR                  $ [        U[
        5      (       d   eUR                  U R                   R                  U5      $  [        SU R                   R                  < SU< 35      e! [         a     N3f = f)NzModule z1 has no mapped classes registered under the name )r«   rG   r.   r0   rŠ   r/   rx   rw   r1   rv   r‰   )rb   rI   Úvalues      rB   r™   Ú_ModNS.__getattr__R  s©   € ð
	FØ—M‘M×*Ñ*¨3Ñ/ˆEð Ñ Ü˜e¤]×3Ñ3Ø Ÿ<™<Ð'ä% eÔ-A×BÑBÐBÐBØ ×,Ñ,¨T¯]©]×-?Ñ-?ÀÓEÐEð !õ à.2¯m©m×.@Ô.@Â#ðGó
ð 	
øô ó 	Ùð	ús   ‚B$ Â$
B1Â0B1N)rˆ   r0   r¨   ©	rR   r2   rS   rT   rV   r†   re   r™   rW   rQ   rN   rB   rŒ   rŒ   J  s   ‡ Ø€IàÓô÷
rN   rŒ   c                  ó8   • \ rS rSr% SrS\S'   SS jrS	S jrSrg)
Ú_GetColumnsid  ©r:   r)   r:   c                ó   • Xl         g r]   r´   rh   s     rB   re   Ú_GetColumns.__init__i  s   € Ø�rN   c                ó"  • [        U R                  SS9nU(       aß  XR                  ;  a  [        SU R                  < SU< 35      eUR                  U   nUR                  [
        R                  R                  L a}  [        U[        R                  5      (       d   eUR                  n[        U[        5      (       a  UR                  nO.[        U[        5      (       d  [        R                   " SU-  5      e[#        U R                  U5      $ )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_descriptorsr7   Úextension_typer   ÚNotExtensionÚNOT_EXTENSIONr.   r   ÚQueryableAttributeÚpropertyr   r‰   r   r   r8   Úgetattr)rb   rI   ÚmpÚdescÚprops        rB   r™   Ú_GetColumns.__getattr__l  sà   € Ü˜$Ÿ(™(¨eÑ4ˆÞØ×0Ñ0Ó0Ý$à—x”x¢ð&óð ð
 ×)Ñ)¨#Ñ.ˆDØ×"Ñ"¤j×&=Ñ&=×&KÑ&KÒKÜ! $¬
×(EÑ(E×FÑFÐFÐFØ—}‘}�Ü˜d¤O×4Ñ4ØŸ)™)‘CÜ# D¬.×9Ñ9Ü×1Ò1ð2à47ñ8óð ô
 �t—x‘x Ó%Ð%rN   N)r:   r)   ©rI   r…   r‚   r   r±   rQ   rN   rB   r³   r³   d  s   ‡ Ø€Ià	ƒNô÷&rN   r³   c                óB   • [         R                  " U R                  5      $ r]   )r   Úinspectr:   )Útargets    rB   r¢   r¢   …  s   € ”:×%Ò% f§j¡jÔ1rN   c                  óB   • \ rS rSr% SrS\S'   S\S'   S
S jrSS jrSrg	)Ú	_GetTablei‰  ©rI   Úmetadatar…   rI   r"   rË   c                ó   • Xl         X l        g r]   rÊ   )rb   rI   rË   s      rB   re   Ú_GetTable.__init__�  s   € ØŒØ �rN   c                óZ   • U R                   R                  [        XR                  5         $ r]   )rË   Útablesr   rI   rš   s     rB   r™   Ú_GetTable.__getattr__“  s    € Ø�}‰}×#Ñ#¤N°3¿¹Ó$AÑBÐBrN   N)rI   r…   rË   r"   )rI   r…   r‚   r#   r±   rQ   rN   rB   rÉ   rÉ   ‰  s   ‡ Ø!€Ià	ƒHØÓô!÷CrN   rÉ   c                óf   • [        U[        5      (       a  UR                  / U 5      n[        U5      $ r]   )r.   r/   rx   r³   )rI   r¯   s     rB   Ú_determine_containerrÒ   —  s-   € Ü�%Ô-×.Ñ.Ø×!Ñ! " cÓ*ˆÜ�uÓÐrN   c                  ó    • \ rS rSr% SrS\S'   S\S'   S\S'   S	\S
'   S\S'   S\S'    S         SS jjrSS jrSS jrSS jr	SS jr
Srg)Ú_class_resolveri�  )r:   rÂ   ÚargÚfallbackÚ_dictÚ
_resolversÚfavor_tablesr)   r:   úRelationshipProperty[Any]rÂ   úMapping[str, Any]rÖ   r…   rÕ   r§   rÙ   z Tuple[Callable[[str], Any], ...]rØ   c                ó˜   • Xl         X l        X@l        X0l        [        R
                  " U R                  5      U l        SU l        XPl	        g )NrQ   )
r:   rÂ   rÕ   rÖ   r   ÚPopulateDictÚ_access_clsr×   rØ   rÙ   )rb   r:   rÂ   rÖ   rÕ   rÙ   s         rB   re   Ú_class_resolver.__init__¯  s=   € ð ŒØŒ	ØŒØ ŒÜ×&Ò& t×'7Ñ'7Ó8ˆŒ
ØˆŒØ(ÕrN   c                ó  • U R                   n[        R                  " U5      nUR                  nUc   eUR                  nUR
                  nU R                  (       aD  XR                  ;   a  UR                  U   $ XR                  ;   a  [        U[        USU5      5      $ X;   a  [        XU   5      $ U R                  (       dD  XR                  ;   a  UR                  U   $ XR                  ;   a  [        U[        USU5      5      $ SU;   a;  U[        [        US   5      ;   a$  [        [        US   5      nUR                  U5      $ U R                  (       a"  U R                   H  nU" U5      n	U	c  M  U	s  $    U R                   U   $ )NrË   r*   )r:   r   Úmanager_of_classÚregistryÚ_class_registryrË   rÙ   rÏ   Ú_schemasrÉ   r¿   rÒ   r   r0   r›   rØ   rÖ   )
rb   rI   r:   ÚmanagerÚ	decl_baser;   rË   râ   Úresolvr¯   s
             rB   rÞ   Ú_class_resolver._access_cls¿  sp  € Ø�h‰hˆä×-Ò-¨cÓ2ˆØ×$Ñ$ˆ	ØÑ$Ð$Ð$Ø'×7Ñ7ÐØ×%Ñ%ˆà××Ø—o‘oÓ%Ø—‘ sÑ+Ð+Ø×)Ñ)Ó)Ü  ¤g¨c°:¸xÓ&HÓIÐIàÓ%Ü'¨ÀÑ-EÓFÐFà× × Ø—o‘oÓ%Ø—‘ sÑ+Ð+Ø×)Ñ)Ó)Ü  ¤g¨c°:¸xÓ&HÓIÐIà Ð$7Ó7¸CÄ4ÜÐ.Ð/DÑEóD
ó =
ô ÜÐ2Ð3HÑIóˆHð ×(Ñ(¨Ó-Ð-Ø�_�_ØŸ/œ/�Ù˜s›�ØÓ$Ø ’Lñ *ð
 �}‰}˜SÑ!Ð!rN   c                óð  • [         R                  " SU5      nU(       a‰  UR                  S5      R                  S5      n[        R
                  " SU R                  R                   SU R                  < SU R                  R                   SUR                  S5       S	U S
35      Ue[        R
                  " SU R                  R                  < SU R                  < SU< SU R                  < S3	5      Ue)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   r8   rÂ   rˆ   rÕ   rI   r:   )rb   r‰   ÚerrÚgeneric_matchÚclsargs        rB   Ú_raise_for_nameÚ_class_resolver._raise_for_nameæ  sÙ   € ÜŸš °$Ó7ˆæØ"×(Ñ(¨Ó+×1Ñ1°#Ó6ˆFÜ×)Ò)Ø+¨D¯I©I×,<Ñ,<Ð+=ð >,Ø,0¯H©H©<ð 8ð —I‘I—M‘M�? )¨M×,?Ñ,?ÀÓ,BÐ+CØ�V�HÐ2ð4óð ðô ×)Ó)ð
 —9‘9×#Ô# T§X¤X«t°T·X´Xð	?óð ðrN   c                óâ  • U R                   nU R                  nS n UR                  S5       H  nUc  X$   nM  [        X45      nM     [	        U[
        5      (       a  UR                  $ [        (       a"  [	        U[        [        [        45      (       d   eU$ ! [         a  nU R                  X5         S nAg S nAf[         a)  nU R                  UR                  S   U5         S nAg S nAff = f)Nr+   r   )rÕ   r×   r3   r¿   r.   r³   r:   r   Útyper#   rŒ   r1   rò   rv   Úargs)rb   r‰   ÚdÚrvalr?   rï   Úns          rB   Ú_resolve_nameÚ_class_resolver._resolve_nameý  sÉ   € Ø�x‰xˆØ�J‰JˆØˆð	ØŸ™ Cž�Ø‘<Ø™8’Dä" 4Ó/’Dñ	 )ô ˜$¤×,Ñ,Ø—x‘x�ç ’=Ü% d¬T´5¼&Ð,A×BÑBÐBÐBØ�øô ó 	,Ø× Ñ  ×+Ñ+ûÜó 	/Ø× Ñ  §¡¨¡¨A×.Ñ.ûð	/ús#   œ,B Â
C.Â"B8Â8C.ÃC)Ã)C.c                ó  •  [        U R                  [        5       U R                  5      n[	        U[
        5      (       a  UR                  $ U$ ! [         a)  nU R                  UR                  S   U5         S nAg S nAff = f)Nr   )
ÚevalrÕ   Úglobalsr×   r.   r³   r:   rv   rò   rö   )rb   Úxrù   s      rB   Ú__call__Ú_class_resolver.__call__  se   € ð	/Ü�T—X‘Xœw›y¨$¯*©*Ó5ˆAä˜!œ[×)Ñ)Ø—u‘u�à�øÜó 	/Ø× Ñ  §¡¨¡¨A×.Ñ.ûð	/ús   ‚A	A ÁA Á
BÁA<Á<B)r×   rØ   rÕ   r:   rÖ   rÙ   rÂ   N©F)
r:   r)   rÂ   rÚ   rÖ   rÛ   rÕ   r…   rÙ   r§   rÄ   )r‰   r…   rï   Ú	Exceptionr‚   r   )r‚   zUnion[Table, Type[Any], _ModNS])r‚   r   )rR   r2   rS   rT   rV   r†   re   rÞ   rò   rú   r   rW   rQ   rN   rB   rÔ   rÔ   �  s|   ‡ ð€Ið 
ƒNØ
#Ó#ØÓØ	ƒHØÓØ0Ó0ð #ð)àð)ð (ð)ð $ð	)ð
 ð)ð õ)ô %"ôNô.÷,	/rN   rÔ   rÛ   Ú_fallback_dictc                óÌ   ^ ^• [         cA  SS KnSSKJn  SSKJn  [
        R                  " UR                  5      R                  X4S.5      q SS	U U4S jjjn    S
U U4S jjnXe4$ )Nr   r   )Úforeign)Úremote)r  r  c                ó$   >• [        TT[        XS9$ )N)rÙ   )rÔ   r  )rÕ   rÙ   r:   rÂ   s     €€rB   Úresolve_argÚ_resolver.<locals>.resolve_arg1  s   ø€ ÜØ�”~ sñ
ð 	
rN   c                ó<   >• [        TT[        U 5      R                  $ r]   )rÔ   r  rú   )rÕ   r:   rÂ   s    €€rB   Úresolve_nameÚ_resolver.<locals>.resolve_name6  s   ø€ ô ˜s D¬.¸#Ó>×LÑLÐLrN   r  )rÕ   r…   rÙ   r§   r‚   rÔ   )rÕ   r…   r‚   z-Callable[[], Union[Type[Any], Table, _ModNS]])	r  Ú
sqlalchemyÚ r  r  r   ÚimmutabledictÚ__dict__Úunion)r:   rÂ   r  r  r  r	  r  s   ``     rB   Ú	_resolverr  "  sn   ù€ ô ÑÛÝÝä×+Ò+¨J×,?Ñ,?Ó@×FÑFØÑ2ó
ˆ÷
ò 
ð
MØðMà	6÷Mð Mð
 Ð$Ð$rN   )r9   r…   r:   zType[_T]r;   Ú_ClsRegistryTyper‚   rƒ   )r9   r…   r:   r)   r;   r  r‚   rƒ   )rI   r…   r;   r  rJ   zCallable[[Any], bool]r‚   r§   )rI   r…   r¯   r   r‚   r³   )r:   r)   rÂ   rÚ   r‚   zmTuple[Callable[[str], Callable[[], Union[Type[Any], Table, _ModNS]]], Callable[[str, bool], _class_resolver]])?rU   Ú
__future__r   rë   Útypingr   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r^   r  r   r   Údescriptor_propsr   Ú
propertiesr   r   r   r   r   Ú
sql.schemar   Úutil.typingr    Úrelationshipsr!   r"   r#   r$   r…   rõ   r  Úsetr'   r†   r6   rE   rM   r&   r/   r0   rŒ   r³   Ú	_inspectsrÉ   rÒ   rÔ   r  r  rQ   rN   rB   Ú<module>r     s§  ðòõ #ã 	Ý Ý Ý Ý Ý Ý Ý Ý Ý !Ý Ý Ý Ý Ý Ý  Ý Ý Û å Ý Ý -Ý &Ý Ý Ý Ý Ý 'Ý +æÝ3Ý%Ý"áˆT˜Ñ€à! # u¨TÐ3EÐ-EÑ'FÐ"FÑGÐ ñ &)£U€Ð"Ó *ð3Øð3Ø!ð3Ø8Hð3à	ô3ðlØðØ"ðØ9Iðà	ôðBØ	ðà)ðð  ðð 
ô	÷@ñ ôB@Ð+ô B@ôJE&Ð$ô E&÷P
ñ 
÷4&ñ &ð@ × Ò �[Ô !Ù1ô÷
Cñ Cô÷/ñ /ðD %)€Ð!Ó (õ%rN   