+
    i                   	   R 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 ^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/ ^R%IH0t0 ^R
IHt1 ^R&IH2t2 ^R'IH3t3 ^R(IH4t4 ^RIHt ^RI4Ht5 ^R)I4H6t6 ^R*I7H8t8 ^R+I7H9t9 ^R,I:H;t; ]
'       d   ^R-I<H=t= ^R.IH>t> ^R/I?H@t@ RaR1 ltA]P                  P                  R0R0R27       ! R3 R4]&4      4       tD]3P                  ]P                  P                  R5R0R27       ! R6 R7]&4      4       4       tF]3P                  ]P                  P                  R5R87       ! R9 R:]F4      4       4       tG]3P                  ]P                  P                  R5R5R;7      ]P                  P                  R5R5R5R<7      ]P                  P                  R5R=7       ! R> R?]&4      4       4       4       4       tH ! R@ RA4      tI ! RB RC]&4      tJ]3P                  ]P|                  P                  R5R=7       ! RD RE]&4      4       4       tK]3P                  ]P|                  P                  RFRG7      ]P|                  P                  RRG7       ! RH RI]J4      4       4       4       tL]3P                  ]P|                  P                  R5RG7      ]P|                  P                  RJRG7      ]P|                  P                  RKRG7      ]P|                  P                  RLRG7      ]P|                  P                  RMRG7       ! RN RO]J]P                  ]3P                  4      4       4       4       4       4       4       tO ! RP RQ4      tP ! RR RS]J4      tQ]P|                  P                  RTRG7       ! RU RV]Q4      4       tR]3P                  ]P|                  P                  RWRG7       ! RX RY]Q4      4       4       tS]3P                  ]P|                  P                  RZRG7      ]P|                  P                  R0RG7       ! R[ R\]J4      4       4       4       tT]3P                  ]P|                  P                  R]RG7       ! R^ R_]Q]P                  4      4       4       tUR` tVR# )bzTsqlalchemy.orm.interfaces.LoaderStrategy
implementations, and related MapperOptions.)annotationsN)Any)Dict)Optional)Tuple)TYPE_CHECKING)Union)
attributes)exc)
interfaces)loading)path_registry)
properties)query)relationships)
unitofwork)util)_DEFER_FOR_STATE)_RAISE_FOR_STATE)_SET_DEFERRED_EXPIRED)ATTR_WAS_SET)LoaderCallableStatus)PASSIVE_OFF)PassiveFlag)_column_descriptions)ORMCompileState)ORMSelectCompileState)QueryContext)LoaderStrategy)StrategizedProperty)_state_session)InstanceState)Load)_none_only_set)AliasedClass)event)inspect)log)sql)visitors)LABEL_STYLE_TABLENAME_PLUS_COL)Select)Literal)Mapper)RelationshipProperty)ColumnElementFc	                z  aaaa . p
T;'       d    V P                   oV'       d(   V P                  '       d   V
P                  \        4       V P                  V P
                  P                  9   dA   V P
                  P                  V P                  ,          w  ooV
P                  VV3R  l4       V'       d    V
P                  \        P                  4       V'       d=   V P                  oS'       d)   V P                  '       d   V
P                  VV3R l4       VP                   EF  pWP                  P                  V P                  4      J g   K.  VP                  P                  V P                  4      '       d   K[  \         P"                  ! VP$                  V P                  3RT RSRTRTRT;'       d1    V P                  ;'       g    V P&                  \(        P*                  J RTRTR	TR
TRV'       * ;'       g    V P,                  '       * RV P.                  /V	B pV
 F  pV! W4       K  	  EK  	  R# )c                H   < \         P                  ! WP                  S3/ SB # N)orm_util_validator_eventskey)descpropfnoptss   &&ڂC:\Users\petid\OneDrive\Desktop\Maestro\MAESTRO CLAUDE\MAESTRO\maestro-backend\venv\Lib\site-packages\sqlalchemy\orm\strategies.py<lambda>%_register_attribute.<locals>.<lambda>\   s!    x99hh &*     c                4   < \         P                  ! V SS4      # r2   )r	   backref_listeners)r6   r7   backrefuselists   &&r:   r;   r<   j   s    :#?#?'7$r=   parent_tokenrA   compare_function	useobjecttrackparenttypecallable	callable_active_history
impl_classsend_modified_eventsdocN)rA   single_parentappendsingle_parent_validatorr5   parent
validatorsr   track_cascade_eventsback_populates_effective_sync_backrefself_and_descendants_propsgetclass_manager_attr_has_implr	   register_attribute_implclass_	directionr   	ONETOMANYviewonlyrK   )r7   mapperrD   rC   rF   rG   proxy_propertyrH   rI   kwlisten_hooksmr6   hookr@   r8   r9   rA   s   &&&&&&&&&,    @@@@r:   _register_attributerd   F   s    L((DLLGT'''34xx4;;)));;))$((3D	
 J;;< %%t333" ((88<<HH
 
//00::55 "  	
 "2 $ &  && > >~~)=)== * $  . &  *3]%G%G$--6G!" HH#$ %D* %T  %3 )r=   )
instrumentdeferredc                  @   a  ] tR t^tRtRtV 3R ltRR ltR tRt	V ;t
# )UninstrumentedColumnLoaderzRepresent a non-instrumented MapperProperty.

The polymorphic_on argument of mapper() often results in this,
if the argument is against the with_polymorphic selectable.

c                	\   < \         SV `  W4       V P                  P                  V n        R # r2   )super__init__parent_propertycolumnsselfrO   strategy_key	__class__s   &&&r:   rk   #UninstrumentedColumnLoader.__init__   s#    .++33r=   c                	    V P                    F/  pV'       d   VP                   V,          pVP                  W4       K1  	  R # r2   )rm   _append_dedupe_col_collection)	ro   compile_statequery_entitypathloadoptadaptercolumn_collectionkwargscs	   &&&&&&&, r:   setup_query&UninstrumentedColumnLoader.setup_query   s1     AOOA&77M r=   c	                	    R # r2    	ro   contextrv   rw   rx   r^   resultry   
populatorss	   &&&&&&&&&r:   create_row_processor/UninstrumentedColumnLoader.create_row_processor   s     	r=   )rm   r2   )__name__
__module____qualname____firstlineno____doc__	__slots__rk   r}   r   __static_attributes____classcell__rq   s   @r:   rh   rh      s$     I4N r=   rh   Tc                  F   a  ] tR t^tRtRtV 3R ltRR ltR tR t	Rt
V ;t# )	ColumnLoaderz8Provide loading behavior for a :class:`.ColumnProperty`.c                	   < \         SV `  W4       V P                  P                  V n        \	        V P                  R 4      V n        R# )composite_classN)rj   rk   rl   rm   hasattris_compositern   s   &&&r:   rk   ColumnLoader.__init__   s9    .++33#D$8$8:KLr=   c	                	J   V P                    FP  p
V'       d5   V'       d   VP                  V
4      p
V
f    R # MVP                   V
,          p
VP                  W4       KR  	  V P                   ^ ,          pV'       d   VP                   V,          pVf   R # WV P                  &   R # r2   )rm   adapt_check_presentrt   rl   )ro   ru   rv   rw   rx   ry   rz   memoized_populatorscheck_for_adaptr{   r|   fetchs   &&&&&&&&&,  r:   r}   ColumnLoader.setup_query   s     A"33A6Ay !  *A77M  QOOE*E} 49D001r=   c                	   R V n         V P                  ^ ,          P                  pV P                  P                  ;'       gn    V P                  ^ ,          P
                  ;'       gI    VP                  RJ;'       d3    VP                  P                  VP                  R4      V P                  J p\        V P                  VRVP                  VR7       R# )TNF)rD   rC   rH   )is_class_levelrm   typerl   rH   primary_keyversion_id_col_columntopropertyrV   rd   compare_values)ro   r^   coltyperH   s   &&  r:   init_class_attribute!ColumnLoader.init_class_attribute   s    ",,q/&&   //  ||A**  %%T1 ( (,,001F1FM''( 	 	  $33)	
r=   c	                	,   V P                    F_  p	V'       d   VP                   V	,          p	VP                  V	R 4      p
V
'       g   K:  VR,          P                  V P                  V
34        R# 	  VR,          P                  V P                  R34       R# FquickexpireTN)rm   _getterrM   r5   )ro   r   rv   rw   rx   r^   r   ry   r   colgetters   &&&&&&&&&  r:   r   !ColumnLoader.create_row_processor  su     <<Cooc*^^C/Fv7#**DHHf+=>   x ''4(89r=   )rm   r   r   )rm   r   F)r   r   r   r   r   r   rk   r}   r   r   r   r   r   s   @r:   r   r      s)     C)IM
:B
,: :r=   r   )query_expressionc                  :   a  ] tR tRtV 3R ltR tR tR tRtV ;t	# )ExpressionColumnLoaderi  c                	Z  <a \         SV `  W4       \        P                  ! 4       P	                  R 4      o\
        ;QJ dA    V3R lV P                  P                   4       F  '       g   K   RV n        R # 	  RV n        R # ! V3R lV P                  P                   4       4      V n        R # )Nc              3  N   <"   T F  qP                  S4      '       * x  K  	  R # 5ir2   )compare).0r|   nulls   & r:   	<genexpr>2ExpressionColumnLoader.__init__.<locals>.<genexpr>)  s!      ,
)EA		$)Es   "%TF)	rj   rk   r(   r   labelanyrl   rm   _have_default_expression)ro   rO   rp   r   rq   s   &&&@r:   rk   ExpressionColumnLoader.__init__"  s{    .
 xxz%(+ ,
)-)=)=)E)E,
%% ,
)-)=)=)E)E,
 )
%r=   c                	   R p	V'       d    VP                   '       d   VP                   p	M(V P                  '       d   V P                  P                  p	V	f   R # V	 F/  p
V'       d   VP                  V
,          p
VP	                  W4       K1  	  V	^ ,          pV'       d   VP                  V,          pVf   R # WV P                  &   R # r2   )_extra_criteriar   rl   rm   rt   )ro   ru   rv   rw   rx   ry   rz   r   r{   rm   r|   r   s   &&&&&&&&,   r:   r}   "ExpressionColumnLoader.setup_query-  s     w...--G*****22G?AOOA&77M 
 
OOE*E} 49D001r=   c	                	l   V'       d   VP                   '       d   VP                   p	V	 F_  p
V'       d   VP                  V
,          p
VP                  V
R 4      pV'       g   K:  VR,          P                  V P                  V34        R# 	  VR,          P                  V P                  R34       R# R# R# r   )r   rm   r   rM   r5   )ro   r   rv   rw   rx   r^   r   ry   r   rm   r   r   s   &&&&&&&&&   r:   r   +ExpressionColumnLoader.create_row_processorR  s     w...--G!//#.CU36w'..&/AB  8$++TXXt,<= /7r=   c                	    R V n         \        V P                  VRV P                  ^ ,          P                  P
                  RR7       R# )TF)rD   rC   accepts_scalar_loaderN)r   rd   rl   rm   r   r   ro   r^   s   &&r:   r   +ExpressionColumnLoader.init_class_attributel  s;    "  !\\!_11@@"'	
r=   )r   r   )
r   r   r   r   rk   r}   r   r   r   r   r   s   @r:   r   r     s    	
#:J>4	
 	
r=   r   )rf   re   )rf   re   	raiseload)
do_nothingc                  R   a  ] tR tRtRtR
tV 3R ltR tR tRR lt	R t
R tR	tV ;t# )DeferredColumnLoaderix  zAProvide loading behavior for a deferred :class:`.ColumnProperty`.c                	"  < \         SV `  W4       \        V P                  R 4      '       d   \	        R4      hV P
                  P                  RR4      V n        V P                  P                  V n        V P                  P                  V n	        R# )r   z8Deferred loading for composite types not implemented yetr   FN)
rj   rk   r   rl   NotImplementedErrorstrategy_optsrV   r   rm   grouprn   s   &&&r:   rk   DeferredColumnLoader.__init__  sv    .4''):;;%J  ++//UC++33))//
r=   c	           
     	p   VP                   '       d   VP                  P                  P                  '       dc   V P                  VP                  P                  P                  9   d4   V P
                  P                  R4      P                  VVVVVVVV4       R# V P                  '       gf   V P                  '       d   V P
                  P                  p	MV P
                  P                  p	VR,          P                  V P                  V	34       R# VR,          P                  V P                  R34       R# )rf   Fnewr   N)rf   Fre   T)refresh_stater   _compile_options_only_load_propsr5   rl   _get_strategyr   r   r   _raise_column_loader_deferred_column_loaderrM   )
ro   r   rv   rw   rx   r^   r   ry   r   set_deferred_for_local_states
   &&&&&&&&& r:   r   )DeferredColumnLoader.create_row_processor  s    * !!!..???GMM::KKK  ..;""	 $$$~~~((== -
 ((@@ - u$$dhh0L%MNx ''5(9:r=   c           	     	    R V n         \        V P                  VRV P                  ^ ,          P                  P
                  V P                  RR7       R# )TF)rD   rC   rG   load_on_unexpireN)r   rd   rl   rm   r   r   _load_for_stater   s   &&r:   r   )DeferredColumnLoader.init_class_attribute  sD    "  !\\!_11@@**"	
r=   c	           	     	   VP                   P                  '       d   V P                  P                  '       g   V'       d?   \	        V P
                  4      P                  V P                  P                  4      '       gg   V'       dF   V P                  '       d4   VP                  P                  R V P                  ,          R4      '       g   V'       dF   V P                  V9   d5   V P                  P                  R4      P                  ! VVVVVVV3/ V	B  R# V P                  '       d   \         WpP                  &   R# V P"                  '       g   \$        WpP                  &   R# \&        WpP                  &   R# )zundefer_group_%sFNr   )compile_options_render_for_subqueryrl   _renders_in_subqueriessetrm   intersectionrO   _should_undefer_in_wildcardr   
local_optsrV   r5   r   r}   r   r   r   r   r   )
ro   ru   rv   rw   rx   ry   rz   r   only_load_propsr`   s
   &&&&&&&&&,r:   r}    DeferredColumnLoader.setup_query  s&    --BBB((??? %22KK;; 
 JJJ&&**&3U   DHH$?  ..;k !#     8M 4 458H 4 458H 4 45r=   c                	   VP                   '       g   \        P                  # V\        P                  ,          '       g   \        P
                  # VP                  P                  pV P                  '       d~   VP                   Uu. uFf  p\        V\        4      '       g   K  \        VP                  \        4      '       g   K=  VP                  V P                  8X  g   KZ  VP                   NKh  	  ppMV P                   .pV Uu. uF  qfVP                  9   g   K  VNK  	  pp\        V4      pVf>   \         P"                  ! R\$        P&                  ! V4      : RV P                   : R24      hV P(                  '       d   V P+                  WR4       \,        P.                  ! VP                  V\1        V4      \2        4       \        P4                  # u upi u upi )NParent instance zB is not bound to a Session; deferred load operation of attribute '' cannot proceedraise)r5   r   
ATTR_EMPTYr   SQL_OKPASSIVE_NO_RESULTmanagerr^   r   iterate_properties
isinstancer   strategyr   
unmodifiedr    orm_excDetachedInstanceErrorr3   	state_strr   _invoke_raise_loadr   load_scalar_attributesr   r   r   )	ro   statepassivelocalparentptoloadkr   sessions	   &&&      r:   r   $DeferredColumnLoader._load_for_state  ss   yyy'222++++'999mm**::: %777Aa!45  qzz+?@  GGtzz)	 7  F hhZF #<Fq5+;+;&;F< '?// %%e,dhh8  >>>##EG<&&LL%U[	
 $0009 =s$   G#GG"GGGc                	8    \         P                  ! R V : R24      h)'z(' is not available due to raiseload=Truesa_excInvalidRequestErrorro   r   r   lazys   &&&&r:   r   'DeferredColumnLoader._invoke_raise_load'  s    ((=AC
 	
r=   )rm   r   r   r   )rm   r   r   r2   )r   r   r   r   r   r   rk   r   r   r}   r   r   r   r   r   s   @r:   r   r   x  s5     L/I01;f

1If&1P
 
r=   r   c                  J    ] tR tRtRtRR R llt]P                  3R ltRt	R# )	LoadDeferredColumnsi-  z7serializable loader object used by DeferredColumnLoaderc                    V ^8  d   QhRRRR/# )   r5   strr   boolr   )formats   "r:   __annotate__ LoadDeferredColumns.__annotate__0  s     # #C #D #r=   c                	    Wn         W n        R # r2   r5   r   )ro   r5   r   s   &&&r:   rk   LoadDeferredColumns.__init__0  s    "r=   c                	    V P                   pVP                  P                  pVP                  V,          pV P                  '       d   RpMRpVP                  V4      pVP                  W4      # )rf   )rf   Tr   )r   T)r  r   )r5   r   r^   rU   r   r   r   )ro   r   r   r5   r   r7   rp   r   s   &&&     r:   __call__LoadDeferredColumns.__call__4  sc    hhmm**!!#&>>>L FL%%l3''77r=   r  Nr   )
r   r   r   r   r   rk   r	   r   r  r   r   r=   r:   r  r  -  s    A# '1&<&< 8 8r=   r  c                  6   a  ] tR tRtRtRtV 3R ltR tRtV ;t	# )AbstractRelationshipLoaderiE  z0LoaderStratgies which deal with related objects.c                	   < \         SV `  W4       V P                  P                  V n        V P                  P                  V n        V P                  P
                  V n        V P                  P                  V n        R # r2   )rj   rk   rl   r^   entitytargetrA   rn   s   &&&r:   rk   #AbstractRelationshipLoader.__init__J  s\    .**11**11**11++33r=   c	           
     	d    V P                   P                  R4      P                  VVVVVVVV4      # )r	  ))r	  	immediate)rl   r   r   r   s	   &&&&&&&&&r:   #_immediateload_create_row_processor>AbstractRelationshipLoader._immediateload_create_row_processorQ  sC     ##11$


	
	
r=   )r  r^   r  rA   )r^   r  rA   r  )
r   r   r   r   r   r   rk   r#  r   r   r   s   @r:   r  r  E  s    :7I4
 
r=   r  c                      ] tR tRtRtRtR# )DoNothingLoaderij  zRelationship loader that makes no change to the object's state.

Compared to NoLoader, this loader does not initialize the
collection/attribute to empty/none; the usual default LazyLoader will
take effect.

r   N)r   r   r   r   r   r   r   r=   r:   r&  r&  j  s    r=   r&  noload)r	  c                  *    ] tR tRtRtRtR tR tRtR# )NoLoaderiv  zIProvide loading behavior for a :class:`.Relationship`
with "lazy=None".

c                	n    R V n         \        V P                  VR V P                  P                  R7       R# )T)rD   rF   N)r   rd   rl   collection_classr   s   &&r:   r   NoLoader.init_class_attribute  s0    "  -->>		
r=   c	                	\   a  V 3R  lp	VR,          P                  S P                  V	34       R# )c                   < SP                   '       d$   \        P                  ! WSP                  4       R # R VSP                  &   R # r2   )rA   r	   init_state_collectionr5   )r   dict_rowro   s   &&&r:   invoke_no_load5NoLoader.create_row_processor.<locals>.invoke_no_load  s-    |||00txxH"&dhhr=   r   N)rM   r5   )
ro   r   rv   rw   rx   r^   r   ry   r   r2  s
   f&&&&&&&& r:   r   NoLoader.create_row_processor  s&    	' 	5  $((N!;<r=   )r   Nr   )	r   r   r   r   r   r   r   r   r   r   r=   r:   r)  r)  v  s    
 I
=r=   r)  selectr   raise_on_sqlbaked_selectc                     a  ] tR tRt$ RtRtR]R&   R]R&   R]R&   R]R&   R	]R
&   R V 3R lltR tR t	R t
R tRRRR]P                  3R ltR t]P                   ! R4      R 4       tR tRtV ;t# )
LazyLoaderi  zlProvide loading behavior for a :class:`.Relationship`
with "lazy=True", that is loads when first accessed.


_lazywhere_rev_lazywhere_bind_to_col_rev_bind_to_colzColumnElement[bool]zDict[str, ColumnElement[Any]]RelationshipProperty[Any]rl   c                    V ^8  d   QhRRRR/# )r  rO   r>  rp   zTuple[Any, ...]r   )r  s   "r:   r  LazyLoader.__annotate__  s     : :/:?N:r=   c                	B  < \         SV `  W4       V P                  R ,          R8H  V n        V P                  R ,          R8H  V n        \        V P                  4      P                  V n        V P                  P                  pVP                  4       w  V n        V n        V n        VP                  RR7      w  V n        V n        V n        V P                  P"                  '       dX   \$        P&                  ! V P                  P"                  4       Uu. uF  p\(        P*                  ! VRR/4      NK  	  upV n        MRV n        V P.                  P1                  RW P                  4       V P                  '       * ;'       dh    V P2                  '       * ;'       dO    V P                  P4                  ^ ,          P7                  V P                  RRV P8                  P:                  R	7      V n        V P<                  '       d   \?        V P                  4       Fc  pWPP8                  P:                  9   g   K  V P8                  P:                  V,           F#  pV P                  V,          V P                  V&   K%  	  Ke  	  V P.                  P1                  R
V 4       R# R# u upi )r	  r   r6  T)reverse_direction
_orm_adaptNz%s lazy loading clause %sFuse_proxiescompare_keysequivalentsz4%s will use Session.get() to optimize instance loads) rj   rk   r   _raise_always_raise_on_sqlr&   r  is_aliased_classrl   _join_conditioncreate_lazy_clauser:  r<  _equated_columnsr;  r=  _rev_equated_columnsorder_byr   to_listsql_util_deep_annotate	_order_byloggerinforA   _get_clauser   r^   _equivalent_columnsuse_getlist)ro   rO   rp   join_conditionelemr   r|   rq   s   &&&    r:   rk   LazyLoader.__init__  s0    	.!//77B!//7>I ' 4 E E--==
 --/		
O! ---E		
!% ((( !LL)=)=)F)FGGD ''|T.BCGDN
 "DN4dOOL %%%  LL  ''*22 " KK;;	 3  	 <<<D112++999![[<<SAA373H3H3M--a0 B 3
 KKF 7s   "Jc           
     	   R V n         V P                  P                  pV P                  P                  '       d   R pRpMOV P                  P                  \
        P                  Jg   V P                  '       g   V'       d   R pRpMRpR pMR;r4\        V P                  VR V P                  V P                  P                  VVR7       R# )TF)rD   rG   rF   rH   _deferred_historyN)r   rl   _legacy_inactive_history_stylerH   r[   r   	MANYTOONErX  rd   r   r+  )ro   r^   r_  rH   r^  s   &&   r:   r   LazyLoader.init_class_attribute   s    "   ?? 	' ...!N %   ***2F2FF<<<-!%$)!!&$(!166N  **-->>)/	
r=   c                	   aa \         P                  ! V P                  R R/4      pYP                  upo. oR p\        P
                  ! V/ RV/4       VV3R lp\        P                  ! V/ RV/4      pVS3# )rC  Tc                    R V n         R# FN)unique)	bindparams   &r:   visit_bindparamFLazyLoader._memoized_attr__simple_lazy_clause.<locals>.visit_bindparam+  s
    $Ir=   rf  c                   < V P                   S9   d2   SP                  V P                  SV P                   ,          R 34       R # V P                  f+   SP                  V P                  R V P                  34       R # R # r2   )_identifying_keyrM   r5   callablevalue)rf  bind_to_colparamss   &r:   rg  rh  0  sh    ))[8!#I$>$>? ##+y}}dIOODE ,r=   )rQ  rR  r:  r<  r)   traversecloned_traverse)ro   	lazywhere	criterionrg  rm  rn  s   &   @@r:   "_memoized_attr__simple_lazy_clause-LazyLoader._memoized_attr__simple_lazy_clause"  s    ++OOlD1
	 #,->->	;	% 	)R+)GH
	F ,,rK9
	 &  r=   c                	2   V P                   w  r4Vf-   \        P                  ! Y4 UUUu. uF  w  rVquNK	  	  uppp4      # V P                  P                  pVP                  4       p	\        P                  ! V	4      p
V\        P                  ,          '       d   V\        P                  ,          p/ pV FX  w  rVpVeK   V'       d1   V\        P                  ,          '       d   VP                  WWb4      pMVP                  WWb4      pW{V&   KZ  	  W;3# u upppi r2   )_simple_lazy_clauserQ  adapt_criterion_to_nullrl   rO   objr	   instance_dictr   INIT_OKLOAD_AGAINST_COMMITTED#_get_committed_state_attr_by_column_get_state_attr_by_column)ro   r   r   rr  
param_keysr5   identrl  r^   or0  rn  s   &&&         r:   _generate_lazy_clause LazyLoader._generate_lazy_clauseB  s    $ 8 8	=33D$5CCD  %%,,IIK((+[(((({***G!+C w)K)KKK"FFeE #<<eE  3K ",   3 Es   Dc                	@    \         P                  ! R V : RV: R 24      h)r  z ' is not available due to lazy='r  r  s   &&&&r:   r   LazyLoader._invoke_raise_loadb  s    ((8<dC
 	
r=   Nc                	   VP                   '       gQ   V P                  P                  '       g   VP                  '       d   VP                  '       g   \
        P                  # VP                   '       * pR p	V P                  ;'       d!    V'       * ;'       g    VP                  '       * p
V\        P                  ,          '       g	   V
'       d&   V\        P                  ,          '       g   V'       d   \
        P                  # V P                  '       dU   V\        P                  ,          '       g8   V
'       d   V\        P                   ,          '       d   V P#                  WR4       \%        V4      pV'       gk   V\        P                  ,          '       d   \
        P                  # \&        P(                  ! R\*        P,                  ! V4      : RV P                   : R24      hV
'       Ed   V P/                  WV4      p	\
        P                  V	9   d   \
        P                  # \
        P0                  V	9   d   \
        P0                  # V P2                  P4                  '       g    \6        P8                  ! V	4      '       d   R # M\6        P:                  ! V	4      '       d   R # V P                   VP<                  9   d.   V\        P>                  ,          '       g   \
        P@                  # VPC                  V PD                  V	VVR7      pVe   V\
        PF                  J d   R # V# V\        P                  ,          '       d   V\        P                   ,          '       g   \
        P                  # V PI                  VVV	VVVVVV4	      # )Nr   r   z> is not bound to a Session; lazy load operation of attribute 'r   )r   lazy_loaded_from)%r5   rl   load_on_pending_load_pending
session_idr   r   rX  r   r   r   r	   NON_PERSISTENT_OKr   rH  NO_RAISERELATED_OBJECT_OKr   r    r   r   r3   r   _get_ident_for_use_get	NEVER_SETr^   allow_partial_pksr#   r   
issupersetdictDEFERRED_HISTORY_LOADr   _identity_lookupr  PASSIVE_CLASS_MISMATCH_emit_lazyload)ro   r   r   rx   extra_criteriaextra_optionsalternate_effective_pathexecution_optionspendingprimary_key_identityrX  r  instances   &&&&&&&&     r:   r   LazyLoader._load_for_stateg  s    yyy((888+++###'222ii-#,,OOK$N$Nw7N7N3N+,,,,W*66667'999 k2222 [:::: ##EG< '----+===// %%e,dhh8  7#'#>#>$  $559MM+===%//3GG+555
 ;;000!../CDD E ",,-ABB EJJ&+"C"CCC+888 //$!&	 0 H #3JJJ#Ok0000!>!>>>+==="" $

 
	
r=   c           
     	<   VP                   P                  pV\        P                  ,          '       d   VP                  pMVP
                  pVP                  pV P                  P                   Uu. uF  pV! W&V P                  V,          VR 7      NK!  	  up# u upi )r   )	r   r^   r   r{  r|  r}  r  r   rM  )ro   r  r   r   instance_mapperget_attrr0  pks   &&&&    r:   r  !LazyLoader._get_ident_for_use_get  s    --..[7777&JJH&@@H

 kk--
- U4#8#8#<gN-
 	
 
s   1%Bzsqlalchemy.orm.strategy_optionsc
                	
  a a \         P                  P                  oS P                  P	                  4       p
\
        P                  ! V
.V
P                  \        \        P                  R 7      p\        P                  pVRRRV/,          pS P                  P                  e1   VP                  S P                   S P                  P                  4      pVP"                  '       * pV'       g   V\$        P&                  ,          '       d   \         P(                  ! RR/4      Vn        S P,                  pVP.                  '       g   V'       d   VP0                  '       d   Vf   VP2                  S P                  ,          pMVS P                  ,          pVP.                  pV'       d>   VP0                  '       d,   RpV\4        P6                  ! S P                  V4      3,          pVVn        M?Vf)   VP                   P:                  S P                  ,          pMVS P                  ,          pV'       d   V;P8                  V,          un        V;P<                  RV/,          un        V'       d]   S P>                  '       d0   V\@        PB                  ,          '       g   S PE                  W$R4       \F        PH                  ! VVVVV	R7      # S PJ                  '       d   S PJ                  Vn&        V V3R	 lpV;PN                  VS P                  33,          un'        S PQ                  W$4      w  ppV	'       d$   \         PR                  PU                  V	R
V/4      p	MR
V/p	S P"                  VPV                  9   d.   V\@        PX                  ,          '       g   \Z        P\                  # V'       d=   \         P^                  ! \4        P`                  VPc                  4       4      '       d   R# M;\         P^                  ! \4        Pd                  VPc                  4       4      '       d   R# S P>                  '       d0   V\@        PB                  ,          '       g   S PE                  W$R4       V3Vn3        VPi                  VVV	R7      pVPk                  4       Pm                  4       Po                  4       pS Pp                  '       d   V# \s        V4      pV'       d8   V^8  d(   \         Pt                  ! RS P                  ,          4       V^ ,          # R# ))_raw_columns_propagate_attrs_label_styler   _invoke_all_eagersF_lazy_loaded_fromN	autoflush_current_pathr6  )load_optionsr  c                  < SP                   P                   F  pVP                  \        P                  J g   K#  VP
                  '       g   K7  \        VP                  \        4      '       d   KY  SP                  P                  V P                  P                  VP                  ,          4      P                  V4      P                  V 4       K  	  R # r2   )rl   _reverse_propertyr[   r   r`  _use_getr   r   r9  r"   _construct_for_existing_pathr   r  rO   lazyloadprocess_compile_state)compile_contextrevro   strategy_optionss   & r:   _lazyload_reverse4LazyLoader._emit_lazyload.<locals>._lazyload_reverseB  s    ++== MMZ%9%99&s||Z@@$))FF'77EEJJ hsm$9$9/$J >r=   _sa_orm_load_options)r  zKMultiple rows returned with uselist=False for lazily-loaded attribute '%s' );r   	preloadedorm_strategy_optionsr  __clause_element__r+   _create_raw_selectr  r*   r   default_compile_optionsr   default_load_optionsrl   	secondaryselect_fromr^   r5   r	   NO_AUTOFLUSHimmutabledict_execution_optionsrX  r  r   	load_pathr3   LoaderCriteriaOption_with_options_path_registryr   rI  r   r  r   r   load_on_pk_identityrS  _order_by_clauses_with_context_optionsr  
EMPTY_DICT
merge_withr  r  r   r   has_intersection	_none_setvalues
_never_set_where_criteriaexecutere  scalarsallrA   lenwarn)ro   r  r   r  r   rx   r  r  r  r  clauseelementstmtr  r  rX  effective_pathr9   r  lazy_clausern  r   lr  s   f&&&&&&&&&            @r:   r  LazyLoader._emit_lazyload  s     >>>>668(('*;;7,DD	
 $88 %
 	

 ))5##T11;;D ii- g
 7 777&*&8&8+u9M&ND#,,'g.E.E.E'/!&1E1E!F!9$:N:N!O%%D722211$++~N  "&D%- #\\889M9MNN 6d6J6JKN-//>!BB!!!'K4H4H*H*H''G..$)"3  >>>%)^^D"	K 	"" 4 45'
 	
" #88HV $ : :!*L! '!
 HH

"k????'444$$X%7%7II J ""8#6#6HHg0D0D&D&D##ENC +~&,= ! 
 ((*..0<<<MFAq5IIJ../ ay r=   c	                	  a V P                   oVP                  P                  '       dn   VP                  P                  P
                  '       dH   V P                   VP                  P                  P
                  9   d   V P                  VVVVVVVV4      # V P                  '       d   V'       d   VP                  '       dx   \        P                  ! VP                  \        ST TVP                  '       d   VP                  V4      MR 4      S4      p	VR,          P                  V P                   V	34       R # VP                  '       g   VP                   '       d-   V3R lp
VR,          P                  V P                   V
34       R # R # )Nr   c                ,   < V P                  VS4       R # r2   )_reset)r   r0  r1  r5   s   &&&r:   reset_for_lazy_callable@LazyLoader.create_row_processor.<locals>.reset_for_lazy_callable  s     UC(r=   )r5   r  _is_user_refreshr   r   r   r#  r   r   r!   "_instance_level_callable_processorrW   LoadLazyAttribute_generate_extra_criteriarM   populate_existingalways_refresh)ro   r   rv   rw   rx   r^   r   ry   r   set_lazy_callabler  r5   s   &&&&&&&&&  @r:   r   LazyLoader.create_row_processor  sM    hh   111..???GMM::KKK;;	 	 """w73J3J3J @@$$! #222  88A!	 !" u$$dhh0A%BC&&&&*?*?*?	) u$$dhh0G%HI +@r=   )r<  rM  r:  rS  rH  rI  r=  rN  r;  rJ  r   rX  )r:  r;  _lazyload_reverse_optionrS  rX  rJ  r<  rM  r=  rN  rv  rH  rI  r   )r   r   r   r   r   r   __annotations__rk   r   rs  r  r   r   r  r   r  preload_moduler  r   r   r   r   s   @r:   r9  r9    s    
I  $#//''33..: :x 
D!@!@
 !%//u
n
 
:;[ <[zEJ EJr=   r9  c                  F    ] tR tRtRtR tR t]P                  3R lt	Rt
R# )r  i  az  semi-serializable loader object used by LazyLoader

Historically, this object would be carried along with instances that
needed to run lazyloaders, so it had to be serializable to support
cached instances.

this is no longer a general requirement, and the case where this object
is used is exactly the case where we can't really serialize easily,
which is when extra criteria in the loader option is present.

We can't reliably serialize that as it refers to mapped entities and
AliasedClass objects that are local to the current process, which would
need to be matched up on deserialize e.g. the sqlalchemy.ext.serializer
approach.

c                	L    Wn         VP                  V n        W0n        W@n        R # r2   )r5   rp   rx   r  )ro   r5   initiating_strategyrx   r  s   &&&&&r:   rk   LoadLazyAttribute.__init__  s     /<<,r=   c                	    V P                   e   \        P                  ! R4       RV P                  RV P                  RV P
                  RR/# )NzvCan't reliably serialize a lazyload() option that contains additional criteria; please use eager loading for this caser5   rp   rx   r  r   )r  r   r  r5   rp   rx   )ro   s   &r:   __getstate__LoadLazyAttribute.__getstate__  sM    *II  488D--t||b	
 	
r=   c                	    V P                   pVP                  P                  pVP                  V,          pVP                  V P
                  ,          pVP                  VVV P                  V P                  R 7      # ))rx   r  )	r5   r   r^   rU   _strategiesrp   r   rx   r  )ro   r   r   r5   r  r7   r   s   &&&    r:   r  LoadLazyAttribute.__call__  sn    hh--..%%c*##D$5$56''LL..	 ( 
 	
r=   )r  r5   rx   rp   N)r   r   r   r   r   rk   r  r	   r   r  r   r   r=   r:   r  r    s&    "-
 '1&<&< 
 
r=   r  c                  (    ] tR tRtRtRtRR ltRtR# )
PostLoaderi  z;A relationship loader that emits a second SELECT statement.Nc                	&   VP                   P                  ;'       g    \        P                  P                  V,           pVP                  4       p\        P                  ! R V/4      pV'       d#   VP                  P                  RR4      pVR	8H  p	MRpRp	Ve   V P                  P                  '       g%   \        P                  ! RV P                   R24      hVP                  P                  R\        V 4       2V4      pV	'       g   V^ 8  d   VRVV3# V	'       g'   VP!                  R\        V 4       2V^,
          /4      p\"        P$                  P'                  WV P                  4      '       d   VRWx3# W P                  ,          p
WPP                  ,          pV
P)                  VP*                  R4      '       gO   V'       d    VP,                  ^,          V8  d   VRVV3# M'VP/                  V P0                  4      '       d   VRVV3# VRWx3# )
sa_top_level_orm_contextrecursion_depthNFz'recursion_depth option on relationship z0 not valid for non-self-referential relationship_recursion_depth_loaderT)ru   current_pathr3   PathRegistryroot_get_top_level_contextr   r  r   rV   rl   _is_self_referentialr  r  r  idunionr   PostLoadpath_existscontainsr	   lengthcontains_mapperr^   )ro   r   rw   rx   
join_depthr  top_level_contextr  r  unlimited_recursionpath_w_propeffective_path_w_props   &&&&&       r:   _setup_for_recursionPostLoader._setup_for_recursion  s'   !!..LL(2G2G2L2L $::< ..'):;
 %00445FMO"1R"7"O"'&''<<<00=++, -88 
 &77;;#BtH:.O '?Q+>"%#	  '$5$;$;+BtH:6!8K%! ''T%9%9
 
 "5*;LL//0 ./C/C D##G$6$6AA(//!3j@&)'	  A '66t{{CC"%#	  t%6GGr=   r   r2   )r   r   r   r   r   r   r  r   r   r=   r:   r  r    s    EIDH DHr=   r  r"  c                  >   a  ] tR tRtRtV 3R ltR tR tR tRt	V ;t
# )ImmediateLoaderiS  c                	\   < \         SV `  W4       V P                  P                  V n        R # r2   rj   rk   rl   r  rn   s   &&&r:   rk   ImmediateLoader.__init__W  #    ...99r=   c                	Z    V P                   P                  R4      P                  V4       R# r	  N)r	  r5  rl   r   r   r   s   &&r:   r   $ImmediateLoader.init_class_attribute[  $    **!	


v
&r=   c	                	   VP                   P                  P                  '       g   R # V P                  WW@P                  4      w  p	p
ppV
'       g'   \
        P                  \        P                  ,          pM%\
        P                  \        P                  ,          p\        P                  P                  VV	V P                  V P                  V P                  VVVV4	       R # r2   )ru   r   _enable_eagerloadsr  r  r	   PASSIVE_NO_FETCH_RELATEDr   r  r   r   r  callable_for_pathrO   rl   _load_for_path)ro   r   rv   rw   rx   r^   r   ry   r   r  
run_loaderr  r  flagss   &&&&&&&&&     r:   r   $ImmediateLoader.create_row_processor`  s     $$44GGG %%gWooN	
 
 77+:N:NNE**[-A-AAE**KK  
	
r=   c	           	     	   V'       dK   \        VP                  P                  4      p	VVP                  4       3V	n        VP                  4       p
V	3pMTp
RpV P                  pV P                  P                  R4      pV Fw  w  rVP                  pV'       g
   VV9  g   K"  VP                  VVVV
VR7      pV\        \        P                  39  g   KU  VP                  V4      P                  VVV4       Ky  	  R# )r	  )r  r  r  Nr   r  )r"   rw   r  _recurser   _truncate_recursiver5   rl   r   r  r   r   r   r   get_implset_committed_value)ro   r   rw   states	load_onlyrx   r$  r  r  new_optr  r  r5   
lazyloaderr   	overwriter0  rl  s   &&&&&&&&&         r:   r"  ImmediateLoader._load_for_path  s     7<<../G  "GO (,'?'?'A$$JM'+$Mhh))778MN
 &EJJECu,"22"/-E&7 3   (::!  NN3';;ue !'r=   r  )r   r   r   r   r   rk   r   r   r"  r   r   r   s   @r:   r  r  S  s"    I:'
(
T* *r=   r  subqueryc                     a  ] tR tRtRtV 3R ltR tR tR tR t	R t
R tR	 t ! R
 R4      tR tR tR tR tRtV ;t# )SubqueryLoaderi  c                	\   < \         SV `  W4       V P                  P                  V n        R # r2   r  rn   s   &&&r:   rk   SubqueryLoader.__init__  r  r=   c                	Z    V P                   P                  R4      P                  V4       R# r  r  r   s   &&r:   r   #SubqueryLoader.init_class_attribute  r  r=   c                	   TpVP                   p\        P                  ! V^ ,          4      pV P                  P	                  V4      '       d0   V P
                  V^,          J d   V P                  V P
                  rM	Yb^,          rV'       d|   VP                  V,          P                  P                  V,          p	\        V4      \        V	4      ,
          p
V
'       d*   V	\        P                  P                  W*) R 4      ,          p	MTp	VP                  pV Uu. uFE  p\        V	P                   ^ ,          P                  VP                   V,          P"                  4      NKG  	  ppW}W3# u upi     N)rw   r3   _class_to_mapperrO   isarl   	_entitiesentity_zeror  r  r   r   coercelocal_columnsgetattrr  r   r5   )ro   orig_query_entity_index	subq_pathcurrent_compile_stateis_rootgiven_subq_pathsubq_mapperleftmost_mapperleftmost_propnew_subq_path
additionalleftmost_colsr|   leftmost_attrs   &&&&&         r:   _get_leftmostSubqueryLoader._get_leftmost  sF    $NN	//	!= KKOOK(($$	!4-1[[$:N:N]-8A,] 2;;'k..8M Y#m*<<J!;!;!B!Bkl+"  ,M%33 #

 #	 ""1%,,11!488 # 	 
 }KK
s   AE+c           	     	   VP                  4       P                  R 4      p\        P                  P	                  \        P                  4      pVP
                  P                  VP
                  4       TpVP                  '       gT   RVn        VP                  P                  ! V.\        W!R7       U	u0 uF  p	V	R,          f   K  V	R,          kK  	  up	O5!   TP                  V U
u. uF;  p
\        P                  P                  \        P                   P"                  V
4      NK=  	  up
VP%                  4       4      pWn        VP(                  pVRJ d	   RVn        MYVfV   V Uu0 uF  qP,                  kK  	  up F6  p\/        V4      P1                  VP2                  4      '       d   K/  RVn         M	  VP4                  '       g   RVn        VP*                  RJ dR   VP6                  '       d@   \8        P:                  ! WP6                  4      pV'       d   VP=                  W,           4       VP?                  \@        4      PC                  4       p\D        PF                  ! VVRR7      pV# u up	i u up
i u upi )NF)ru   r  Tuse_mapper_pathr   )$_clone	correlater   Query__new____dict__update	_from_obj_enable_assertionsr  non_generativer   _adapt_col_listr(   	coercionsexpectrolesColumnsClauseRole_get_current_adapterr  distinct_target_key	_distincttabler   r  r   _has_row_limiting_clauser  rQ   expand_column_list_from_order_by_set_entitiesset_label_styler*   r2  r3   r$   )ro   orig_compile_state
orig_queryrI  rN  leftmost_relationshiporig_entityqq2entr  target_colsrc  r|   tto_addembed_q
left_aliass   &&&&&&&           r:   _generate_from_original_query,SubqueryLoader._generate_from_original_query  s!    ))$/ [[  -
1::& {{{#(A MM((	  4"   8}	 "CMM 	0 )88 '&A $$SYY%@%@!D& 335
 %3GG$&AK ( (33{!gg{3;'221==AA"&AK 4 )))"$A;;$1#6#6#6 >>00F  45 ##$BCLLN**Wd

 A. 4s   3I0
I0
(AI5'I:c                	   . p\        VP                  4       4      p\        V4       Fi  w  pw  rgV^ 8  d=   WE^,
          ,          ^,          P                  pVP	                  V4      '       d   TMTp	MTp	VP                  WP                  34       Kk  	  \        V4      ^8  d   Tp
MZ\        VR,          ^ ,          4      pVP                  '       d   VP                  p
M"\        P                  ! VP                  RR7      p
V P                  P                  pV Uu. uF3  p\        WP                   P"                  V,          P                  4      NK5  	  ppW>V
3# u upi )r;  TrR  r  )rY  pairs	enumerater^   r=  rM   r5   r  r&   rJ  r  r3   r$   rl   rA  rB  rO   r   )ro   ru  rD  to_joinry  ir^   r7   prev_mapper	to_appendparent_aliasrU  
local_colsr|   
local_attrs   &&&            r:   _prep_for_joinsSubqueryLoader._prep_for_joinsZ  s1   Y__&'!*5!1A~1u $El1o44+6??6+B+BK	"	NNIxx01 "2& w<! &L72;q>*D$$$#{{  (44KK  ))77
  
 L++"?"?"B"F"FG 	 
 L00	
s   9Ec                	:   \        V4      pV^8X  d,   \        W2^ ,          ^,          4      P                  V4      .pEMV^8X  dS   \        W2^ ,          ^,          4      P                  V4      \        WBR,          ^,          4      P                  V4      .pEMeV^8  Ed^   V^R  Uu. uF^  p\        V^ ,          4      P                  '       g   \
        P                  ! V^ ,          4      MV^ ,          P                  V^,          3NK`  	  pp. p	V'       dx   VP                  ^ 4      p\        V^ ,          V^,          4      p
V'       d!   V
P                  V^ ,          ^ ,          4      p
MV
P                  V4      p
V	P                  V
4       K  \        W2^ ,          ^,          4      P                  V	^ ,          P                  4      .V	,           \        WBR,          ^,          4      P                  V4      .,           pV F  p
VP                  V
4      pK  	  V# u upi )   r  )r  rB  of_typer&   rJ  r3   r$   r  poprM   rO   join)ro   rn  r{  ru  r  effective_entityltjitemmiddleinnerattrs   &&&&&&     r:   _apply_joinsSubqueryLoader._apply_joins  s    'l!8
AJqM2::;KLG AX
AJqM2::<Hbk!n5==$G 1W $AbM
 *D  'tAw/@@@ !--d1g6!!W^^G *  
 Ezz!}tAwQ0<<q	!5D<<5DT" QZ]3;;E!HOOLM L"+a.9AA(  DtA  I
s   &A$Hc                	   VP                   pV'       dK   VP                  '       d9   V\        P                  ! V P                  VP                  V4      4      3,          pVP                  V4      pVP                  ! V!  pV# r2   )r  r   r3   r  r  r  _with_current_pathoptions)	ro   r   rn  rD  rewritten_pathrk  r  rx   new_optionss	   &&&&&&&& r:   _setup_optionsSubqueryLoader._setup_options  st    " !..w...--KK44W= K   0II{#r=   c                	   a  S P                   P                  '       d#   V 3R  lpVP                  VS P                   4      pV# )c                   < V ;P                   \        \        P                  ! SP                  P
                  4      4      ,          un         R # r2   eager_order_bytupler   rP  rl   rO  r  ro   s   &r:   _setup_outermost_orderbyISubqueryLoader._setup_outermost_orderby.<locals>._setup_outermost_orderby  s3    ..%LL!5!5!>!>?3 .r=   )rl   rO  _add_context_option)ro   rn  r  s   f& r:   r  'SubqueryLoader._setup_outermost_orderby  s>    (((
 %%($*>*>A r=   c                  6    ] tR tRtRtR	tR tR tR tR t	Rt
R# )
SubqueryLoader._SubqCollectionsi  zGiven a :class:`_query.Query` used to emit the "subquery load",
provide a load interface that executes the query at the
first moment a value is needed.

c                	    VP                   V n         VP                  V n        VP                  V n        VP                  ;'       g    / V n        W n        R V n        R # r2   r  r  r  rn  subq_data)ro   r   r  s   &&&r:   rk   (SubqueryLoader._SubqCollections.__init__  sJ     #??DL%,%>%>D" ' 4 4D!....BDKIDJr=   c                	t    V P                   f   V P                  4        V P                   P                  W4      # r2   )r  _loadrV   )ro   r5   defaults   &&&r:   rV   #SubqueryLoader._SubqCollections.get	  s(    zz!

::>>#//r=   c                	   \         P                  ! \        4      V n        V P                  pVP
                  e   Q hVP                  V P
                  4      pV P                  P                  '       d   VP                  4       p\        VP                  V P                  4      4      p\        P                  ! VR 4       F.  w  r4V P                  V,          P                  R V 4       4       K0  	  R # )Nc                    V R ,          # ):r  NNr   xs   &r:   r;   7SubqueryLoader._SubqCollections._load.<locals>.<lambda>  s    !B%r=   c              3  2   "   T F  q^ ,          x  K  	  R# 5ir:  r   r   vvs   & r:   r   8SubqueryLoader._SubqCollections._load.<locals>.<genexpr>  s     $7QrUUQ   )collectionsdefaultdictrY  r  r  r  with_sessionr  _populate_existingr  rn  	itertoolsgroupbyextend)ro   rn  rowsr   vs   &    r:   r  %SubqueryLoader._SubqCollections._load  s    $006DJ		A99$$$t||,A  333'') -.D!))$@

1$$$7Q$77 Ar=   c                	F    V P                   f   V P                  4        R # R # r2   )r  r  )ro   r   r0  r1  s   &&&&r:   r  &SubqueryLoader._SubqCollections.loader  s    zz!

 "r=   )r  r  r  rn  r  r  Nr  )r   r   r   r   r   r   rk   rV   r  r  r   r   r=   r:   _SubqCollectionsr    s"    	
			0
	8"	r=   r  c           	     	   VP                   pVP                  P                  '       d   VP                  P                  '       d   R # VP                  P                  V4      pRVn        W0P                  ,          pVP                  VP                  RR 4      p	V	e   T	p
MV P                  p
VP                  P                  P                  R
\        P                  P                  \        P                  P                  34      w  rV\        P                  P                  J pW,           pW,           pVP                  P                  P                  R\         3VP                  4      p\"        P$                  ! VR4      pVP&                  '       dD   VP(                  P*                  f    \,        P.                  ! RV : RV: R24       VP0                  pVP3                  VRR	7      pV P5                  VVVV4      w  ppppV P7                  VVVVVV4      p\        P8                  ! V
4      pVP                  P                  P;                  VP<                  R\         3VR
W3/4      Vn        VP?                  R4      pV PA                  VV4      w  pppVPB                  ! V!  pV PE                  VVVVV
4      pV PG                  VVVVVV
V4      pV PI                  V4      pV# )NTpath_with_polymorphicrk  ormzsubqueryloader for "z!" must invoke lambda callable at z in order to produce a new query, decreasing the efficiency of caching for this statement.  Consider using selectinload() for more effective full-lambda cachingF)legacy)subquery_pathsN)%ru   r   r  _for_refresh_stater>  indexloaders_require_bufferingrl   rV   r	   r  r   r  r3   r   r  r4  r   _get_plugin_class_for_plugin_is_lambda_elementr  r  r   r  	_resolved_create_entities_collectionrO  rv  rV  r  r  _set_enable_single_critr  add_columnsr  r  r  )ro   r   rv   rw   r  rx   ry   ru   rC  with_poly_entityr  rD  r  rF  rk  compile_state_clsrj  rI  rN  rl  ru  rn  r{  r  r  s   &&&&&&&                  r:   _setup_query_from_rowproc(SubqueryLoader._setup_query_from_rowproc#  s     ----@@@,,???"/"9"9"?"?"M,0)(()  88$$&=t
 '/#{{$+MM$D$D$H$H$""'')>)>)C)CD%
!	 x44999$	'. ]]5599>*GMM

 ,HH
 (((##55=		 Z) $--J
 /JJu K 
 #	
	
! 77!

 KK()&}}??JJ%%~.
(9*E 
 %%e,,0,@,@	-
)\ MM:&w
L2B
 
 ))!,r=   c	           
     	r   V'       dV   VP                   P                  e>   VP                   P                  P                  '       d   \        P                  ! RR4       VP
                  '       d   V P                  VVVVVVVV4      # V P                  WW@P                  4      w  r p	V
'       g   R # \        VP                   \        4      '       g   R # V P                  P                  V P                  ,          P                  P                  '       g   \         P"                  ! RV ,          4      h\%        V4      ^8X  d5   \&        P(                  ! VP*                  V P                  4      '       g   R # M0\&        P(                  ! VR,          V P                  4      '       g   R # V P-                  VVVVR,          VV4      pVf   R # VP.                  e   Q hW0P0                  ,          pV P0                  P2                  pVP5                  VP6                  R4      pVf/   V P9                  W4      pVP;                  VP6                  RV4       V'       d"   V Uu. uF  qP<                  V,          NK  	  ppV P>                  '       d   V PA                  WWV4       R # V PC                  WWV4       R # u upi )NzThe subqueryload loader option is not compatible with DML statements such as INSERT, UPDATE.  Only SELECT may be used.This warning will become an exception in a future release.2.0J'%s' does not support object population - eager loading cannot be applied.r  r  )"ru   	statementis_dmlr   warn_deprecatedr   r#  r  r  r   r   rO   rW   r5   implsupports_populationr  r  r  r3   _entity_isar?  r  r  rl   rA  rV   r	   r  r   rm   rA   _create_collection_loader_create_scalar_loader)ro   r   rv   rw   rx   r^   r   ry   r   _r#  r  r  r  r|   s   &&&&&&&&&      r:   r   #SubqueryLoader.create_row_processor  s]    %%//;%%//666  M 	    ;;	 	 #777OO
q! '//1FGG {{((277KKK,,@BFG  t9>''(@(@$++NN O%%d2h<<--H
 <||###(()))77

 hhw11=A//>KHHW''D6@Aj//!,,jJA<<<*** &&* Bs   J4c                	b  a aaa VP                  V4      oVV V3R  loVV 3R lpVR,          P                  S P                  S34       VR,          P                  S P                  V34       VP                  '       d1   VR,          P                  S P                  SP                  34       R# R# )c                   < SP                   ! S! V4      R4      pV P                  SP                  4      P                  WV4       R # Nr   )rV   r)  r5   r*  )r   r0  r1  
collectionr  ro   tuple_getters   &&& r:   load_collection_from_subqKSubqueryLoader._create_collection_loader.<locals>.load_collection_from_subq  s8    $c):B?JNN488$88jr=   c                @   < SP                   V9  d   S! WV4       R # R # r2   r5   )r   r0  r1  r  ro   s   &&&r:   &load_collection_from_subq_existing_rowXSubqueryLoader._create_collection_loader.<locals>.load_collection_from_subq_existing_row  s    xxu$)%< %r=   r   existingeagerN_tuple_getterrM   r5   invoke_all_eagersr  )	ro   r   r   r  r  r   r  r  r  s	   f&&f&& @@r:   r  (SubqueryLoader._create_collection_loader  s     ++J7		= 	5  $((,E!FG:%%XX=>	
 $$$w&&+2D2D'EF %r=   c                	b  a aaa VP                  V4      oVV V3R  loVV 3R lpVR,          P                  S P                  S34       VR,          P                  S P                  V34       VP                  '       d1   VR,          P                  S P                  SP                  34       R# R# )c                   < SP                   ! S! V4      R4      p\        V4      ^8  d   \        P                  ! RS,          4       V^ ,          pV P	                  SP
                  4      P                  WV4       R # )NLMultiple rows returned with uselist=False for eagerly-loaded attribute '%s' r2   )rV   r  r   r  r)  r5   r*  )r   r0  r1  r  scalarr  ro   r  s   &&&  r:   load_scalar_from_subqCSubqueryLoader._create_scalar_loader.<locals>.load_scalar_from_subq,  sg    $c):GDJ:"		GIMN
  ]FNN488$88vNr=   c                @   < SP                   V9  d   S! WV4       R # R # r2   r  )r   r0  r1  r  ro   s   &&&r:   "load_scalar_from_subq_existing_rowPSubqueryLoader._create_scalar_loader.<locals>.load_scalar_from_subq_existing_row7  s    xxu$%eC8 %r=   r   r  r  Nr  )	ro   r   r   r  r  r   r  r  r  s	   f&&f&& @@r:   r  $SubqueryLoader._create_scalar_loader'  s     ++J7		O	9 	5  $((,A!BC:%%XX9:	
 $$$w&&+2D2D'EF %r=   r1  )r   r   r   r   r   rk   r   rO  rv  r  r  r  r  r  r  r   r  r  r   r   r   s   @r:   r4  r4    sd      I:'
/LbbH-1^4l D2 2hFPcJG.G Gr=   r4  joinedc                     a  ] tR tRtRtRtV 3R ltR tRR ltR t	R t
R	 tR
 tRR R lltR tR tR tR tRtV ;t# )JoinedLoaderiC  zSProvide loading behavior for a :class:`.Relationship`
using joined eager loading.

r  c                	\   < \         SV `  W4       V P                  P                  V n        R # r2   r  rn   s   &&&r:   rk   JoinedLoader.__init__N  r  r=   c                	Z    V P                   P                  R4      P                  V4       R# r  r  r   s   &&r:   r   !JoinedLoader.init_class_attributeR  r  r=   c	                   VP                   P                  '       g   R# V'       dC   VP                  e5   VP                  P                  '       d   \        P
                  ! RR4       MV P                  '       d   RVn        W0P                  ,          pV'       d   V P                  WAVP                  4      MRp
V
RJd   V P                  VVVVV
4      w  pppMVP                  VP                  R4      '       g[   V P                  '       d&   VP                  ^,          V P                  8  d   R# M#VP                  V P                   4      '       d   R# V P#                  VVVVVVVV4      w  ppppRVn        VP'                  VP                  RR4      pVe   \)        V4      P*                  pMRpW0P,                  ,          p\.        P0                  ! VV P                   VVVVVV P                   VR7	       \        P2                  P5                  VP6                  4      pV'       dD   Ve   \8        P:                  ! R	4      hVP6                   Uu. uF  pVf   K	  VNK  	  upVn        R# R# u upi )
z@Add a left outer join to the statement that's being constructed.NzThe joinedload loader option is not compatible with DML statements such as INSERT, UPDATE.  Only SELECT may be used.This warning will become an exception in a future release.r  TFr  r  )with_polymorphicparentmapperchained_from_outerjoinzDetected unaliased columns when generating joined load.  Make sure to use aliased=True or flat=True when using joined loading with with_polymorphic().)r   r  r  r  r   r  rA   multi_row_eager_loadersrl   _init_user_defined_eager_procr	   $_setup_query_on_user_defined_adapterr  r  r	  r
  r^   _generate_row_adaptereager_adding_joinsrV   r&   with_polymorphic_mappersr  r   _setup_entity_queryNONE_SETr   secondary_columnsr  r  )ro   ru   rv   rw   rx   ry   rz   r  r  r{   user_defined_adapterclausesadd_to_collectionr  r  	has_nonesr|   s   &&&&&&&&&,       r:   r}   JoinedLoader.setup_queryW  s_    ,,???''3''...  M 	 \\\48M1(()  ..(@(@  	  u, 99$	!  ==!9!98DD???{{Q8 9))$++66 **!&	!& 04M,88$$&=t
 '&  &&   $KK ##KK-#9
	
 MM..}/N/NO	+00I   ->>3>!!AA>3/ 3s   I.I.c                	^   R VP                   9  d   R# VP                  P                  pVP                  VP                  RR4      pVRJd   V# VP                   R ,          pVRR w  rxVe   \        V\        4      '       d   VP                  P                  V4      p\        P                  ! \        P                  P                  VP                  VVP                  P                  RR7      pMVP                  VP                  R4      '       dc   VP                  VP                  R4      p	\        P                  ! \        P                  P                   V	VP                  P                  R7      pM&VP"                  P                  VP                  R4      pVP%                  VRV4       V# )eager_from_aliasF user_defined_eager_row_processorN)
selectablerG  limit_on_entityr  )rG  )r   rw   rO   rV   r	   r   r  r  aliasr3   
ORMAdapter_TraceAdaptRoleJOINEDLOAD_USER_DEFINED_ALIASr^   rW  r   JOINEDLOAD_PATH_WITH_POLYMORPHIC_polymorphic_adaptersr   )
ro   rx   ru   target_attributesrw   ry   r  root_mapperr7   r  s
   &&&&      r:   r
  *JoinedLoader._init_user_defined_eager_proc  s~    W%7%77||"" (($$&H%
 %N ""#56 I%%%))%0))((FF  KK;; %G }}((*A  $(88!,,.E$  #--,,MM$ $ ? ? (==AAKK 	.	
 r=   c                	   VP                  V4      pV'       d8   V'       d0   VP                  V4      pVP                  VP                  R V4       M'V'       d    TpVP                  VP                  R V4       VP                  pWTV3# )r  )_get_entity_clauseswrapr   r	   primary_columns)ro   r   r  rw   ry   r  r  s   &&&&&& r:   r  1JoinedLoader._setup_query_on_user_defined_adapter	  s    
 ,,W5+#7#<#<W#E HH""2$
 #* HH""2$ $33#.???r=   c	                	   VP                  VP                  R R4      p	V	'       d   T	p
Mp\        V P                  4      pVP                  '       d   VP
                  pMRp\        P                  ! V P                  Ve   VP                  RR7      MRRRR7      p
\        V
4      pVP                  RV 3\        P                  \        P                  P                  VV P                  P                  RRRR7      pVP                  '       g   Q hVe1   VP                  P                  RV P                   P"                  4      MV P                   P"                  pV'       g   RpVP$                  P'                  V P(                  TTTTTTTV'       d   VP*                  MR
3	4       VP,                  pVP/                  VP                  R	V4       WVV3# )r  NT)flat)r  r,  rS  joinedloader_ormadapterF)rG  adapt_requiredallow_label_resolveanonymize_labels	innerjoineager_row_processorr   )rV   r	   r&   r  rJ  r  r3   r$   r^   _anonymous_fromclause_memor  r  JOINEDLOAD_MEMOIZED_ADAPTERrW  r   rl   r1  create_eager_joinsrM   _create_eager_joinr   r  r   )ro   ru   r  rw   rx   ry   rz   r  r  r  to_adaptinspalt_selectableto_adapt_inspr  r1  r  s   &&&&&&&&&        r:   r  "JoinedLoader._generate_row_adapter)	  s     88$$&=t
 'H4;;'D$$$!%!%,, &1 #88d8C $	H  )%%&-$$@@77 %! & 	
 ''''' " "";0D0D0N0NO%%// 	  &*"((//''&+2''
	
 *;;))+@'J!24JJJr=   c
           
     	R	  a  Vf   VP                   p
MTp
VP                  ;'       d    VP                  pR pW!P                  9  d   V'       g   VP                  '       d~   \
        P                  ! VP                  VP                  4      p\        V4      ^8  d   \        P                  ! R4      hV'       d%   VP                  V^ ,          ,          pV^ ,          TrVf   TVP                  rVP                  P                  VX4      pV'       d   \        VRR4      '       du   VP                  P                  V
P                  S P                   4      '       d   T
MS P                   4      p\        VP"                  S P$                  S P&                  4      pMY\        \(        P*                  ! S P                   VP                  RR7      S P$                  S P&                  4      pMS P&                  pVP,                  '       g   Q hV'       * ;'       g3    V'       * ;'       g$    VR8H  ;'       g    VP.                  P0                  pT	pVP2                  P5                  RS P                   3R
4      pV'       d:   T\6        ;QJ d    . V 3R lV 4       F  NK  	  5M! V 3R lV 4       4      ,          pV'       d   \(        P8                  ! TVP                  TV'       * ;'       gC    VP.                  P0                  ;'       g%    T;'       d    \;        V\<        P>                  4      S P                   VS P                   ,          VR	7      pMS PA                  W3R,          VVVV4      pVVP                  V&   VP                  Vn!        V'       g   \
        PD                  ! S P&                  PF                  4       Fg  pV
PH                  PJ                  PM                  V4      '       g   K0  V'       d   VPN                  V,          pVPQ                  VVPR                  4       Ki  	  S P&                  PT                  '       df   V;PV                  \7        VPX                  P[                  \\        P^                  ! S P&                  PT                  4      4      4      ,          un+        R # R # )NzCan't identify which query entity in which to joined eager load from.   Please use an exact match when specifying the join path.rJ  FTrR  unnestedadditional_entity_criteriac              3     <"   T F4  pVP                   '       g   K  VP                  SP                  4      x  K6  	  R # 5ir2   )propagate_to_loaders_resolve_where_criteriar^   )r   aero   s   & r:   r   2JoinedLoader._create_eager_join.<locals>.<genexpr>	  s5      )4B** 8**4;;774s   ?#?isouter
_left_memo_right_memor   r   r  )0r^   r	  _should_nest_selectableeager_joinsfrom_clausesrQ  #find_left_clause_that_matches_givenr  r  r  r  
setdefaultrB  aliased_insp_entity_for_mapperr=  rO   r  r5   rl   r3   r$   rJ  r?  represents_outer_joinglobal_attributesrV   r  _ORMJoinr   r(   Join_splice_nested_inner_joinstop_on_find_columnsprimaryjoinpersist_selectabler|   contains_columnrm   rt   r)  rO  r  _target_adaptercopy_and_processr   rP  )ro   ru   rv   rw   ry   r  r  r1  r  r  r   should_nest_selectablequery_entity_keyindexesclausedefault_towraptowrapefmonclauseattach_on_outsideextra_join_criteriar?  	eagerjoinr   s   f&&&&&&&&&              r:   r7  JoinedLoader._create_eager_joinx	  s    &--K&K 11 6 655 	
    9 99****BB**L,C,CG 7|a 000  &33GAJ?
 4;1:v.#'' -
 **55n
 w 2E::
 **=="t{{33   #3::txx9M9MN"))W%7%7 HH(( ++H''''' '& > >}> >J&> > ''==	 	 -%2%D%D%H%H)4;;7&
" &55 )4)55 )4) $   ))$$% M M++AAM M*KKz&#((/K;; - 3
I 662h;NI 7@!!"23 )33	  --$$00 1133CCCHH%ooc2!??]:: (((((E**;;LL!5!5!>!>?- ( )r=   c                    V ^8  d   QhRRRR/# )r  entity_inside_join_structurez#Union[Mapper, None, Literal[False]]detected_existing_pathz$Optional[path_registry.PathRegistry]r   )r  s   "r:   r  JoinedLoader.__annotate__
  s%     k
 k
'
k
 !Ek
r=   c	                	L   W!R	,          J g   Q hVRJ d#   \        V\        P                  4      '       g   Q h\        V\        P                  P
                  4      '       d"   V P                  VVVP                  VVVV4      # \        V\        P                  4      '       Edm   VP                  p	T P                  TTVP                  TTTV	e   V	R
,          P                  MRR7      p
V
e   VP                  '       g%   V
P                  '       g   VP                  V
4      pMC\        P                  ! VP                  V
VP                  VP                  VP                  R7      pV
P                   Vn        V# V P                  VVVP                  VVVVP                  V	R7      p
V
eW   \        P                  ! V
VP                  VP                  VP                  VP                  R7      pV
P                   Vn        V# VRJ d	    Q R4       hR# VP#                  V4      '       g   R# V'       d9   \%        V4      ^8  d)   VR,          VJ g   Q hV^ R	 VP&                  ^ R
 8w  d   R# \        P                  ! VVP(                  VRVWR
,          P                  ,          VR7      # )r  FN)ri  )rF  rG  )ri  rj  )rF  rH  z9assertion failed attempting to produce joined eager loadsrE  r  r  )r   r3   rR  r(   r  FromGroupingrT  elementrH  rightr^   rF  _splice_into_centerleftrc  rG  rZ  r=  r  rw   rN  )ro   rw   entity_we_want_to_splice_ontojoin_objr  rc  r  ri  rj  join_right_pathtarget_joinrf  s   &&&&&&&&&   r:   rT  &JoinedLoader._splice_nested_inner_join
  s   * -R888'50h(9(9::::h ; ;<<11-  ,  ("3"344 '22O 88- '2 $B'.. 9 K &  '''0C0C0C ( < <[ II ( 1 1 # )) ( 0 0#+#6#6!I -8,G,G	)   #<<1MM"191D1D+: = 	 * ( 1 1#  )) ( 0 0$,$8$8!I 1<0K0KI-$$ ,u4ONO -001MNN "c*@&AA&E
 *"-1MMMMH &a+tyy2>    3"X__-*
 	
r=   c                	   VP                   pV'       d   V P                  WVVP                  4      MR pVR JdX   TpVP                  '       d%   V'       d   VP	                  VP                  4      pMAVP                  '       d   VP                  pM"VP                  VP                  R4      pVf   R # V P                  P                  W(4      '       d   V# R # )Fr2  )ru   r
  r	   compound_eager_adapterr(  rV   r^   _result_has_identity_key)	ro   r   r   ry   rw   rx   ru   r  	decorators	   &&&&&&   r:   _create_eager_adapter"JoinedLoader._create_eager_adapter
  s    --  ..(:(:  	  u,,I 333	%NN!88	 555)@@	((*?I  ;;//BB r=   c	           
     	   VP                   P                  P                  '       g   R # V P                  P                  V P
                  ,          P                  P                  '       g   \        P                  ! RV ,          4      hV P                  '       d   RVn        W0P                  ,          p	V P                  WWyV4      p
V
RJd|   V P
                  p\        P                  ! VV P                   VVWP"                  ,          V
4      pV P                  '       g   V P%                  WW4       R # V P'                  WW4       R # V P                  P)                  R4      P+                  VVVVVVVV4       R # )Nr  TFr  )ru   r   r  rO   rW   r5   r  r  r  r  rA   loaders_require_uniquingrl   r|  r   _instance_processorr^   r  r  r  r   r   )ro   r   rv   rw   rx   r^   r   ry   r   our_patheager_adapterr5   	_instances   &&&&&&&&&    r:   r   !JoinedLoader.create_row_processor
  sH    $$44GGG{{((277KKK,,@BFG 
 <<</3G,,,-22W
 %((C33%I <<<**7O..)   ..%""	r=   c                	8  aaa VVV3R  lpVVV3R lpV3R lpVR,          P                  V P                  V34       VR,          P                  V P                  V34       SP                  '       d'   VR,          P                  V P                  V34       R# R# )c                   < \         P                  ! WS4      p\        P                  ! VR 4      pVSP                   V S3&   S! V4      pVe   VP	                  V4       R# R# append_without_eventNr	   r/  r   UniqueAppenderrM   )	r   r0  r1  r  result_listinstr  r   r5   s	   &&&   r:   #load_collection_from_joined_new_rowSJoinedLoader._create_collection_loader.<locals>.load_collection_from_joined_new_row'  se     $99%LJ--2K 0;Gs|,S>D""4(  r=   c                  < V S3SP                   9   d   SP                   V S3,          pM?\         P                  ! WS4      p\        P                  ! VR 4      pVSP                   V S3&   S! V4      pVe   VP	                  V4       R# R# r  r  )	r   r0  r1  r  r  r  r  r   r5   s	   &&&   r:   (load_collection_from_joined_existing_rowXJoinedLoader._create_collection_loader.<locals>.load_collection_from_joined_existing_row4  s    s|w111%00%> (==#
 #11 6 4?""E3<0S>D""4(  r=   c                   < S! V4       R # r2   r   r   r0  r1  r  s   &&&r:    load_collection_from_joined_execPJoinedLoader._create_collection_loader.<locals>.load_collection_from_joined_execG  
    cNr=   r   r  r  NrM   r5   r  )ro   r   r5   r  r   r  r  r  s   &fff&   r:   r  &JoinedLoader._create_collection_loader&  s    	)	)&	 	5  XX:;	
 	:%%XX?@	
 $$$w&&;< %r=   c                	6  a aa VV3R  lpVVV 3R lpV3R lpVR,          P                  S P                  V34       VR,          P                  S P                  V34       VP                  '       d'   VR,          P                  S P                  V34       R# R# )c                   < S! V4      VS&   R # r2   r   )r   r0  r1  r  r5   s   &&&r:   load_scalar_from_joined_new_rowKJoinedLoader._create_scalar_loader.<locals>.load_scalar_from_joined_new_rowV  s     #3E#Jr=   c                   < S! V4      pSV9   d.   W1S,          Jd    \         P                  ! R S,          4       R# R# W1S&   R# )r  N)r   r  )r   r0  r1  r  r  r5   ro   s   &&& r:   $load_scalar_from_joined_existing_rowPJoinedLoader._create_scalar_loader.<locals>.load_scalar_from_joined_existing_row[  sI     !~H e|:-IIK . &c
r=   c                   < S! V4       R # r2   r   r  s   &&&r:   load_scalar_from_joined_execHJoinedLoader._create_scalar_loader.<locals>.load_scalar_from_joined_execn  r  r=   r   r  r  Nr  )ro   r   r5   r  r   r  r  r  s   f&ff&   r:   r  "JoinedLoader._create_scalar_loaderU  s    	(
	&&	 	5  $((,K!LM:%%XX;<	
 $$$w&&78 %r=   r1  )NNFrd  )r   r   r   r   r   r   rk   r   r}   r
  r  r  r7  rT  r|  r   r  r  r   r   r   s   @r:   r   r   C  s^    
 I:'
~@7r@2MK^]~k
Z"H<|-^# #r=   r   selectinc                     a  ] tR tRtRt]P                  ! R. RO4      tRtV 3R lt	R t
R tR tR tR	 tR
 tR tR tRtV ;t# )SelectInLoaderi{  	queryinfoi  c                	  < \         SV `  W4       V P                  P                  V n        V P                  P                  \
        P                  J pV P                  P                  e   V P                  P                  V n        MV P                  P                  R4      pV'       d   VP                  V n        MSV P                  P                  ^ ,          P                  VP                  RRV P                  P                  R7      V n        V P                  '       dL   V'       d-   V P                  4       V n        V P#                  4       V n        R # V P'                  4       V n        R # V P#                  4       V n        R # )NTFrD  r  )rj   rk   rl   r  r[   r   r`  	omit_joinr   rX  rO   rV  r   r;  rW  _init_for_omit_join_m2o_query_info_init_for_join_fallback_query_info_init_for_omit_join)ro   rO   rp   is_m2or.  rq   s   &&&  r:   rk   SelectInLoader.__init__  s$   ...99%%//:3G3GG))5!11;;DN--;;%J !+!3!3!%!8!8!;!C!C-- $!& $ ? ?	 "D " >>>#'#?#?#A ,0,?,?,A)#'#;#;#= #224Dr=   c                	  a a \        S P                  P                  P                  4      oSP	                  VV 3R  l\        S4       4       4       S P                  P                   Uu. uF  qS9   g   K  SV,          NK  	  up;r#\        V4      ^8  d   \        P                  ! V!  pRpMV^ ,          pRpS P                  RRWBVR4      # u upi )c              3     <"   T F=  pSP                   P                  P                  VR4       F  pVSV,          3x  K  	  K?  	  R # 5ir  )rO   rW  rV   )r   r   equivpk_to_fkro   s   &  r:   r   5SelectInLoader._init_for_omit_join.<locals>.<genexpr>  sE      
#88<<QC HQK C !#s   AAFTN)r  rl   rK  local_remote_pairsrY  rY  rO   r   r  r(   tuple_
query_info)ro   r   pk_colsfk_colsin_exprzero_idxr  s   f     @r:   r  "SelectInLoader._init_for_omit_join  s      00CC
 	 
(^
 	
 &*[[%<%<
%<cxMHSMM%<
 	
 w<!jj'*GHajGHueWxNN
s   )C6Cc                	<   V P                   P                  p\        V4      ^8  d   \        P                  ! V!  pRpMV^ ,          pRpV P
                  P                  R4      pV Uu. uF  qTP                  V,          NK  	  ppV P                  RRW!W64      # u upi )r  FTr  )	r^   r   r  r(   r  rl   r   rM  r  )ro   r  r  r  r.  r  lookup_colss   &      r:   r  &SelectInLoader._init_for_omit_join_m2o  s    ++))w<!jj'*GHajGH))778MN
AHI222266I%8
 	
 Js   (Bc                	r   \        V P                  P                  4      V n        \	        V P                  4      pV P                  P
                   Uu. uF  q!P                  V4      NK  	  pp\        V4      ^8  d   \        P                  ! V!  pRpMV^ ,          pRpV P                  RRWCVR4      # u upi )r  FTN)r$   rO   rZ   _parent_aliasr&   r   _adapt_elementr  r(   r  r  )ro   pa_inspr   r  r  r  s   &     r:   r  SelectInLoader._init_for_join  s    )$++*<*<=$,,-37;;3J3J
3JC""3'3J 	 
 w<!jj'*GHajGHudGhMM
s   B4c                	Z    V P                   P                  R4      P                  V4       R# r  r  r   s   &&r:   r   #SelectInLoader.init_class_attribute  r  r=   c	                	   VP                   '       d   V P                  VVVVVVVV4      # V P                  WW@P                  R 7      w  p	p
ppV
'       g   R# VP                  P
                  P                  '       g   R# V P                  P                  V P                  ,          P                  P                  '       g   \        P                  ! RV ,          4      h\        V4      ^8X  d5   \        P                   ! VP"                  V P                  4      '       g   R# M0\        P                   ! VR,          V P                  4      '       g   R# T	pW0P$                  ,          pVP'                  VP(                  RR4      pVe   \+        V4      pMV P,                  p\.        P0                  P3                  VVV P                  V P$                  V P4                  VVVV4	       R# )r1  Nr  r  r  )r   r#  r  r  ru   r   r  rO   rW   r5   r  r  r  r  r  r3   r  r?  rl   rV   r	   r&   r  r   r  r!  r"  )ro   r   rv   rw   rx   r^   r   ry   r   r  r#  r  r  selectin_pathr  r  r  s   &&&&&&&&&        r:   r   #SelectInLoader.create_row_processor  s       ;;	 	  %%7 & 
	

 $$44GGG{{((277KKK,,@BFG  t9>''(@(@$++NN O%%d2h<<&//0 '?? 7
 '&'78#{{**KK  
	
r=   c	           	     	b
  a aa a! V'       d   S P                   V9  d   R # S P                  p	V	P                  '       d   \        P                  ! \
        4      p
. pS P                  o V F  w  opSP                  o!\        ;QJ d#    . V VV!3R lV	P                   4       F  NK  	  5M! V VV!3R lV	P                   4       4      p\        P                  V9   d   S P                  p	 M;R V9  d   W,          P                  SS!V34       K  VP                  SS!V34       K  	  V	P                  '       g4   V UUu. uF%  w  rVP                   ^,          WP                  V3NK'  	  p
ppV	P                  pV	P                  pV	P                   '       gD   VP"                  '       d2   V Uu. uF  pVP%                  V4      NK  	  ppVP%                  V4      p\&        P(                  ! R.VO5!  pVP+                  4       pVP+                  4       p\,        P.                  ! VV.\0        \2        P4                  RRRV/R7      pV	P                   '       g   VP7                  V4      pMaVP7                  S P8                  4      P;                  \=        S P8                  S P>                  P                   4      PA                  V4      4      pVPC                  VPE                  \F        PH                  ! R4      4      4      pVPJ                  PL                  pVS P>                  ,          pVVPN                  J d   VPP                  pMRVPP                  pVPN                  PP                  p\S        VV4       UUu. uF  w  ppVPU                  VV4      NK  	  pppV'       dA   VPV                  '       d/   V\&        PX                  ! VVP[                  V4      4      3,          pVe   VP]                  4       pVP^                  ! V!  pVPa                  RV/4      pVPb                  '       d   VPe                  R	R
7      pS P>                  Pf                  '       d   V	P                   '       gZ   S P>                  Pf                  pVP"                  '       d!   V Uu. uF  pVP%                  V4      NK  	  ppVPf                  ! V!  pM"V 3R lpVPi                  VS P>                  4      pV	P                  '       d   S Pk                  X
XV	VVV4       R # S Pm                  X
V	VW4       R # u uppi u upi u uppi u upi )Nc              3  j   <"   T F(  pSP                  SSV\        P                  R 7      x  K*  	  R# 5i)r  N)r}  r	   PASSIVE_NO_FETCH)r   lkr^   r   
state_dicts   & r:   r   0SelectInLoader._load_for_path.<locals>.<genexpr>S  sC      & ; 44" * ; ;	 5   ;s   03r  compile_state_pluginr  plugin_subject)r  r  r   r  primary_keysr  T)r  c                   < V ;P                   \        \        P                  ! SP                  P
                  4      4      ,          un         R # r2   r  r  s   &r:   r  ?SelectInLoader._load_for_path.<locals>._setup_outermost_orderby  s3    #22eT%9%9%B%BC7 2r=   )7r5   r  load_only_childr  r  rY  rO   r  r  child_lookup_colsr   r   r  rM   r  r  load_with_joinrJ  r  r3   Bundler  r+   r  r*   r   r  r  r  r  rB  rl   r  filterin_r(   rf  ru   select_statementuser_passed_queryr  zip'_adapt_cached_option_to_uncached_optionr   r  r  r(  r  _update_compile_optionsr  r  rO  r  _load_via_child_load_via_parent)"ro   r   rw   r+  r,  r  rx   r  r  r  
our_statesnone_statesr/  related_identr   r  r  r   
bundle_ent
bundle_sql
entity_sqlrn  rk  r  r  cached_optionsuncached_optionsorig_optuncached_optr  r[  r  r^   r  s"   f&&&&&&&&     `                 @@r:   r"  SelectInLoader._load_for_path;  s    2%%
%%%$006JK[[F$* y"ZZ
 % & )::& & )::& ! (99]J!%!:!:J },-44
I6  &&z9'EF7 %+< ))) )/(.$E 1ujj)<(.  
 $$$$(((  000DKDKS$33C8G   +99'B__T4G4
224
%88:
%%$j17,DD& "2	
 ((( ./A
 d00166**D,@,@,D,DEMM$A HHW[[~!>?@ **;;
2 d223222$22K'55N&88FF /2"$4/	/*Hl @@\/	   w...--$44W= K &+??ANII{#%%&GH$$$##d#;A(((,,,!%!5!5!>!>#444 %3&$2D )77=$2 # & JJ/
 )),d.B.B %%%  ! !!J7u d<&s   9+T'T!.T&T,c           	     	   V P                   p\        V4      pV'       Ed   V^ V P                   p	WP                  R pVP                  P	                  TRV	 U
u. uF   p
VP
                  '       d
   V
^ ,          MT
NK"  	  up
/VR7      P                  4        UUu/ uF  w  rWbK	  	  pppV	 Fz  p
VP                  V
R4      pW,           FY  w  pppV'       g   V P                  V9   d   K"  VP                  V P                  4      P                  TTV'       g   TMV.4       K[  	  K|  	  EK  V FN  w  pppV'       g   V P                  V9   d   K"  VP                  V P                  4      P                  VVR4       KP  	  R# u up
i u uppi )r;  Nr  rn  r  )rA   sorted
_chunksizer  r  r  re  rV   r5   r)  r*  )ro   r  r  r  rn  r   r  rA   our_keyschunkr5   r   r  datarelated_objr   r0  r/  s   &&&&&&&           r:   r  SelectInLoader._load_via_child  s    ,, *%hQ1E 12H $OO33&',)', '1&9&9&9CFsB',) '8 4 	 &(		DA 	    #hhsD1/9+E5)$U): NN488,@@+2	 0? " (3#E5)U!2 NN488$88tL (35)s   F0FFc           
     	   V P                   pV'       d   RMR pV'       Ed   V^ V P                   pWP                  R  pV U	U
UUu. uF#  w  rrVP                  '       d
   V	^ ,          MT	NK%  	  ppp
p	p\        P                  ! \
        4      p\        P                  ! VP                  P                  VRV/VR7      P                  4       R 4       F$  w  ppW,          P                  R V 4       4       K&  	  V F  w  rrV'       g   V P                  V9   d   K!  VP                  W4      pV'       gj   V'       db   \        V4      ^8  d   \        P                   ! RV ,          4       V
P#                  V P                  4      P%                  WV^ ,          4       K  V
P#                  V P                  4      P%                  WV4       K  	  EK  R # u uppp
p	i )Nr  r  c                    V ^ ,          # )r;  r   r  s   &r:   r;   1SelectInLoader._load_via_parent.<locals>.<lambda>[  s    !A$r=   c              3  2   "   T F  q^,          x  K  	  R# 5i)r  Nr   r  s   & r:   r   2SelectInLoader._load_via_parent.<locals>.<genexpr>]  s     1q!uuqr  r  r   )rA   r  r  r  r  rY  r  r  r  r  re  r  r5   rV   r  r   r  r)  r*  )ro   r  r  rn  r   r  rA   _empty_resultr  r5   r   r  r/  r  r  r   r  r  s   &&&&&&            r:   r  SelectInLoader._load_via_parentE  s    ,,%4jq4??3E#OO$56J :?9>5C
 %---A369>  
 **40D!))''*L9&7 (  &(1 1q11 6;1J TXX%;!XXc9
::*		.045
 NN488,@@:a= NN488,@@:' 6;) s   )G
)r  r  r  r  r  )r  r  r  r  r  )r  r  r  r  r  r  )r   r   r   r   r   r  
namedtupler  r  rk   r  r  r  r   r   r"  r  r  r   r   r   s   @r:   r  r  {  se    I ''	

J J5<O,
 N'
N
`Qf5Mn/ /r=   r  c           	        aa V3R  loV3R lpV3R lp\         P                  ! V RVRRRR7       \         P                  ! V RVRRRR7       R# )c           	     0  < Ve   VP                   SP                   8X  dv   VP                  \        P                  ! V4      4      pV'       dI   W!JdD   \        P
                  ! R\        P                  ! V4      : RV P                  : RS: R2RR7      hV# )Nz	Instance z+ is already associated with an instance of z	 via its z0 attribute, and is only allowed a single parent.bbf1)code)	r5   	hasparentr	   instance_stater  r  r3   instance_strrZ   )r   rl  oldvalue	initiatorr  r7   s   &&&& r:   	_do_check*single_parent_validator.<locals>._do_checkx  sx    $((!:!++J,E,Ee,LMIX200  ,,U3U\\4I    r=   c                   < S! WR V4      # r2   r   )r   rl  r  r  s   &&&r:   rM   'single_parent_validator.<locals>.append  s    tY77r=   c                   < S! WW#4      # r2   r   )r   rl  r  r  r  s   &&&&r:   set_%single_parent_validator.<locals>.set_  s    x;;r=   rM   T)rawretvalrH   r   N)r%   listen)r6   r7   rM   r  r  s   &f  @r:   rN   rN   w  sE    8< 
LLhDd 
LLudT$Or=   )NNNNFN)Wr   
__future__r   r  r  typingr   r   r   r   r   r    r	   r
   r   r   r   r   r   r   r   r   r   r3   baser   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r    r   r!   r  r"   r#   r$   r%   r  r&   r'   r(   rQ  r)   sql.selectabler*   r+   util.typingr,   r^   r-   r.   sql.elementsr/   rd   ColumnPropertystrategy_forrh   class_loggerr   r   r   r  r  r&  r)  MemoizedSlots
Identifiedr9  r  r  r  r4  r   r  rN   r   r=   r:   <module>r     s  / #                    " " '  &   ) $ * ! & + #   "          "  ; # !3,N!b ''55'I( ( J(V ''4%'HW:> W: I W:t '''>T
\ T
 ? T
n ''$'G''dd (  ''4'8l
> l
 9 H l
^8 80"
 "
J ##00D0An  B  ##00h0?##00d0;#=) #= < @ #=L ##00d0;##00h0?##00g0>##00n0E##00n0EkJ 2 2CNNkJ F F ? @ < kJ\1
 1
hIH+ IHX ##00k0B`j ` C`F ##00j0AG
GZ G
G B G
GT ##00h0?##00e0<r- r = @ rj ##00j0AwZ!3!3 w B wtPr=   