Ë
    r™ãjO  ã                  ó
  — 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$ 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/«       Z0d(e1d)<   	 	 	 	 	 	 	 	 d?d*„Z2	 	 	 	 	 	 	 	 d@d+„Z3	 	 	 	 	 	 	 	 dAd,„Z4 G d-„ d'«      Z5 G d.„ d/e5«      Z6 G d0„ d1e5«      Z7 G d2„ d3«      Z8 G d4„ d5«      Z9  e"jt                  e9«      d6„ «        G d7„ d8«      Z;dBd9„Z< G d:„ d;«      Z=da>d<e1d=<   dCd>„Z?y)Dz±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)Ú_metadata_for_cls)Úclass_mapperé   )Úexc)Ú
inspection)Úutil)Ú_get_table_key)ÚCallableReference)ÚRelationshipProperty)ÚMetaData)ÚTableÚ_T)ÚboundÚ_ClsRegistryTokenzSet[_ClsRegistryToken]Ú_registriesc                ó2  — | |v r0||    }t        |t        «      s t        |t        d|«      g«      || <   n||| <   	 t        t        |d   «      }|j
                  j                  d«      }|rQ|j                  d«      }|j                  |«      }|D ]  }|j                  |«      }Œ 	 |j                  | |«       |rŒPyy# t        $ r t        dd«      x|d<   }Y Œ‹w xY w# t        $ r0}t        |t        «      st        j                  d| › d�«      |‚‚ d}~ww xY w)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)	Ú	classnameÚclsÚdecl_class_registryÚexistingÚroot_moduleÚtokensÚtokenÚmoduleÚaes	            úe/var/www/html/python-recuperauto-other/env/lib/python3.12/site-packages/sqlalchemy/orm/clsregistry.pyÚ
_add_classrD   A   sO  € ð Ð'Ñ'à& yÑ1ˆÜ˜(Ô$8Ô9Ü-AØ”d˜;¨Ó1Ð2ó.Ð 	Ò*ð *-Ð˜IÑ&ð
ÜÜÐ.Ð/DÑEó
ˆð �^‰^×!Ñ! #Ó&€Fñ Ø—
‘
˜1“ˆØ×'Ñ'¨Ó.ˆØò 	.ˆEØ×&Ñ& uÓ-‰Fð	.ð		Ø×Ñ˜Y¨Ô,ô øô ò 
äÐ/°Ó6ð	
ÐÐ1Ñ2²[ð
ûô. ò 	Ü˜f¤mÔ4Ü×-Ñ-Ø˜Y˜Kð (3ð 3óð ðð
 ûð	ús)   »B= Â&C Â=CÃCÃ	DÃ&+DÄDc                óÄ  — | |v r*||    }t        |t        «      r|j                  |«       n|| = 	 t        t        |d   «      }|j                  j                  d«      }|rQ|j                  d«      }|j                  |«      }|D ]  }|j                  |«      }Œ 	 |j                  | |«       |rŒPy y # t
        $ r Y y w xY w# t        $ r t        |t        «      sn‚ Y Œ1w xY w)Nr+   r,   r   )r/   r0   Úremove_itemr   r1   r2   r3   r4   r5   r6   Úremove_classr8   )r:   r;   r<   r=   r>   r?   r@   rA   s           rC   Ú_remove_classrH   w   sû   € ð Ð'Ñ'Ø& yÑ1ˆÜ�hÔ 4Ô5Ø× Ñ  Õ%à# IÐ.ðÜÜÐ.Ð/DÑEó
ˆð �^‰^×!Ñ! #Ó&€Fá
Ø—
‘
˜1“ˆØ×'Ñ'¨Ó.ˆØò 	.ˆEØ×&Ñ& uÓ-‰Fð	.ð	Ø×Ñ 	¨3Ô/ô øô ò Ùðûô ò 	Ü˜f¤mÔ4Øàñ ð	ús#   °B2 ÂC Â2	B>Â=B>ÃCÃCc                ó”   — | |vry||    }t        |t        «      r&|j                  D ]  } ||«      sŒ y 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)r/   r0   ÚcontentsÚNotImplementedError)Úkeyr<   ÚtestÚthingÚ	sub_things        rC   Ú_key_is_emptyrP   ˜   s\   € ð$ Ð%Ñ%Øà Ñ$€EÜ�%Ô-Ô.ØŸ™ò 	:ˆIÙ�I�Ùð	:ô &Ð&8Ó9Ð9á˜“;ˆÐó    c                  ó   — e Zd ZdZdZy)r'   zAan object that can be in the registry._class_registry as a value.© N)Ú__name__r3   Ú__qualname__Ú__doc__Ú	__slots__rS   rQ   rC   r'   r'   ¸   s
   „ ÙKà�IrQ   c                  ód   — 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y)r0   zRrefers to multiple classes of the same name
    within _decl_class_registry.

    )Ú	on_removerJ   Ú__weakref__zSet[weakref.ref[Type[Any]]]rJ   z/CallableReference[Optional[Callable[[], None]]]rY   Nc                ó¬   — || _         |D �ch c]"  }t        j                  || j                  «      ’Œ$ c}| _        t
        j                  | «       y c c}w ©N)rY   ÚweakrefÚrefÚ_remove_itemrJ   r(   Úadd)ÚselfÚclassesrY   Úitems       rC   Ú__init__z_MultipleClassMarker.__init__É   sF   € ð
 #ˆŒà=Dö
Ø59ŒG�K‰K˜˜d×/Ñ/Õ0ò
ˆŒô 	�‰˜Õùò
s   Œ'Ac                óL   — | j                  t        j                  |«      «       y r\   )r_   r]   r^   ©ra   r;   s     rC   rF   z _MultipleClassMarker.remove_itemÔ   s   € Ø×Ñœ'Ÿ+™+ cÓ*Õ+rQ   c                ó(   — d„ | j                   D «       S )Nc              3  ó*   K  — | ]  } |«       –— Œ y ­wr\   rS   )Ú.0r^   s     rC   ú	<genexpr>z0_MultipleClassMarker.__iter__.<locals>.<genexpr>Ø   s   è ø€ Ò/˜#‘—Ñ/ùs   ‚©rJ   )ra   s    rC   Ú__iter__z_MultipleClassMarker.__iter__×   s   € Ù/ §¡Ô/Ð/rQ   c                óä   — t        | j                  «      dkD  r+t        j                  ddj	                  ||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.r,   r   )ÚlenrJ   r   r9   ÚjoinÚlistÚ	NameError)ra   ÚpathrL   r^   r;   s        rC   Úattempt_getz _MultipleClassMarker.attempt_getÚ   su   € Üˆt�}‰}Ó Ò!Ü×)Ñ)ðBð —8‘8˜D C 5™LÓ)ñ+óð ô �t—}‘}Ó% aÑ(ˆCÙ“%ˆCØˆ{Ü “nÐ$ØˆJrQ   c                ó¸   — | j                   j                  |«       | j                   s3t        j                  | «       | j                  r| j                  «        y y y r\   )rJ   Údiscardr(   rY   )ra   r^   s     rC   r_   z!_MultipleClassMarker._remove_itemé   sD   € Ø�‰×Ñ˜cÔ"Ø�}Š}Ü×Ñ Ô%Ø�~Š~Ø—‘Õ ð ð rQ   c                óˆ  — t        | j                  «      D �cg c]	  } |«       ‘Œ c}D �ch c]  }|�|j                  ’Œ }}|j                  |v r0t        j                  d|j                  ›d|j
                  ›d�«       | j                  j                  t        j                  || j                  «      «       y c c}w c c}w )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.)
rp   rJ   r3   r   ÚwarnrT   r`   r]   r^   r_   )ra   rc   r^   r;   Úmoduless        rC   Úadd_itemz_MultipleClassMarker.add_itemð   s�   € ô *.¨d¯m©mÓ)<Ö= #™�Ò=ö
àØˆð �N‹Nð
ˆð 
ð
 �?‰?˜gÑ%Ü�IŠIð —?“? D§M£Mð3ôð 	�‰×Ñœ'Ÿ+™+ d¨D×,=Ñ,=Ó>Õ?ùò >ùò
s
   ˜B:«B?r\   )rb   zIterable[Type[Any]]rY   zOptional[Callable[[], None]])r;   r*   ÚreturnÚNone)rz   z*Generator[Optional[Type[Any]], None, None])rr   ú	List[str]rL   Ústrrz   r*   )r^   zweakref.ref[Type[Any]]rz   r{   )rc   r*   rz   r{   )rT   r3   rU   rV   rW   Ú__annotations__rd   rF   rl   rs   r_   ry   rS   rQ   rC   r0   r0   ¾   sP   … ñð
 7€Ià)Ó)Ø>Ó>ð
 37ð	à$ð	ð 0ó	ó,ó0óó!ô@rQ   r0   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y)r1   z>Refers to a module name within
    _decl_class_registry.

    )ÚparentÚnamerJ   Úmod_nsrr   rZ   úOptional[_ModuleMarker]r€   z5Dict[str, Union[_ModuleMarker, _MultipleClassMarker]]rJ   Ú_ModNSr‚   r|   rr   c                óò   — || _         || _        i | _        t        | «      | _        | j                   r*| j                   j
                  | j                  gz   | _        ng | _        t        j                  | «       y r\   )r€   r�   rJ   r„   r‚   rr   r(   r`   )ra   r�   r€   s      rC   rd   z_ModuleMarker.__init__  sX   € ØˆŒØˆŒ	ØˆŒÜ˜T“lˆŒØ�;Š;ØŸ™×(Ñ(¨D¯I©I¨;Ñ6ˆD�IàˆDŒIÜ�‰˜ÕrQ   c                ó   — || j                   v S r\   rk   ©ra   r�   s     rC   Ú__contains__z_ModuleMarker.__contains__  s   € Ø�t—}‘}Ð$Ð$rQ   c                ó    — | j                   |   S r\   rk   r‡   s     rC   Ú__getitem__z_ModuleMarker.__getitem__  s   € Ø�}‰}˜TÑ"Ð"rQ   c                óâ   — | j                   j                  |d «       | j                   sG| j                  �%| j                  j                  | j                  «       t
        j                  | «       y y r\   )rJ   r5   r€   r_   r�   r(   ru   r‡   s     rC   r_   z_ModuleMarker._remove_item!  sP   € Ø�‰×Ñ˜$ Ô%Ø�}Š}Ø�{‰{Ð&Ø—‘×(Ñ(¨¯©Ô3Ü×Ñ Õ%ð rQ   c                ó8   — | j                   j                  |«      S r\   )r‚   Ú__getattr__©ra   rL   s     rC   Úresolve_attrz_ModuleMarker.resolve_attr(  s   € Ø�{‰{×&Ñ& sÓ+Ð+rQ   c                ó–   — || j                   vrt        || «      }|| j                   |<   |S t        t        | j                   |   «      }|S r\   )rJ   r1   r   )ra   r�   Úmarkers      rC   r6   z_ModuleMarker.get_module+  sK   € Ø�t—}‘}Ñ$Ü" 4¨Ó.ˆFØ"(ˆD�M‰M˜$Ñð ˆô œ-¨¯©°tÑ)<Ó=ˆFØˆrQ   c                ó:  ‡ ‡— ‰‰ j                   v r0t        t        ‰ j                   ‰   «      }	 |j                  |«       y t        |gˆˆ fd„¬«      ‰ j                   ‰<   y # t        $ r0}t        |t        «      st        j                  d‰› d�«      |‚‚ d }~ww xY w)Nr-   r.   c                 ó&   •— ‰j                  ‰ «      S r\   )r_   )r�   ra   s   €€rC   ú<lambda>z)_ModuleMarker.add_class.<locals>.<lambda>B  s   ø€ ¨×):Ñ):¸4Ó)@€ rQ   )rY   )rJ   r   r0   ry   r8   r/   r   r9   )ra   r�   r;   r=   rB   s   ``   rC   r7   z_ModuleMarker.add_class3  s    ù€ Ø�4—=‘=Ñ ÜÔ0°$·-±-ÀÑ2EÓFˆHð	Ø×!Ñ! #Õ&ô #7Ø�Ô!@ô#ˆD�M‰M˜$Òøô "ò Ü! (Ô,@ÔAÜ×1Ñ1Ø   ð '7ð 7óð ðð
 ûðús   ¯A! Á!	BÁ*+BÂBc                ó~   — || j                   v r/t        t        | j                   |   «      }|j                  |«       y y r\   )rJ   r   r0   rF   )ra   r�   r;   r=   s       rC   rG   z_ModuleMarker.remove_classE  s7   € Ø�4—=‘=Ñ ÜÔ0°$·-±-ÀÑ2EÓFˆHØ× Ñ  Õ%ð !rQ   N)r�   r}   r€   rƒ   )r�   r}   rz   Úbool)r�   r}   rz   r'   )r�   r}   rz   r{   ©rL   r}   rz   zUnion[_ModNS, Type[Any]])r�   r}   rz   r1   )r�   r}   r;   r*   rz   r{   )rT   r3   rU   rV   rW   r~   rd   rˆ   rŠ   r_   r�   r6   r7   rG   rS   rQ   rC   r1   r1     sM   … ñð
 N€Ià#Ó#ØCÓCØƒNØ
ƒOó	ó%ó#ó&ó,óóô$&rQ   r1   c                  ó,   — e Zd ZU dZded<   dd„Zdd„Zy)	r„   )Ú__parentr1   Ú_ModNS__parentc                ó   — || _         y r\   )rš   )ra   r€   s     rC   rd   z_ModNS.__init__P  s	   € Øˆ�rQ   c                óJ  — 	 | j                   j                  |   }|�Tt        |t        «      r|j                  S t        |t
        «      sJ ‚|j                  | j                   j                  |«      S t        d| j                   j                  ›d|›�«      ‚# t        $ r Y Œ0w xY w)NzModule z1 has no mapped classes registered under the name )rš   rJ   r/   r1   r‚   r0   rs   rr   r2   rq   r�   )ra   rL   Úvalues      rC   r�   z_ModNS.__getattr__S  sœ   € ð
	FØ—M‘M×*Ñ*¨3Ñ/ˆEð Ð Ü˜e¤]Ô3Ø Ÿ<™<Ð'ä% eÔ-AÔBÐBÐBØ ×,Ñ,¨T¯]©]×-?Ñ-?ÀÓEÐEÝà.2¯m©m×.@Ó.@Á#ðGó
ð 	
øô ò 	Ùð	ús   ‚B Â	B"Â!B"N)r€   r1   r—   ©rT   r3   rU   rW   r~   rd   r�   rS   rQ   rC   r„   r„   K  s   … Ø€IàÓóô
rQ   r„   c                  ó,   — e Zd ZU dZded<   dd„Zdd„Zy)	Ú_GetColumns©r;   r*   r;   c                ó   — || _         y r\   r¡   rf   s     rC   rd   z_GetColumns.__init__j  s	   € Øˆ�rQ   c                óö  — t        | j                  d¬«      }|rË||j                  vrt        d| j                  ›d|›�«      ‚|j                  |   }|j                  t
        j                  j                  u rmt        |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_descriptorsr8   Úextension_typer   ÚNotExtensionÚNOT_EXTENSIONr/   r   ÚQueryableAttributeÚpropertyr   r�   r   r   r9   Úgetattr)ra   rL   ÚmpÚdescÚprops        rC   r�   z_GetColumns.__getattr__m  sÙ   € Ü˜$Ÿ(™(¨eÔ4ˆÙØ˜"×0Ñ0Ñ0Ý$à—x“x¡ð&óð ð
 ×)Ñ)¨#Ñ.ˆDØ×"Ñ"¤j×&=Ñ&=×&KÑ&KÑKÜ! $¬
×(EÑ(EÔFÐFÐFØ—}‘}�Ü˜d¤OÔ4ØŸ)™)‘CÜ# D¬.Ô9Ü×1Ñ1ð2à47ñ8óð ô
 �t—x‘x Ó%Ð%rQ   N)r;   r*   ©rL   r}   rz   r   rž   rS   rQ   rC   r    r    e  s   … Ø€Ià	ƒNóô&rQ   r    c                ó@   — t        j                  | j                  «      S r\   )r   Úinspectr;   )Útargets    rC   r”   r”   †  s   € ”:×%Ñ% f§j¡jÓ1€ rQ   c                  ó6   — e Zd ZU dZded<   ded<   d	d„Zd
d„Zy)Ú	_GetTable©rL   Úmetadatar}   rL   r#   r¶   c                ó    — || _         || _        y r\   rµ   )ra   rL   r¶   s      rC   rd   z_GetTable.__init__�  s   € ØˆŒØ ˆ�rQ   c                ó\   — | j                   j                  t        || j                  «         S r\   )r¶   Útablesr    rL   rŽ   s     rC   r�   z_GetTable.__getattr__”  s"   € Ø�}‰}×#Ñ#¤N°3¸¿¹Ó$AÑBÐBrQ   N)rL   r}   r¶   r#   )rL   r}   rz   r$   rž   rS   rQ   rC   r´   r´   Š  s   … Ø!€Ià	ƒHØÓó!ôCrQ   r´   c                ó\   — t        |t        «      r|j                  g | «      }t        |«      S r\   )r/   r0   rs   r    )rL   r�   s     rC   Ú_determine_containerr»   ˜  s*   € Ü�%Ô-Ô.Ø×!Ñ! " cÓ*ˆÜ�uÓÐrQ   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d„Z
y)Ú_class_resolver)r;   r®   ÚargÚfallbackÚ_dictÚ
_resolversÚtables_onlyr*   r;   úRelationshipProperty[Any]r®   úMapping[str, Any]r¿   r}   r¾   r–   rÂ   z Tuple[Callable[[str], Any], ...]rÁ   c                ó    — || _         || _        || _        || _        t	        j
                  | j                  «      | _        d| _        || _	        y )NrS   )
r;   r®   r¾   r¿   r   ÚPopulateDictÚ_access_clsrÀ   rÁ   rÂ   )ra   r;   r®   r¿   r¾   rÂ   s         rC   rd   z_class_resolver.__init__°  sG   € ð ˆŒØˆŒ	ØˆŒØ ˆŒÜ×&Ñ& t×'7Ñ'7Ó8ˆŒ
ØˆŒØ&ˆÕrQ   c                óZ  — |j                   �‚d|vr~t        ||j                   «      }||j                  v r|j                  |   S ||j                  v r<t        j                  d|›d|›d|j                   ›d|›d�	d«       |j                  |   S y ||j                  v r|j                  |   S y )Nr,   zThe string 'z2' was resolved to the non-schema-qualified table 'z8', however the MetaData object has a default schema of 'zQ'. In a future version of SQLAlchemy, this unqualified name will be resolved as 'zH'. To reference a table without a schema, use the Table object directly.z2.1)Úschemar    r¹   r   Úwarn_deprecated)ra   rL   r¶   Ú
schema_keys       rC   Ú_resolve_table_keyz"_class_resolver._resolve_table_keyÀ  s¨   € ð �?‰?Ð&¨3°c©>Ü'¨¨X¯_©_Ó=ˆJØ˜XŸ_™_Ñ,Ø—‘ zÑ2Ð2Ø�h—o‘oÑ%Ü×$Ò$ò šC §£²*ð>ð ô
ð  —‘ sÑ+Ð+ð ð �H—O‘OÑ#Ø—?‘? 3Ñ'Ð'ØrQ   c                óÌ  — | j                   }t        j                  |«      }|j                  }|€J ‚|j                  }t        ||«      }| j                  r0| j                  ||«      }|�|S ||j                  v rt        ||«      S ||v r)t        |||   «      }| j                  r|j                   S |S | j                  s0| j                  ||«      }|�|S ||j                  v rt        ||«      S d|v r9|t        t        |d   «      v r$t        t        |d   «      }	|	j                  |«      S | j                  r| j                  D ]  }
 |
|«      }|€Œ|c S  | j                  |   S )Nr+   )r;   r   Úmanager_of_classÚregistryÚ_class_registryr   rÂ   rÌ   Ú_schemasr´   r»   r   r1   r�   rÁ   r¿   )ra   rL   r;   ÚmanagerrÏ   r<   r¶   ÚtableÚdtÚ_module_registryÚresolvr�   s               rC   rÇ   z_class_resolver._access_clsØ  s�  € Ø�h‰hˆä×-Ñ-¨cÓ2ˆØ×#Ñ#ˆØÐ#Ð#Ð#Ø&×6Ñ6ÐÜ$ S¨(Ó3ˆà×ÒØ×+Ñ+¨C°Ó:ˆEØÐ Ø�Ø˜×)Ñ)Ñ)Ü   hÓ/Ð/àÐ%Ñ%Ü% cÐ+>¸sÑ+CÓDˆBØ×ÒØ—v‘v�à�	à×ÒØ×+Ñ+¨C°Ó:ˆEØÐ Ø�Ø˜×)Ñ)Ñ)Ü   hÓ/Ð/à Ð$7Ñ7¸CÄ4ÜÐ.Ð/DÑEóD
ñ =
ô  $ÜÐ2Ð3HÑIó Ðð $×0Ñ0°Ó5Ð5à�?Š?ØŸ/™/ò !�Ù˜s›�ØÑ$Ø ’Lð!ð
 �}‰}˜SÑ!Ð!rQ   c                óÈ  — t        j                  d|«      }|r‡|j                  d«      j                  d«      }t	        j
                  d| j                  j                  › d| j                  ›d| j                  j                  › d|j                  d«      › d	|› d
�«      |‚t        j                  | j                  «      }|j                  }|�t        | j                  |«      nd }|�2|j                  �&t!        ||j                  «      }||j"                  vsJ ‚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   r9   r®   r€   r¾   rL   r   rÎ   r;   rÏ   r   rÉ   r    r¹   )	ra   r�   ÚerrÚgeneric_matchÚclsargrÒ   rÏ   r¶   rË   s	            rC   Ú_raise_for_namez_class_resolver._raise_for_name  sN  € ÜŸ™ °$Ó7ˆáØ"×(Ñ(¨Ó+×1Ñ1°#Ó6ˆFÜ×)Ñ)Ø+¨D¯I©I×,<Ñ,<Ð+=ð >,Ø,0¯H©H¨<ð 8ð —I‘I—M‘M�? )¨M×,?Ñ,?ÀÓ,BÐ+CØ�V�HÐ2ð4óð ðô !×1Ñ1°$·(±(Ó;ˆGØ×'Ñ'ˆHð Ð'ô " $§(¡(¨HÔ5àð ð Ð#¨¯©Ð(CÜ+¨D°(·/±/ÓB�
Ø!¨¯©Ñ8Ð8Ð8ä×)Ò)ð —I‘I×$Ó$Ø—H“HÚØ—H“Hð	óð ðrQ   c                óÀ  — | j                   }| j                  }d }	 |j                  d«      D ]  }|€||   }Œt        ||«      }Œ 	 t	        |t
        «      r|j                  S t        rt	        |t        t        t        f«      sJ ‚|S # t        $ r}| j                  ||«       Y d }~y d }~wt        $ r)}| j                  |j                  d   |«       Y d }~y d }~ww xY w)Nr,   r   )r¾   rÀ   r4   r«   r/   r    r;   r   Útyper$   r„   r2   rà   rq   Úargs)ra   r�   ÚdÚrvalr@   rÝ   Úns          rC   Ú_resolve_namez_class_resolver._resolve_name2  sÌ   € Ø�x‰xˆØ�J‰JˆØˆð	ØŸ™ C›ò 0�Ø�<Ø˜U™8‘Dä" 4¨Ó/‘Dñ	0ô ˜$¤Ô,Ø—x‘x�å Ü% d¬T´5¼&Ð,AÔBÐBÐBØ�øô ò 	,Ø× Ñ   s×+Ñ+ûÜò 	/Ø× Ñ  §¡¨¡¨A×.Ñ.ûð	/ús#   œ*B Â	CÂB(Â(CÂ4CÃCc                ó¬  — | j                   r	 | j                  | j                     S 	 t        | j                  t        «       | j                  «      }t        |t        «      r|j                  S |S # t        $ r&}| j	                  | j                  |«       Y d }~y d }~ww xY w# t        $ r)}| j	                  |j                  d   |«       Y d }~y d }~ww xY w)Nr   )rÂ   rÀ   r¾   r2   rà   ÚevalÚglobalsr/   r    r;   rq   rã   )ra   ÚkÚxræ   s       rC   Ú__call__z_class_resolver.__call__H  s­   € Ø×Òð2Ø—z‘z $§(¡(Ñ+Ð+ð3Ü˜Ÿ™¤7£9¨d¯j©jÓ9�ä˜a¤Ô-ØŸ5™5�Là�Høô ò 2Ø×$Ñ$ T§X¡X¨q×1Ñ1ûð2ûô ò 3Ø×$Ñ$ Q§V¡V¨A¡Y°×2Ñ2ûð3ús5   ŽA/ ¨AB! Á-B! Á/	BÁ8BÂBÂ!	CÂ*CÃCN©F)
r;   r*   r®   rÃ   r¿   rÄ   r¾   r}   rÂ   r–   )rL   r}   r¶   r#   rz   zOptional[Table]r¯   )r�   r}   rÝ   Ú	Exceptionrz   r   )rz   zUnion[Table, Type[Any], _ModNS])rz   r   )rT   r3   rU   rW   r~   rd   rÌ   rÇ   rà   rç   rí   rS   rQ   rC   r½   r½   ž  sš   … ð€Ið 
ƒNØ
#Ó#ØÓØ	ƒHØÓØ0Ó0ð "ð'àð'ð (ð'ð $ð	'ð
 ð'ð ó'ð ØðØ"*ðà	óó0,"ó\*óXô,3rQ   r½   rÄ   Ú_fallback_dictc                óÂ   ‡ ‡— t         €Add l}ddlm} ddlm} t        j                  |j                  «      j                  ||dœ«      a dd	ˆ ˆfd„}	 	 	 	 d
ˆ ˆfd„}||fS )Nr   r   )Úforeign)Úremote)rò   ró   c                ó,   •— t        ‰‰t        | |¬«      S )N)rÂ   )r½   rð   )r¾   rÂ   r;   r®   s     €€rC   Úresolve_argz_resolver.<locals>.resolve_argl  s   ø€ ÜØ�”~ s¸ô
ð 	
rQ   c                ó<   •— t        ‰‰t        | «      j                  S r\   )r½   rð   rç   )r¾   r;   r®   s    €€rC   Úresolve_namez_resolver.<locals>.resolve_nameq  s   ø€ ô ˜s D¬.¸#Ó>×LÑLÐLrQ   rî   )r¾   r}   rÂ   r–   rz   r½   )r¾   r}   rz   z-Callable[[], Union[Type[Any], Table, _ModNS]])	rð   Ú
sqlalchemyÚ rò   ró   r   ÚimmutabledictÚ__dict__Úunion)r;   r®   rø   rò   ró   rõ   r÷   s   ``     rC   Ú	_resolverrý   ]  sg   ù€ ô ÐÛÝÝä×+Ñ+¨J×,?Ñ,?Ó@×FÑFØ¨6Ñ2ó
ˆ÷
ð
MØðMà	6öMð
 ˜Ð$Ð$rQ   )r:   r}   r;   zType[_T]r<   Ú_ClsRegistryTyperz   r{   )r:   r}   r;   r*   r<   rþ   rz   r{   )rL   r}   r<   rþ   rM   zCallable[[Any], bool]rz   r–   )rL   r}   r�   r   rz   r    )r;   r*   r®   rÃ   rz   zmTuple[Callable[[str], Callable[[], Union[Type[Any], Table, _ModNS]]], Callable[[str, bool], _class_resolver]])@rV   Ú
__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   r   Ú
sql.schemar    Úutil.typingr!   Úrelationshipsr"   r#   r$   r%   r}   râ   rþ   Úsetr(   r~   rD   rH   rP   r'   r0   r1   r„   r    Ú	_inspectsr´   r»   r½   rð   rý   rS   rQ   rC   ú<module>r     s¯  ðòõ #ã 	Ý Ý Ý Ý Ý Ý Ý Ý Ý !Ý Ý Ý Ý Ý Ý  Ý Ý Û å Ý Ý -Ý &Ý #Ý Ý Ý Ý Ý 'Ý +áÝ3Ý%Ý"áˆT˜Ô€à! # u¨TÐ3FÐ-FÑ'GÐ"GÑHÐ ñ '*£e€Ð#Ó +ð3Øð3Ø!ð3Ø8Hð3à	ó3ðlØðØ"ðØ9Iðà	óðBØ	ðà)ðð  ðð 
ó	÷@ñ ôB@Ð,ô B@ôJE&Ð%ô E&÷P
ñ 
÷4&ñ &ð@ "Ð €
× Ñ �[Ó !Ù1ô÷
Cñ Có÷y3ñ y3ðx %)€Ð!Ó (ô%rQ   