+
    ich                    J  a  0 t $ R t^ RIHt ^ RIHt ^ RIHt ^ RIt^ RI	t	^ RI
Ht ^ RI
Ht ^ RI
Ht ^ RI
Ht ^ R	I
Ht ^ R
I
Ht ^ RI
Ht ^ RI
Ht ^ RI
Ht ^ RI
Ht ^ RI
Ht ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIH t  ]'       dJ   ^RIH!t! ^RI"H#t# ^RI$H%t% ^RI&H't' ^RIH(t( ^RIH)t) ^RI*H+t+ ^RI,H-t- ^RI.H/t/ ^RI.H0t0 R  R! lt1R" R# lt2M$]	Pf                  ! R$4      t1]	Pf                  ! R%4      t2]],          t4]5t6]]6R&R'3,          t7]]7R(3,          t8]R&,          t9]]R']53,          ,          t:]Pv                  ! ]<4      t=R) R* lt>R+t?R,]@R-&   R.tA ! R/ R0] 4      tB ! R1 R2]B4      tC ! R3 R4]C4      tD]D! 4       ]BnE         ! R5 R6]P                  ] ]54      tG ! R7 R8]B4      tH ! R9 R:]B4      tI ! R; R<]C4      tJ ! R= R>]J4      tK ! R? R@]]]3,          4      tL ! RA RB]J4      tM]'       d   RC RD ltNRE RF ltOR# ]	Pf                  ! R%4      tN]	Pf                  ! RG4      tOR# )Hz>Path tracking utilities, representing mapper graph traversals.)annotations)reduce)chainN)Any)cast)Dict)Iterator)List)Optional)overload)Sequence)Tuple)TYPE_CHECKING)Union)base)insp_is_mapper_property)exc)util)visitors)HasCacheKey)_InternalEntityType)StrategizedProperty)Mapper)RelationshipProperty)AliasedInsp)_CacheKeyTraversalType)BindParameter)anon_map)_LiteralStar)	TypeGuardc                    V ^8  d   QhRRRR/# )   pathPathRegistryreturnzTypeGuard[RootRegistry] )formats   "څC:\Users\petid\OneDrive\Desktop\Maestro\MAESTRO CLAUDE\MAESTRO\maestro-backend\venv\Lib\site-packages\sqlalchemy\orm\path_registry.py__annotate__r(   .   s    CClC'>C    c                    R # Nr%   r"   s   &r'   is_rootr-   .   s    r)   c                    V ^8  d   QhRRRR/# r!   r"   r#   r$   z!TypeGuard[AbstractEntityRegistry]r%   )r&   s   "r'   r(   r(   0   s    OOO)JOr)   c                    R # r+   r%   r,   s   &r'   	is_entityr1   0   s    Cr)   r-   r1   _InternalEntityType[Any]StrategizedProperty[Any].c                    V ^8  d   QhRRRR/# r!   r"   _SerializedPathr$   r#   r%   )r&   s   "r'   r(   r(   N   s     * * *\ *r)   c                ,    \         P                  V 4      # r+   )r#   deserializer,   s   &r'   _unreduce_pathr9   N   s    ##D))r)   *r   _WILDCARD_TOKEN_sa_defaultc                     ] tR t^Vt$ RtRMtRtRtRtRt	Rt
R]R&   R]R&   R]R&   R]R	&   R
]R&   R]P                  P                  3.tR]R&   R R ltR R lt]R R l4       tR R ltR R ltR R ltRNR R lltR R ltR R  lt]R! R" l4       t]R# R$ l4       t]R% R& l4       t]R' R( l4       t]R) R* l4       tR+ R, lt]R- R. l4       tR/ R0 ltR1 R2 ltR3 R4 ltR5 R6 lt ]!R7 R8 l4       t"]!R9 R: l4       t#R; R< lt$]!R= R> l4       t%]]!R? R@ l4       4       t&]]!RA RB l4       4       t&]!RC RD l4       t&]!RE RF l4       t'RG RH lt(RI RJ lt)RK RL lt*RMt+R# )Or#   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.

Fboolis_unnatural_PathRepresentationr"   natural_pathzOptional[PathRegistry]parentRootRegistryrootr   _cache_key_traversalc                    V ^8  d   QhRRRR/# r!   otherr   r$   r>   r%   )r&   s   "r'   r(   PathRegistry.__annotate__   s      C D r)   c                	     VR J;'       d    V P                   VP                  8H  #   \         d+    \        P                  ! R\        T4      ,          4        R# i ; i)N1Comparison of PathRegistry to %r is not supportedFr"   _path_for_compareAttributeErrorr   warntypeselfrH   s   &&r'   __eq__PathRegistry.__eq__   sX    	$MMe6M6M)MM 	IIC;  	   
' ' 1AAc                    V ^8  d   QhRRRR/# rG   r%   )r&   s   "r'   r(   rI      s      C D r)   c                	     VR J ;'       g    V P                   VP                  8g  #   \         d+    \        P                  ! R\        T4      ,          4        R# i ; i)NrK   TrL   rQ   s   &&r'   __ne__PathRegistry.__ne__   sW    	D=HHDII1H1H$HH 	IIC;  	rU   c                   V ^8  d   QhRR/# r!   r$   zOptional[_PathRepresentation]r%   )r&   s   "r'   r(   rI      s      #@ r)   c                	    V P                   # r+   r,   rR   s   &r'   rM   PathRegistry._path_for_compare   s    yyr)   c                    V ^8  d   QhRRRR/# )r!   indexintr$   r2   r%   )r&   s   "r'   r(   rI      s          )A  r)   c                	(    V P                   V,          # r+   r,   )rR   r`   s   &&r'   odd_elementPathRegistry.odd_element   s    yyr)   c               (    V ^8  d   QhRRRRRRRR/# r!   
attributesDict[Any, Any]keyr   valuer$   Noner%   )r&   s   "r'   r(   rI      s(     5 5n 53 5s 5t 5r)   c                	R    \         P                  R W V4       W1W P                  3&   R# )zset '%s' on path '%s' to '%s'N)logdebugrA   rR   rg   ri   rj   s   &&&&r'   setPathRegistry.set   s$    		13eD/4C**+,r)   c               (    V ^8  d   QhRRRRRRRR/# rf   r%   )r&   s   "r'   r(   rI      s,     ? ?(?/2?;>?	?r)   c                	n    \         P                  R W V4       VP                  W P                  3V4       R# )z$setdefault '%s' on path '%s' to '%s'N)rm   rn   
setdefaultrA   ro   s   &&&&r'   rt   PathRegistry.setdefault   s.     			8#UKs$5$56>r)   Nc               (    V ^8  d   QhRRRRRRRR/# )r!   rg   rh   ri   r   rj   zOptional[Any]r$   r%   )r&   s   "r'   r(   rI      s,      (/2;H	r)   c                	<    W P                   3pW!9   d	   W,          # V# r+   )rA   ro   s   &&&&r'   getPathRegistry.get   s%     %%&?"Lr)   c                   V ^8  d   QhRR/# r!   r$   ra   r%   )r&   s   "r'   r(   rI      s       r)   c                	,    \        V P                  4      # r+   lenr"   r]   s   &r'   __len__PathRegistry.__len__   s    499~r)   c                   V ^8  d   QhRR/# r{   r%   )r&   s   "r'   r(   rI      s      # r)   c                	    \        V 4      # r+   )idr]   s   &r'   __hash__PathRegistry.__hash__   s    $xr)   c                    V ^8  d   QhRRRR/# )r!   entity_StrPathTokenr$   TokenRegistryr%   )r&   s   "r'   r(   rI      s    FF-FMFr)   c                	    R # r+   r%   rR   r   s   &&r'   __getitem__PathRegistry.__getitem__   s    CFr)   c                    V ^8  d   QhRRRR/# )r!   r   ra   r$   _PathElementTyper%   )r&   s   "r'   r(   rI      s    ??#?*:?r)   c                	    R # r+   r%   r   s   &&r'   r   r      s    <?r)   c                    V ^8  d   QhRRRR/# )r!   r   slicer$   r@   r%   )r&   s   "r'   r(   rI      s    DD%D,?Dr)   c                	    R # r+   r%   r   s   &&r'   r   r      s    ADr)   c                    V ^8  d   QhRRRR/# )r!   r   r2   r$   AbstractEntityRegistryr%   )r&   s   "r'   r(   rI      s     % %.%	%r)   c                	    R # r+   r%   r   s   &&r'   r   r      s     "%r)   c                    V ^8  d   QhRRRR/# )r!   r   r3   r$   PropRegistryr%   )r&   s   "r'   r(   rI      s      .	r)   c                	    R # r+   r%   r   s   &&r'   r   r      s     r)   c                    V ^8  d   QhRRRR/# )r!   r   zTUnion[_StrPathToken, int, slice, _InternalEntityType[Any], StrategizedProperty[Any]]r$   zaUnion[TokenRegistry, _PathElementType, _PathRepresentation, PropRegistry, AbstractEntityRegistry]r%   )r&   s   "r'   r(   rI      s      $ $
$
$r)   c                	    \        4       hr+   )NotImplementedErrorr   s   &&r'   r   r      s      "##r)   c                   V ^8  d   QhRR/# r{   r%   )r&   s   "r'   r(   rI      s       r)   c                	,    \        V P                  4      # r+   r}   r]   s   &r'   lengthPathRegistry.length   s    499~r)   c                   V ^8  d   QhRR/# )r!   r$   zOIterator[Tuple[_InternalEntityType[Any], Union[str, StrategizedProperty[Any]]]]r%   )r&   s   "r'   r(   rI      s     0 0
0r)   c              #  	   "   \        \        V P                  4      p\        \        V4      p\	        ^ \        V4      ^4       F  pW,          W#^,           ,          3x  K  	  R# 5i)    N)r   _OddPathRepresentationr"   _EvenPathRepresentationranger~   )rR   odd_path	even_pathis   &   r'   pairsPathRegistry.pairs   sP     
 .		:0(;	q#h-+A+yQ/// ,s   A#A%c                    V ^8  d   QhRRRR/# )r!   mapperMapper[Any]r$   r>   r%   )r&   s   "r'   r(   rI      s      k d r)   c                	    \        \        V P                  4      p\        ^ \	        V4      ^4       Uu. uF  q2V,          NK  	  up F'  pVP
                  P                  V4      '       g   K&   R# 	  R# u upi )r   TF)r   r   r"   r   r~   r   isa)rR   r   _m_pathr   path_mappers   &&   r'   contains_mapperPathRegistry.contains_mapper   se    -tyy905aWq0IJ0I1AJJ0IJK!!%%f-- K 	 Ks   A4c               $    V ^8  d   QhRRRRRR/# )r!   rg   rh   ri   r   r$   r>   r%   )r&   s   "r'   r(   rI      s!     . .> . . .r)   c                	"    W P                   3V9   # r+   r,   )rR   rg   ri   s   &&&r'   containsPathRegistry.contains   s    YY:--r)   c                   V ^8  d   QhRR/# )r!   r$   r   r%   )r&   s   "r'   r(   rI      s     3 3C 3r)   c                	0    \         V P                  4       33# r+   )r9   	serializer]   s   &r'   
__reduce__PathRegistry.__reduce__   s     0222r)   c                    V ^8  d   QhRRRR/# )r!   r"   r@   r$   r6   r%   )r&   s   "r'   r(   rI      s     
 
#6 
? 
r)   c                	   \        \        V4      p\        \        V4      p\        \	        \
        ;QJ d>    . R  \        ^ \        V4      ^4       Uu. uF  qBV,          NK  	  up 4       F  NK  	  5M7! R  \        ^ \        V4      ^4       Uu. uF  qBV,          NK  	  up 4       4      \
        ;QJ d>    . R \        ^\        V4      ^4       Uu. uF  qCV,          NK  	  up 4       F  NK  	  5M7! R \        ^\        V4      ^4       Uu. uF  qCV,          NK  	  up 4       4      R,           4      4      # u upi u upi u upi u upi )c              3     "   T F@  pVP                   '       g   VP                  '       d   VP                  M
\        V4      x  KB  	  R # 5ir+   )	is_mapperis_aliased_classclass_str).0ms   & r'   	<genexpr>/PathRegistry._serialize_path.<locals>.<genexpr>   s7      L "#0B0B0BAHHQOLs   A
A
A
c              3  r   "   T F-  p\        V4      '       d   VP                  M
\        V4      x  K/  	  R # 5ir+   )r   ri   r   )r   ps   & r'   r   r     s.      L 5Q77AEESVCLs   57r+   )r   r   r   listziptupler   r~   )clsr"   r   _p_pathr   s   &&   r'   _serialize_pathPathRegistry._serialize_path   s'   -t4.5 273w<2KL2KQajj2KL 273w<2KL2KQajj2KL   273w<2KL2KQajj2KL 273w<2KL2KQajj2KL  	

 	
 ML MLs   D9D>EEc                    V ^8  d   QhRRRR/# )r!   r"   r6   r$   r@   r%   )r&   s   "r'   r(   rI     s     ! !_ !9L !r)   c                	    R  R lpR R lp\        \        V UUu. uF  w  rEV! V4      V! WE4      3NK  	  upp!  4      pV'       d   VR,          f   V^ R pV# u uppi )c                    V ^8  d   QhRRRR/# )r!   mclsr   r$   r%   )r&   s   "r'   r(   4PathRegistry._deserialize_path.<locals>.__annotate__  s     	 	C 	C 	r)   c                    V \         P                  9  d   \        P                  ! V R R7      # \         P                  V ,          # )T	configure)	PathToken_internorm_base_inspect_mapped_class)r   s   &r'   _deserialize_mapper_tokenAPathRegistry._deserialize_path.<locals>._deserialize_mapper_token  s>    
 y000 ..ttD
 &&t,r)   c               $    V ^8  d   QhRRRRRR/# )r!   r   r   ri   r$   r%   )r&   s   "r'   r(   r     s!     	% 	% 	%3 	%3 	%r)   c                    Vf   R # V\         P                  9   d   \         P                  V,          # \        P                  ! V RR7      pVf   Q hVP                  V,          # )NTr   )r   r   r   r   attrs)r   ri   mps   && r'   _deserialize_key_token>PathRegistry._deserialize_path.<locals>._deserialize_key_token  sS    {	))) ((--33DDI~%~xx}$r)   )r   r   )r   r"   r   r   r   ri   r   s   &&     r'   _deserialize_pathPathRegistry._deserialize_path  sw    		%  &*
 &*	 2$7.t9 &*

 2!BAs   Ac                   V ^8  d   QhRR/# )r!   r$   r6   r%   )r&   s   "r'   r(   rI   0  s     * *? *r)   c                	<    V P                   pV P                  V4      # r+   )r"   r   )rR   r"   s   & r'   r   PathRegistry.serialize0  s    yy##D))r)   c                    V ^8  d   QhRRRR/# r5   r%   )r&   s   "r'   r(   rI   5  s       < r)   c                	R    Vf   Q hV P                  V4      pV P                  V4      # r+   )r   coerce)r   r"   r   s   && r'   r8   PathRegistry.deserialize4  s,    !!$'zz!}r)   c                    V ^8  d   QhRRRR/# )r!   r   r   r$   CachingEntityRegistryr%   )r&   s   "r'   r(   rI   <  s    JJJ0EJr)   c                	    R # r+   r%   r   r   s   &&r'   
per_mapperPathRegistry.per_mapper:  s    GJr)   c                    V ^8  d   QhRRRR/# )r!   r   AliasedInsp[Any]r$   SlotsEntityRegistryr%   )r&   s   "r'   r(   rI   @  s    MM 0M5HMr)   c                	    R # r+   r%   r   s   &&r'   r   r   >  s    JMr)   c                    V ^8  d   QhRRRR/# )r!   r   r2   r$   r   r%   )r&   s   "r'   r(   rI   C  s     9 9-9	9r)   c                	~    VP                   '       d   \        V P                  V4      # \        V P                  V4      # r+   )r   r   rD   r   r   s   &&r'   r   r   B  s2     (6::&sxx88r)   c                    V ^8  d   QhRRRR/# )r!   rawr@   r$   r#   r%   )r&   s   "r'   r(   rI   L  s     + +, + +r)   c                	:    R  R lp\        W!V P                  4      # )c               $    V ^8  d   QhRRRRRR/# r!   prevr#   next_r   r$   r%   )r&   s   "r'   r(   )PathRegistry.coerce.<locals>.__annotate__M  "     	 	| 	,< 	 	r)   c                    W,          # r+   r%   r  r  s   &&r'   _red!PathRegistry.coerce.<locals>._redM  
    ;r)   )r   rD   )r   r   r  s   && r'   r   PathRegistry.coerceK  s    	 d**r)   c                    V ^8  d   QhRRRR/# )r!   rH   r#   r$   r%   )r&   s   "r'   r(   rI   S  s     . .\ .l .r)   c                	:    R  R lp\        W!P                  V 4      # )c               $    V ^8  d   QhRRRRRR/# r   r%   )r&   s   "r'   r(   *PathRegistry.__add__.<locals>.__annotate__T  r  r)   c                    W,          # r+   r%   r  s   &&r'   r  "PathRegistry.__add__.<locals>._redT  r	  r)   )r   r"   )rR   rH   r  s   && r'   __add__PathRegistry.__add__S  s    	 dJJ--r)   c                   V ^8  d   QhRR/# r!   r$   r   r%   )r&   s   "r'   r(   rI   Y  s     K K Kr)   c                	N    R RP                  R V P                   4       4       R2# )z	ORM Path[z -> c              3  8   "   T F  p\        V4      x  K  	  R # 5ir+   r   )r   elems   & r'   r   'PathRegistry.__str__.<locals>.<genexpr>Z  s     &GYTs4yyYs   ])joinr"   r]   s   &r'   __str__PathRegistry.__str__Y  s%    6;;&GTYY&GGHJJr)   c                   V ^8  d   QhRR/# r  r%   )r&   s   "r'   r(   rI   \  s     ; ;# ;r)   c                	P    V P                   P                   R V P                  : R2# )())	__class____name__r"   r]   s   &r'   __repr__PathRegistry.__repr__\  s$    ..))*!DII=::r)   r%   r+   ),r#  
__module____qualname____firstlineno____doc__	__slots__is_tokenr-   
has_entityis_propertyr1   __annotations__r   ExtendedInternalTraversaldp_has_cache_key_listrE   rS   rX   propertyrM   rc   rp   rt   rx   r   r   r   r   r   r   r   r   r   classmethodr   r   r   r8   r   r   r  r  r$  __static_attributes__r%   r)   r'   r#   r#   V   s   2 IHGJKI
%%""
 
33IIJ40    5? F F? ?D D% %  $&  0.3 
 
$ ! !F*  
 J  JM  M9 9 + +.K; ;r)   r#   c                  <    ] tR tRt$ RtR]R&   R]R&   R R ltRtR# )	CreatesTokeni`  r>   r   r-   c                    V ^8  d   QhRRRR/# )r!   tokenr   r$   r   r%   )r&   s   "r'   r(   CreatesToken.__annotate__f  s     ? ?= ?] ?r)   c                	    VP                  R \         24      '       d   \        W4      # VP                  R \         24      '       d   \        V P                  V4      # \
        P                  ! RV 24      h):zinvalid token: )endswithr;   r   _DEFAULT_TOKENrD   r   ArgumentError)rR   r7  s   &&r'   r7  CreatesToken.tokenf  sd    >>Ao./00 --^^a/011 E22##oeW$=>>r)   r%   N)r#  r&  r'  r(  r*  r.  r7  r3  r%   r)   r'   r5  r5  `  s    IM? ?r)   r5  c                  n    ] tR tRtRtR	tRtR	;ttRt	Rt
RtRtR R ltR R lt]'       g   ]tR	tR
# R	tR
# )rC   io  zPRoot registry, defers to mappers so that
paths are maintained per-root-mapper.

TFc                    V ^8  d   QhRRRR/# )r!   r   r   r$   z,Union[TokenRegistry, AbstractEntityRegistry]r%   )r&   s   "r'   r(   RootRegistry.__annotate__  s      	5r)   c                	
   V\         P                  9   dF   \        '       d   \        V\        4      '       g   Q h\        V \         P                  V,          4      #  VP                  #   \         d    \        R T 24      hi ; i)z/invalid argument for RootRegistry.__getitem__: )	r   r   r   
isinstancer   r   _path_registryrN   
IndexErrorr   s   &&r'   _getitemRootRegistry._getitem  sy     Y&&&}!&-8888 y'8'8'@AA,,,!  EfXN s   A( (Bc                   V ^8  d   QhRR/# )r!   r$   rC   r%   )r&   s   "r'   r(   rA    s      \ r)   c                	    V # r+   r%   r]   s   &r'   _truncate_recursive RootRegistry._truncate_recursive  s    r)   r%   N)r#  r&  r'  r(  r)  r*  inherit_cacher"   rA   r,  r   r-   r?   rF  rJ  r   r   r3  r%   r)   r'   rC   rC   o  sK    
 IMD<JGL  r)   rC   c                  b    ] tR tRt$ Rt/ tR]R&   R R lt]R R l4       t	]
R	 R
 l4       tRtR# )r   i  zcacheable string tokenzDict[str, PathToken]r   c               $    V ^8  d   QhRRRRRR/# )r!   r   
bindparamszList[BindParameter[Any]]r$   zTuple[Any, ...]r%   )r&   s   "r'   r(   PathToken.__annotate__  s$       .F	r)   c                	    \        V 4      3# r+   r  )rR   r   rO  s   &&&r'   _gen_cache_keyPathToken._gen_cache_key  s     D	|r)   c                   V ^8  d   QhRR/# r[   r%   )r&   s   "r'   r(   rP    s      #@ r)   c                	    R # r+   r%   r]   s   &r'   rM   PathToken._path_for_compare  s    r)   c                    V ^8  d   QhRRRR/# )r!   strvaluer   r$   r   r%   )r&   s   "r'   r(   rP    s      c i r)   c                	    WP                   9   d   V P                   V,          # \        V4      ;V P                   V&   pV# r+   )r   r   )r   rX  results   && r'   internPathToken.intern  s8    {{";;x((-6x-@@CKK!FMr)   r%   N)r#  r&  r'  r(  r)  r   r.  rR  r1  rM   r2  r[  r3  r%   r)   r'   r   r     s=     $&G!&
    r)   r   c                      ] tR tRt$ RtRtR]R&   R]R&   R R ltR	tRt	R
 R lt
R R ltR R lt]'       g   ]tRtR# RtR# )r   i  r7  rB   Tr   r5  c                    V ^8  d   QhRRRR/# )r!   rB   r5  r7  r   r%   )r&   s   "r'   r(   TokenRegistry.__annotate__  s     ; ;| ;M ;r)   c                	    \         P                  V4      pW n        Wn        VP                  V3,           V n        VP
                  V3,           V n        R # r+   )r   r[  r7  rB   r"   rA   )rR   rB   r7  s   &&&r'   __init__TokenRegistry.__init__  sC      '
KK5(*	"//5(:r)   Fc                   V ^8  d   QhRR/# )r!   r$   zIterator[PathRegistry]r%   )r&   s   "r'   r(   r_    s      +A r)   c              #  	|  "   V P                   p\        V4      '       d   V x  R # \        '       d   \        V\        4      '       g   Q hVP
                  '       gM   VP                  P                  4        F,  p\        VP                   V,          V P                  4      x  K.  	  R # VP
                  '       d}   \        RVP                  4      P                  '       dW   V x  \        RVP                  4      P                   F,  p\        VP                   V,          V P                  4      x  K.  	  R # V x  R # 5iNr   )rB   r-   r   rC  r   r   r   iterate_to_rootr   r7  r   r   _is_with_polymorphic_with_polymorphic_entitiesrR   rB   mp_entents   &   r'   generate_for_superclasses'TokenRegistry.generate_for_superclasses  s     6??J=f&<====&&& --779#FMM&$94::FF : ###" #"#
 J"FMM(() $FMM#$6

CC)
 Js   /D<)D<AD<:BD<c                   V ^8  d   QhRR/# )r!   r$   zIterator[_PathRepresentation]r%   )r&   s   "r'   r(   r_    s     $ $	&$r)   c              #  	  "   V P                   p\        V4      '       d   V P                  x  R # \        '       d   \	        V\
        4      '       g   Q hVP                  P                  4        F6  p\        VP                   V,          V P                  4      P                  x  K8  	  VP                  '       d   \        RVP                  4      P                  '       dk   V P                  x  \        RVP                  4      P                   F6  p\        VP                   V,          V P                  4      P                  x  K8  	  R # V P                  x  R # 5ire  )rB   r-   rA   r   rC  r   r   rf  r   r7  r   r   r   rg  rh  ri  s   &   r'   "_generate_natural_for_superclasses0TokenRegistry._generate_natural_for_superclasses  s     6??###=f&<====mm335Ff 5tzzBOOO 6 ###" #"#
 ###"FMM(() "&--"4djjANN) ###s   9EA=E:B Ec                    V ^8  d   QhRRRR/# r!   r   r   r$   r%   )r&   s   "r'   r(   r_    s     3 3s 3s 3r)   c                	j     V P                   V,          #   \         d   p\        T 4      ThR p?ii ; ir+   )r"   	TypeErrorrE  )rR   r   errs   && r'   rF  TokenRegistry._getitem  s5    	399V$$ 	3x)s2	3s    2-2)rA   rB   r"   r7  N)r7  rB   r"   rA   )r#  r&  r'  r(  r*  rL  r.  ra  r,  r+  rl  rp  rF  r   r   r3  r%   r)   r'   r   r     sG    ;IM; JH6$:3  r)   r   c                      ] tR tRt$ RtRtRtR]R&   R]R&   R]R&   R	 R
 ltR R lt	]
R R l4       tR R lt]'       g   ]tRtR# RtR# )r   i  propr   r   Tr3   zOptional[Mapper[Any]]z"Optional[_InternalEntityType[Any]]c                    V ^8  d   QhRRRR/# )r!   rB   r   ry  r3   r%   )r&   s   "r'   r(   PropRegistry.__annotate__  s      X9 X9,X94LX9r)   c                	   \        R VR,          4      pTpVP                  P                  ;'       g     \        VP                  P
                  4      V n        VP                  '       d   VP                  '       d!   VP                  VP                  ,          ;rEM4VP                  '       d   VP                  '       d   VP                  VP                  9   dp   VR,          P                  VP                  4      pVP                  V,          pVP                  '       d&   VP                  VP                  ,          pRV n        MTpMVP                  '       du   VP                  '       dc   VP                  VP                  JdI   VP                  P                  VP                  4      '       d   VP                  VP                  ,          pW n        Wn        VP                  V3,           V n        VP                  V3,           V n        VP                  V n        VP                   '       dH   \"        '       d   \%        V\&        4      '       g   Q hVP(                  V n        VP                  V n        MRV n        RV n        RVP                  V P                  P*                  ,           3V n        V P                  P.                  V n        RV P                  3V n        R# )r2   TNloaderr   )r   rB   r?   r>   r   inheritsr   _use_mapper_pathwith_polymorphic_mappers_entity_for_mapperr   ry  r"   rA   _links_to_entityr,  _is_relationshipr   rC  r   r   _wildcard_token_wildcard_path_loader_key_default_path_loader_key_loader_key)rR   rB   ry  inspnatural_parentsubclass_entitys   &&&   r'   ra  PropRegistry.__init__  s%    .r
;17 #MM66 
 
$MM"";
 $$$(=(=(=&,mmDKK&@@F^!!!---t<<<8>r
8U8UVZVaVa8bO]]?3F@ }}}!'/E/E!F$(!!'!!!%%%;;,,#]]4;;7N	KK4')	*774'A//   }!$(<====++DK++DKDKDK $))";";;*
& )-		(J(J%$d&7&78r)   c                   V ^8  d   QhRR/# )r!   r$   r   r%   )r&   s   "r'   r(   r{  t  s     	? 	?\ 	?r)   c                	    R p\        \        V P                  R R 4      4       F  w  r#W0P                  J g   K  TpK  	  Vf   V # V P	                  V P                  ^ V^,           )  4      # )Nr   )	enumeratereversedr"   ry  r   )rR   earliestr   r7  s   &   r'   rJ   PropRegistry._truncate_recursivet  sc    !(499Sb>":;HA		! < K;;tyyx!|_=>>r)   c                   V ^8  d   QhRR/# r!   r$   r   r%   )r&   s   "r'   r(   r{    s     ! !3 !r)   c                	F    V P                   f   Q hW P                   ,          # r+   )r   r]   s   &r'   entity_pathPropRegistry.entity_path  s    {{&&&KK  r)   c                    V ^8  d   QhRRRR/# )r!   r   z+Union[int, slice, _InternalEntityType[Any]]r$   zDUnion[AbstractEntityRegistry, _PathElementType, _PathRepresentation]r%   )r&   s   "r'   r(   r{    s     5 5A5	M5r)   c                	v    \        V\        \        34      '       d   V P                  V,          # \	        W4      # r+   )rC  ra   r   r"   r   r   s   &&r'   rF  PropRegistry._getitem  s/     fsEl++99V$$&t44r)   )r  r  r  r   r,  r?   r   rA   rB   r"   ry  N)ry  rB   r"   rA   r,  r   r   r  r  r  r?   )r#  r&  r'  r(  r*  rL  r-  r.  ra  rJ  r1  r  rF  r   r   r3  r%   r)   r'   r   r     s[    I MK
""!!..X9t	? ! !5  r)   r   c                      ] tR tRt$ RtRtRtR]R&   R]R&   R]R&   R	]R&   R
 R ltR R lt	]
R R l4       t]
R R l4       t]
R R l4       tR R ltR R lt]'       g   ]tRtR# RtR# )r   i  ri   rB   r   r   T!Union[RootRegistry, PropRegistry]r2   r>   c                    V ^8  d   QhRRRR/# r!   rB   r  r   r2   r%   )r&   s   "r'   r(   #AbstractEntityRegistry.__annotate__  s     ,* ,*1,* ),*r)   c                	:   W n         Wn        VP                  V n        W n        VP                  V3,           V n        VP                  '       d   V P                  '       g   VP
                  '       d   VP                  P                  VP                  R,          P                  4      '       d&   VP                  VP                  3,           V n        R# VP                  VP                  R,          P                  3,           V n        R# V P                  V n        R# )   Nr   )	ri   rB   r   r   r"   r?   r   r   rA   )rR   rB   r   s   &&&r'   ra  AbstractEntityRegistry.__init__  s    
  & 7 7KK6)+	$ ;;;D111V5H5H5H }}  !4!4R!8!?!?@@$*$7$76==:J$J!$*$7$7''+22; %! !%		Dr)   c                   V ^8  d   QhRR/# r  r%   )r&   s   "r'   r(   r    s     > >%; >r)   c                	X    V P                   P                  4       V P                  ,          # r+   )rB   rJ  r   r]   s   &r'   rJ  *AbstractEntityRegistry._truncate_recursive  s    {{..0==r)   c                   V ^8  d   QhRR/# )r!   r$   r2   r%   )r&   s   "r'   r(   r    s     # #5 #r)   c                	$    V P                  ^ 4      # )r   )rc   r]   s   &r'   root_entity"AbstractEntityRegistry.root_entity  s    ""r)   c                   V ^8  d   QhRR/# )r!   r$   r#   r%   )r&   s   "r'   r(   r    s      \ r)   c                	    V # r+   r%   r]   s   &r'   r  "AbstractEntityRegistry.entity_path  s    r)   c                   V ^8  d   QhRR/# )r!   r$   r   r%   )r&   s   "r'   r(   r    s     " " "r)   c                	.    V P                   P                  # r+   )r   r   r]   s   &r'   r   AbstractEntityRegistry.mapper  s    {{!!!r)   c                   V ^8  d   QhRR/# )r!   r$   r>   r%   )r&   s   "r'   r(   r    s      $ r)   c                	    R # )Tr%   r]   s   &r'   __bool__AbstractEntityRegistry.__bool__  s    r)   c                    V ^8  d   QhRRRR/# )r!   r   r   r$   z:Union[_PathElementType, _PathRepresentation, PathRegistry]r%   )r&   s   "r'   r(   r    s     . ..	C.r)   c                	    \        V\        \        34      '       d   V P                  V,          # V\        P
                  9   d"   \        V \        P
                  V,          4      # \        W4      # r+   )rC  ra   r   r"   r   r   r   r   r   s   &&r'   rF  AbstractEntityRegistry._getitem  sU     fsEl++99V$$y((( y'8'8'@AA--r)   )r   r   ri   rA   rB   r"   N)ri   rB   r   r"   r   rA   )r#  r&  r'  r(  r*  r,  r1   r.  ra  rJ  r1  r  r  r   r  rF  r   r   r3  r%   r)   r'   r   r     s    I JI--	!!$$,*\> # #   " ".  r)   r   c                      ] tR tRtRtRtR# )r   i  Tr%   N)r#  r&  r'  r(  rL  r3  r%   r)   r'   r   r     s	     Mr)   r   c                  .    ] tR tRtR R ltR R ltRtR# )_ERDicti  c                   V ^8  d   QhRR/# )r!   registryr   r%   )r&   s   "r'   r(   _ERDict.__annotate__  s     ! !!6 !r)   c                	    Wn         R # r+   r  )rR   r  s   &&r'   ra  _ERDict.__init__  s     r)   c                    V ^8  d   QhRRRR/# )r!   ri   r   r$   r   r%   )r&   s   "r'   r(   r    s      s | r)   c                	:    \        V P                  V4      ;W&   pV# r+   )r   r  )rR   ri   items   && r'   __missing___ERDict.__missing__  s    's;;	Dr)   r  N)r#  r&  r'  r(  ra  r  r3  r%   r)   r'   r  r    s    ! r)   r  c                  n   a  ] tR tRtR	tRtR V 3R lltR R ltR R lt]	'       g	   ]t
R	tV ;t# R	tV ;t# )
r   i   Tc                    V ^8  d   QhRRRR/# r  r%   )r&   s   "r'   r(   "CachingEntityRegistry.__annotate__  s     $ $1$ )$r)   c                	F   < \         SV `  W4       \        V 4      V n        R # r+   )superra  r  _cache)rR   rB   r   r"  s   &&&r'   ra  CachingEntityRegistry.__init__  s    
 	(dmr)   c               $    V ^8  d   QhRRRRRR/# )r!   ri   r   defaultr$   r%   )r&   s   "r'   r(   r    s!     - -s -S -S -r)   c                	8    V P                   P                  W4      # r+   )r  pop)rR   ri   r  s   &&&r'   r  CachingEntityRegistry.pop  s    {{s,,r)   c                    V ^8  d   QhRRRR/# rs  r%   )r&   s   "r'   r(   r    s     ' 's 's 'r)   c                	    \        V\        \        34      '       d   V P                  V,          # \        V\        4      '       d   \        W4      # V P                  V,          # r+   )rC  ra   r   r"   r   r   r  r   s   &&r'   rF  CachingEntityRegistry._getitem  sI    fsEl++99V$$	** ..;;v&&r)   )r  )r#  r&  r'  r(  r*  rL  ra  r  rF  r   r   r3  __classcell__)r"  s   @r'   r   r      s2     IM$ $-'  r)   r   c                    V ^8  d   QhRRRR/# r/   r%   )r&   s   "r'   r(   r(   !  s     0 00	*0r)   c                    R # r+   r%   r,   s   &r'   path_is_entityr  !  s    ,/r)   c                    V ^8  d   QhRRRR/# )r!   r"   r#   r$   zTypeGuard[PropRegistry]r%   )r&   s   "r'   r(   r(   %  s    LL|L0GLr)   c                    R # r+   r%   r,   s   &r'   path_is_propertyr  %  s    r)   r-  )P__conditional_annotations__r)  
__future__r   	functoolsr   	itertoolsr   loggingoperatortypingr   r   r   r   r	   r
   r   r   r   r   r    r   r   _typingr   r   r   sqlr   sql.cache_keyr   r   
interfacesr   r   r   relationshipsr   r   r   sql.elementsr   sql.visitorsr   util.typingr   r   r-   r1   
attrgetterr6   r   r   r   r@   r   r   	getLoggerr#  rm   r9   r;   r.  r<  r#   r5  rC   rD   InspectionAttrr   r   r   r   r   r  r   r  r  )r  s   @r'   <module>r     s   E "                  ,    ',/3!6,'*'CO !!),G##K0I s)-/II  ,c12  ""<= "5)CS)H#IJ  !* !$ #G;; G;T?< ?#< #L !N ''c .SL SlH< HV]\ ]@0 d38n 2 > 0 M ((5N**=9r)   