+
    iY                       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 ^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- ]'       dO   ^R&IH.t. ^R'I/H0t0 ^R(IH1t1 ^R)IH2t2 ^R*I3H4t4 ^R+I3H5t5 ^R,I6H7t7 ^R-IH8t8 ^R.I9H:t: ^R/I"H;t; ^R0I<H=t= ^R1I>H?t? ^R2I>H@t@ ]! R3]R47      tA ! R5 R6]]A,          4      tB ! R7 R8]P                  ]P                  4      tE]!P                  ]P                  P                  R9R:7       ! R; R<]P                  ]!P                  4      4       4       tK ! R= R>4      tL ! R? R@]]A,          4      tM ! RA RB]M]A,          4      tNRC# )DzWrite-only collection API.

This is an alternate mapped attribute style that only supports single-item
collection mutation operations.   To read the collection, a select()
object must be executed each time.

.. versionadded:: 2.0


)annotations)Any)
Collection)Dict)Generic)Iterable)Iterator)List)NoReturn)Optional)overload)Tuple)Type)TYPE_CHECKING)TypeVar)Union)	bindparam)
attributes)
interfaces)relationships)
strategies)	NEVER_SET)object_mapper)PassiveFlag)RelationshipDirection)exc)inspect)log)util)delete)insert)select)update)Delete)Insert)Update)Literal)QueryableAttribute)_InstanceDict)AttributeEventToken)LoaderCallableStatus)_AdaptedCollectionProtocol)CollectionAdapter)Mapper)_RelationshipOrderByArg)InstanceState)AliasedClass)	_Dispatch)
FromClause)Select_T)boundc                      ] tR t^Mt$ RtR]R&   R]R&   R]R&   R]R&   RR	 R
 llt]R R l4       t]R R l4       t	R R lt
R R ltR R ltR R ltRtR# )WriteOnlyHistoryzDOverrides AttributeHistory to receive append/remove events directly.zutil.OrderedIdentitySetunchanged_itemsadded_itemsdeleted_itemsbool_reconcile_collectionNc          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )   attrWriteOnlyAttributeImplstateInstanceState[_T]passiver   apply_tozOptional[WriteOnlyHistory[_T]]returnNone )formats   "ځC:\Users\petid\OneDrive\Desktop\Maestro\MAESTRO CLAUDE\MAESTRO\maestro-backend\venv\Lib\site-packages\sqlalchemy\orm\writeonly.py__annotate__WriteOnlyHistory.__annotate__U   s<     / /$/ !/ 	/
 1/ 
/    c                	   V'       d   V\         P                  ,          '       d   \        P                  ! R V RV R24      hVP                  V n        VP
                  V n        VP                  V n        VP                  V n        R# \        P                  ! 4       V n        \        P                  ! 4       V n        \        P                  ! 4       V n        RV n        R# )z
Attribute z can't load the existing state from the database for this operation; full iteration is not permitted.  If this is a delete operation, configure passive_deletes=True on the z- relationship in order to resolve this error.FN)
r   SQL_OKr   InvalidRequestErrorr8   r9   r:   r<   r   OrderedIdentitySet)selfr?   rA   rC   rD   s   &&&&&rI   __init__WriteOnlyHistory.__init__U   s     ++++--  '3 48& 933  $,#;#;D '33D!)!7!7D)1)G)GD&!%!8!8!:D#668D#'#:#:#<D ).D&rL   c                   V ^8  d   QhRR/# r>   rE   zList[_T]rG   )rH   s   "rI   rJ   rK   q   s     B Bh BrL   c                	^    \        V P                  P                  V P                  4      4      # N)listr9   unionr8   rQ   s   &rI   added_plus_unchanged%WriteOnlyHistory.added_plus_unchangedp   s$    D$$**4+?+?@AArL   c                   V ^8  d   QhRR/# rU   rG   )rH   s   "rI   rJ   rK   u   s     
 
8 
rL   c                	    \        V P                  P                  V P                  4      P                  V P                  4      4      # rW   )rX   r9   rY   r8   r:   rZ   s   &rI   	all_itemsWriteOnlyHistory.all_itemst   s=    ""4#7#78>>""
 	
rL   c                   V ^8  d   QhRR/# )r>   rE   attributes.HistoryrG   )rH   s   "rI   rJ   rK   |   s     O O. OrL   c                	   V P                   '       dg   V P                  P                  V P                  4      pV P                  P                  V P                  4      pV P                  P                  V4      pM#V P                  V P                  V P                  r#p\        P                  ! \        V4      \        V4      \        V4      4      # rW   )	r<   r9   
differencer8   r:   intersectionr   HistoryrX   )rQ   addeddeleted	unchangeds   &   rI   
as_historyWriteOnlyHistory.as_history|   s    %%%$$//0D0DEE((55d6J6JKG,,77@I   $$"" &E
 !!$u+tIWNNrL   c                    V ^8  d   QhRRRR/# )r>   indexzUnion[int, slice]rE   zUnion[List[_T], _T]rG   )rH   s   "rI   rJ   rK      s     - -. -3F -rL   c                	:    \        V P                  4      V,          # rW   )rX   r9   )rQ   rm   s   &&rI   indexedWriteOnlyHistory.indexed   s    D$$%e,,rL   c                    V ^8  d   QhRRRR/# r>   valuer4   rE   rF   rG   )rH   s   "rI   rJ   rK      s     $ $r $d $rL   c                	<    V P                   P                  V4       R # rW   )r9   addrQ   rs   s   &&rI   	add_addedWriteOnlyHistory.add_added   s    U#rL   c                    V ^8  d   QhRRRR/# rr   rG   )rH   s   "rI   rJ   rK      s     * * * *rL   c                	    WP                   9   d   V P                   P                  V4       R # V P                  P                  V4       R # rW   )r9   remover:   ru   rv   s   &&rI   add_removedWriteOnlyHistory.add_removed   s6    $$$##E*""5)rL   )r<   r9   r:   r8   rW   )__name__
__module____qualname____firstlineno____doc____annotations__rR   propertyr[   r_   rj   ro   rw   r|   __static_attributes__rG   rL   rI   r7   r7   M   sf    N,,((**/6 B B 
 
O-$* *rL   r7   c                    a  ] tR t^t$ RtR]R&   RtR]R&   RtR]R&   RtR]R&   Rt	R]R&   Rt
R]R	&   R:tR
]R&   ]tR]R&   R]R&   R V 3R llt]P                   3R R llt]R;R R ll4       t]R;R R ll4       t]R;R R ll4       tR]P                   3R R llt]P*                  R R l4       t]P*                  R R  l4       tR<R! R" lltR<R# R$ lltR% R& ltR]P                   RRR3R' R( lltR) R* ltR+ R, lt]P<                  3R- R. llt]P@                  3R/ R0 llt!R1 R2 lt"]P<                  3R3 R4 llt#]P<                  3R5 R6 llt$]P<                  3R7 R8 llt%R9t&V ;t'# )=r@   Tr;   uses_objectsFdefault_accepts_scalar_loadersupports_population_supports_dynamic_iteration
collectiondynamicr.   order_byzType[WriteOnlyHistory[Any]]collection_history_clszType[WriteOnlyCollection[Any]]query_classc               0    V ^8  d   Qh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]r   r.   kwr   rG   )rH   s   "rI   rJ   #WriteOnlyAttributeImpl.__annotate__   sF     , ,3, , 5	,
 ", *, ,rL   c                	   < \         SV `  ! WR V3/ VB  W@n        \        V n        V'       d   \        V4      V n        R # R # rW   )superrR   r   WriteOnlyCollectionr   tupler   )rQ   r   r   r   r   r   r   	__class__s   &&&&&&,rI   rR   WriteOnlyAttributeImpl.__init__   s<     	dH;;*.!(ODM rL   c               (    V ^8  d   QhRRRRRRRR/# )	r>   rA   InstanceState[Any]dict_r(   rC   r   rE   z8Union[util.OrderedIdentitySet, WriteOnlyCollection[Any]]rG   )rH   s   "rI   rJ   r      s3     1 1!1 1 	1
 
B1rL   c                	    V\         P                  ,          '       g+   V P                  V\         P                  4      P                  # V P                  W4      # rW   )r   rN   _get_collection_historyPASSIVE_NO_INITIALIZEr9   r   )rQ   rA   r   rC   s   &&&&rI   getWriteOnlyAttributeImpl.get   sK     ++++//{88k ##D00rL   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r>   rA   r   r   r(   	user_datazLiteral[None]rC   z Literal[PassiveFlag.PASSIVE_OFF]rE   r,   rG   )rH   s   "rI   rJ   r      s<        !    !	 
 2  
 rL   c                	    R # rW   rG   rQ   rA   r   r   rC   s   &&&&&rI   get_collection%WriteOnlyAttributeImpl.get_collection         rL   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r>   rA   r   r   r(   r   r+   rC   r   rE   r,   rG   )rH   s   "rI   rJ   r      s<        !    .	 
   
 rL   c                	    R # rW   rG   r   s   &&&&&rI   r   r      r   rL   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# r>   rA   r   r   r(   r   z$Optional[_AdaptedCollectionProtocol]rC   r   rE   zIUnion[Literal[LoaderCallableStatus.PASSIVE_NO_RESULT], CollectionAdapter]rG   )rH   s   "rI   rJ   r      s<      !  8	
 
rL   c                	    R # rW   rG   r   s   &&&&&rI   r   r      s     rL   Nc          
     ,    V ^8  d   QhRRRRRRRRR	R
/# r   rG   )rH   s   "rI   rJ   r      s<     . .!. . 8	.
 .
.rL   c                	    V\         P                  ,          '       g   V P                  W4      P                  pMV P                  W4      pVP                  p\        V4      # rW   )r   rN   r   r9   r[   DynamicCollectionAdapter)rQ   rA   r   r   rC   datahistorys   &&&&&  rI   r   r      sQ     ++++//?KKD225BG//D'--rL   c                   V ^8  d   QhRR/# r>   rE   zattributes.AttributeEventTokenrG   )rH   s   "rI   rJ   r           J J= JrL   c                	L    \         P                  ! V \         P                  4      # rW   )r   r)   	OP_APPENDrZ   s   &rI   _append_token$WriteOnlyAttributeImpl._append_token       --dJ4H4HIIrL   c                   V ^8  d   QhRR/# r   rG   )rH   s   "rI   rJ   r      r   rL   c                	L    \         P                  ! V \         P                  4      # rW   )r   r)   	OP_REMOVErZ   s   &rI   _remove_token$WriteOnlyAttributeImpl._remove_token   r   rL   c               0    V ^8  d   QhRRRRRRRRR	R
RR/# r>   rA   r   r   r(   rs   r   	initiatorOptional[AttributeEventToken]collection_historyzOptional[WriteOnlyHistory[Any]]rE   rF   rG   )rH   s   "rI   rJ   r      sN     M M!M M 	M
 1M <M 
MrL   c                	H   Vf   V P                  W4      pVP                  V4       V P                  P                   F   pT! YT;'       g    V P                  4      pK"  	  V P
                  '       d0   Ve*   V P                  \        P                  ! V4      VR4       R # R # R # )NT)	_modified_eventrw   r   appendr   trackparentsethasparentr   instance_staterQ   rA   r   rs   r   r   fns   &&&&&& rI   fire_append_event(WriteOnlyAttributeImpl.fire_append_event   s     %!%!5!5e!C$$U+--&&BuY%D%D$2D2DEE '  1j77>tL !2rL   c               0    V ^8  d   QhRRRRRRRRR	R
RR/# r   rG   )rH   s   "rI   rJ   r   	  sF     > >!> > 	>
 1> <> 
>rL   c                	@   Vf   V P                  W4      pVP                  V4       V P                  '       d,   Ve(   V P                  \        P
                  ! V4      VR4       V P                  P                   F   pT! YT;'       g    V P                  4       K"  	  R # )NF)	r   r|   r   r   r   r   r   r{   r   r   s   &&&&&& rI   fire_remove_event(WriteOnlyAttributeImpl.fire_remove_event	  s     %!%!5!5e!C&&u- 1j77>uM--&&BuY<<$*<*<= 'rL   c               $    V ^8  d   QhRRRRRR/# )r>   rA   r   r   r(   rE   WriteOnlyHistory[Any]rG   )rH   s   "rI   rJ   r     s$     / /'/0=/	/rL   c                	(   V P                   VP                  9  d8   V P                  W\        P                  4      VP                  V P                   &   VP                  W \        4       R W P                   &   VP                  V P                   ,          # T)r   committed_stater   r   PASSIVE_NO_FETCHr   r   )rQ   rA   r   s   &&&rI   r   &WriteOnlyAttributeImpl._modified_event  st     885000.2.I.I[99/E!!$((+ 	e95 hh$$TXX..rL   c               <    V ^8  d   QhRRRRRRRRR	R
RRRRRRRR/	# )r>   rA   r   r   r(   rs   r   r   r   rC   r   	check_oldpopr;   _adaptrE   rF   rG   )rH   s   "rI   rJ   r   +  sd     ; ;!; ; 	;
 1; ; ; ; ; 
;rL   c	           	     	    V'       d   VP                   V P                   J d   R # V'       d   Vf   R # Tp	\        V	4      p
VP                  '       dT   V P                  '       g   \        P
                  ! RV  R24      h\        P                  ! V P                  WVR7      4      pV P                  W4      pVP                  '       g   VP                  pMXP                  VP                  4      pVP                  V
4      p\        P                  ! V
4      P                  V4      pVP                  V4      pV
 F"  pVV9   g   K  V P                  VVVR VR7       K$  	  V F  pV P                  VVVR VR7       K  	  R # )NzCollection "zV" does not support implicit iteration; collection replacement operations can't be usedrC   )r   )parent_tokenrX   has_identityr   r   rO   r   IdentitySetr   r   r9   rY   re   rd   r   r   )rQ   rA   r   rs   r   rC   r   r   r   iterable
new_valuesold_collectionr   	constants	additionsremovalsmembers   &&&&&&&&&        rI   setWriteOnlyAttributeImpl.set+  su    //43D3DD5=(^
333--"4& )$ $ 
 "--w7N "11%?!!!/;;N+11"..N #//
;	$$Z0;;IF	!,,Y7 F"&&'9 '  ! F""#5 #  rL   c               $    V ^8  d   QhRRRRRR/# )r>   argsr   kwargsrE   r
   rG   )rH   s   "rI   rJ   r   h  s!     $ $C $3 $8 $rL   c                	    \        4       hrW   NotImplementedError)rQ   r   r   s   &*,rI   r   WriteOnlyAttributeImpl.deleteh  s    !##rL   c               (    V ^8  d   QhRRRRRRRR/# )	r>   rA   r   r   r(   rs   r   rE   r
   rG   )rH   s   "rI   rJ   r   k  s,     
 
'
0=
FI
	
rL   c                	    \        R 4      h)z7Dynamic attributes don't support collection population.r   )rQ   rA   r   rs   s   &&&&rI   set_committed_value*WriteOnlyAttributeImpl.set_committed_valuek  s     "E
 	
rL   c               (    V ^8  d   QhRRRRRRRR/# )	r>   rA   r   r   r(   rC   r   rE   rb   rG   )rH   s   "rI   rJ   r   r  s2      !  	
 
rL   c                	D    V P                  W4      pVP                  4       # rW   )r   rj   )rQ   rA   r   rC   cs   &&&& rI   get_history"WriteOnlyAttributeImpl.get_historyr  s      ((8||~rL   c               (    V ^8  d   QhRRRRRRRR/# )	r>   rA   r   r   r(   rC   r   rE   z$List[Tuple[InstanceState[Any], Any]]rG   )rH   s   "rI   rJ   r   {  s8     H H!H H 	H
 
.HrL   c                	    V P                  W4      pVP                   Uu. uF  p\        P                  ! V4      V3NK  	  up# u upi rW   )r   r_   r   r   )rQ   rA   r   rC   r   xs   &&&&  rI   get_all_pending&WriteOnlyAttributeImpl.get_all_pending{  s@     ((8;<;;G;a**1-q1;GGGs   !Ac               $    V ^8  d   QhRRRRRR/# )r>   rA   r   rC   r   rE   r   rG   )rH   s   "rI   rJ   r     s$      '2=	rL   c                	<   V P                   VP                  9   d   VP                  V P                   ,          pM V P                  W\        P                  4      pVP
                  '       d1   V\        P                  ,          '       d   V P                  WW#R 7      # V# ))rD   )r   r   r   r   r   r   INIT_OK)rQ   rA   rC   r   s   &&& rI   r   .WriteOnlyAttributeImpl._get_collection_history  s     88u,,,%%dhh/A++[99A 7[-@-@#@#@..W /   HrL   c               0    V ^8  d   QhRRRRRRRRR	R
RR/# r>   rA   r   r   r(   rs   r   r   r   rC   r   rE   rF   rG   )rH   s   "rI   rJ   r     N     	C 	C!	C 	C 		C
 1	C 	C 
	CrL   c                	8    W@Jd   V P                  WW44       R # R # rW   )r   rQ   rA   r   rs   r   rC   s   &&&&&&rI   r   WriteOnlyAttributeImpl.append        ""5B !rL   c               0    V ^8  d   QhRRRRRRRRR	R
RR/# r
  rG   )rH   s   "rI   rJ   r     r  rL   c                	8    W@Jd   V P                  WW44       R # R # rW   )r   r  s   &&&&&&rI   r{   WriteOnlyAttributeImpl.remove  r  rL   c               0    V ^8  d   QhRRRRRRRRR	R
RR/# r
  rG   )rH   s   "rI   rJ   r     sN     E E!E E 	E
 1E E 
ErL   c                	.    V P                  WW4VR 7       R# )r   N)r{   r  s   &&&&&&rI   r   WriteOnlyAttributeImpl.pop  s     	E%GDrL   )r   r   r   rG   )..rW   )(r~   r   r   r   r   r   r   r   r   r   r   r   r7   r   rR   r   PASSIVE_OFFr   r   r   r   memoized_propertyr   r   r   r   r   r   r   r   r   r   r   r  r   r   r{   r   r   __classcell__)r   s   @rI   r@   r@      s    L$*/!4/ %%(--JGT(*H%*:J7J//, ,&  +66	1           ;?*66." 
J J 
J JM&>&/( 48*66;z$
  +;;	  +@@	H0  +;;	C"  +;;	C"  +;;E ErL   r@   
write_only)lazyc                  &    ] tR tRt]tR R ltRtR# )WriteOnlyLoaderi  c                    V ^8  d   QhRRRR/# )r>   mapperzMapper[Any]rE   rF   rG   )rH   s   "rI   rJ   WriteOnlyLoader.__annotate__  s     
 
; 
4 
rL   c           
     	   R V n         V P                  '       d:   V P                  P                  \        P
                  \        P                  39  d(   \        P                  ! RV P                  ,          4      h\        P                  ! V P                  VR V P                  V P                  P                  V P                  P                  V P                  P                  R7       R# )TztOn relationship %s, 'dynamic' loaders cannot be used with many-to-one/one-to-one relationships and/or uselist=False.)	useobject
impl_classr   r   r   N)is_class_leveluselistparent_property	directionr   	ONETOMANY
MANYTOMANYr   rO   r   _register_attributer"  r  r   r   )rQ   r  s   &&rI   init_class_attribute$WriteOnlyLoader.init_class_attribute  s    "|||t33==  !!F
  
 ))!#'#7#78  	&&  ..55))22,,88	
rL   )r#  N)r~   r   r   r   r@   r"  r*  r   rG   rL   rI   r  r    s     (J
 
rL   r  c                  b    ] tR tRt$ RtR]R&   R R ltR R ltR	 R
 ltR R lt	R R lt
RtR# )r   i  z9simplified CollectionAdapter for internal API consistencyCollection[Any]r   c                   V ^8  d   QhRR/# )r>   r   r-  rG   )rH   s   "rI   rJ   %DynamicCollectionAdapter.__annotate__  s      _ rL   c                	    Wn         R # rW   r   )rQ   r   s   &&rI   rR   !DynamicCollectionAdapter.__init__  s    	rL   c                   V ^8  d   QhRR/# )r>   rE   zIterator[Any]rG   )rH   s   "rI   rJ   r/    s      - rL   c                	,    \        V P                  4      # rW   )iterr   rZ   s   &rI   __iter__!DynamicCollectionAdapter.__iter__  s    DIIrL   c                   V ^8  d   QhRR/# )r>   rE   rF   rG   )rH   s   "rI   rJ   r/    s      d rL   c                	    R # rW   rG   rZ   s   &rI   _reset_empty%DynamicCollectionAdapter._reset_empty  s    rL   c                   V ^8  d   QhRR/# )r>   rE   intrG   )rH   s   "rI   rJ   r/    s       rL   c                	,    \        V P                  4      # rW   )lenr   rZ   s   &rI   __len__ DynamicCollectionAdapter.__len__  s    499~rL   c                   V ^8  d   QhRR/# )r>   rE   r;   rG   )rH   s   "rI   rJ   r/    s      $ rL   c                	    R # r   rG   rZ   s   &rI   __bool__!DynamicCollectionAdapter.__bool__  s    rL   r1  N)r~   r   r   r   r   r   rR   r6  r:  r@  rD  r   rG   rL   rI   r   r     s)    C
 rL   r   c                  h    ] tR tRt$ Rt]'       g   RtR]R&   R]R&   R R ltR	 R
 lt	R R lt
RtR# )AbstractCollectionWriteri  zkVirtual collection which includes append/remove methods that synchronize
into the attribute event system.

r4   instancezTuple[FromClause, ...]	_from_objc                    V ^8  d   QhRRRR/# )r>   r?   r@   rA   rB   rG   )rH   s   "rI   rJ   %AbstractCollectionWriter.__annotate__  s     ( (3 (<M (rL   c                	   VP                  4       p\        '       d   V'       g   Q hW0n        Wn        \	        V4      pVP
                  V P                  P                  ,          pVP                  e-   VP                  P                  4       VP                  3V n
        MRV n
        VP                  VRR7      3V n        V P                  P                  '       d   V P                  P                  V n        R # RV n        R # )NF)alias_secondaryrG   )objr   rH  r?   r   _propsr   	secondaryr  __clause_element__rI  _with_parent_where_criteriar   _order_by_clauses)rQ   r?   rA   rH  r  props   &&&   rI   rR   !AbstractCollectionWriter.__init__  s    99;=O8 	x(}}TYY]]+>>% #kk<<>ODNDN h> 
 99%)YY%7%7D"%'D"rL   c                    V ^8  d   QhRRRR/# r>   iteratorzIterable[_T]rE   rF   rG   )rH   s   "rI   rJ   rK    s      l t rL   c                	    V F]  pV P                   P                  \        P                  ! V P                  4      \        P
                  ! V P                  4      VR 4       K_  	  R # rW   )r?   r   r   r   rH  instance_dict)rQ   rY  items   && rI   _add_all_impl&AbstractCollectionWriter._add_all_impl  sH    DII))$--8((7	 rL   c                    V ^8  d   QhRRRR/# r>   r\  r4   rE   rF   rG   )rH   s   "rI   rJ   rK    s     
 
 
 
rL   c                	    V P                   P                  \        P                  ! V P                  4      \        P
                  ! V P                  4      VR 4       R # rW   )r?   r{   r   r   rH  r[  rQ   r\  s   &&rI   _remove_impl%AbstractCollectionWriter._remove_impl  s>    		%%dmm4$$T]]3		
rL   )rI  rT  rS  r?   rH  NrG   )r~   r   r   r   r   r   	__slots__r   rR   r]  rc  r   rG   rL   rI   rG  rG    s1    
 	L%%(B
 
rL   rG  c                  ~    ] tR tRtRtRtR R ltR R ltR R ltR	 R
 lt	R R lt
R R ltR R ltR R ltRtR# )r   i'  ay  Write-only collection which can synchronize changes into the
attribute event system.

The :class:`.WriteOnlyCollection` is used in a mapping by
using the ``"write_only"`` lazy loading strategy with
:func:`_orm.relationship`.     For background on this configuration,
see :ref:`write_only_relationship`.

.. versionadded:: 2.0

.. seealso::

    :ref:`write_only_relationship`

c                   V ^8  d   QhRR/# )r>   rE   r
   rG   )rH   s   "rI   rJ    WriteOnlyCollection.__annotate__@  s     
 
( 
rL   c                	    \        R 4      h)zWriteOnly collections don't support iteration in-place; to query for collection items, use the select() method to produce a SQL statement and execute it with session.scalars().)	TypeErrorrZ   s   &rI   r6  WriteOnlyCollection.__iter__@  s    M
 	
rL   c                   V ^8  d   QhRR/# )r>   rE   zSelect[Tuple[_T]]rG   )rH   s   "rI   rJ   rh  G  s     
 
) 
rL   c                $   \        V P                  P                  4      P                  ! V P                  !  pV P
                  '       d   VP                  ! V P
                  !  pV P                  '       d   VP                  ! V P                  !  pV# )zProduce a :class:`_sql.Select` construct that represents the
rows within this instance-local :class:`_orm.WriteOnlyCollection`.

)	r!   r?   r   whererS  rI  select_fromrT  r   )rQ   stmts   & rI   r!   WriteOnlyCollection.selectG  sk    
 dii--.44d6J6JK>>>##T^^4D!!!==$"8"89DrL   c                   V ^8  d   QhRR/# )r>   rE   r$   rG   )rH   s   "rI   rJ   rh  S  s     &? &? &?rL   c                   \        V P                  4      pVP                  pVP                  V P                  P
                  ,          pVP                  \        P                  Jd   \        P                  ! R4      h/ pVP                   F<  w  rVVP                  VVVP                  V4      p\        RVR7      WFP
                  &   K>  	  \        V P                  P                   4      P"                  ! R/ VB # )a  For one-to-many collections, produce a :class:`_dml.Insert` which
will insert new rows in terms of this this instance-local
:class:`_orm.WriteOnlyCollection`.

This construct is only supported for a :class:`_orm.Relationship`
that does **not** include the :paramref:`_orm.relationship.secondary`
parameter.  For relationships that refer to a many-to-many table,
use ordinary bulk insert techniques to produce new objects, then
use :meth:`_orm.AbstractCollectionWriter.add_all` to associate them
with the collection.


zWrite only bulk INSERT only supported for one-to-many collections; for many-to-many, use a separate bulk INSERT along with add_all().N)	callable_rG   )r   rH  r  rO  r?   r   r&  r   r'  r   rO   synchronize_pairs_get_attr_w_warn_on_nonedictr   r    r   values)rQ   rA   r  rU  r   lrr   s   &       rI   r    WriteOnlyCollection.insertS  s     &}}TYY]]+>>!6!@!@@))/  !#**DA..

	B %TR8E%%L + dii--.55>>>rL   c                   V ^8  d   QhRR/# )r>   rE   r%   rG   )rH   s   "rI   rJ   rh  {       L L LrL   c                p    \        V P                  P                  4      P                  ! V P                  !  # )z|Produce a :class:`_dml.Update` which will refer to rows in terms
of this instance-local :class:`_orm.WriteOnlyCollection`.

)r"   r?   r   rn  rS  rZ   s   &rI   r"   WriteOnlyCollection.update{  *    
 dii--.44d6J6JKKrL   c                   V ^8  d   QhRR/# )r>   rE   r#   rG   )rH   s   "rI   rJ   rh    r}  rL   c                p    \        V P                  P                  4      P                  ! V P                  !  # )z|Produce a :class:`_dml.Delete` which will refer to rows in terms
of this instance-local :class:`_orm.WriteOnlyCollection`.

)r   r?   r   rn  rS  rZ   s   &rI   r   WriteOnlyCollection.delete  r  rL   c                    V ^8  d   QhRRRR/# rX  rG   )rH   s   "rI   rJ   rh    s     % % % %rL   c                (    V P                  V4       R# )zAdd an iterable of items to this :class:`_orm.WriteOnlyCollection`.

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

Nr]  )rQ   rY  s   &&rI   add_allWriteOnlyCollection.add_all  s     	8$rL   c                    V ^8  d   QhRRRR/# r`  rG   )rH   s   "rI   rJ   rh    s     # # #t #rL   c                *    V P                  V.4       R# )zAdd an item to this :class:`_orm.WriteOnlyCollection`.

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

Nr  rb  s   &&rI   ru   WriteOnlyCollection.add  s     	D6"rL   c                    V ^8  d   QhRRRR/# r`  rG   )rH   s   "rI   rJ   rh    s        2  $  rL   c                (    V P                  V4       R# )zRemove an item from this :class:`_orm.WriteOnlyCollection`.

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

N)rc  rb  s   &&rI   r{   WriteOnlyCollection.remove  s     	$rL   rG   N)rH  r?   rS  rI  rT  )r~   r   r   r   r   re  r6  r!   r    r"   r   r  ru   r{   r   rG   rL   rI   r   r   '  s>     I

&?PLL%#   rL   r   N)Or   
__future__r   typingr   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   sqlalchemy.sqlr    r   r   r   r   baser   r   r   r   r   r   r   r   sqlr   r    r!   r"   sql.dmlr#   r$   r%   util.typingr&   r'   _typingr(   r)   r*   collectionsr+   r,   r  r-   r.   rA   r/   r0   eventr1   sql.selectabler2   r3   r4   r7   HasCollectionAdapterAttributeImplr@   class_loggerRelationshipPropertystrategy_forAbstractRelationshipLoader
Identifiedr  r   rG  r   rG   rL   rI   <module>r     s]  	 #                 $        '            !$&/*7.6$"!+'TF*wr{ F*R^E##Z%=%=^EB	 ##00l0C
j;;S^^ 
 D 
4 *<
wr{ <
~{ 226 { rL   