+
    i'                       R 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! ]'       d1   ^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 ]R!7      t. ! R" R#]].,          4      t/ ! R$ R%]4      t0]Pb                  Pe                  R&R'7       ! R( R)]4      4       t3 ! R* R+]].,          4      t4 ! R, R-]4].,          ]].,          4      t5R. R/ lt6R0# )1zDynamic collection API.

Dynamic collections act like Query() objects for read operations and support
basic add/delete mutation.

.. legacy:: the "dynamic" loader is a legacy feature, superseded by the
 "write_only" loader.


)annotations)Any)Iterable)Iterator)List)Optional)Tuple)Type)TYPE_CHECKING)TypeVar)Union)
attributes)exc)relationships)util)PassiveFlag)Query)object_session)AbstractCollectionWriter)WriteOnlyAttributeImpl)WriteOnlyHistory)WriteOnlyLoader)result)QueryableAttribute)Mapper)_RelationshipOrderByArg)Session)InstanceState)AliasedClass)	_Dispatch)ColumnElement_T)boundc                  &    ] tR t^=tRR R lltRtR# )DynamicCollectionHistoryNc          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )   attrDynamicAttributeImplstateInstanceState[_T]passiver   apply_toz&Optional[DynamicCollectionHistory[_T]]returnNone )formats   "C:\Users\petid\OneDrive\Desktop\Maestro\MAESTRO CLAUDE\MAESTRO\maestro-backend\venv\Lib\site-packages\sqlalchemy\orm\dynamic.py__annotate__%DynamicCollectionHistory.__annotate__>   s<     / /"/ !/ 	/
 9/ 
/    c                	   V'       da   \        W4      P                  R 4      p\        P                  ! V4      V n        VP
                  V n        VP                  V n        RV n        R# \        P                  ! 4       V n        \        P                  ! 4       V n        \        P                  ! 4       V n        R V n        R# )FTN)AppenderQuery	autoflushr   OrderedIdentitySetunchanged_itemsadded_itemsdeleted_items_reconcile_collection)selfr'   r)   r+   r,   colls   &&&&& r1   __init__!DynamicCollectionHistory.__init__>   s      -77>D#'#:#:4#@D '33D!)!7!7D)-D&!%!8!8!:D#668D#'#:#:#<D ).D&r4   )r<   r:   r;   r9   N)__name__
__module____qualname____firstlineno__r?   __static_attributes__r/   r4   r1   r$   r$   =   s    / /r4   r$   c                  H    ] tR t^Rt$ Rt]],          tR]R&   RR R llt	Rt
R# )	r(   TzType[AppenderMixin[Any]]query_classNc               8    V ^8  d   QhRRRRRRRRR	R
RRRRRR/# )r&   class_z#Union[Type[Any], AliasedClass[Any]]keystrdispatchz"_Dispatch[QueryableAttribute[Any]]target_mapperz
Mapper[_T]order_byr   rH   z!Optional[Type[AppenderMixin[_T]]]kwr   r-   r.   r/   )r0   s   "r1   r2   !DynamicAttributeImpl.__annotate__W   sZ     = =3= = 5	=
 "= *= 7= = 
=r4   c                	   \         P                  P                  ! WVR V3/ VB  W@n        V'       d   \	        V4      V n        V'       g   \        V n        R # \        VP                  4       9   d	   W`n        R # \        V4      V n        R # rA   )r   AttributeImplr?   rN   tuplerO   r6   rH   AppenderMixinmromixin_user_query)r=   rJ   rK   rM   rN   rO   rH   rP   s   &&&&&&&,r1   r?   DynamicAttributeImpl.__init__W   sl     	  ))#tX	
13	
 +!(ODM,Dkoo//*/<Dr4   )rO   rH   rN   rA   )rB   rC   rD   rE   _supports_dynamic_iterationr$   r   collection_history_cls__annotations__r?   rF   r/   r4   r1   r(   r(   R   s#    "&5c:))= =r4   r(   dynamic)lazyc                      ] tR t^ot]tRtR# )
DynaLoaderr/   N)rB   rC   rD   rE   r(   
impl_classrF   r/   r4   r1   r_   r_   o   s    %Jr4   r_   c                    a  ] tR t^tt$ RtRtR]R&   R]R&   R V 3R llt]R	 R
 l4       t	]	P                  R R l4       t	R R lt]'       d   R R ltR R ltR R ltR"R R lltR R ltR R ltR R ltR R ltR R  ltR!tV ;t# )#rU   zLA mixin that expects to be mixing in a Query class with
AbstractAppender.


NzOptional[Type[Query[_T]]]rH   zTuple[ColumnElement[Any], ...]_order_by_clausesc               $    V ^8  d   QhRRRRRR/# )r&   r'   r(   r)   r*   r-   r.   r/   )r0   s   "r1   r2   AppenderMixin.__annotate__~   s$     & &(&1B&	&r4   c                	j   < \         P                  ! V VP                  R 4       \        SV `  W4       R # rA   )r   r?   rN   super)r=   r'   r)   	__class__s   &&&r1   r?   AppenderMixin.__init__~   s/     		

 	%r4   c                   V ^8  d   QhRR/# )r&   r-   Optional[Session]r/   )r0   s   "r1   r2   rd      s      * r4   c                	    \        V P                  4      pVe4   VP                  '       d"   V P                  V9   d   VP                  4        \        P
                  ! V P                  4      '       g   R # V# rA   )r   instancer7   flushorm_utilhas_identityr=   sesss   & r1   sessionAppenderMixin.session   sO    dmm,4==D3HJJL$$T]]33Kr4   c                    V ^8  d   QhRRRR/# )r&   rr   r   r-   r.   r/   )r0   s   "r1   r2   rd      s      w 4 r4   c                	    Wn         R # rA   rq   )r=   rr   s   &&r1   rr   rs      s    	r4   c                   V ^8  d   QhRR/# )r&   r-   z1Union[result.ScalarResult[_T], result.Result[_T]]r/   )r0   s   "r1   r2   rd      s     0 0H 0r4   c           
     	   V P                   pVEf   \        P                  ! V P                  4      pVP                  '       d2   \
        P                  ! R\        P                  ! V4      ,          4       \        P                  ! \        P                  ! V P                  P                  P                  .4      \        V P                  P!                  \        P                  ! V P                  4      \"        P$                  4      P&                  4      RR7      P)                  4       # V P+                  V4      P-                  4       # )NzInstance %s is detached, dynamic relationship cannot return a correct result.   This warning will become a DetachedInstanceError in a future release.T)_source_supports_scalars)rr   r   instance_staterl   detachedr   warnrn   	state_strr   IteratorResultSimpleResultMetaDatar'   rJ   rB   iter_get_collection_historyr   PASSIVE_NO_INITIALIZEr:   scalars	_generate_iter)r=   rq   r)   s   &  r1   r   AppenderMixin._iter   s    ||<--dmm<E~~~		C  ))%02 ((++TYY-=-=-F-F,GHII55"11$--@#99 "k	 *.	 gi	 >>$'--//r4   c                   V ^8  d   QhRR/# )r&   r-   zIterator[_T]r/   )r0   s   "r1   r2   rd      s    //l/r4   c                	    R # rA   r/   )r=   s   &r1   __iter__AppenderMixin.__iter__   s    Cr4   c                    V ^8  d   QhRRRR/# )r&   indexr   r-   zUnion[_T, List[_T]]r/   )r0   s   "r1   r2   rd      s     ; ; ;)< ;r4   c                	   V P                   pVfX   V P                  P                  \        P                  ! V P
                  4      \        P                  4      P                  V4      # V P                  V4      P                  V4      # rA   )rr   r'   r   r   rz   rl   r   r   indexedr   __getitem__)r=   r   rq   s   && r1   r   AppenderMixin.__getitem__   si    ||<9944))$--811 gen
 >>$'33E::r4   c                   V ^8  d   QhRR/# )r&   r-   intr/   )r0   s   "r1   r2   rd      s     
0 
0s 
0r4   c                	   V P                   pVf\   \        V P                  P                  \        P
                  ! V P                  4      \        P                  4      P                  4      # V P                  V4      P                  4       # rA   )rr   lenr'   r   r   rz   rl   r   r   r:   r   countrp   s   & r1   r   AppenderMixin.count   sk    ||<		11--dmm<55 +	  >>$'--//r4   c                    V ^8  d   QhRRRR/# )r&   rq   rj   r-   z	Query[_T]r/   )r0   s   "r1   r2   rd      s       
r4   c                	   V P                   pVfW   \        V4      pVfH   \        P                  ! R\        P
                  ! V4      : RV P                  P                  : R24      hV P                  '       d)   V P                  V P                  P                  VR7      pM%VP                  V P                  P                  4      pV P                  Vn        V P                  Vn        V P                  Vn        V# )NzParent instance zh is not bound to a Session, and no contextual session is established; lazy load operation of attribute 'z' cannot proceed)rr   )rl   r   orm_excDetachedInstanceErrorrn   instance_strr'   rK   rH   rN   query_where_criteria	_from_objrb   )r=   rq   rl   r   s   &&  r1   r   AppenderMixin._generate   s     ==<!(+D|33  ,,X6		G  $$TYY%<%<d$KEJJtyy667E $ 4 4.."&"8"8r4   c                    V ^8  d   QhRRRR/# r&   iteratorzIterable[_T]r-   r.   r/   )r0   s   "r1   r2   rd      s     % % % %r4   c                (    V P                  V4       R# )aN  Add an iterable of items to this :class:`_orm.AppenderQuery`.

The given items will be persisted to the database in terms of
the parent instance's collection on the next flush.

This method is provided to assist in delivering forwards-compatibility
with the :class:`_orm.WriteOnlyCollection` collection class.

.. versionadded:: 2.0

N_add_all_implr=   r   s   &&r1   add_allAppenderMixin.add_all   s     	8$r4   c                    V ^8  d   QhRRRR/# r&   itemr!   r-   r.   r/   )r0   s   "r1   r2   rd      s     # # #t #r4   c                *    V P                  V.4       R# )a@  Add an item to this :class:`_orm.AppenderQuery`.

The given item will be persisted to the database in terms of
the parent instance's collection on the next flush.

This method is provided to assist in delivering forwards-compatibility
with the :class:`_orm.WriteOnlyCollection` collection class.

.. versionadded:: 2.0

Nr   r=   r   s   &&r1   addAppenderMixin.add   s     	D6"r4   c                    V ^8  d   QhRRRR/# r   r/   )r0   s   "r1   r2   rd     s     % %| % %r4   c                (    V P                  V4       R# )zAdd an iterable of items to this :class:`_orm.AppenderQuery`.

The given items will be persisted to the database in terms of
the parent instance's collection on the next flush.

Nr   r   s   &&r1   extendAppenderMixin.extend  s     	8$r4   c                    V ^8  d   QhRRRR/# r   r/   )r0   s   "r1   r2   rd     s     # #2 #$ #r4   c                *    V P                  V.4       R# )zAppend an item to this :class:`_orm.AppenderQuery`.

The given item will be persisted to the database in terms of
the parent instance's collection on the next flush.

Nr   r   s   &&r1   appendAppenderMixin.append  s     	D6"r4   c                    V ^8  d   QhRRRR/# r   r/   )r0   s   "r1   r2   rd     s        2  $  r4   c                (    V P                  V4       R# )zRemove an item from this :class:`_orm.AppenderQuery`.

The given item will be removed from the parent instance's collection on
the next flush.

N)_remove_implr   s   &&r1   removeAppenderMixin.remove  s     	$r4   rv   rA   )rB   rC   rD   rE   __doc__rH   r[   r?   propertyrr   setterr   r
   r   r   r   r   r   r   r   r   r   rF   __classcell__)rg   s   @r1   rU   rU   t   s     .2K*155& &   ^^ 02 /;
0:%#%#   r4   rU   c                      ] tR tRtRtRtR# )r6   i  zA dynamic query that supports basic collection storage operations.

Methods on :class:`.AppenderQuery` include all methods of
:class:`_orm.Query`, plus additional methods used for collection
persistence.


r/   N)rB   rC   rD   rE   r   rF   r/   r4   r1   r6   r6     s    r4   r6   c                    V ^8  d   QhRRRR/# )r&   clsr   r-   ztype[AppenderMixin[Any]]r/   )r0   s   "r1   r2   r2   )  s     B B# B": Br4   c                R    RV P                   ,           p\        V\        V 3RV /4      # )zAReturn a new class with AppenderQuery functionality layered over.AppenderrH   )rB   typerU   )r   names   & r1   rW   rW   )  s)    $D}c*]C,@AAr4   N)7r   
__future__r   typingr   r   r   r   r   r   r	   r
   r   r    r   r   r   r   r   rn   baser   r   r   rr   r   	writeonlyr   r   r   r   enginer   r   mapperr   r   r   r)   r   r   eventr   sql.elementsr    r!   r$   r(   RelationshipPropertystrategy_forr_   rU   r6   rW   r/   r4   r1   <module>r      s   	 #                  # / - ' &   $6 $"!,T//3 /*=1 =: ##00i0@& & A&g ,R0 g TM"%uRy Br4   