ó
    øÞ j1n  ã                  óÌ  • % S r SSKJr  SSKJr  SSKJr  SSK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J r   SSK!J"r"  SSK!J#r#  \(       aG  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/J0r0  SS$K!J1r1  SS%K!J2r2  SPS' jr3SQS( jr4O$\Rj                  " S)5      r3\Rj                  " S*5      r4\\
   r6\7r8\\8S+S,4   r9\\9S-4   r:\S+   r;\\S,\74      r<\Rz                  " \>5      r?SRS. jr@S/rAS0\BS1'   S2rCS3rDS4\BS5'   S6rES7\BS8'   \F" \A\C/5      rG \F" S9 \D\E4 5       5      rH \G\H-  rI  " S: S&\ 5      rJ " S; S<\J5      rK " S= S>\K5      rL\L" 5       \JlM         " S? S@\Rœ                  \ \75      rO\H V s0 sH  o \O" U 5      _M     sn \OlP         " SA SB\J5      rQ " SC SD\J5      rR " SE SF\K5      rS " SG SH\S5      rT " SI SJ\\
\
4   5      rU " SK SL\S5      rV\(       a      SQSM jrWSSSN jrXg\Rj                  " S*5      rW\Rj                  " SO5      rXgs  sn f )Tz>Path tracking utilities, representing mapper graph traversals.é    )Úannotations)Úreduce)ÚchainN)ÚAny)Úcast)ÚDict)ÚIterator)ÚList)ÚMapping)ÚOptional)Úoverload)ÚSequence)ÚTuple)ÚTYPE_CHECKING)ÚUnioné   )Úbase)Úinsp_is_mapper_propertyé   )Úexc)Úutil)Úvisitors)ÚHasCacheKey)ÚFinal)ÚLiteral)Ú_InternalEntityType)ÚStrategizedProperty)ÚMapper)ÚRelationshipProperty)ÚAliasedInsp)Ú_CacheKeyTraversalType)ÚBindParameter)Úanon_map)Ú_LiteralStar)Ú	TypeGuardÚPathRegistryc                ó   • g ©N© ©Úpaths    ÚV/var/www/html/gaurav/venv/lib/python3.13/site-packages/sqlalchemy/orm/path_registry.pyÚis_rootr-   1   s   € Àó    c                ó   • g r(   r)   r*   s    r,   Ú	is_entityr0   3   s   € ÈCr.   r-   r0   ú_InternalEntityType[Any]úStrategizedProperty[Any].c                ó,   • [         R                  U 5      $ r(   )r&   Údeserializer*   s    r,   Ú_unreduce_pathr5   Q   s   € Ü×#Ñ# DÓ)Ð)r.   Ú*r$   Ú_WILDCARD_TOKENÚ_sa_defaultÚrelationshipzFinal[Literal['relationship']]Ú_RELATIONSHIP_TOKENÚcolumnzFinal[Literal['column']]Ú_COLUMN_TOKENc              #  óT   #   • U H  n[         [        4 H  nU S U 3v •  M     M!     g7f)Ú:N)r7   Ú_DEFAULT_TOKEN)Ú.0Úwildcard_keyÚsuffixs      r,   Ú	<genexpr>rC   d   s4   é € ð á<ˆÜ"¤NÓ3ˆð €n�A�f�XÕá3ñ Ú<ùs   ‚&(c                  ó¾  • \ rS rSr% SrSrSrSrSrSr	Sr
S\S'   S\S'   S\S	'   S
\S'   S\S'   S\R                  R                  4/rS\S'   S0S jrS0S jr\S1S j5       rS2S jrS3S jr        S3S jr S4       S5S jjrS6S jrS6S jr\S7S j5       r\S8S j5       r\S9S j5       r\    S:S j5       r\    S;S j5       r    S<S jr\S6S  j5       r  S=S! jrS>S" jrS?S# jrS@S$ jr \!SAS% j5       r"\!SBS& j5       r#SCS' jr$\!SDS( j5       r%\\!SES) j5       5       r&\\!SFS* j5       5       r&\!    SGS+ j5       r&\!SHS, j5       r'SIS- jr(SJS. jr)SJS/ jr*Sr+g)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                ó°   •  US L=(       a    U R                   UR                  :H  $ ! [         a%    [        R                  " S[        U5      -  5         gf = f)Nú1Comparison of PathRegistry to %r is not supportedF©r+   Ú_path_for_compareÚAttributeErrorr   ÚwarnÚtype©ÚselfÚothers     r,   Ú__eq__ÚPathRegistry.__eq__¨   sU   € ð	Ø Ð$×M¨¯©°e×6MÑ6MÑ)MÐMøÜó 	Ü�IŠIØCÜ˜“;ñ ôñ ð	úó   ‚#& ¦,AÁAc                ó°   •  US L =(       d    U R                   UR                  :g  $ ! [         a%    [        R                  " S[        U5      -  5         gf = f)NrO   TrP   rU   s     r,   Ú__ne__ÚPathRegistry.__ne__²   sT   € ð	Ø˜D�=×H D§I¡I°×1HÑ1HÑ$HÐHøÜó 	Ü�IŠIØCÜ˜“;ñ ôñ ð	úrZ   c                ó   • U R                   $ r(   r*   ©rV   s    r,   rQ   ÚPathRegistry._path_for_compare¼   s   € à�y‰yÐr.   c                ó    • U R                   U   $ r(   r*   )rV   Úindexs     r,   Úodd_elementÚPathRegistry.odd_elementÀ   s   € Ø�y‰y˜ÑÐr.   c                óP   • [         R                  SX U5        X1X R                  4'   g )Nzset '%s' on path '%s' to '%s')ÚlogÚdebugrI   ©rV   Ú
attributesÚkeyÚvalues       r,   ÚsetÚPathRegistry.setÃ   s$   € Ü�	‰	Ð1°3¸eÔDØ/4�C×*Ñ*Ð+Ò,r.   c                ól   • [         R                  SX U5        UR                  X R                  4U5        g )Nz$setdefault '%s' on path '%s' to '%s')rf   rg   Ú
setdefaultrI   rh   s       r,   ro   ÚPathRegistry.setdefaultÇ   s.   € ô 	�	‰	Ð8¸#ÀUÔKØ×Ñ˜s×$5Ñ$5Ð6¸Õ>r.   Nc                ó2   • X R                   4nX!;   a  X   $ U$ r(   )rI   rh   s       r,   ÚgetÚPathRegistry.getÍ   s%   € ð ×%Ñ%Ð&ˆØÓØ‘?Ð"àˆLr.   c                ó,   • [        U R                  5      $ r(   ©Úlenr+   r_   s    r,   Ú__len__ÚPathRegistry.__len__Ö   s   € Ü�4—9‘9‹~Ðr.   c                ó   • [        U 5      $ r(   )Úidr_   s    r,   Ú__hash__ÚPathRegistry.__hash__Ù   s   € Ü�$‹xˆr.   c                ó   • g r(   r)   ©rV   Úentitys     r,   Ú__getitem__ÚPathRegistry.__getitem__Ü   s   € ØCFr.   c                ó   • g r(   r)   r~   s     r,   r€   r�   ß   s   € Ø<?r.   c                ó   • g r(   r)   r~   s     r,   r€   r�   â   s   € ØADr.   c                ó   • g r(   r)   r~   s     r,   r€   r�   å   s   € ð "%r.   c                ó   • g r(   r)   r~   s     r,   r€   r�   ê   s   € ð r.   c                ó   • [        5       er(   )ÚNotImplementedErrorr~   s     r,   r€   r�   ï   s   € ô  "Ó#Ð#r.   c                ó,   • [        U R                  5      $ r(   ru   r_   s    r,   ÚlengthÚPathRegistry.length  s   € ä�4—9‘9‹~Ðr.   c              #  ó´   #   • [        [        U R                  5      n[        [        U5      n[	        S[        U5      S5       H  nX   X#S-      4v •  M     g 7f)Nr   r   r   )r   Ú_OddPathRepresentationr+   Ú_EvenPathRepresentationÚrangerv   )rV   Úodd_pathÚ	even_pathÚis       r,   ÚpairsÚPathRegistry.pairs  sP   é € ô
 Ô.°·	±	Ó:ˆÜÔ0°(Ó;ˆ	Ü�qœ#˜h›-¨Ö+ˆAØ‘+˜y¨Q©Ñ/Ð/Ô/ò ,ùs   ‚AAc                óä   • [        [        U R                  5      n[        S[	        U5      S5       Vs/ sH  o2U   PM	     sn H%  nUR
                  R                  U5      (       d  M%    g   gs  snf )Nr   r   TF)r   rŒ   r+   rŽ   rv   ÚmapperÚisa)rV   r•   Ú_m_pathr‘   Úpath_mappers        r,   Úcontains_mapperÚPathRegistry.contains_mapper  sc   € ÜÔ-¨t¯y©yÓ9ˆÜ05°a¼¸W»ÀqÔ0IÓJÑ0I¨1 AœJÑ0IÔJˆKØ×!Ñ!×%Ñ% f×-Ó-Ùñ Kð ùò	 Ks   ³A-c                ó"   • X R                   4U;   $ r(   r*   )rV   ri   rj   s      r,   ÚcontainsÚPathRegistry.contains  s   € Ø—Y‘YÐ :Ñ-Ð-r.   c                ó0   • [         U R                  5       44$ r(   )r5   Ú	serializer_   s    r,   Ú
__reduce__ÚPathRegistry.__reduce__  s   € Ü §¡Ó 0Ð2Ð2Ð2r.   c                ó^  • [        [        U5      n[        [        U5      n[        [	        [        S [        S[        U5      S5       Vs/ sH  oBU   PM	     sn 5       5      [        S [        S[        U5      S5       Vs/ sH  oCU   PM	     sn 5       5      S-   5      5      $ s  snf s  snf )Nc              3  ó’   #   • U H>  nUR                   (       d  UR                  (       a  UR                  O
[        U5      v •  M@     g 7fr(   )Ú	is_mapperÚis_aliased_classÚclass_Ústr)r@   Úms     r,   rC   Ú/PathRegistry._serialize_path.<locals>.<genexpr>%  s2   é € ð áL˜ð "#§§°×0B×0B�A—H’HÌÈQËÔOÚLùs   ‚AAr   r   c              3  ón   #   • U H,  n[        U5      (       a  UR                  O
[        U5      v •  M.     g 7fr(   )r   rj   r§   )r@   Úps     r,   rC   r©   )  s.   é € ð áL˜ô 5°Q×7Ñ7�A—E’E¼SÀ»VÔCÚLùs   ‚35r   r(   )r   rŒ   r�   ÚlistÚzipÚtuplerŽ   rv   )Úclsr+   r—   Ú_p_pathr‘   s        r,   Ú_serialize_pathÚPathRegistry._serialize_path  s³   € äÔ-¨tÓ4ˆÜÔ.°Ó5ˆäÜÜñ ä27¸¼3¸w»<ÈÔ2KÓLÑ2K¨Q aœjÑ2KÒLóó ô ñ ä27¸¼3¸w»<ÈÔ2KÓLÑ2K¨Q aœjÑ2KÒLóó ð ñ	ó
ó
ð 	
ùò Mùò Ms   Á
B%ÂB*c                ó°   • SS jnSS jn[        [        U VVs/ sH  u  pEU" U5      U" XE5      4PM     snn6 5      nU(       a  US   c  USS nU$ s  snnf )Nc                óz   • U [         R                  ;  a  [        R                  " U SS9$ [         R                  U    $ ©NT)Ú	configure)Ú	PathTokenÚ_internÚorm_baseÚ_inspect_mapped_class)Úmclss    r,   Ú_deserialize_mapper_tokenÚAPathRegistry._deserialize_path.<locals>._deserialize_mapper_token3  s>   € ð
 œy×0Ñ0Ó0ô ×.Ò.¨t¸tÑDðô
 ×&Ñ& tÑ,ðr.   c                óª   • Uc  g U[         R                  ;   a  [         R                  U   $ [        R                  " U SS9nUc   eUR                  U   $ rµ   )r·   r¸   r¹   rº   Úattrs)r»   rj   Úmps      r,   Ú_deserialize_key_tokenÚ>PathRegistry._deserialize_path.<locals>._deserialize_key_token<  sS   € Ø‰{ØØœ	×)Ñ)Ó)Ü ×(Ñ(¨Ñ-Ð-ä×3Ò3°DÀDÑI�Ø‘~Ð%�~Ø—x‘x ‘}Ð$r.   éÿÿÿÿr   )r»   r   Úreturnr   )r»   r   rj   r   rÄ   r   )r®   r   )r¯   r+   r¼   rÁ   r»   rj   r«   s          r,   Ú_deserialize_pathÚPathRegistry._deserialize_path1  sw   € ô	ô	%ô Üñ &*ôñ
 &*™	˜ñ 2°$Ó7Ù.¨tÓ9óñ &*òðó

ˆö ��2‘‘Ø�!�B�ˆAØˆùós   šAc                ó<   • U R                   nU R                  U5      $ r(   )r+   r±   )rV   r+   s     r,   rŸ   ÚPathRegistry.serializeU  s   € Ø�y‰yˆØ×#Ñ# DÓ)Ð)r.   c                óP   • Uc   eU R                  U5      nU R                  U5      $ r(   )rÅ   Úcoerce)r¯   r+   r«   s      r,   r4   ÚPathRegistry.deserializeY  s,   € àÑÐÐØ×!Ñ! $Ó'ˆØ�z‰z˜!‹}Ðr.   c                ó   • g r(   r)   ©r¯   r•   s     r,   Ú
per_mapperÚPathRegistry.per_mapper_  s   € àGJr.   c                ó   • g r(   r)   rÍ   s     r,   rÎ   rÏ   c  s   € àJMr.   c                ó|   • UR                   (       a  [        U R                  U5      $ [        U R                  U5      $ r(   )r¤   ÚCachingEntityRegistryrL   ÚSlotsEntityRegistryrÍ   s     r,   rÎ   rÏ   g  s/   € ð ××Ü(¨¯©°6Ó:Ð:ä& s§x¡x°Ó8Ð8r.   c                ó8   • SS jn[        X!U R                  5      $ )Nc                ó
   • X   $ r(   r)   ©ÚprevÚnext_s     r,   Ú_redÚ!PathRegistry.coerce.<locals>._redr  ó
   € Ø‘;Ðr.   ©r×   r&   rØ   Ú_PathElementTyperÄ   r&   )r   rL   )r¯   ÚrawrÙ   s      r,   rÊ   ÚPathRegistry.coercep  s   € ô	ô �d §¡Ó*Ð*r.   c                ó8   • SS jn[        X!R                  U 5      $ )Nc                ó
   • X   $ r(   r)   rÖ   s     r,   rÙ   Ú"PathRegistry.__add__.<locals>._redy  rÛ   r.   rÜ   )r   r+   )rV   rW   rÙ   s      r,   Ú__add__ÚPathRegistry.__add__x  s   € ô	ô �dŸJ™J¨Ó-Ð-r.   c                óN   • SSR                  S U R                   5       5       S3$ )Nz	ORM Path[z -> c              3  ó6   #   • U H  n[        U5      v •  M     g 7fr(   ©r§   )r@   Úelems     r,   rC   Ú'PathRegistry.__str__.<locals>.<genexpr>  s   é € Ð&G¹Y°T¤s¨4§y yºYùs   ‚Ú])Újoinr+   r_   s    r,   Ú__str__ÚPathRegistry.__str__~  s%   € Ø˜6Ÿ;™;Ñ&G¸T¿YºYÓ&GÓGÐHÈÐJÐJr.   c                óP   • U R                   R                   SU R                  < S3$ )NÚ(Ú))Ú	__class__Ú__name__r+   r_   s    r,   Ú__repr__ÚPathRegistry.__repr__�  s$   € Ø—.‘.×)Ñ)Ð*¨!¨D¯I©I©=¸Ð:Ð:r.   )rW   r   rÄ   rF   ©rÄ   zOptional[_PathRepresentation])rb   ÚintrÄ   r1   )ri   úDict[Any, Any]rj   r   rk   r   rÄ   ÚNoner(   )ri   r÷   rj   r   rk   zOptional[Any]rÄ   r   )rÄ   rö   )r   Ú_StrPathTokenrÄ   ÚTokenRegistry)r   rö   rÄ   rÝ   )r   ÚslicerÄ   rH   )r   r1   rÄ   ÚAbstractEntityRegistry)r   r2   rÄ   ÚPropRegistry)r   zTUnion[_StrPathToken, int, slice, _InternalEntityType[Any], StrategizedProperty[Any]]rÄ   zaUnion[TokenRegistry, _PathElementType, _PathRepresentation, PropRegistry, AbstractEntityRegistry])rÄ   zOIterator[Tuple[_InternalEntityType[Any], Union[str, StrategizedProperty[Any]]]])r•   úMapper[Any]rÄ   rF   )ri   r÷   rj   r   rÄ   rF   )rÄ   r   )r+   rH   rÄ   Ú_SerializedPath)r+   rÿ   rÄ   rH   )rÄ   rÿ   ©r+   rÿ   rÄ   r&   )r•   rþ   rÄ   rÒ   )r•   úAliasedInsp[Any]rÄ   rÓ   )r•   r1   rÄ   rü   )rÞ   rH   rÄ   r&   )rW   r&   rÄ   r&   )rÄ   r§   ),rò   Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú	__slots__Úis_tokenr-   Ú
has_entityÚis_propertyr0   Ú__annotations__r   ÚExtendedInternalTraversalÚdp_has_cache_key_listrM   rX   r\   ÚpropertyrQ   rc   rl   ro   rr   rw   r{   r   r€   r‰   r’   r™   rœ   r    Úclassmethodr±   rÅ   rŸ   r4   rÎ   rÊ   rã   rì   ró   Ú__static_attributes__r)   r.   r,   r&   r&   {   sa  ‡ ñð2 €Ià€HØ€GØ€JØ€KØ€IàÓà
ÓØ%Ó%Ø"Ó"Ø
Óð 
�×3Ñ3×IÑIÐJð4ÐÐ0ó ôôð óó ðô ô5ð?Ø(ð?Ø/2ð?Ø;>ð?à	ô?ð LPðØ(ðØ/2ðØ;Hðà	õôôð ÛFó ØFàÛ?ó Ø?àÛDó ØDàð%Ø.ð%à	ó%ó ð%ð ðØ.ðà	óó ðð$ð
ð$ð
ô$ð& óó ðð0ð
ô0ôô.ô3ð ó
ó ð
ð$ ó!ó ð!ôF*ð óó ðð
 ØÛJó ó àJàØÛMó ó àMàð9Ø-ð9à	ó9ó ð9ð ó+ó ð+ô.ôK÷;r.   c                  ó8   • \ rS rSr% SrS\S'   S\S'   SS jrSrg)	ÚCreatesTokeni…  r)   rF   r¥   r-   c                óØ   • U[         R                  ;  a  [        R                  " SU 35      eUR	                  S[
         35      (       a  [        X5      $ [        U R                  U5      $ )Nzinvalid token: r>   )r·   r¸   r   ÚArgumentErrorÚendswithr7   rú   rL   )rV   Útokens     r,   r  ÚCreatesToken.token‹  s[   € Øœ	×)Ñ)Ó)Ü×#Ò# o°e°WÐ$=Ó>Ð>Ø�^‰^˜a¤Ð0Ð1×2Ñ2Ü  Ó-Ð-ä  §¡¨EÓ2Ð2r.   N)r  rù   rÄ   rú   )rò   r  r  r  r  r
  r  r  r)   r.   r,   r  r  …  s   ‡ Ø€IàÓØƒM÷3r.   r  c                  ól   • \ rS rSrSrSrSrS=rrSr	Sr
SrSr    S	S jrS
S jr\(       d  \rSrgSrg)rK   i”  zPRoot registry, defers to mappers so that
paths are maintained per-root-mapper.

r)   TFc                óú   • U[         R                  ;   a?  [        (       a  [        U[        5      (       d   e[        U [         R                  U   5      $  UR                  $ ! [         a    [        SU 35      ef = f)Nz/invalid argument for RootRegistry.__getitem__: )	r·   r¸   r   Ú
isinstancerù   rú   Ú_path_registryrR   Ú
IndexErrorr~   s     r,   Ú_getitemÚRootRegistry._getitem¤  sy   € ð ”Y×&Ñ&Ó&ßŠ}Ü! &¬-×8Ñ8Ð8Ð8Ü  ¤y×'8Ñ'8¸Ñ'@ÓAÐAðØ×,Ñ,Ð,øÜ!ó Ü ØEÀfÀXÐNóð ðús   ÁA! Á!A:c                ó   • U $ r(   r)   r_   s    r,   Ú_truncate_recursiveÚ RootRegistry._truncate_recursive³  s   € Øˆr.   N)r   r   rÄ   z,Union[TokenRegistry, AbstractEntityRegistry])rÄ   rK   )rò   r  r  r  r  r  Úinherit_cacher+   rI   r  r¥   r-   rG   r  r  r   r€   r  r)   r.   r,   rK   rK   ”  s[   † ñð
 €Ià€MàÐ€Dˆ<Ø€JØÐØ€GØ€LðØðà	5ôôö Ø‹ò r.   rK   c                  óP   • \ rS rSr% SrS\S'          S	S jr\S
S j5       rSr	g)r·   i½  zcacheable string tokenzMapping[str, PathToken]r¸   c                ó   • [        U 5      4$ r(   rç   )rV   r#   Ú
bindparamss      r,   Ú_gen_cache_keyÚPathToken._gen_cache_keyÌ  s   € ô �D“	ˆ|Ðr.   c                ó   • g r(   r)   r_   s    r,   rQ   ÚPathToken._path_for_compareÑ  s   € àr.   r)   N)r#   r#   r$  zList[BindParameter[Any]]rÄ   zTuple[Any, ...]rõ   )
rò   r  r  r  r  r
  r%  r  rQ   r  r)   r.   r,   r·   r·   ½  sA   ‡ Ù à$Ó$ð	ðØ ðØ.Fðà	ôð
 óó ór.   r·   c                  ó~   • \ rS rSr% SrSrS\S'   S\S'   SS jrS	rSr	SS
 jr
  SS jrSS jr\(       d  \rSrgSrg)rú   iÙ  )r  rJ   r+   rI   Trù   r  r  rJ   c                ó–   • [         R                  U   nX l        Xl        UR                  U4-   U l        UR
                  U4-   U l        g r(   )r·   r¸   r  rJ   r+   rI   )rV   rJ   r  s      r,   Ú__init__ÚTokenRegistry.__init__á  sC   € Ü×!Ñ! %Ñ(ˆàŒ
ØŒØ—K‘K 5 (Ñ*ˆŒ	Ø"×/Ñ/°5°(Ñ:ˆÕr.   Fc              #  óX  #   • U R                   n[        U5      (       a  U v •  g [        (       a  [        U[        5      (       d   eUR
                  (       dG  UR                  R                  5        H(  n[        UR                   U   U R                  5      v •  M*     g UR
                  (       av  [        SUR                  5      R                  (       aQ  U v •  [        SUR                  5      R                   H(  n[        UR                   U   U R                  5      v •  M*     g U v •  g 7f©Nr  )rJ   r-   r   r  rü   r¥   r•   Úiterate_to_rootrú   r  r   r   Ú_is_with_polymorphicÚ_with_polymorphic_entities©rV   rJ   Úmp_entÚents       r,   Úgenerate_for_superclassesÚ'TokenRegistry.generate_for_superclassesí  sé   é € à—‘ˆÜ�6�?‰?ØŠJØçŠ=Ü˜fÔ&<×=Ñ=Ð=Ð=Ø×&×&Ø Ÿ-™-×7Ñ7Ö9�Ü# F§M¡M°&Ñ$9¸4¿:¹:ÓFÔFò :ð ×#×#ÜØ"Ø—‘ó÷ #Ñ"õ#ð
 ŠJÜØ" F§M¡Móç(Ñ(ò)�ô $ F§M¡M°#Ñ$6¸¿
¹
ÓCÔCò)ð
 ‹Jùs   ‚D(D*c              #  ó˜  #   • U R                   n[        U5      (       a  U R                  v •  g [        (       a  [	        U[
        5      (       d   eUR                  R                  5        H2  n[        UR                   U   U R                  5      R                  v •  M4     UR                  (       aŠ  [        SUR                  5      R                  (       ae  U R                  v •  [        SUR                  5      R                   H2  n[        UR                   U   U R                  5      R                  v •  M4     g U R                  v •  g 7fr.  )rJ   r-   rI   r   r  rü   r•   r/  rú   r  r¥   r   r   r0  r1  r2  s       r,   Ú"_generate_natural_for_superclassesÚ0TokenRegistry._generate_natural_for_superclasses  s  é € ð —‘ˆÜ�6�?‰?Ø×#Ñ#Ò#ØçŠ=Ü˜fÔ&<×=Ñ=Ð=Ð=Ø—m‘m×3Ñ3Ö5ˆFÜ §¡¨fÑ 5°t·z±zÓB×OÑOÔOñ 6ð ×#×#ÜØ"Ø—‘ó÷ #Ñ"õ#ð
 ×#Ñ#Ò#ÜØ" F§M¡Móç(Ñ(ò)�ô " &§-¡-°Ñ"4°d·j±jÓA×NÑNôò)ð ×#Ñ#Ó#ùs   ‚EE
c                ó`   •  U R                   U   $ ! [         a  n[        U 5      UeS nAff = fr(   )r+   Ú	TypeErrorr  )rV   r   Úerrs      r,   r  ÚTokenRegistry._getitem%  s5   € ð	3Ø—9‘9˜VÑ$Ð$øÜó 	3Ü ˜xÓ)¨sÐ2ûð	3ús   ‚ ‘
-›(¨-)rI   rJ   r+   r  N)rJ   r  r  rù   )rÄ   zIterator[PathRegistry])rÄ   zIterator[_PathRepresentation]©r   r   rÄ   r   )rò   r  r  r  r  r!  r
  r+  r  r  r5  r8  r  r   r€   r  r)   r.   r,   rú   rú   Ù  sO   ‡ Ø;€Ià€MàÓØÓô;ð €Jà€Hôð6$à	&ô$ô:3ö Ø‹ò r.   rú   c                  óš   • \ rS rSr% SrSrSrS\S'   S\S'   S\S	'       SS
 jrSS jr	\
SS j5       r    SS jr\(       d  \rSrgSrg)rý   i/  )ÚproprJ   r+   rI   r  r   r•   Ú_wildcard_path_loader_keyÚ_default_path_loader_keyÚ_loader_keyrG   Tr2   r@  zOptional[Mapper[Any]]r•   z"Optional[_InternalEntityType[Any]]r   c                ób  • [        SUS   5      nUnUR                  R                  =(       d    [        UR                  R
                  5      U l        UR                  (       a  UR                  (       a  UR                  UR                     =pGOUR                  (       a�  UR                  (       a|  UR                  UR                  ;   ab  US   R                  UR                  5      nUR                  U   nUR                  (       a!  UR                  UR                     nSU l        O�UnO~UR                  (       am  UR                  (       a\  UR                  UR                  LaC  UR                  R                  UR                  5      (       a  UR                  UR                     nX l        Xl        UR                  U4-   U l        UR                  U4-   U l        UR                  U l        UR                   (       aE  ["        (       a  [%        U[&        5      (       d   eUR(                  U l        UR                  U l        OS U l        S U l        SUR                  U R                  R*                  -   4U l        U R                  R.                  U l        SU R                  4U l        g )Nr1   rÃ   TÚloader)r   rJ   rG   rF   r•   Úinheritsr¥   Ú_use_mapper_pathÚwith_polymorphic_mappersÚ_entity_for_mapperr–   r@  r+   rI   Ú_links_to_entityr  Ú_is_relationshipr   r  r   r   Ú_wildcard_tokenrA  rB  rC  )rV   rJ   r@  ÚinspÚnatural_parentÚsubclass_entitys         r,   r+  ÚPropRegistry.__init__D  s	  € ô Ð.°°r±
Ó;ˆØ17ˆð #Ÿ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ˆÕr.   c                óÌ   • S n[        [        U R                  S S 5      5       H  u  p#X0R                  L d  M  UnM     Uc  U $ U R	                  U R                  SUS-   *  5      $ )NrÃ   r   r   )Ú	enumerateÚreversedr+   r@  rÊ   )rV   Úearliestr‘   r  s       r,   r  Ú PropRegistry._truncate_recursivež  sc   € ØˆÜ!¤(¨4¯9©9°S°b¨>Ó":Ö;‰HˆAØŸ	™	Ô!Ø’ñ <ð ÑØˆKà—;‘;˜tŸy™y¨¨x¸!©|¨_Ð=Ó>Ð>r.   c                ó<   • U R                   c   eX R                      $ r(   )r   r_   s    r,   Úentity_pathÚPropRegistry.entity_path©  s   € à�{‰{Ñ&Ð&Ð&Ø—K‘KÑ Ð r.   c                ól   • [        U[        [        45      (       a  U R                  U   $ [	        X5      $ r(   )r  rö   rû   r+   rÓ   r~   s     r,   r  ÚPropRegistry._getitem®  s/   € ô �fœs¤E˜l×+Ñ+Ø—9‘9˜VÑ$Ð$ä& tÓ4Ð4r.   )rB  rC  rA  r   r  rG   r•   rI   rJ   r+   r@  N)rJ   rü   r@  r2   )rÄ   rý   ©rÄ   rü   )r   z+Union[int, slice, _InternalEntityType[Any]]rÄ   zDUnion[AbstractEntityRegistry, _PathElementType, _PathRepresentation])rò   r  r  r  r  r!  r	  r
  r+  r  r  rW  r  r   r€   r  r)   r.   r,   rý   rý   /  s}   ‡ ð€Ið €MØ€Kà
"Ó"Ø!Ó!Ø.Ó.ðX9Ø,ðX9Ø4LôX9ôt	?ð ó!ó ð!ð5ØAð5à	Mô5ö Ø‹ò r.   rý   c                  óÖ   • \ rS 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5       r\
SS j5       r\
SS j5       rSS jr    SS jr\(       d  \rSrgSrg)rü   iº  )rj   rJ   r¥   r+   r   rI   Tú!Union[RootRegistry, PropRegistry]rJ   r1   rj   r   rF   r¥   c                óB  • X l         Xl        UR                  U l        X l        UR                  U4-   U l        UR                  (       aÅ  U R                  (       d  UR
                  (       a£  UR                  S   nUR                  R                  UR                  5      (       d*  UR                  R                  UR                  5      (       a   UR                  UR                  4-   U l        g UR                  UR                  4-   U l        g U R                  U l        g )NrÃ   )	rj   rJ   r¥   r   r+   rG   rI   r•   r–   )rV   rJ   r   Úparent_natural_entitys       r,   r+  Ú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Õr.   c                óP   • U R                   R                  5       U R                     $ r(   )rJ   r  r   r_   s    r,   r  Ú*AbstractEntityRegistry._truncate_recursive	  s   € Ø�{‰{×.Ñ.Ó0°·±Ñ=Ð=r.   c                ó$   • U R                  S5      $ )Nr   )rc   r_   s    r,   Úroot_entityÚ"AbstractEntityRegistry.root_entity  s   € à×Ñ Ó"Ð"r.   c                ó   • U $ r(   r)   r_   s    r,   rW  Ú"AbstractEntityRegistry.entity_path  s   € àˆr.   c                ó.   • U R                   R                  $ r(   )r   r•   r_   s    r,   r•   ÚAbstractEntityRegistry.mapper  s   € à�{‰{×!Ñ!Ð!r.   c                ó   • g)NTr)   r_   s    r,   Ú__bool__ÚAbstractEntityRegistry.__bool__  s   € Ør.   c                óÎ   • [        U[        [        45      (       a  U R                  U   $ U[        R
                  ;   a  [        U [        R
                  U   5      $ [        X5      $ r(   )r  rö   rû   r+   r·   r¸   rú   rý   r~   s     r,   r  ÚAbstractEntityRegistry._getitem  sU   € ô �fœs¤E˜l×+Ñ+Ø—9‘9˜VÑ$Ð$Ø”y×(Ñ(Ó(Ü  ¤y×'8Ñ'8¸Ñ'@ÓAÐAä Ó-Ð-r.   )r   r¥   rj   rI   rJ   r+   N©rJ   r]  r   r1   r[  )rÄ   r1   )rÄ   r&   )rÄ   rþ   )rÄ   rF   )r   r   rÄ   z:Union[_PathElementType, _PathRepresentation, PathRegistry])rò   r  r  r  r  r  r0   r
  r+  r  r  rd  rW  r•   rk  r  r   r€   r  r)   r.   r,   rü   rü   º  s¯   ‡ ð€Ið €JØ€Ià-Ó-Ø	!Ó!Ø$Ó$ØÓð;*à1ð;*ð )ô;*ôz>ð ó#ó ð#ð óó ðð ó"ó ð"ôð.Øð.à	Cô.ö Ø‹ò r.   rü   c                  ó   • \ rS rSrSrSrg)rÓ   i)  Tr)   N)rò   r  r  r  r!  r  r)   r.   r,   rÓ   rÓ   )  s	   † ð ƒMr.   rÓ   c                  ó(   • \ rS rSrSS jrSS jrSrg)Ú_ERDicti/  c                ó   • Xl         g r(   ©Úregistry)rV   ru  s     r,   r+  Ú_ERDict.__init__0  s   € Ø �r.   c                ó:   • [        U R                  U5      =X'   nU$ r(   )rý   ru  )rV   rj   Úitems      r,   Ú__missing__Ú_ERDict.__missing__3  s   € Ü'¨¯©°sÓ;Ð;ˆ‰	�Dàˆr.   rt  N)ru  rÒ   )rj   r   rÄ   rý   )rò   r  r  r  r+  ry  r  r)   r.   r,   rr  rr  /  s   † ô!÷r.   rr  c                  ón   ^ • \ rS rSrSrSr    SU 4S jjrSS jrS	S jr\	(       d  \r
SrU =r$ SrU =r$ )
rÒ   i9  )Ú_cacheTc                óD   >• [         TU ]  X5        [        U 5      U l        g r(   )Úsuperr+  rr  r|  )rV   rJ   r   rñ   s      €r,   r+  ÚCachingEntityRegistry.__init__A  s   ø€ ô
 	‰Ñ˜Ô(Ü˜d“mˆ�r.   c                ó8   • U R                   R                  X5      $ r(   )r|  Úpop)rV   rj   Údefaults      r,   r�  ÚCachingEntityRegistry.popI  s   € Ø�{‰{�‰˜sÓ,Ð,r.   c                ó´   • [        U[        [        45      (       a  U R                  U   $ [        U[        5      (       a  [        X5      $ U R                  U   $ r(   )r  rö   rû   r+   r·   rú   r|  r~   s     r,   r  ÚCachingEntityRegistry._getitemL  sI   € Ü�fœs¤E˜l×+Ñ+Ø—9‘9˜VÑ$Ð$Ü˜¤	×*Ñ*Ü  Ó.Ð.à—;‘;˜vÑ&Ð&r.   ro  )rj   r   r‚  r   rÄ   r   r>  )rò   r  r  r  r  r!  r+  r�  r  r   r€   r  Ú__classcell__)rñ   s   @r,   rÒ   rÒ   9  s?   ø† ð €Ià€Mð$à1ð$ð )÷$ô-ô'ö ØŽõ r.   rÒ   c                ó   • g r(   r)   r*   s    r,   Úpath_is_entityrˆ  Z  s   € à,/r.   c                ó   • g r(   r)   r*   s    r,   Úpath_is_propertyrŠ  ^  s   € Èr.   r	  )r+   r&   rÄ   zTypeGuard[RootRegistry])r+   r&   rÄ   z!TypeGuard[AbstractEntityRegistry]r   )r+   r&   rÄ   zTypeGuard[PropRegistry])Yr  Ú
__future__r   Ú	functoolsr   Ú	itertoolsr   ÚloggingÚoperatorÚtypingr   r   r   r	   r
   r   r   r   r   r   r   r   Ú r   r¹   Ú_typingr   r   r   Úsqlr   Úsql.cache_keyr   Úutil.typingr   r   r   Ú
interfacesr   r•   r   Úrelationshipsr   r    r!   Úsql.elementsr"   Úsql.visitorsr#   r$   r%   r-   r0   Ú
attrgetterrÿ   r§   rù   rÝ   rH   rŒ   r�   Ú	getLoggerrò   rf   r5   r7   r
  r?   r:   r<   Ú	frozensetÚ_UNPREFIXED_TOKENSÚ_PATH_TOKENSÚ_ACCEPTED_TOKENSr&   r  rK   rL   ÚInspectionAttrr·   r¸   rú   rý   rü   rÓ   rr  rÒ   rˆ  rŠ  )r  s   0r,   Ú<module>r¡     s—  ðò Eå "å Ý Û Û Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý  Ý å Ý ,Ý Ý Ý Ý 'Ý Ý !æÝ,Ý/ÝÝ3Ý!Ý6Ý,Ý'Ý*Ý'äCåOð ×!Ò! )Ó,€GØ×#Ò# KÓ0€Ið �s‘)€Ø€ØØÐ-Ð/IÐIñÐ ð Ð,¨cÐ1Ñ2Ð ð "Ð"<Ñ=Ð Ø" 5Ð)CÀSÐ)HÑ#IÑJÐ ð ×Ò˜Ó!€ô*ð !$€�Ó #Ø€à6DÐ Ð3Ó DØ*2€Ð'Ó 2á °Ð@ÓAÐ ðñ ñ à,¨mÑ<óó €ð
ð &¨Ñ4Ð ðôG;�;ô G;ôT3�<ô 3ô#�<ô #ñL !“N€Ô ô�×'Ñ'¨°cô ñ2 ;GÓG¹,°™I eÓ,Ò,¹,ÑG€	Ô ôS�Lô SôlH�<ô HôVl˜\ô lô^Ð0ô ôˆd�3˜�8‰nô ôÐ2ô ö> ð0Øð0à	*ô0õ Mð ×(Ò(¨Ó5€NØ×*Ò*¨=Ó9ÑùòY Hs   ÇI!