Ë
    r™ãj[s  ã                  óÞ  — U d Z ddlmZ ddlmZ 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# erId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%l0m1Z1 dd&l2m3Z3 dQd(„Z4	 	 	 	 dRd)„Z5n$ ejl                  d*«      Z4 ejl                  d+«      Z5ee
   Z7e8Z9ee9d,d-f   Z:ee:d.f   Z;ed,   Z<eed-e8f      Z= ej|                  e?«      Z@dSd/„ZAd0ZBd1eCd2<   d3ZDd4ZEd5eCd6<   d7ZFd8eCd9<    eGeBeDg«      ZH	  eGd:„ eEeFfD «       «      ZI	 eHeIz  ZJ	 ej–                   G d;„ d'e#«      «       ZL G d<„ d=eL«      ZM G d>„ d?eM«      ZN eN«       eL_O         G d@„ dAej                   e#e8«      ZQeID � ci c]  } |  eQ| «      “Œ c} eQ_R         G dB„ dCeL«      ZS G dD„ dEeL«      ZT G dF„ dGeM«      ZU G dH„ dIeU«      ZV G dJ„ dKee
e
f   «      ZW G dL„ dMeU«      ZXer	 	 	 	 dRdN„ZYdTdO„ZZy ejl                  d+«      ZY ejl                  dP«      ZZyc c} w )Uz>Path tracking utilities, representing mapper graph traversals.é    )Úannotations)Úreduce)ÚchainN)ÚAny)Úcast)ÚDict)ÚFinal)ÚIterator)ÚList)ÚLiteral)ÚMapping)ÚOptional)Úoverload)ÚSequence)ÚTuple)ÚTYPE_CHECKING)ÚUnioné   )Úbase)Úinsp_is_mapper_propertyé   )Úexc)Ú
inspection)Úutil)Úvisitors)ÚHasCacheKey)Ú	TypeGuard)Ú_InternalEntityType)ÚStrategizedProperty)ÚMapper)ÚRelationshipProperty)ÚAliasedInsp)Ú_CacheKeyTraversalType)ÚBindParameter)Úanon_map)Ú_LiteralStarÚPathRegistryc                 ó   — y ©N© ©Úpaths    úg/var/www/html/python-recuperauto-other/env/lib/python3.12/site-packages/sqlalchemy/orm/path_registry.pyÚis_rootr.   3   ó   � ó    c                 ó   — y r)   r*   r+   s    r-   Ú	is_entityr2   5   ó   € à-0r0   r.   r2   ú_InternalEntityType[Any]úStrategizedProperty[Any].c                ó,   — t         j                  | «      S r)   )r'   Údeserializer+   s    r-   Ú_unreduce_pathr8   U   s   € Ü×#Ñ# DÓ)Ð)r0   Ú*r&   Ú_WILDCARD_TOKENÚ_sa_defaultÚrelationshipzFinal[Literal['relationship']]Ú_RELATIONSHIP_TOKENÚcolumnzFinal[Literal['column']]Ú_COLUMN_TOKENc              #  óL   K  — | ]  }t         t        fD ]  }|› d |› �–— Œ Œ y­w)ú:N)r:   Ú_DEFAULT_TOKEN)Ú.0Úwildcard_keyÚsuffixs      r-   ú	<genexpr>rF   h   s=   è ø€ ò àÜ"¤NÐ3òð 	ð €n�A�f�XÔðØñùs   ‚"$c                  ó~  — e Zd ZU dZdZdZdZdZdZdZ	de
d<   de
d<   de
d<   d	e
d
<   de
d<   dej                  j                  fgZde
d<   d0d„Zd0d„Zed1d„«       Zd2d„Zd3d„Z	 	 	 	 	 	 	 	 d3d„Z	 d4	 	 	 	 	 	 	 d5d„Zd6d„Zd6d„Zed7d„«       Zed8d„«       Zed9d„«       Ze	 	 	 	 d:d„«       Ze	 	 	 	 d;d„«       Z	 	 	 	 d<d„Zed6d„«       Z	 	 d=d „Zd>d!„Zd?d"„Zd@d#„Ze dAd$„«       Z!e dBd%„«       Z"dCd&„Z#e dDd'„«       Z$ee dEd(„«       «       Z%ee dFd)„«       «       Z%e 	 	 	 	 dGd*„«       Z%e dHd+„«       Z&dId,„Z'dJd-„Z(dJd.„Z)dJd/„Z*y)Kr'   aÜ  Represent query load paths and registry functions.

    Basically represents structures like:

    (<User mapper>, "orders", <Order mapper>, "items", <Item mapper>)

    These structures are generated by things like
    query options (joinedload(), subqueryload(), etc.) and are
    used to compose keys stored in the query._attributes dictionary
    for various options.

    They are then re-composed at query compile/result row time as
    the query is formed and as rows are fetched, where they again
    serve to compose keys to look up options in the context.attributes
    dictionary, which is copied from query._attributes.

    The path structure has a limited amount of caching, where each
    "root" ultimately pulls from a fixed registry associated with
    the first mapper, that also contains elements for each of its
    property keys.  However paths longer than two elements, which
    are the exception rather than the rule, are generated on an
    as-needed basis.

    r*   FÚboolÚis_unnaturalÚ_PathRepresentationr,   Únatural_pathzOptional[PathRegistry]ÚparentÚRootRegistryÚrootr#   Ú_cache_key_traversalc                ó¢   — 	 |d uxr | j                   |j                  k(  S # t        $ r$ t        j                  dt        |«      z  «       Y yw xY w)Nú1Comparison of PathRegistry to %r is not supportedF©r,   Ú_path_for_compareÚAttributeErrorr   ÚwarnÚtype©ÚselfÚothers     r-   Ú__eq__zPathRegistry.__eq__­   sU   € ð	Ø Ð$ÒM¨¯©°e×6MÑ6MÑ)MÐMøÜò 	Ü�I‰IØCÜ˜“;ñ ôñ ð	úó   ‚! ¡*AÁAc                ó¢   — 	 |d u xs | j                   |j                  k7  S # t        $ r$ t        j                  dt        |«      z  «       Y yw xY w)NrQ   TrR   rW   s     r-   Ú__ne__zPathRegistry.__ne__·   sT   € ð	Ø˜D�=ÒH D§I¡I°×1HÑ1HÑ$HÐHøÜò 	Ü�I‰IØCÜ˜“;ñ ôñ ð	úr[   c                ó   — | j                   S r)   r+   ©rX   s    r-   rS   zPathRegistry._path_for_compareÁ   s   € à�y‰yÐr0   c                ó    — | j                   |   S r)   r+   )rX   Úindexs     r-   Úodd_elementzPathRegistry.odd_elementÅ   s   € Ø�y‰y˜ÑÐr0   c                óV   — t         j                  d|| |«       |||| j                  f<   y )Nzset '%s' on path '%s' to '%s')ÚlogÚdebugrK   ©rX   Ú
attributesÚkeyÚvalues       r-   ÚsetzPathRegistry.setÈ   s*   € Ü�	‰	Ð1°3¸¸eÔDØ/4ˆ
�C˜×*Ñ*Ð+Ò,r0   c                óp   — t         j                  d|| |«       |j                  || j                  f|«       y )Nz$setdefault '%s' on path '%s' to '%s')rd   re   Ú
setdefaultrK   rf   s       r-   rl   zPathRegistry.setdefaultÌ   s2   € ô 	�	‰	Ð8¸#¸tÀUÔKØ×Ñ˜s D×$5Ñ$5Ð6¸Õ>r0   Nc                ó4   — || j                   f}||v r||   S |S r)   )rK   rf   s       r-   ÚgetzPathRegistry.getÒ   s+   € ð �D×%Ñ%Ð&ˆØ�*ÑØ˜c‘?Ð"àˆLr0   c                ó,   — t        | j                  «      S r)   ©Úlenr,   r_   s    r-   Ú__len__zPathRegistry.__len__Û   s   € Ü�4—9‘9‹~Ðr0   c                ó   — t        | «      S r)   )Úidr_   s    r-   Ú__hash__zPathRegistry.__hash__Þ   s   € Ü�$‹xˆr0   c                 ó   — y r)   r*   ©rX   Úentitys     r-   Ú__getitem__zPathRegistry.__getitem__á   s   € ØDGr0   c                 ó   — y r)   r*   rw   s     r-   ry   zPathRegistry.__getitem__ä   s   € Ø<?r0   c                 ó   — y r)   r*   rw   s     r-   ry   zPathRegistry.__getitem__ç   s   € ØADr0   c                 ó   — y r)   r*   rw   s     r-   ry   zPathRegistry.__getitem__ê   s   € ð #&r0   c                 ó   — y r)   r*   rw   s     r-   ry   zPathRegistry.__getitem__ï   s   € ð r0   c                ó   — t        «       ‚r)   )ÚNotImplementedErrorrw   s     r-   ry   zPathRegistry.__getitem__ô   s   € ô  "Ó#Ð#r0   c                ó,   — t        | j                  «      S r)   rp   r_   s    r-   ÚlengthzPathRegistry.length  s   € ä�4—9‘9‹~Ðr0   c              #  ó´   K  — t        t        | j                  «      }t        t        |«      }t	        dt        |«      d«      D ]  }||   ||dz      f–— Œ y ­w)Nr   r   r   )r   Ú_OddPathRepresentationr,   Ú_EvenPathRepresentationÚrangerq   )rX   Úodd_pathÚ	even_pathÚis       r-   ÚpairszPathRegistry.pairs  sZ   è ø€ ô
 Ô.°·	±	Ó:ˆÜÔ0°(Ó;ˆ	Ü�qœ#˜h›-¨Ó+ò 	0ˆAØ˜1‘+˜y¨¨Q©Ñ/Ð/Ó/ñ	0ùs   ‚AAc                óÔ   — t        t        | j                  «      }t        dt	        |«      d«      D �cg c]  }||   ‘Œ	 c}D ]  }|j
                  j                  |«      sŒ y yc c}w )Nr   r   TF)r   rƒ   r,   r…   rq   ÚmapperÚisa)rX   r‹   Ú_m_pathrˆ   Úpath_mappers        r-   Úcontains_mapperzPathRegistry.contains_mapper  s`   € ÜÔ-¨t¯y©yÓ9ˆÜ05°a¼¸W»ÀqÓ0IÖJ¨1˜G A›JÒJò 	ˆKØ×!Ñ!×%Ñ% fÕ-Ùð	ð ùò	 Ks   ³A%c                ó"   — || j                   f|v S r)   r+   )rX   rg   rh   s      r-   ÚcontainszPathRegistry.contains  s   € Ø�T—Y‘YÐ :Ð-Ð-r0   c                ó0   — t         | j                  «       ffS r)   )r8   Ú	serializer_   s    r-   Ú
__reduce__zPathRegistry.__reduce__   s   € Ü §¡Ó 0Ð2Ð2Ð2r0   c                óZ  — t        t        |«      }t        t        |«      }t        t	        t        d„ t        dt        |«      d«      D �cg c]  }||   ‘Œ	 c}D «       «      t        d„ t        dt        |«      d«      D �cg c]  }||   ‘Œ	 c}D «       «      dz   «      «      S c c}w c c}w )Nc              3  óz   K  — | ]3  }|j                   s|j                  r|j                  n
t        |«      –— Œ5 y ­wr)   )Ú	is_mapperÚis_aliased_classÚclass_Ústr)rC   Úms     r-   rF   z/PathRegistry._serialize_path.<locals>.<genexpr>*  s3   è ø€ ò àð "#§¢°×0BÒ0B�A—H’HÌÈQËÓOñùs   ‚9;r   r   c              3  ó`   K  — | ]&  }t        |«      r|j                  n
t        |«      –— Œ( y ­wr)   )r   rh   rš   )rC   Úps     r-   rF   z/PathRegistry._serialize_path.<locals>.<genexpr>.  s,   è ø€ ò àô 5°QÔ7�A—E’E¼SÀ»VÓCñùs   ‚,.r   r)   )r   rƒ   r„   ÚlistÚzipÚtupler…   rq   )Úclsr,   r�   Ú_p_pathrˆ   s        r-   Ú_serialize_pathzPathRegistry._serialize_path#  s«   € äÔ-¨tÓ4ˆÜÔ.°Ó5ˆäÜÜñ ä27¸¼3¸w»<ÈÓ2KÖL¨Q˜g a›jÒLôó ô ñ ä27¸¼3¸w»<ÈÓ2KÖL¨Q˜g a›jÒLôó ð ñ	ó
ó
ð 	
ùò Mùò Ms   Á
B#Â B(c                ó    — dd„}dd„}t        t        |D ��cg c]  \  }} ||«       |||«      f‘Œ c}}Ž «      }|r
|d   €|dd }|S c c}}w )Nc                óz   — | t         j                  vrt        j                  | d¬«      S t         j                  |    S ©NT)Ú	configure)Ú	PathTokenÚ_internÚorm_baseÚ_inspect_mapped_class)Úmclss    r-   Ú_deserialize_mapper_tokenzAPathRegistry._deserialize_path.<locals>._deserialize_mapper_token8  s>   € ð
 œy×0Ñ0Ñ0ô ×.Ñ.¨t¸tÔDðô
 ×&Ñ& tÑ,ðr0   c                ó¦   — |€y |t         j                  v rt         j                  |   S t        j                  | d¬«      }|€J ‚|j                  |   S r¦   )r¨   r©   rª   r«   Úattrs)r¬   rh   Úmps      r-   Ú_deserialize_key_tokenz>PathRegistry._deserialize_path.<locals>._deserialize_key_tokenA  sS   € Øˆ{ØØœ	×)Ñ)Ñ)Ü ×(Ñ(¨Ñ-Ð-ä×3Ñ3°DÀDÔI�Ø�~Ð%�~Ø—x‘x ‘}Ð$r0   éÿÿÿÿr   )r¬   r   Úreturnr   )r¬   r   rh   r   r³   r   )r    r   )r¡   r,   r­   r±   r¬   rh   r�   s          r-   Ú_deserialize_pathzPathRegistry._deserialize_path6  st   € ó	ó	%ô Üð &*÷ñ
 "˜˜cñ 2°$Ó7Ù.¨t°SÓ9òóðó

ˆñ ��2‘�Ø�!�B�ˆAØˆùós   ˜A
c                ó<   — | j                   }| j                  |«      S r)   )r,   r£   )rX   r,   s     r-   r“   zPathRegistry.serializeZ  s   € Ø�y‰yˆØ×#Ñ# DÓ)Ð)r0   c                óN   — |€J ‚| j                  |«      }| j                  |«      S r)   )r´   Úcoerce)r¡   r,   r�   s      r-   r7   zPathRegistry.deserialize^  s,   € àÐÐÐØ×!Ñ! $Ó'ˆØ�z‰z˜!‹}Ðr0   c                 ó   — y r)   r*   ©r¡   r‹   s     r-   Ú
per_mapperzPathRegistry.per_mapperd  s   € àHKr0   c                 ó   — y r)   r*   r¹   s     r-   rº   zPathRegistry.per_mapperh  s   € àKNr0   c                ór   — |j                   rt        | j                  |«      S t        | j                  |«      S r)   )r—   Ú_CachingEntityRegistryrN   Ú_SlotsEntityRegistryr¹   s     r-   rº   zPathRegistry.per_mapperl  s/   € ð ×ÒÜ)¨#¯(©(°FÓ;Ð;ä'¨¯©°&Ó9Ð9r0   c                ó8   — dd„}t        ||| j                  «      S )Nc                ó   — | |   S r)   r*   ©ÚprevÚnext_s     r-   Ú_redz!PathRegistry.coerce.<locals>._redw  ó   € Ø˜‘;Ðr0   ©rÂ   r'   rÃ   Ú_PathElementTyper³   r'   )r   rN   )r¡   ÚrawrÄ   s      r-   r·   zPathRegistry.coerceu  s   € ó	ô �d˜C §¡Ó*Ð*r0   c                ó8   — dd„}t        ||j                  | «      S )Nc                ó   — | |   S r)   r*   rÁ   s     r-   rÄ   z"PathRegistry.__add__.<locals>._red~  rÅ   r0   rÆ   )r   r,   )rX   rY   rÄ   s      r-   Ú__add__zPathRegistry.__add__}  s   € ó	ô �d˜EŸJ™J¨Ó-Ð-r0   c                óN   — ddj                  d„ | j                  D «       «      › d�S )Nz	ORM Path[ú -> c              3  ó2   K  — | ]  }t        |«      –— Œ y ­wr)   ©rš   )rC   Úelems     r-   rF   z'PathRegistry.__str__.<locals>.<genexpr>„  s   è ø€ Ò&G°T¤s¨4§yÑ&Gùs   ‚ú])Újoinr,   r_   s    r-   Ú__str__zPathRegistry.__str__ƒ  s%   € Ø˜6Ÿ;™;Ñ&G¸T¿Y¹YÔ&GÓGÐHÈÐJÐJr0   c                óN   — | j                   j                  › d| j                  ›d�S )Nú(ú))Ú	__class__Ú__name__r,   r_   s    r-   Ú__repr__zPathRegistry.__repr__†  s$   € Ø—.‘.×)Ñ)Ð*¨!¨D¯I©I¨=¸Ð:Ð:r0   c                óR  — | j                   }g }t        |«      }t        d|dz
  d«      D ]¹  }||   }||dz      }t        |dt	        |«      «      }||dz
  k  rct        d||dz      «      j                  rG|j                  t        j                  |«      › d|› dt        j                  ||dz      «      › d�«       Œ‘|j                  t        j                  |«      › d|› �«       Œ» |rd	j                  |«      S | j                   r"t        j                  | j                   d   «      S d
S )zqReturn a user-facing string representation of this path,
        e.g. ``"User.orders -> Order.items"``.

        r   r   r   rh   r4   ú.z	.of_type(rÖ   rÍ   Ú )r,   rq   r…   Úgetattrrš   r   r˜   Úappendrª   Ú
entity_strrÒ   )rX   rÈ   ÚpartsÚlrawrˆ   rx   ÚpropÚprop_keys           r-   Úpath_stringzPathRegistry.path_string‰  sE  € ð �i‰iˆØˆÜ�3‹xˆÜ�q˜$ ™( AÓ&ò 	JˆAØ˜‘VˆFØ�q˜1‘u‘:ˆDÜ˜t U¬C°«IÓ6ˆHð �D˜1‘H’ÜØ.°°A¸±E±
óç"Ñ"ð#ð —‘Ü×*Ñ*¨6Ó2Ð3°1°X°Jð ?Ü'×2Ñ2°3°q¸1±u±:Ó>Ð?¸qðBõð
 —‘¤× 3Ñ 3°FÓ ;Ð<¸A¸h¸ZÐHÕIð!	Jñ( ð �K‰K˜Óð	
ð 7;·i²i”×$Ñ$ T§Y¡Y¨q¡\Ó2ð	
ð FHð	
r0   )rY   r   r³   rH   ©r³   zOptional[_PathRepresentation])ra   Úintr³   r4   )rg   úDict[Any, Any]rh   r   ri   r   r³   ÚNoner)   )rg   rç   rh   r   ri   zOptional[Any]r³   r   )r³   ræ   )rx   Ú_StrPathTokenr³   Ú_TokenRegistry)rx   ræ   r³   rÇ   )rx   Úslicer³   rJ   )rx   r4   r³   Ú_AbstractEntityRegistry)rx   r5   r³   Ú_PropRegistry)rx   zTUnion[_StrPathToken, int, slice, _InternalEntityType[Any], StrategizedProperty[Any]]r³   zdUnion[_TokenRegistry, _PathElementType, _PathRepresentation, _PropRegistry, _AbstractEntityRegistry])r³   zOIterator[Tuple[_InternalEntityType[Any], Union[str, StrategizedProperty[Any]]]])r‹   úMapper[Any]r³   rH   )rg   rç   rh   r   r³   rH   )r³   r   )r,   rJ   r³   Ú_SerializedPath)r,   rï   r³   rJ   )r³   rï   ©r,   rï   r³   r'   )r‹   rî   r³   r½   )r‹   úAliasedInsp[Any]r³   r¾   )r‹   r4   r³   rì   )rÈ   rJ   r³   r'   )rY   r'   r³   r'   )r³   rš   )+rØ   Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__Úis_tokenr.   Ú
has_entityÚis_propertyr2   Ú__annotations__r   ÚExtendedInternalTraversalÚdp_has_cache_key_listrO   rZ   r]   ÚpropertyrS   rb   rj   rl   rn   rr   ru   r   ry   r�   r‰   r�   r‘   r”   Úclassmethodr£   r´   r“   r7   rº   r·   rË   rÓ   rÙ   rä   r*   r0   r-   r'   r'      sf  … ñð2 €Ià€HØ€GØ€JØ€KØ€IàÓà
ÓØ%Ó%Ø"Ó"Ø
Óð 
�×3Ñ3×IÑIÐJð4ÐÐ0ó óóð òó ðó ó5ð?Ø(ð?Ø/2ð?Ø;>ð?à	ó?ð LPðØ(ðØ/2ðØ;Hðà	óóóð ÚGó ØGàÚ?ó Ø?àÚDó ØDàð&Ø.ð&à	 ò&ó ð&ð ðØ.ðà	òó ðð$ð
ð$ð
ó$ð& òó ðð0ð
ó0óó.ó3ð ò
ó ð
ð$ ò!ó ð!óF*ð òó ðð
 ØÚKó ó àKàØÚNó ó àNàð:Ø-ð:à	 ò:ó ð:ð ò+ó ð+ó.óKó;ô
r0   c                  ó.   — e Zd ZU dZded<   ded<   dd„Zy)Ú_CreatesTokenr*   rH   r˜   r.   c                óÊ   — |t         j                  vrt        j                  d|› �«      ‚|j	                  dt
        › �«      rt        | |«      S t        | j                  |«      S )Nzinvalid token: rA   )r¨   r©   r   ÚArgumentErrorÚendswithr:   rê   rN   )rX   Útokens     r-   r  z_CreatesToken.token±  sZ   € Øœ	×)Ñ)Ñ)Ü×#Ñ# o°e°WÐ$=Ó>Ð>Ø�^‰^˜a¤Ð0Ð1Ô2Ü! $¨Ó.Ð.ä! $§)¡)¨UÓ3Ð3r0   N)r  ré   r³   rê   )rØ   rò   ró   rõ   rù   r  r*   r0   r-   rÿ   rÿ   «  s   … Ø€IàÓØƒMô4r0   rÿ   c                  óR   — e Zd ZdZdZdZdxZZdZdZ	dZ
dZ	 	 	 	 dd„Zd	d„ZeseZyy)
rM   zXRoot registry, defers to mappers so that
    paths are maintained per-root-mapper.

    r*   TFc                óà   — |t         j                  v r5t        rt        |t        «      sJ ‚t        | t         j                  |   «      S 	 |j                  S # t        $ r t        d|› �«      ‚w xY w)Nz/invalid argument for RootRegistry.__getitem__: )	r¨   r©   r   Ú
isinstanceré   rê   Ú_path_registryrT   Ú
IndexErrorrw   s     r-   Ú_getitemzRootRegistry._getitemÊ  st   € ð ”Y×&Ñ&Ñ&ÝÜ! &¬-Ô8Ð8Ð8Ü! $¬	×(9Ñ(9¸&Ñ(AÓBÐBðØ×,Ñ,Ð,øÜ!ò Ü ØEÀfÀXÐNóð ðús   Á	A ÁA-c                ó   — | S r)   r*   r_   s    r-   Ú_truncate_recursivez RootRegistry._truncate_recursiveÙ  s   € Øˆr0   N)rx   r   r³   z.Union[_TokenRegistry, _AbstractEntityRegistry])r³   rM   )rØ   rò   ró   rô   rõ   Úinherit_cacher,   rK   r÷   r˜   r.   rI   r	  r  r   ry   r*   r0   r-   rM   rM   º  s[   „ ñð
 €Ià€MàÐ€Dˆ<Ø€JØÐØ€GØ€LðØðà	7óóñ Ø‰ð r0   rM   c                  óD   — e Zd ZU dZded<   	 	 	 	 	 	 	 dd„Zedd„«       Zy)	r¨   zcacheable string tokenzMapping[str, PathToken]r©   c                ó   — t        | «      fS r)   rÏ   )rX   r%   Ú
bindparamss      r-   Ú_gen_cache_keyzPathToken._gen_cache_keyò  s   € ô �D“	ˆ|Ðr0   c                 ó   — y r)   r*   r_   s    r-   rS   zPathToken._path_for_compare÷  s   € àr0   N)r%   r%   r  zList[BindParameter[Any]]r³   zTuple[Any, ...]rå   )rØ   rò   ró   rô   rù   r  rü   rS   r*   r0   r-   r¨   r¨   ã  sA   … Ù à$Ó$ð	ðØ ðØ.Fðà	óð
 òó ñr0   r¨   c                  ó`   — e Zd ZU dZdZded<   ded<   dd„ZdZdZdd	„Z		 	 dd
„Z
dd„ZeseZyy)rê   )r  rL   r,   rK   Tré   r  rÿ   rL   c                óš   — t         j                  |   }|| _        || _        |j                  |fz   | _        |j
                  |fz   | _        y r)   )r¨   r©   r  rL   r,   rK   )rX   rL   r  s      r-   Ú__init__z_TokenRegistry.__init__  sG   € Ü×!Ñ! %Ñ(ˆàˆŒ
ØˆŒØ—K‘K 5 (Ñ*ˆŒ	Ø"×/Ñ/°5°(Ñ:ˆÕr0   Fc              #  ó  K  — | j                   }t        |«      r| –— y t        rt        |t        «      sJ ‚|j
                  sE|j                  j                  «       D ]'  }t        |j                   |   | j                  «      –— Œ) y |j
                  rot        d|j                  «      j                  rO| –— t        d|j                  «      j                  D ]'  }t        |j                   |   | j                  «      –— Œ) y | –— y ­w©Nrñ   )rL   r.   r   r  rì   r˜   r‹   Úiterate_to_rootrê   r  r   rx   Ú_is_with_polymorphicÚ_with_polymorphic_entities©rX   rL   Úmp_entÚents       r-   Úgenerate_for_superclassesz(_TokenRegistry.generate_for_superclasses  sì   è ø€ à—‘ˆÜ�6Œ?ØŠJØåÜ˜fÔ&=Ô>Ð>Ð>Ø×&Ò&Ø Ÿ-™-×7Ñ7Ó9ò H�Ü$ V§]¡]°6Ñ%:¸D¿J¹JÓGÓGñHð ×#Ò#ÜØ"Ø—‘ó÷ #Ñ"ð#ð
 ŠJÜØ" F§M¡Móç(Ñ(òE�ô % V§]¡]°3Ñ%7¸¿¹ÓDÓDñEð
 ‹Jùs   ‚DDc              #  ó^  K  — | j                   }t        |«      r| j                  –— y t        rt	        |t
        «      sJ ‚|j                  j                  «       D ]1  }t        |j                   |   | j                  «      j                  –— Œ3 |j                  rƒt        d|j                  «      j                  rc| j                  –— t        d|j                  «      j                  D ]1  }t        |j                   |   | j                  «      j                  –— Œ3 y | j                  –— y ­wr  )rL   r.   rK   r   r  rì   r‹   r  rê   r  r˜   r   rx   r  r  r  s       r-   Ú"_generate_natural_for_superclassesz1_TokenRegistry._generate_natural_for_superclasses.  s  è ø€ ð —‘ˆÜ�6Œ?Ø×#Ñ#Ò#ØåÜ˜fÔ&=Ô>Ð>Ð>Ø—m‘m×3Ñ3Ó5ò 	ˆFÜ Ø—‘˜fÑ% t§z¡zóç‰lóð	ð
 ×#Ò#ÜØ"Ø—‘ó÷ #Ñ"ð#ð
 ×#Ñ#Ò#ÜØ" F§M¡Móç(Ñ(ò�ô # 6§=¡=°Ñ#5°t·z±zÓB×OÑOóñð ×#Ñ#Ó#ùs   ‚D+D-c                ó^   — 	 | j                   |   S # t        $ r}t        |› «      |‚d }~ww xY wr)   )r,   Ú	TypeErrorr  )rX   rx   Úerrs      r-   r	  z_TokenRegistry._getitemM  s5   € ð	3Ø—9‘9˜VÑ$Ð$øÜò 	3Ü ˜xÓ)¨sÐ2ûð	3ús   ‚ ‘	,š'§,N)rL   rÿ   r  ré   )r³   zIterator[PathRegistry])r³   zIterator[_PathRepresentation]©rx   r   r³   r   )rØ   rò   ró   rõ   r  rù   r  r÷   rö   r  r  r	  r   ry   r*   r0   r-   rê   rê   ÿ  sO   … Ø;€Ià€MàÓØÓó;ð €Jà€Hóð6$à	&ó$ó>3ñ Ø‰ð r0   rê   c                  ó†   — e Zd ZU dZdZdZded<   ded<   ded<   d	ed
<   	 	 	 	 dd„Zdd„Ze	dd„«       Z
	 	 	 	 dd„ZeseZyy)rí   )râ   rL   r,   rK   r÷   rx   r‹   Ú_wildcard_path_loader_keyÚ_default_path_loader_keyÚ_loader_keyrI   Tr5   râ   zOptional[Mapper[Any]]r‹   z"Optional[_InternalEntityType[Any]]rx   rì   rL   c                óè  — t        d|d   «      }|}|j                  j                  xs t        |j                  j
                  «      | _        |j                  r|j                  r|j                  |j                     x}}nû|j                  r�|j                  ru|j                  |j                  v r]|d   j                  |j                  «      }|j                  |   }|j                  r!|j                  |j                     }d| _        nq|}nn|j                  rb|j                  rV|j                  |j                  ur>|j                  j                  |j                  «      r|j                  |j                     }|| _        || _        |j                  |fz   | _        |j                  |fz   | _        |j                  | _        |j                   r;t"        rt%        |t&        «      sJ ‚|j(                  | _        |j                  | _        nd | _        d | _        d|j                  | j                  j*                  z   f| _        | j                  j.                  | _        d| j                  f| _        y )Nr4   r²   TÚloader)r   rL   rI   rH   r‹   Úinheritsr˜   Ú_use_mapper_pathÚwith_polymorphic_mappersÚ_entity_for_mapperrŒ   râ   r,   rK   Ú_links_to_entityr÷   Ú_is_relationshipr   r  r!   rx   Ú_wildcard_tokenr%  r&  r'  )rX   rL   râ   ÚinspÚnatural_parentÚsubclass_entitys         r-   r  z_PropRegistry.__init__m  s  € ô Ð.°°r±
Ó;ˆØ28ˆð #ŸM™M×6Ñ6ò 
¼$Ø�M‰M×"Ñ"ó;
ˆÔð ×$Ò$¨×(=Ò(=Ø&,§m¡m°D·K±KÑ&@Ð@ˆF‘^à×!Ò!Ø×-Ò-Ø—‘˜t×<Ñ<Ñ<à8>¸r¹
×8UÑ8UÐVZ×VaÑVaÓ8bˆOØ—]‘] ?Ñ3ˆFð@ �}Š}Ø!'§¡¨×/EÑ/EÑ!F�Ø$(�Õ!à!'‘à×!Ò!Ø×%Ò%Ø—‘Ø—;‘;ñà—‘—‘ §¡Ô,à#Ÿ]™]¨4¯;©;Ñ7ˆNàˆŒ	ØˆŒØ—K‘K 4 'Ñ)ˆŒ	Ø*×7Ñ7¸4¸'ÑAˆÔà×/Ñ/ˆŒØ× Ò ÝÜ! $Ô(<Ô=Ð=Ð=ØŸ+™+ˆDŒKØŸ+™+ˆD�KàˆDŒKØˆDŒKð Ø×Ñ $§)¡)×";Ñ";Ñ;ð*
ˆÔ&ð )-¯	©	×(JÑ(JˆÔ%Ø$ d×&7Ñ&7Ð8ˆÕr0   c                óÆ   — d }t        t        | j                  d d «      «      D ]  \  }}|| j                  u sŒ|}Œ |€| S | j	                  | j                  d|dz     «      S )Nr²   r   r   )Ú	enumerateÚreversedr,   râ   r·   )rX   Úearliestrˆ   r  s       r-   r  z!_PropRegistry._truncate_recursiveÇ  sl   € ØˆÜ!¤(¨4¯9©9°S°b¨>Ó":Ó;ò 	‰HˆAˆuØ˜Ÿ	™	Ò!Ø‘ð	ð ÐØˆKà—;‘;˜tŸy™y¨¨x¸!©|¨_Ð=Ó>Ð>r0   c                ó<   — | j                   €J ‚| | j                      S r)   )rx   r_   s    r-   Úentity_pathz_PropRegistry.entity_pathÒ  s!   € à�{‰{Ð&Ð&Ð&Ø�D—K‘KÑ Ð r0   c                ód   — t        |t        t        f«      r| j                  |   S t	        | |«      S r)   )r  ræ   rë   r,   r¾   rw   s     r-   r	  z_PropRegistry._getitem×  s.   € ô �fœs¤E˜lÔ+Ø—9‘9˜VÑ$Ð$ä'¨¨fÓ5Ð5r0   N)rL   rì   râ   r5   )r³   rí   ©r³   rì   )rx   z+Union[int, slice, _InternalEntityType[Any]]r³   zEUnion[_AbstractEntityRegistry, _PathElementType, _PathRepresentation])rØ   rò   ró   rõ   r  rø   rù   r  r  rü   r9  r	  r   ry   r*   r0   r-   rí   rí   W  sƒ   … ð€Ið €MØ€Kà
"Ó"Ø!Ó!Ø.Ó.Ø#Ó#ðX9Ø-ðX9Ø5MóX9ót	?ð ò!ó ð!ð6ØAð6à	Nó6ñ Ø‰ð r0   rí   c                  ó²   — e Zd ZU dZdZdZded<   ded<   ded<   ded	<   	 	 	 	 dd
„Zdd„Ze	dd„«       Z
e	dd„«       Ze	dd„«       Zdd„Z	 	 	 	 dd„ZeseZyy)rì   )rh   rL   r˜   r,   rx   rK   Tú"Union[RootRegistry, _PropRegistry]rL   r4   rh   rx   rH   r˜   c                ó  — || _         || _        |j                  | _        || _        |j                  |fz   | _        |j                  r±| j                  s|j
                  r™|j                  d   }|j                  j                  |j                  «      s%|j                  j                  |j                  «      r |j                  |j                  fz   | _        y |j                  |j                  fz   | _        y | j                  | _        y )Nr²   )	rh   rL   r˜   rx   r,   rI   rK   r‹   rŒ   )rX   rL   rx   Úparent_natural_entitys       r-   r  z _AbstractEntityRegistry.__init__õ  sæ   € ð
 ˆŒØˆŒØ &× 7Ñ 7ˆÔØˆŒØ—K‘K 6 )Ñ+ˆŒ	ð$ �;Š;˜D×1Ò1°V×5HÒ5Hð %+×$7Ñ$7¸Ñ$;Ð!à�}‰}× Ñ Ø%×,Ñ,ôà&×-Ñ-×1Ñ1Ø—‘ôð %+×$7Ñ$7¸6¿=¹=Ð:JÑ$J�Õ!à$*×$7Ñ$7Ø)×0Ñ0ð;ñ %�Õ!ð !%§	¡	ˆDÕr0   c                óP   — | j                   j                  «       | j                     S r)   )rL   r  rx   r_   s    r-   r  z+_AbstractEntityRegistry._truncate_recursive2  s   € Ø�{‰{×.Ñ.Ó0°·±Ñ=Ð=r0   c                ó$   — | j                  d«      S )Nr   )rb   r_   s    r-   Úroot_entityz#_AbstractEntityRegistry.root_entity5  s   € à×Ñ Ó"Ð"r0   c                ó   — | S r)   r*   r_   s    r-   r9  z#_AbstractEntityRegistry.entity_path9  s   € àˆr0   c                ó.   — | j                   j                  S r)   )rx   r‹   r_   s    r-   r‹   z_AbstractEntityRegistry.mapper=  s   € à�{‰{×!Ñ!Ð!r0   c                 ó   — y)NTr*   r_   s    r-   Ú__bool__z _AbstractEntityRegistry.__bool__A  s   € Ør0   c                óÂ   — t        |t        t        f«      r| j                  |   S |t        j
                  v rt        | t        j
                  |   «      S t        | |«      S r)   )r  ræ   rë   r,   r¨   r©   rê   rí   rw   s     r-   r	  z _AbstractEntityRegistry._getitemD  sT   € ô �fœs¤E˜lÔ+Ø—9‘9˜VÑ$Ð$Ø”y×(Ñ(Ñ(Ü! $¬	×(9Ñ(9¸&Ñ(AÓBÐBä   vÓ.Ð.r0   N©rL   r=  rx   r4   r;  )r³   r4   )r³   r'   )r³   rî   )r³   rH   )rx   r   r³   z:Union[_PathElementType, _PathRepresentation, PathRegistry])rØ   rò   ró   rõ   r÷   r2   rù   r  r  rü   rB  r9  r‹   rF  r	  r   ry   r*   r0   r-   rì   rì   ã  s¯   … ð€Ið €JØ€Ià.Ó.Ø	!Ó!Ø$Ó$ØÓð;*à2ð;*ð )ó;*óz>ð ò#ó ð#ð òó ðð ò"ó ð"óð/Øð/à	Có/ñ Ø‰ð r0   rì   c                  ó   — e Zd ZdZy)r¾   TN)rØ   rò   ró   r  r*   r0   r-   r¾   r¾   R  s	   „ ð �Mr0   r¾   c                  ó   — e Zd Zdd„Zdd„Zy)Ú_ERDictc                ó   — || _         y r)   )Úregistry)rX   rM  s     r-   r  z_ERDict.__init__Y  s	   € Ø ˆ�r0   c                ó<   — t        | j                  |«      x| |<   }|S r)   )rí   rM  )rX   rh   Úitems      r-   Ú__missing__z_ERDict.__missing__\  s    € Ü(¨¯©¸Ó<Ð<ˆˆS‰	�Dàˆr0   N)rM  r½   )rh   r   r³   rí   )rØ   rò   ró   r  rP  r*   r0   r-   rK  rK  X  s   „ ó!ôr0   rK  c                  óP   ‡ — e Zd ZdZdZ	 	 	 	 dˆ fd„Zdd„Zdd„ZeseZ	ˆ xZ
S ˆ xZ
S )	r½   )Ú_cacheTc                óF   •— t         ‰| �  ||«       t        | «      | _        y r)   )Úsuperr  rK  rR  )rX   rL   rx   r×   s      €r-   r  z_CachingEntityRegistry.__init__j  s   ø€ ô
 	‰Ñ˜ Ô(Ü˜d“mˆ�r0   c                ó:   — | j                   j                  ||«      S r)   )rR  Úpop)rX   rh   Údefaults      r-   rV  z_CachingEntityRegistry.popr  s   € Ø�{‰{�‰˜s GÓ,Ð,r0   c                ó¢   — t        |t        t        f«      r| j                  |   S t        |t        «      rt        | |«      S | j                  |   S r)   )r  ræ   rë   r,   r¨   rê   rR  rw   s     r-   r	  z_CachingEntityRegistry._getitemu  sE   € Ü�fœs¤E˜lÔ+Ø—9‘9˜VÑ$Ð$Ü˜¤	Ô*Ü! $¨Ó/Ð/à—;‘;˜vÑ&Ð&r0   rH  )rh   r   rW  r   r³   r   r#  )rØ   rò   ró   rõ   r  r  rV  r	  r   ry   Ú__classcell__)r×   s   @r-   r½   r½   b  s?   ø„ ð €Ià€Mð$à2ð$ð )õ$ó-ó'ñ ØŒó r0   r½   c                 ó   — y r)   r*   r+   s    r-   Úpath_is_entityr[  ƒ  r3   r0   c                 ó   — y r)   r*   r+   s    r-   Úpath_is_propertyr]  ‡  r/   r0   rø   )r,   r'   r³   zTypeGuard[RootRegistry])r,   r'   r³   z"TypeGuard[_AbstractEntityRegistry]rð   )r,   r'   r³   zTypeGuard[_PropRegistry])[rô   Ú
__future__r   Ú	functoolsr   Ú	itertoolsr   ÚloggingÚoperatorÚtypingr   r   r   r	   r
   r   r   r   r   r   r   r   r   r   rÜ   r   rª   Ú_typingr   r   r   r   Úsqlr   Úsql.cache_keyr   r   r   Ú
interfacesr   r‹   r    Úrelationshipsr!   r"   r#   Úsql.elementsr$   Úsql.visitorsr%   Úutil.typingr&   r.   r2   Ú
attrgetterrï   rš   ré   rÇ   rJ   rƒ   r„   Ú	getLoggerrØ   rd   r8   r:   rù   rB   r=   r?   Ú	frozensetÚ_UNPREFIXED_TOKENSÚ_PATH_TOKENSÚ_ACCEPTED_TOKENSÚ_self_inspectsr'   rÿ   rM   rN   ÚInspectionAttrr¨   r©   rê   rí   rì   r¾   rK  r½   r[  r]  )r  s   0r-   ú<module>rt     sÊ  ðò Eå "å Ý Û Û Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý  Ý å Ý ,Ý Ý Ý Ý Ý 'áÝ å,Ý/ÝÝ3Ý!Ý6Ý,Ý'Ý*ãCð1Øð1à	+ô1ð
 "ˆh×!Ñ! )Ó,€GØ#�×#Ñ# KÓ0€Ið �s‘)€Ø€ØØÐ-Ð/IÐIñÐ ð Ð,¨cÐ1Ñ2Ð ð "Ð"<Ñ=Ð Ø" 5Ð)CÀSÐ)HÑ#IÑJÐ ð €g×Ñ˜Ó!€ó*ð !$€�Ó #Ø€à6DÐ Ð3Ó DØ*2€Ð'Ó 2á °Ð@ÓAÐ ðñ ñ à,¨mÐ<ôó €ð
ð &¨Ñ4Ð ðð ×Ñôh
�;ó h
ó ðh
ôV	4�Lô 4ô#�=ô #ñL !“N€Ô ô�×'Ñ'¨°cô ð2 ;GÖG°�U™I eÓ,Ñ,ÒG€	Ô ôU�\ô UôpI�Lô IôXl˜mô lô^Ð2ô ôˆd�3˜�8‰nô ôÐ4ô ñ> ð1Øð1à	+ó1ô Nð )�X×(Ñ(¨Ó5€NØ*�x×*Ñ*¨=Ó9Ñùò_ Hs   ÇI*