ó
    Ñ]jW  ã                  óº  • S r SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJ	r	  SS	KJ
r
  SS
KJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJ r   SSKJ!r!  SS KJ"r"  SS!K#J$r$  SS"K#J%r%  SS#K#J&r&  SS$K#J'r'  SS%K(J)r)  SS&K(J*r*  SS'K(J+r+  SS(K,J-r-  \(       aN  SS)KJ.r.  SS*K/J0r0  SS+KJ1r1  SS,KJ2r2  SS-K3J4r4  SS.K3J5r5  SS/K6J7r7  SS0KJ8r8  SS1K9J:r:  SS2K"J;r;  SS3K<J=r=  SS4K>J?r?  SS5K>J@r@  \" S6\S79rA " S8 S9\\A   5      rB " S: S;\R†                  \Rˆ                  5      rE\!RŒ                  \RŽ                  R‘                  S<S=9 " S> S?\R’                  \!R”                  5      5       5       rK " S@ SA5      rL " SB SC\\A   5      rM " SD SE\M\A   5      rNgF)GzèWrite-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                  ó´   • \ rS rSr% SrS\S'   S\S'   S\S'   S\S'    S         SS
 jjr\SS j5       r\SS j5       r	SS jr
SS jrSS jrSS jrSrg	)ÚWriteOnlyHistoryéM   zDOverrides AttributeHistory to receive append/remove events directly.zutil.OrderedIdentitySetÚunchanged_itemsÚadded_itemsÚdeleted_itemsÚboolÚ_reconcile_collectionNc                ó°  • U(       az  U[         R                  -  (       a  [        R                  " SU SU S35      eUR                  U l        UR
                  U l        UR                  U l        UR                  U l        g [        R                  " 5       U l        [        R                  " 5       U l        [        R                  " 5       U l        SU l        g )Nz
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.F)
r   ÚSQL_OKr   ÚInvalidRequestErrorr<   r=   r>   r@   r!   ÚOrderedIdentitySet)ÚselfÚattrÚstateÚpassiveÚapply_tos        ÚU/home/mande/repo/quber/.venv/lib/python3.13/site-packages/sqlalchemy/orm/writeonly.pyÚ__init__ÚWriteOnlyHistory.__init__U   sº   € ö Øœ×+Ñ+×+Ü×-Ò-Ø   ð '3ð 48°&ð 93ð3óð ð $,×#;Ñ#;ˆDÔ Ø'×3Ñ3ˆDÔØ!)×!7Ñ!7ˆDÔØ)1×)GÑ)GˆDÕ&ä!%×!8Ò!8Ó!:ˆDÔÜ#×6Ò6Ó8ˆDÔÜ#'×#:Ò#:Ó#<ˆDÔ Ø).ˆDÕ&ó    c                ó^   • [        U R                  R                  U R                  5      5      $ ©N)Úlistr=   Úunionr<   ©rE   s    rJ   Úadded_plus_unchangedÚ%WriteOnlyHistory.added_plus_unchangedp   s$   € ä�D×$Ñ$×*Ñ*¨4×+?Ñ+?Ó@ÓAÐArM   c                ó�   • [        U R                  R                  U R                  5      R                  U R                  5      5      $ rO   )rP   r=   rQ   r<   r>   rR   s    rJ   Ú	all_itemsÚWriteOnlyHistory.all_itemst   s=   € äØ×Ñ×"Ñ" 4×#7Ñ#7Ó8×>Ñ>Ø×"Ñ"óó
ð 	
rM   c                óœ  • U R                   (       af  U R                  R                  U R                  5      nU R                  R                  U R                  5      nU R                  R                  U5      nO#U R                  U R                  U R                  p#n[        R                  " [        U5      [        U5      [        U5      5      $ rO   )	r@   r=   Ú
differencer<   r>   Úintersectionr   ÚHistoryrP   )rE   ÚaddedÚdeletedÚ	unchangeds       rJ   Ú
as_historyÚWriteOnlyHistory.as_history|   s    € Ø×%×%Ø×$Ñ$×/Ñ/°×0DÑ0DÓEˆEØ×(Ñ(×5Ñ5°d×6JÑ6JÓKˆGØ×,Ñ,×7Ñ7¸Ó@‰Ið × Ñ Ø×$Ñ$Ø×"Ñ"ð &ˆEô
 ×!Ò!¤$ u£+¬t°I«ÄÀWÃÓNÐNrM   c                ó2   • [        U R                  5      U   $ rO   )rP   r=   )rE   Úindexs     rJ   ÚindexedÚWriteOnlyHistory.indexed‰   s   € Ü�D×$Ñ$Ó% eÑ,Ð,rM   c                ó:   • U R                   R                  U5        g rO   )r=   Úadd©rE   Úvalues     rJ   Ú	add_addedÚWriteOnlyHistory.add_addedŒ   s   € Ø×Ñ×Ñ˜UÕ#rM   c                ó�   • XR                   ;   a  U R                   R                  U5        g U R                  R                  U5        g rO   )r=   Úremover>   rf   rg   s     rJ   Úadd_removedÚWriteOnlyHistory.add_removed�   s6   € Ø×$Ñ$Ó$Ø×Ñ×#Ñ# EÕ*à×Ñ×"Ñ" 5Õ)rM   )r@   r=   r>   r<   rO   )
rF   ÚWriteOnlyAttributeImplrG   úInstanceState[_T]rH   r   rI   zOptional[WriteOnlyHistory[_T]]ÚreturnÚNone)rq   zList[_T])rq   úattributes.History)rb   zUnion[int, slice]rq   zUnion[List[_T], _T])rh   r7   rq   rr   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__annotations__rK   ÚpropertyrS   rV   r_   rc   ri   rm   Ú__static_attributes__© rM   rJ   r:   r:   M   s–   ‡ ÙNà,Ó,Ø(Ó(Ø*Ó*ØÓð 48ð/à$ð/ð !ð/ð ð	/ð
 1ð/ð 
õ/ð6 óBó ðBð ó
ó ð
ôOô-ô$÷*rM   r:   c                  ó   ^ • \ rS rSr% SrS\S'   SrS\S'   SrS\S'   SrS\S'   Sr	S\S	'   Sr
S\S
'   SrS\S'   \rS\S'   S\S'               S(U 4S jjr\R                   4       S)S jjr\  S*         S+S jj5       r\  S*         S,S jj5       r\  S*         S-S jj5       rS\R                   4         S-S jjr\R*                  S.S j5       r\R*                  S.S j5       r S/           S0S jjr S/           S0S jjr      S1S jrS\R                   SSS4                 S2S jjrS3S jr        S4S  jr\R<                  4       S5S! jjr\R@                  4       S6S" jjr!      S7S# jr"\R<                  4           S8S$ jjr#\R<                  4           S8S% jjr$\R<                  4           S8S& jjr%S'r&U =r'$ )9ro   é–   Tr?   Úuses_objectsFÚdefault_accepts_scalar_loaderÚsupports_populationÚ_supports_dynamic_iterationÚ
collectionÚdynamicr|   r1   Úorder_byzType[WriteOnlyHistory[Any]]Úcollection_history_clszType[WriteOnlyCollection[Any]]Úquery_classc                ó~   >• [         TU ]  " XS U40 UD6  X@l        [        U l        U(       a  [        U5      U l        g g rO   )ÚsuperrK   Útarget_mapperÚWriteOnlyCollectionr‡   Útupler…   )rE   Úclass_ÚkeyÚdispatchrŠ   r…   ÚkwÚ	__class__s          €rJ   rK   ÚWriteOnlyAttributeImpl.__init__¤   s<   ø€ ô 	‰Ò˜ d¨HÑ;¸Ò;Ø*ÔÜ.ˆÔÞÜ! (›OˆD�Mð rM   c                ó¨   • U[         R                  -  (       d*  U R                  U[         R                  5      R                  $ U R                  X5      $ rO   )r   rB   Ú_get_collection_historyÚPASSIVE_NO_INITIALIZEr=   r‡   )rE   rG   Údict_rH   s       rJ   ÚgetÚWriteOnlyAttributeImpl.get³   sH   € ð œ×+Ñ+×+Ø×/Ñ/Ø”{×8Ñ8óç‰kðð ×#Ñ# DÓ0Ð0rM   c                ó   • g rO   r|   ©rE   rG   r–   Ú	user_datarH   s        rJ   Úget_collectionÚ%WriteOnlyAttributeImpl.get_collectionÀ   ó   € ð  rM   c                ó   • g rO   r|   rš   s        rJ   rœ   r�   É   rž   rM   c                ó   • g rO   r|   rš   s        rJ   rœ   r�   Ò   s   € ð rM   Nc                óº   • U[         R                  -  (       d  U R                  X5      R                  nOU R                  X5      nUR                  n[        U5      $ rO   )r   rB   r”   r=   rS   ÚDynamicCollectionAdapter)rE   rG   r–   r›   rH   ÚdataÚhistorys          rJ   rœ   r�   Ý   sN   € ð œ×+Ñ+×+Ø×/Ñ/°Ó?×KÑK‰Dà×2Ñ2°5ÓBˆGØ×/Ñ/ˆDÜ'¨Ó-Ð-rM   c                óL   • [         R                  " U [         R                  5      $ rO   )r   r,   Ú	OP_APPENDrR   s    rJ   Ú_append_tokenÚ$WriteOnlyAttributeImpl._append_tokenî   ó   € ä×-Ò-¨d´J×4HÑ4HÓIÐIrM   c                óL   • [         R                  " U [         R                  5      $ rO   )r   r,   Ú	OP_REMOVErR   s    rJ   Ú_remove_tokenÚ$WriteOnlyAttributeImpl._remove_tokenò   r©   rM   c                ó:  • Uc  U R                  X5      nUR                  U5        U R                  R                   H  nU" XU=(       d    U R                  5      nM!     U R
                  (       a,  Ub(  U R                  [        R                  " U5      US5        g g g ©NT)	Ú_modified_eventri   r�   Úappendr§   ÚtrackparentÚsethasparentr   Úinstance_state©rE   rG   r–   rh   Ú	initiatorÚcollection_historyÚfns          rJ   Úfire_append_eventÚ(WriteOnlyAttributeImpl.fire_append_eventö   s‰   € ð Ñ%Ø!%×!5Ñ!5°eÓ!CÐà×$Ñ$ UÔ+à—-‘-×&Ô&ˆBÙ�u Y×%D°$×2DÑ2DÓEŠEñ 'ð ×× Ñ 1Ø×Ñœj×7Ò7¸Ó>ÀÀtÕLð !2ÐrM   c                ó6  • Uc  U R                  X5      nUR                  U5        U R                  (       a*  Ub'  U R                  [        R
                  " U5      US5        U R                  R                   H  nU" XU=(       d    U R                  5        M!     g )NF)	r°   rm   r²   r³   r   r´   r�   rl   r¬   rµ   s          rJ   Úfire_remove_eventÚ(WriteOnlyAttributeImpl.fire_remove_event	  s}   € ð Ñ%Ø!%×!5Ñ!5°eÓ!CÐà×&Ñ& uÔ-à×× Ñ 1Ø×Ñœj×7Ò7¸Ó>ÀÀuÔMà—-‘-×&Ô&ˆBÙˆu˜Y×<¨$×*<Ñ*<Ö=ò 'rM   c                ó  • U R                   UR                  ;  a7  U R                  X[        R                  5      UR                  U R                   '   UR                  X [        5        SX R                   '   UR                  U R                      $ r¯   )rŽ   Úcommitted_stater†   r   ÚPASSIVE_NO_FETCHr°   r   )rE   rG   r–   s      rJ   r°   Ú&WriteOnlyAttributeImpl._modified_event  st   € ð �8‰8˜5×0Ñ0Ó0Ø.2×.IÑ.IØœ[×9Ñ9ó/ˆE×!Ñ! $§(¡(Ñ+ð 	×Ñ˜e¬9Ô5ð ˆ�h‰h‰Ø×$Ñ$ T§X¡XÑ.Ð.rM   c	           	     óØ  • U(       a  UR                   U R                   L a  g U(       a  Uc  g Un	[        U	5      n
UR                  (       aO  U R                  (       d  [        R
                  " SU  S35      e[        R                  " U R                  XUS95      nU R                  X5      nUR                  (       d  UR                  nOWR                  UR                  5      nUR                  U
5      n[        R                  " U
5      R                  U5      nUR                  U5      nU
 H  nUU;   d  M  U R                  UUUS US9  M      U H  nU R                  UUUS US9  M     g )NzCollection "zV" does not support implicit iteration; collection replacement operations can't be used©rH   )r·   )Úparent_tokenrP   Úhas_identityr‚   r   rC   r!   ÚIdentitySetr—   r°   r=   rQ   rZ   rY   r¹   r¼   )rE   rG   r–   rh   r¶   rH   Ú	check_oldÚpopÚ_adaptÚiterableÚ
new_valuesÚold_collectionr·   Ú	constantsÚ	additionsÚremovalsÚmembers                    rJ   ÚsetÚWriteOnlyAttributeImpl.set+  sl  € ö ˜×/Ñ/°4×3DÑ3DÒDØæ�5‘=ØàˆÜ˜(“^ˆ
Ø××Ø×3×3Ü×-Ò-Ø" 4 &ð )$ð $óð ô
 "×-Ò-Ø—‘˜¨w�Ð7óˆNð "×1Ñ1°%Ó?ÐØ×!×!Ø/×;Ñ;‰Nà+×1Ñ1Ø"×.Ñ.óˆNð #×/Ñ/°
Ó;ˆ	Ü×$Ò$ ZÓ0×;Ñ;¸IÓFˆ	Ø!×,Ñ,¨YÓ7ˆã ˆFØ˜Õ"Ø×&Ñ&ØØØØØ'9ð 'ó ñ !ó ˆFØ×"Ñ"ØØØØØ#5ð #ó ò rM   c                ó   • [        5       erO   ©ÚNotImplementedError)rE   ÚargsÚkwargss      rJ   r"   ÚWriteOnlyAttributeImpl.deleteh  s   € Ü!Ó#Ð#rM   c                ó   • [        S5      e)Nz7Dynamic attributes don't support collection population.rÔ   )rE   rG   r–   rh   s       rJ   Úset_committed_valueÚ*WriteOnlyAttributeImpl.set_committed_valuek  s   € ô "ØEó
ð 	
rM   c                óD   • U R                  X5      nUR                  5       $ rO   )r”   r_   )rE   rG   r–   rH   Úcs        rJ   Úget_historyÚ"WriteOnlyAttributeImpl.get_historyr  s    € ð ×(Ñ(¨Ó8ˆØ�|‰|‹~ÐrM   c                ó”   • U R                  X5      nUR                   Vs/ s H  n[        R                  " U5      U4PM     sn$ s  snf rO   )r”   rV   r   r´   )rE   rG   r–   rH   rÝ   Úxs         rJ   Úget_all_pendingÚ&WriteOnlyAttributeImpl.get_all_pending{  s@   € ð ×(Ñ(¨Ó8ˆØ;<¿;º;ÓGº;°a”×*Ò*¨1Ó-¨qÓ1¹;ÑGÐGùÒGs    "Ac                ó   • U R                   UR                  ;   a  UR                  U R                      nO U R                  X[        R                  5      nUR
                  (       a(  U[        R                  -  (       a  U R                  XX#S9$ U$ )N)rI   )rŽ   r¿   r†   r   rÀ   rÅ   ÚINIT_OK)rE   rG   rH   rÝ   s       rJ   r”   Ú.WriteOnlyAttributeImpl._get_collection_history„  s�   € ð �8‰8�u×,Ñ,Ó,Ø×%Ñ% d§h¡hÑ/‰Aà×+Ñ+Øœ[×9Ñ9óˆAð ×× 7¬[×-@Ñ-@×#@Ø×.Ñ.Ø˜Wð /ð ð ð ˆHrM   c                ó2   • X@La  U R                  XX45        g g rO   )r¹   ©rE   rG   r–   rh   r¶   rH   s         rJ   r±   ÚWriteOnlyAttributeImpl.append–  ó   € ð Ò Ø×"Ñ" 5°ÕBð !rM   c                ó2   • X@La  U R                  XX45        g g rO   )r¼   rè   s         rJ   rl   ÚWriteOnlyAttributeImpl.remove¡  rê   rM   c                ó&   • U R                  XX4US9  g )NrÃ   )rl   rè   s         rJ   rÈ   ÚWriteOnlyAttributeImpl.pop¬  s   € ð 	�‰�E %¸GˆÒDrM   )r…   r‡   rŠ   )r�   z#Union[Type[Any], AliasedClass[Any]]rŽ   Ústrr�   z"_Dispatch[QueryableAttribute[Any]]rŠ   z
Mapper[_T]r…   r1   r�   r   )rG   úInstanceState[Any]r–   r+   rH   r   rq   z8Union[util.OrderedIdentitySet, WriteOnlyCollection[Any]])..)
rG   rð   r–   r+   r›   zLiteral[None]rH   z Literal[PassiveFlag.PASSIVE_OFF]rq   r/   )
rG   rð   r–   r+   r›   r.   rH   r   rq   r/   )
rG   rð   r–   r+   r›   z$Optional[_AdaptedCollectionProtocol]rH   r   rq   zIUnion[Literal[LoaderCallableStatus.PASSIVE_NO_RESULT], CollectionAdapter])rq   zattributes.AttributeEventTokenrO   )rG   rð   r–   r+   rh   r   r¶   úOptional[AttributeEventToken]r·   zOptional[WriteOnlyHistory[Any]]rq   rr   )rG   rð   r–   r+   rq   úWriteOnlyHistory[Any])rG   rð   r–   r+   rh   r   r¶   rñ   rH   r   rÇ   r   rÈ   r?   rÉ   r?   rq   rr   )rÖ   r   r×   r   rq   r   )rG   rð   r–   r+   rh   r   rq   r   )rG   rð   r–   r+   rH   r   rq   rs   )rG   rð   r–   r+   rH   r   rq   z$List[Tuple[InstanceState[Any], Any]])rG   rð   rH   r   rq   rò   )rG   rð   r–   r+   rh   r   r¶   rñ   rH   r   rq   rr   )(rt   ru   rv   rw   r   ry   r€   r�   r‚   rƒ   r„   r…   r:   r†   rK   r   ÚPASSIVE_OFFr—   r   rœ   r!   Úmemoized_propertyr§   r¬   r¹   r¼   r°   rÑ   r"   rÚ   rÀ   rÞ   r•   râ   r”   r±   rl   rÈ   r{   Ú__classcell__)r‘   s   @rJ   ro   ro   –   s
  ø‡ ð €L�$ÓØ*/Ð! 4Ó/Ø %Ð˜Ó%Ø(-Ð Ó-Ø€J�ÓØ€GˆTÓØ(*€HÐ%Ó*Ø:JÐÐ7ÓJà/Ó/ð,à3ð,ð ð,ð 5ð	,ð
 "ð,ð *ð,ð ÷,ð&  +×6Ñ6ð	1à!ð1ð ð1ð ð	1ð
 
Bõ1ð ð
 $'Ø47ð à!ð ð ð ð !ð	 ð
 2ð ð 
ô ó ð ð ð
 14Ø"ð à!ð ð ð ð .ð	 ð
 ð ð 
ô ó ð ð ð
 ;>Ø"ðà!ðð ðð 8ð	ð
 ðð
ôó ðð ;?Ø*×6Ñ6ð.à!ð.ð ð.ð 8ð	.ð
 ð.ð
õ.ð" 
×ÑóJó ðJð 
×ÑóJó ðJð ?CðMà!ðMð ðMð ð	Mð
 1ðMð <ðMð 
õMð2 ?Cð>à!ð>ð ð>ð ð	>ð
 1ð>ð <ð>ð 
õ>ð&/Ø'ð/Ø0=ð/à	ô/ð( 48Ø*×6Ñ6ØØØð;à!ð;ð ð;ð ð	;ð
 1ð;ð ð;ð ð;ð ð;ð ð;ð 
õ;ôz$ð
Ø'ð
Ø0=ð
ØFIð
à	ô
ð  +×;Ñ;ð	à!ðð ðð ð	ð
 
õð  +×@Ñ@ð	Hà!ðHð ðHð ð	Hð
 
.õHðØ'ðØ2=ðà	ôð0  +×;Ñ;ð	Cà!ð	Cð ð	Cð ð		Cð
 1ð	Cð ð	Cð 
õ	Cð"  +×;Ñ;ð	Cà!ð	Cð ð	Cð ð		Cð
 1ð	Cð ð	Cð 
õ	Cð"  +×;Ñ;ðEà!ðEð ðEð ð	Eð
 1ðEð ðEð 
÷Eó ErM   ro   Ú
write_only)Úlazyc                  ó"   • \ rS rSr\rSS jrSrg)ÚWriteOnlyLoaderi·  c           
     ó¾  • SU l         U R                  (       a8  U R                  R                  [        R
                  [        R                  4;  a#  [        R                  " SU R                  -  5      e[        R                  " U R                  USU R                  U R                  R                  U R                  R                  U R                  R                  S9  g )NTztOn relationship %s, 'dynamic' loaders cannot be used with many-to-one/one-to-one relationships and/or uselist=False.)Ú	useobjectÚ
impl_classrŠ   r…   r‡   )Úis_class_levelÚuselistÚparent_propertyÚ	directionr   Ú	ONETOMANYÚ
MANYTOMANYr   rC   r   Ú_register_attributerü   Úmapperr…   r‡   )rE   r  s     rJ   Úinit_class_attributeÚ$WriteOnlyLoader.init_class_attribute¼  s·   € Ø"ˆÔØ�|�|˜t×3Ñ3×=Ñ=Ü× Ñ Ü×!Ñ!ðF
ó  
ô ×)Ò)ð!à#'×#7Ñ#7ñ8óð ô 	×&Ò&Ø× Ñ ØØØ—‘Ø×.Ñ.×5Ñ5Ø×)Ñ)×2Ñ2Ø×,Ñ,×8Ñ8ó	
rM   )rý   N)r  zMapper[Any]rq   rr   )rt   ru   rv   rw   ro   rü   r  r{   r|   rM   rJ   rù   rù   ·  s   † ð (€J÷
rM   rù   c                  óV   • \ rS rSr% SrS\S'   SS jrSS jrSS jrSS jr	SS	 jr
S
rg)r¢   iÓ  z9simplified CollectionAdapter for internal API consistencyúCollection[Any]r£   c                ó   • Xl         g rO   ©r£   )rE   r£   s     rJ   rK   Ú!DynamicCollectionAdapter.__init__Ø  s   € Ø�	rM   c                ó,   • [        U R                  5      $ rO   )Úiterr£   rR   s    rJ   Ú__iter__Ú!DynamicCollectionAdapter.__iter__Û  s   € Ü�D—I‘I‹ÐrM   c                ó   • g rO   r|   rR   s    rJ   Ú_reset_emptyÚ%DynamicCollectionAdapter._reset_emptyÞ  s   € ØrM   c                ó,   • [        U R                  5      $ rO   )Úlenr£   rR   s    rJ   Ú__len__Ú DynamicCollectionAdapter.__len__á  s   € Ü�4—9‘9‹~ÐrM   c                ó   • gr¯   r|   rR   s    rJ   Ú__bool__Ú!DynamicCollectionAdapter.__bool__ä  s   € ØrM   r
  N)r£   r  )rq   zIterator[Any])rq   rr   )rq   Úint)rq   r?   )rt   ru   rv   rw   rx   ry   rK   r  r  r  r  r{   r|   rM   rJ   r¢   r¢   Ó  s$   ‡ ÙCà
Óôôôô÷rM   r¢   c                  ó^   • \ rS rSr% Sr\(       d  SrS\S'   S\S'   SS jrSS	 jr	SS
 jr
Srg)ÚAbstractCollectionWriteriè  zkVirtual collection which includes append/remove methods that synchronize
into the attribute event system.

r|   r7   ÚinstancezTuple[FromClause, ...]Ú	_from_objc                óè  • UR                  5       n[        (       a	  U(       d   eX0l        Xl        [	        U5      nUR
                  U R                  R                     nUR                  b,  UR                  R                  5       UR                  4U l
        OSU l
        UR                  USS94U l        U R                  R                  (       a  U R                  R                  U l        g SU l        g )Nr|   F)Úalias_secondary)Úobjr   r  rF   r   Ú_propsrŽ   Ú	secondaryr  Ú__clause_element__r  Ú_with_parentÚ_where_criteriar…   Ú_order_by_clauses)rE   rF   rG   r  r  Úprops         rJ   rK   Ú!AbstractCollectionWriter.__init__ô  s»   € Ø—9‘9“;ˆßŠ=ÞˆO�8Ø ŒØŒ	ä˜xÓ(ˆØ�}‰}˜TŸY™YŸ]™]Ñ+ˆà�>‰>Ñ%ð #Ÿk™k×<Ñ<Ó>ÀÇÁÐOˆD�NàˆDŒNð ×Ñ˜h¸ÐÐ>ð 
ˆÔð �9‰9××Ø%)§Y¡Y×%7Ñ%7ˆDÕ"à%'ˆDÕ"rM   c                óÊ   • U H]  nU R                   R                  [        R                  " U R                  5      [        R
                  " U R                  5      US 5        M_     g rO   )rF   r±   r   r´   r  Úinstance_dict)rE   ÚiteratorÚitems      rJ   Ú_add_all_implÚ&AbstractCollectionWriter._add_all_impl  sH   € ÛˆDØ�I‰I×ÑÜ×)Ò)¨$¯-©-Ó8Ü×(Ò(¨¯©Ó7ØØö	ò rM   c                ó¸   • U R                   R                  [        R                  " U R                  5      [        R
                  " U R                  5      US 5        g rO   )rF   rl   r   r´   r  r+  ©rE   r-  s     rJ   Ú_remove_implÚ%AbstractCollectionWriter._remove_impl  s>   € Ø�	‰	×ÑÜ×%Ò% d§m¡mÓ4Ü×$Ò$ T§]¡]Ó3ØØõ		
rM   )r  r'  r&  rF   r  N)rF   ro   rG   rp   ©r,  zIterable[_T]rq   rr   ©r-  r7   rq   rr   )rt   ru   rv   rw   rx   r   Ú	__slots__ry   rK   r.  r2  r{   r|   rM   rJ   r  r  è  s,   ‡ ñö
 Øˆ	àƒLØ%Ó%ô(ôB÷
rM   r  c                  ól   • \ rS rSrSrSrSS jrSS jrSS jrSS jr	SS jr
SS	 jrSS
 jrSS jrSrg)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`

)r  rF   r&  r  r'  c                ó   • [        S5      e)Nz°WriteOnly 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().)Ú	TypeErrorrR   s    rJ   r  ÚWriteOnlyCollection.__iter__@  s   € ÜðMó
ð 	
rM   c                ó  • [        U R                  R                  5      R                  " U R                  6 nU R
                  (       a  UR                  " U R
                  6 nU R                  (       a  UR                  " U R                  6 nU$ )z�Produce a :class:`_sql.Select` construct that represents the
rows within this instance-local :class:`_orm.WriteOnlyCollection`.

)	r$   rF   rŠ   Úwherer&  r  Úselect_fromr'  r…   )rE   Ústmts     rJ   r$   ÚWriteOnlyCollection.selectG  sf   € ô
 �d—i‘i×-Ñ-Ó.×4Ò4°d×6JÑ6JÐKˆØ�>�>Ø×#Ò# T§^¡^Ð4ˆDØ×!×!Ø—=’= $×"8Ñ"8Ð9ˆDØˆrM   c                óä  • [        U R                  5      nUR                  nUR                  U R                  R
                     nUR                  [        R                  La  [        R                  " S5      e0 nUR                   H9  u  pVUR                  UUUR                  U5      n[        SUS9XFR
                  '   M;     [        U R                  R                   5      R"                  " S0 UD6$ )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.


z…Write 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_r|   )r   r  r  r"  rF   rŽ   r   r   r  r   rC   Úsynchronize_pairsÚ_get_attr_w_warn_on_noneÚdictr   r#   rŠ   Úvalues)rE   rG   r  r(  r–   ÚlÚrr¸   s           rJ   r#   ÚWriteOnlyCollection.insertS  sÎ   € ô ˜Ÿ™Ó&ˆØ—‘ˆØ�}‰}˜TŸY™YŸ]™]Ñ+ˆà�>‰>Ô!6×!@Ñ!@Ò@Ü×)Ò)ð/óð ð !#ˆà×*Ô*‰DˆAØ×.Ñ.ØØØ—
‘
Øó	ˆBô % T°RÑ8ˆE—%‘%‹Lñ +ô �d—i‘i×-Ñ-Ó.×5Ò5Ñ>¸Ñ>Ð>rM   c                ón   • [        U R                  R                  5      R                  " U R                  6 $ )z|Produce a :class:`_dml.Update` which will refer to rows in terms
of this instance-local :class:`_orm.WriteOnlyCollection`.

)r%   rF   rŠ   r<  r&  rR   s    rJ   r%   ÚWriteOnlyCollection.update{  ó*   € ô
 �d—i‘i×-Ñ-Ó.×4Ò4°d×6JÑ6JÐKÐKrM   c                ón   • [        U R                  R                  5      R                  " U R                  6 $ )z|Produce a :class:`_dml.Delete` which will refer to rows in terms
of this instance-local :class:`_orm.WriteOnlyCollection`.

)r"   rF   rŠ   r<  r&  rR   s    rJ   r"   ÚWriteOnlyCollection.delete‚  rK  rM   c                ó&   • U R                  U5        g)z¸Add 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.  )rE   r,  s     rJ   Úadd_allÚWriteOnlyCollection.add_all‰  s   € ð 	×Ñ˜8Õ$rM   c                ó(   • U R                  U/5        g)zªAdd 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.

NrO  r1  s     rJ   rf   ÚWriteOnlyCollection.add’  s   € ð 	×Ñ˜D˜6Õ"rM   c                ó&   • U R                  U5        g)z–Remove an item from this :class:`_orm.WriteOnlyCollection`.

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

N)r2  r1  s     rJ   rl   ÚWriteOnlyCollection.remove›  s   € ð 	×Ñ˜$ÕrM   r|   N)rq   r   )rq   zSelect[Tuple[_T]])rq   r'   )rq   r(   )rq   r&   r4  r5  )rt   ru   rv   rw   rx   r6  r  r$   r#   r%   r"   rP  rf   rl   r{   r|   rM   rJ   r‹   r‹   '  s9   † ñð €Iô
ô
ô&?ôPLôLô%ô#÷ rM   r‹   N)Orx   Ú
__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  r0   r1   rG   r2   r3   Úeventr4   Úsql.selectabler5   r6   r7   r:   ÚHasCollectionAdapterÚAttributeImplro   Úclass_loggerÚRelationshipPropertyÚstrategy_forÚAbstractRelationshipLoaderÚ
Identifiedrù   r¢   r  r‹   r|   rM   rJ   Ú<module>ri     s]  ðñ	õ #å Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý  Ý Ý å $Ý Ý Ý Ý Ý Ý Ý Ý 'Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý !æÝ$Ý&Ý/Ý*Ý7Ý.ÝÝ6Ý$Ý"Ý!Ý+Ý'áˆT˜Ñ€ôF*�w˜r‘{ô F*ôR^EØ×#Ñ# Z×%=Ñ%=ô^EðB	 ×ÑØ×#Ñ#×0Ñ0°lÐ0ÐCô
�j×;Ñ;¸S¿^¹^ó 
ó Dó ð
÷4ñ ô*<
˜w r™{ô <
ô~{ Ð2°2Ñ6õ { rM   