Ë
    Ü_Ëi5s  ã                  ó¨  — d Z ddlmZ ddlZddlZddlZddlmZ ddlm	Z	 ddl
mZmZmZmZmZmZmZ ddlmZ ddlmZ dd	lmZmZ dd
lmZmZ ddlmZ ddlmZm Z m!Z!m"Z"m#Z# ddl$m%Z%m&Z&m'Z' ddl(m)Z)m*Z*m+Z+m,Z, ddl-m.Z. ddl/m0Z0m1Z1m2Z2 ddl3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z; ddl<m=Z= ddl>m?Z? erddl@mAZA ddlBmCZC ddlDmEZE ddlFmGZGmHZHmIZI dZJ G d„ d«      ZKy)z<The bulk write operations interface.

.. versionadded:: 2.7
é    )ÚannotationsN)ÚMutableMapping)Úislice)ÚTYPE_CHECKINGÚAnyÚIteratorÚMappingÚOptionalÚTypeÚUnion)ÚObjectId)ÚRawBSONDocument)Ú_csotÚcommon)ÚAsyncClientSessionÚ_validate_session_write_concern)Ú_handle_reauth)Ú	_COMMANDSÚ_DELETE_ALLÚ_merge_commandÚ_raise_bulk_write_errorÚ_Run)Úvalidate_is_document_typeÚvalidate_ok_for_replaceÚvalidate_ok_for_update)ÚConfigurationErrorÚInvalidOperationÚNotPrimaryErrorÚOperationFailure)Ú_RETRYABLE_ERROR_CODES)Ú_COMMAND_LOGGERÚ_CommandStatusMessageÚ
_debug_log)Ú_DELETEÚ_INSERTÚ_UPDATEÚ_BulkWriteContextÚ_convert_exceptionÚ_convert_write_resultÚ_EncryptedBulkWriteContextÚ_randint)ÚReadPreference)ÚWriteConcern)ÚAsyncCollection)ÚAsyncMongoClient)ÚAsyncConnection)Ú_DocumentOutÚ_DocumentTypeÚ	_PipelineFc                  ó  — e Zd ZdZ	 	 d	 	 	 	 	 	 	 	 	 	 	 dd„Zedd„«       Zdd„Z	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Z	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Z		 	 d	 	 	 	 	 	 	 	 	 dd„Z
dd	„Zdd
„Ze	 	 	 	 	 	 	 	 	 	 	 	 	 	 d d„«       Z	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d!d„Z	 	 	 	 	 	 	 	 	 	 d"d„Z	 	 	 	 	 	 	 	 	 	 d#d„Z	 d$	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d%d„Z	 	 	 	 	 	 	 	 	 	 d&d„Z	 	 	 	 	 	 d'd„Z	 	 	 	 	 	 	 	 d(d„Z	 	 	 	 	 	 	 	 d(d„Z	 	 	 	 	 	 	 	 d)d„Zy)*Ú
_AsyncBulkz'The private guts of the bulk write API.Nc                ó¶  — |j                  |j                  j                  dt        ¬«      ¬«      | _        || _        | j
                  � t        j                  d| j
                  «       || _        || _	        g | _
        d| _        || _        d| _        d| _        d| _        d| _        d| _        d| _        d| _        d| _        d| _        d| _        d| _        y)z!Initialize a _AsyncBulk instance.Úreplace)Úunicode_decode_error_handlerÚdocument_class)Úcodec_optionsNÚletFT)Úwith_optionsr:   Ú_replaceÚdictÚ
collectionr;   r   r   ÚcommentÚorderedÚopsÚexecutedÚbypass_doc_valÚuses_collationÚuses_array_filtersÚuses_hint_updateÚuses_hint_deleteÚ	uses_sortÚis_retryableÚretryingÚstarted_retryable_writeÚcurrent_runÚnext_runÚis_encrypted)Úselfr?   rA   Úbypass_document_validationr@   r;   s         ú\/var/www/pod-logistic/pod-api/venv/lib/python3.12/site-packages/pymongo/asynchronous/bulk.pyÚ__init__z_AsyncBulk.__init__V   sÙ   € ð %×1Ñ1Ø$×2Ñ2×;Ñ;Ø-6Ätð <ó ð 2ó 
ˆŒð
 ˆŒØ�8‰8ÐÜ×,Ñ,¨U°D·H±HÔ=Ø&-ˆŒØˆŒØ8:ˆŒØˆŒØ8ˆÔØ#ˆÔØ"'ˆÔØ %ˆÔØ %ˆÔØˆŒØ ˆÔØˆŒØ',ˆÔ$àˆÔØˆŒØ!ˆÕó    c                ó¦   — | j                   j                  j                  j                  }|r|j                  sd| _        t        S d| _        t        S )NTF)r?   ÚdatabaseÚclientÚ
_encrypterÚ_bypass_auto_encryptionrO   r*   r'   )rP   Ú	encrypters     rR   Úbulk_ctx_classz_AsyncBulk.bulk_ctx_classy   sD   € à—O‘O×,Ñ,×3Ñ3×>Ñ>ˆ	Ù˜Y×>Ò>Ø $ˆDÔÜ-Ð-à %ˆDÔÜ$Ð$rT   c                ó    — t        d|«       t        |t        «      sd|v st        «       |d<   | j                  j                  t        |f«       y)z*Add an insert document to the list of ops.ÚdocumentÚ_idN)r   Ú
isinstancer   r   rB   Úappendr%   )rP   r]   s     rR   Ú
add_insertz_AsyncBulk.add_insertƒ   s=   € ä! *¨hÔ7ä˜8¤_Ô5¸À(Ñ9JÜ&›jˆH�U‰OØ�‰�‰œ (Ð+Õ,rT   c	                óø   — t        |«       |||dœ}	|�||	d<   |�d| _        ||	d<   |�d| _        ||	d<   |�d| _        ||	d<   |�d| _        ||	d<   |rd	| _        | j                  j                  t        |	f«       y)
z8Create an update document and add it to the list of ops.)ÚqÚuÚmultiNÚupsertTÚ	collationÚarrayFiltersÚhintÚsortF)	r   rE   rF   rG   rI   rJ   rB   r`   r&   )
rP   ÚselectorÚupdatere   rf   rg   Úarray_filtersri   rj   Úcmds
             rR   Ú
add_updatez_AsyncBulk.add_update‹   s£   € ô 	˜vÔ&Ø$,°6ÀEÑJˆØÐØ"ˆC�‰MØÐ Ø"&ˆDÔØ(ˆC�ÑØÐ$Ø&*ˆDÔ#Ø"/ˆC�ÑØÐØ$(ˆDÔ!ØˆC�‰KØÐØ!ˆDŒNØˆC�‰KÙà %ˆDÔØ�‰�‰œ #˜Õ'rT   c                óÈ   — t        |«       ||dœ}|�||d<   |�d| _        ||d<   |�d| _        ||d<   |�d| _        ||d<   | j                  j                  t        |f«       y)z8Create a replace document and add it to the list of ops.)rc   rd   Nrf   Trg   ri   rj   )r   rE   rG   rI   rB   r`   r&   )rP   rk   Úreplacementrf   rg   ri   rj   rn   s           rR   Úadd_replacez_AsyncBulk.add_replace¬   s~   € ô 	  Ô,Ø$,°;Ñ?ˆØÐØ"ˆC�‰MØÐ Ø"&ˆDÔØ(ˆC�ÑØÐØ$(ˆDÔ!ØˆC�‰KØÐØ!ˆDŒNØˆC�‰KØ�‰�‰œ #˜Õ'rT   c                ó¨   — ||dœ}|�d| _         ||d<   |�d| _        ||d<   |t        k(  rd| _        | j                  j                  t        |f«       y)z7Create a delete document and add it to the list of ops.)rc   ÚlimitNTrg   ri   F)rE   rH   r   rJ   rB   r`   r$   )rP   rk   rt   rg   ri   rn   s         rR   Ú
add_deletez_AsyncBulk.add_deleteÅ   sa   € ð %-°uÑ=ˆØÐ Ø"&ˆDÔØ(ˆC�ÑØÐØ$(ˆDÔ!ØˆC�‰KØ”KÒà %ˆDÔØ�‰�‰œ #˜Õ'rT   c              #  óÔ   K  — d}t        | j                  «      D ]F  \  }\  }}|€t        |«      }n|j                  |k7  r|–— t        |«      }|j	                  ||«       ŒH |–— y­w)ziGenerate batches of operations, batched by type of
        operation, in the order **provided**.
        N)Ú	enumeraterB   r   Úop_typeÚadd)rP   ÚrunÚidxrx   Ú	operations        rR   Úgen_orderedz_AsyncBulk.gen_orderedÙ   sl   è ø€ ð ˆÜ)2°4·8±8Ó)<ò 	$Ñ%ˆCÑ%�'˜9Øˆ{Ü˜7“m‘Ø—‘ Ò'Ø’	Ü˜7“m�Ø�G‰G�C˜Õ#ð	$ð ‹	ùs   ‚A&A(c              #  óþ   K  — t        t        «      t        t        «      t        t        «      g}t	        | j
                  «      D ]  \  }\  }}||   j                  ||«       Œ |D ]  }|j
                  sŒ|–— Œ y­w)zbGenerate batches of operations, batched by type of
        operation, in arbitrary order.
        N)r   r%   r&   r$   rw   rB   ry   )rP   Ú
operationsr{   rx   r|   rz   s         rR   Úgen_unorderedz_AsyncBulk.gen_unorderedç   st   è ø€ ô œ7“m¤T¬'£]´D¼³MÐBˆ
Ü)2°4·8±8Ó)<ò 	4Ñ%ˆCÑ%�'˜9Ø�wÑ×#Ñ# C¨Õ3ð	4ð ò 	ˆCØ�w‹wØ“	ñ	ùs   ‚A3A=Á6A=c              ƒ  óÜ  K  — |||j                   <   t        j                  t        j                  «      rÄt        t        t        j                  |j                  j                  |t        t        |«      «      |j                  |||j                  j                  |j                  j                  |j                  j                   d   |j                  j                   d   |j                  j"                  ¬«       |j$                  r|j'                  |||«       	 |j                  j)                  |||j*                  «      ƒ d{  –—† }t,        j,                  j/                  «       |j0                  z
  }t        j                  t        j                  «      rÅt        t        t        j2                  |j                  j                  ||t        t        |«      «      |j                  |||j                  j                  |j                  j                  |j                  j                   d   |j                  j                   d   |j                  j"                  ¬«       |j$                  r|j5                  |||«       |j7                  ||j8                  «      ƒ d{  –—†  |S 7 �Œ]7 Œ	# t:        $ �rº}	t,        j,                  j/                  «       |j0                  z
  }t=        |	t>        t@        f«      r|	jB                  }
ntE        |	«      }
t        j                  t        j                  «      rÔt        t        t        jF                  |j                  j                  ||
t        t        |«      «      |j                  |||j                  j                  |j                  j                  |j                  j                   d   |j                  j                   d   |j                  j"                  t=        |	t@        «      ¬«       |j$                  r|jI                  ||
|«       t=        |	t>        t@        f«      r/|j7                  |	jB                  |j8                  «      ƒ d{  –—†7   ‚ d}	~	ww xY w­w)zCA proxy for SocketInfo.write_command that handles event publishing.r   é   ©ÚmessageÚclientIdÚcommandÚcommandNameÚdatabaseNameÚ	requestIdÚoperationIdÚdriverConnectionIdÚserverConnectionIdÚ
serverHostÚ
serverPortÚ	serviceIdN©r„   r…   Ú
durationMSÚreplyr‡   rˆ   r‰   rŠ   r‹   rŒ   r�   rŽ   r�   ©r„   r…   r‘   Úfailurer‡   rˆ   r‰   rŠ   r‹   rŒ   r�   rŽ   r�   ÚisServerSideError)%Úfieldr!   ÚisEnabledForÚloggingÚDEBUGr#   r"   ÚSTARTEDÚ_topology_settingsÚ_topology_idÚnextÚiterÚdb_nameÚconnÚidÚserver_connection_idÚaddressÚ
service_idÚpublishÚ_startÚwrite_commandÚcodecÚdatetimeÚnowÚ
start_timeÚ	SUCCEEDEDÚ_succeedÚ_process_responseÚsessionÚ	Exceptionr_   r   r   Údetailsr(   ÚFAILEDÚ_fail)rP   Úbwcrn   Ú
request_idÚmsgÚdocsrW   r’   ÚdurationÚexcr”   s              rR   r§   z_AsyncBulk.write_commandó   s,  è ø€ ð ˆˆC�I‰I‰Ü×'Ñ'¬¯©Ô6ÜÜÜ-×5Ñ5Ø×2Ñ2×?Ñ?ØÜ ¤ c£›OØ Ÿ[™[Ø$Ø&Ø#&§8¡8§;¡;Ø#&§8¡8×#@Ñ#@ØŸ8™8×+Ñ+¨AÑ.ØŸ8™8×+Ñ+¨AÑ.ØŸ(™(×-Ñ-õð �;Š;Ø�J‰J�s˜J¨Ô-ð5	ØŸ(™(×0Ñ0°¸SÀ#Ç)Á)ÓL×LˆEÜ×(Ñ(×,Ñ,Ó.°·±Ñ?ˆHÜ×+Ñ+¬G¯M©MÔ:ÜÜ#Ü1×;Ñ;Ø#×6Ñ6×CÑCØ'ØÜ $¤T¨#£Y£Ø!$§¡Ø(Ø *Ø'*§x¡x§{¡{Ø'*§x¡x×'DÑ'DØ"Ÿx™x×/Ñ/°Ñ2Ø"Ÿx™x×/Ñ/°Ñ2Ø!Ÿh™h×1Ñ1õð  �{Š{Ø—‘˜Z¨°Ô9Ø×*Ñ*¨5°#·+±+Ó>×>Ð>ð@ ˆðk Mùð* ?ùÜó 	Ü×(Ñ(×,Ñ,Ó.°·±Ñ?ˆHÜ˜#¤Ô1AÐBÔCØ(+¯©‘ä,¨SÓ1�Ü×+Ñ+¬G¯M©MÔ:ÜÜ#Ü1×8Ñ8Ø#×6Ñ6×CÑCØ'Ø#Ü $¤T¨#£Y£Ø!$§¡Ø(Ø *Ø'*§x¡x§{¡{Ø'*§x¡x×'DÑ'DØ"Ÿx™x×/Ñ/°Ñ2Ø"Ÿx™x×/Ñ/°Ñ2Ø!Ÿh™h×1Ñ1Ü&0°Ô6FÓ&Gõð$ �{Š{Ø—	‘	˜* g¨xÔ8ä˜#¤Ô1AÐBÔCØ×.Ñ.¨s¯{©{¸C¿K¹KÓH×HÑHØûð=	üs\   ‚DQ,Ä*J% ÅJ ÅEJ% ÊJ#ÊJ% ÊQ,Ê J% Ê#J% Ê%
Q)Ê/F.Q$ÑQ ÑQ$Ñ$Q)Ñ)Q,c              ƒ  ó‚  K  — t        j                  t        j                  «      rÄt	        t         t
        j                  |j                  j                  |t        t        |«      «      |j                  |||j                  j                  |j                  j                  |j                  j                  d   |j                  j                  d   |j                  j                   ¬«       |j"                  r|j%                  |||«      }	 |j                  j'                  ||«      ƒ d{  –—† }t(        j(                  j+                  «       |j,                  z
  }	|�t/        |j0                  ||«      }
nìddi}
t        j                  t        j                  «      rÅt	        t         t
        j2                  |j                  j                  |	|
t        t        |«      «      |j                  |||j                  j                  |j                  j                  |j                  j                  d   |j                  j                  d   |j                  j                   ¬«       |j"                  r|j5                  ||
|	«       |S 7 �ŒW# t6        $ �r¯}t(        j(                  j+                  «       |j,                  z
  }	t9        |t:        «      r"t/        |j0                  ||j<                  «      }n(t9        |t>        «      r|j<                  }ntA        |«      }t        j                  t        j                  «      rÔt	        t         t
        jB                  |j                  j                  |	|t        t        |«      «      |j                  |||j                  j                  |j                  j                  |j                  j                  d   |j                  j                  d   |j                  j                   t9        |t:        «      ¬«       |j"                  r!|j,                  €J ‚|jE                  |||	«       ‚ d}~ww xY w­w)zFA proxy for AsyncConnection.unack_write that handles event publishing.r   r‚   rƒ   NÚokr�   r“   )#r!   r—   r˜   r™   r#   r"   rš   r›   rœ   r�   rž   rŸ   r    r¡   r¢   r£   r¤   r¥   r¦   Úunack_writer©   rª   r«   r)   Únamer¬   r­   r°   r_   r   r±   r   r(   r²   r³   )rP   r´   rn   rµ   r¶   Úmax_doc_sizer·   rW   Úresultr¸   r’   r¹   r”   s                rR   r¼   z_AsyncBulk.unack_writeI  s  è ø€ ô ×'Ñ'¬¯©Ô6ÜÜÜ-×5Ñ5Ø×2Ñ2×?Ñ?ØÜ ¤ c£›OØ Ÿ[™[Ø$Ø&Ø#&§8¡8§;¡;Ø#&§8¡8×#@Ñ#@ØŸ8™8×+Ñ+¨AÑ.ØŸ8™8×+Ñ+¨AÑ.ØŸ(™(×-Ñ-õð �;Š;Ø—*‘*˜S *¨dÓ3ˆCð8	ØŸ8™8×/Ñ/°°\ÓB×BˆFÜ×(Ñ(×,Ñ,Ó.°·±Ñ?ˆHØÐ!Ü-¨c¯h©h¸¸VÓD‘ð ˜q˜	�Ü"×/Ñ/´·±Ô>ÜÜ'Ü 5× ?Ñ ?Ø!'×!:Ñ!:×!GÑ!GØ#+Ø#Ü$(¬¨c«£OØ%(§[¡[Ø",Ø$.Ø+.¯8©8¯;©;Ø+.¯8©8×+HÑ+HØ#&§8¡8×#3Ñ#3°AÑ#6Ø#&§8¡8×#3Ñ#3°AÑ#6Ø"%§(¡(×"5Ñ"5õð  �{Š{Ø—‘˜Z¨°Ô9ð> ˆðq Cúô4 ó 	Ü×(Ñ(×,Ñ,Ó.°·±Ñ?ˆHÜ˜#Ô/Ô0Ü(=¸c¿h¹hÈÈSÏ[É[Ó(Y‘Ü˜C¤Ô1ØŸ+™+‘ä,¨SÓ1�Ü×+Ñ+¬G¯M©MÔ:ÜÜ#Ü1×8Ñ8Ø#×6Ñ6×CÑCØ'Ø#Ü $¤T¨#£Y£Ø!$§¡Ø(Ø *Ø'*§x¡x§{¡{Ø'*§x¡x×'DÑ'DØ"Ÿx™x×/Ñ/°Ñ2Ø"Ÿx™x×/Ñ/°Ñ2Ø!Ÿh™h×1Ñ1Ü&0°Ô6FÓ&Gõð" �{Š{Ø—~‘~Ð1Ð1Ð1Ø—	‘	˜* g¨xÔ8Øûð;	üs>   ‚DP?Ä
J Ä)J Ä*EJ É>P?Ê J Ê
P<ÊF*P7Ð7P<Ð<P?c           	   ƒ  óT  K  — | j                   r^|j                  ||«      \  }}}|j                  j                  |j                  |t        d¬«      |j                  |¬«      ƒ d {  –—†  |S |j                  ||«      \  }}	}| j                  ||||	d||«      ƒ d {  –—†  |S 7 Œ=7 Œ­w)Nr   )Úw)Úwrite_concernr¯   rW   )rO   Úbatch_commandr    r†   rŸ   r-   r¯   r¼   )
rP   r´   rn   rB   rW   Ú_Úbatched_cmdÚto_sendrµ   r¶   s
             rR   Ú_execute_batch_unackz_AsyncBulk._execute_batch_unack¡  s¼   è ø€ ð ×ÒØ&)×&7Ñ&7¸¸SÓ&AÑ#ˆAˆ{˜GØ—(‘(×"Ñ"Ø—‘ØÜ*¨QÔ/ØŸ™Øð #ó ÷ ð ð  ˆð (+×'8Ñ'8¸¸cÓ'BÑ$ˆJ˜˜Wð ×"Ñ" 3¨¨Z¸¸aÀÈ&ÓQ×QÐQàˆð!øð Rús$   ‚A$B(Á&B$Á'6B(ÂB&ÂB(Â&B(c              ƒ  óZ  K  — | j                   r`|j                  ||«      \  }}}|j                  j                  |j                  ||j
                  |j                  |¬«      ƒ d {  –—† }||fS |j                  ||«      \  }	}
}| j                  |||	|
||«      ƒ d {  –—† }||fS 7 Œ@7 Œ
­w)N)r:   r¯   rW   )rO   rÃ   r    r†   rŸ   r¨   r¯   r§   )rP   r´   rn   rB   rW   rÄ   rÅ   rÆ   r¿   rµ   r¶   s              rR   Ú_execute_batchz_AsyncBulk._execute_batch¼  s¾   è ø€ ð ×ÒØ&)×&7Ñ&7¸¸SÓ&AÑ#ˆAˆ{˜GØŸ8™8×+Ñ+Ø—‘ØØ!Ÿi™iØŸ™Øð ,ó ÷ ˆFð �wˆÐð (+×'8Ñ'8¸¸cÓ'BÑ$ˆJ˜˜WØ×-Ñ-¨c°3¸
ÀCÈÐRXÓY×YˆFà�wˆÐðøð Zús$   ‚A$B+Á&B'Á'7B+ÂB)Â	B+Â)B+c	           
   ƒ  óà  K  — | j                   j                  j                  }	| j                   j                  j                  }
|
j                  }| j
                  st        |«      | _        d | _        | j
                  }|j                  |
|«       d}|�rS| j                  st        |d «      | _        | j                  €d}t        |j                     }| j                  |	||||||j                  | j                   j                  «      }|j                  t        |j                   «      k  �r’|r+t        |j                   «      |j                  z
  dk(  r|xs |}|| j                   j                  d| j"                  i}| j$                  r| j$                  |d<   t'        j(                  ||«       | j*                  �| j*                  |d<   | j,                  �'|j                  t.        t0        fv r| j,                  |d<   |rG|r#| j2                  s|j5                  «        d| _        |j7                  ||t8        j:                  |«       |j=                  |||
«       |j?                  |«       |jA                  |
|«       tC        |j                   |j                  d «      }|jD                  r¸| jG                  ||||
«      ƒ d {  –—† \  }}|jI                  di «      }|jI                  d	d
«      tJ        v r8tM        jN                  |«      }tQ        |||j                  |«       tS        |«       tQ        |||j                  |«       d| _	        d| _        | j"                  r!d|v rn^| jU                  ||||
«      ƒ d {  –—† }|xj                  t        |«      z  c_        |j                  t        |j                   «      k  r�Œ’| j"                  r|d   ry | j                  x| _        }|r�ŒRy y 7 �Œ*7 Œt­w)NFTr‚   rA   r@   ÚbypassDocumentValidationr;   ÚwriteConcernErrorÚcoder   ÚwriteErrors)+r?   rV   r½   rW   Ú_event_listenersrM   r�   rN   Úvalidate_sessionrK   r   rx   r[   r:   Ú
idx_offsetÚlenrB   rA   r@   r   Úapply_write_concernrD   r;   r$   r&   rL   Ú_start_retryable_writeÚ	_apply_tor,   ÚPRIMARYÚsend_cluster_timeÚadd_server_apiÚapply_timeoutr   ÚacknowledgedrÉ   Úgetr    ÚcopyÚdeepcopyr   r   rÇ   )rP   Ú	generatorrÂ   r¯   r    Úop_idÚ	retryableÚfull_resultÚfinal_write_concernrŸ   rW   Ú	listenersrz   Úlast_runÚcmd_namer´   rn   rB   r¿   rÆ   ÚwceÚfulls                         rR   Ú_execute_commandz_AsyncBulk._execute_commandÒ  sS  è ø€ ð —/‘/×*Ñ*×/Ñ/ˆØ—‘×)Ñ)×0Ñ0ˆØ×+Ñ+ˆ	à×ÒÜ# I›ˆDÔØ ˆDŒMØ×Ñˆð 	×Ñ˜f gÔ.ØˆâØ—=’=Ü $ Y°Ó 5�”Ø—=‘=Ð(Ø#�Hä  §¡Ñ-ˆHØ×%Ñ%ØØØØØØØ—‘Ø—‘×-Ñ-ó	ˆCð —.‘.¤3 s§w¡w£<Ó/ñ ¤ S§W¡W£°·±Ñ!>À1Ò DØ$7Ò$H¸=�Mà §¡×!5Ñ!5°yÀ$Ç,Á,ÐO�Ø—<’<Ø%)§\¡\�C˜	‘NÜ×)Ñ)¨#¨}Ô=Ø×&Ñ&Ð2Ø6:×6IÑ6I�CÐ2Ñ3Ø—8‘8Ð'¨C¯K©K¼GÄWÐ;MÑ,MØ!%§¡�C˜‘JÙñ !¨×)EÒ)EØ×6Ñ6Ô8Ø7;˜Ô4Ø×%Ñ% c¨9´n×6LÑ6LÈdÔSØ×&Ñ& s¨G°VÔ<Ø×#Ñ# CÔ(à×"Ñ" 6¨3Ô/Ü˜SŸW™W c§n¡n°dÓ;�ð !×-Ò-Ø,0×,?Ñ,?ÀÀSÈ#ÈvÓ,V×&V‘O�F˜Gð !Ÿ*™*Ð%8¸"Ó=�CØ—w‘w˜v qÓ)Ô-CÑCô  $Ÿ}™}¨[Ó9˜Ü& s¨D°#·.±.À&ÔIÜ/°Ô5ä" 3¨°S·^±^ÀVÔLð %*�D”MØ38�DÔ0à—|’|¨¸Ñ(?Øà$(×$=Ñ$=¸cÀ3ÈÈVÓ$T×T�Gà—’¤# g£,Ñ.•ðg —.‘.¤3 s§w¡w£<Ô/ðn �|Š| ¨MÒ :Øà%)§]¡]Ð2ˆDÔ˜sõY ð^ 'Wùð( Uús2   ‚J=O.Ê?O)Ë B7O.Í7O,Í8AO.Î>'O.Ï'O.Ï,O.c           	   ƒ  ó&  ‡ ‡‡‡‡	K  — g g dddddg dœŠt        «       Š		 	 	 	 	 	 	 	 dˆˆˆ	ˆ ˆfd„}‰ j                  j                  j                  }|j	                  ‰ j
                  |||‰ ‰	¬«      ƒ d{  –—† }‰d   s‰d   rt        ‰«       ‰S 7 Œ­w)	zExecute using write commands.r   ©rÎ   ÚwriteConcernErrorsÚ	nInsertedÚ	nUpsertedÚnMatchedÚ	nModifiedÚnRemovedÚupsertedc           	   “  óP   •K  — ‰j                  ‰‰| |‰|‰«      ƒ d {  –—†  y 7 Œ­w©N)rè   )r¯   r    rà   rá   rÞ   rß   rP   rÂ   s      €€€€€rR   Úretryable_bulkz2_AsyncBulk.execute_command.<locals>.retryable_bulkN  s6   øè ø€ ð ×'Ñ'ØØØØØØØó÷ ò ús   ƒ&ž$Ÿ&)ÚbulkÚoperation_idNrÎ   rë   )r¯   úOptional[AsyncClientSession]r    r0   rà   ÚboolÚreturnÚNone)r+   r?   rV   rW   Ú_retryable_writerJ   r   )
rP   rÞ   rÂ   r¯   r|   rô   rW   rÄ   rá   rß   s
   ```     @@rR   Úexecute_commandz_AsyncBulk.execute_command9  sÉ   üè ø€ ð Ø"$ØØØØØØñ	
ˆô “
ˆð	Ø1ð	Ø9Hð	ØUYð	à÷	ñ 	ð —‘×)Ñ)×0Ñ0ˆØ×)Ñ)Ø×ÑØØØØØð *ó 
÷ 
ˆð �}Ò%¨Ð5IÒ)JÜ# KÔ0ØÐð
ús   ‡A,BÁ3BÁ4Bc           
   ƒ  ór  K  — | j                   j                  j                  }| j                   j                  j                  }|j                  }t        «       }| j                  st        |«      | _        | j                  }|�r0t        |j                     }| j                  |||||d|j                  | j                   j                  «      }	|j                  t        |j                  «      k  r­|| j                   j                  dddddii}
|j                  |
«       t!        |j                  |j                  d«      }| j#                  |	|
||«      ƒ d{  –—† }|xj                  t        |«      z  c_        |j                  t        |j                  «      k  rŒ­t        |d«      x| _        }|r�Œ/yy7 Œ^­w)zCExecute write commands with OP_MSG and w=0 writeConcern, unordered.NrA   FÚwriteConcernrÁ   r   )r?   rV   r½   rW   rÏ   r+   rM   r�   r   rx   r[   r:   rÑ   rÒ   rB   rØ   r   rÇ   )rP   r    rÞ   rŸ   rW   rã   rß   rz   rå   r´   rn   rB   rÆ   s                rR   Úexecute_op_msg_no_resultsz$_AsyncBulk.execute_op_msg_no_resultsi  sm  è ø€ ð —/‘/×*Ñ*×/Ñ/ˆØ—‘×)Ñ)×0Ñ0ˆØ×+Ñ+ˆ	Ü“
ˆà×ÒÜ# I›ˆDÔØ×ÑˆâÜ  §¡Ñ-ˆHØ×%Ñ%ØØØØØØØ—‘Ø—‘×-Ñ-ó	ˆCð —.‘.¤3 s§w¡w£<Ò/à˜dŸo™o×2Ñ2Ø˜uØ" S¨! Hð�ð
 ×#Ñ# CÔ(Ü˜SŸW™W c§n¡n°dÓ;�à $× 9Ñ 9¸#¸sÀCÈÓ P×P�Ø—’¤# g£,Ñ.•ð —.‘.¤3 s§w¡w£<Ó/ô &*¨)°TÓ%:Ð:ˆDÔ˜sõ1 ð, Qús   ‚EF7ÅF5ÅAF7ÆF7Æ3F7c           
   ƒ  ó®   K  — g g dddddg dœ}t        «       }t        «       }	 | j                  ||d||d||«      ƒ d{  –—†  y7 Œ# t        $ r Y yw xY w­w)zAExecute write commands with OP_MSG and w=0 WriteConcern, ordered.r   rê   NF)r-   r+   rè   r   )rP   r    rÞ   rÂ   rá   Úinitial_write_concernrß   s          rR   Úexecute_command_no_resultsz%_AsyncBulk.execute_command_no_results�  s€   è ø€ ð Ø"$ØØØØØØñ	
ˆô !-£ÐÜ“
ˆð	Ø×'Ñ'ØØ%ØØØØØØó	÷ 	ò 	ùô  ò 	Ùð	üs8   ‚ A£A ¾A¿A ÁAÁA Á	AÁAÁAÁAc              ƒ  ó0  K  — | j                   rt        d«      ‚| j                  rt        d«      ‚|xr |j                   }|r&| j                  r|j
                  dk  rt        d«      ‚|r&| j                  r|j
                  dk  rt        d«      ‚|r&| j                  r|j
                  dk  rt        d«      ‚| j                  rt        d	«      ‚| j                  r| j                  |||«      ƒ d
{  –—† S | j                  ||«      ƒ d
{  –—† S 7 Œ7 Œ­w)z3Execute all operations, returning no results (w=0).z3Collation is unsupported for unacknowledged writes.z6arrayFilters is unsupported for unacknowledged writes.é	   zPMust be connected to MongoDB 4.4+ to use hint on unacknowledged delete commands.é   zPMust be connected to MongoDB 4.2+ to use hint on unacknowledged update commands.é   zPMust be connected to MongoDB 8.0+ to use sort on unacknowledged update commands.zGCannot set bypass_document_validation with unacknowledged write concernN)rE   r   rF   rÚ   rH   Úmax_wire_versionrG   rI   rD   r   rA   r  rÿ   )rP   r    rÞ   rÂ   Úunacks        rR   Úexecute_no_resultsz_AsyncBulk.execute_no_results´  s  è ø€ ð ×ÒÜ$Ð%ZÓ[Ð[Ø×"Ò"Ü$Ð%]Ó^Ð^àÒ@ m×&@Ñ&@Ð"@ˆÙ�T×*Ò*¨t×/DÑ/DÀqÒ/HÜ$Øbóð ñ �T×*Ò*¨t×/DÑ/DÀqÒ/HÜ$Øbóð ñ �T—^’^¨×(=Ñ(=ÀÒ(BÜ$Øbóð ð ×ÒÜ"ØYóð ð �<Š<Ø×8Ñ8¸¸yÈ-ÓX×XÐXØ×3Ñ3°D¸)ÓD×DÐDð YøØDús$   ‚C1DÃ3DÃ4DÄDÄDÄDc              ƒ  óˆ  K  — | j                   st        d«      ‚| j                  rt        d«      ‚d| _        |xs | j                  j                  }t        ||«      }| j                  r| j                  «       }n| j                  «       }| j                  j                  j                  }|j                  sP|j                  ||«      ƒ d{  –—† 4 ƒd{  –—† }| j                  |||«      ƒ d{  –—†  	 ddd«      ƒd{  –—†  y| j                  ||||«      ƒ d{  –—† S 7 ŒV7 ŒO7 Œ67 Œ'# 1 ƒd{  –—†7  sw Y   yxY w7 Œ!­w)zExecute operations.zNo operations to executez*Bulk operations can only be executed once.TN)rB   r   rC   r?   rÂ   r   rA   r}   r€   rV   rW   rÚ   Ú_conn_for_writesr	  rü   )rP   rÂ   r¯   r|   rÞ   rW   Ú
connections          rR   Úexecutez_AsyncBulk.execute×  s)  è ø€ ð �xŠxÜ"Ð#=Ó>Ð>Ø�=Š=Ü"Ð#OÓPÐPØˆŒØ%ÒF¨¯©×)FÑ)FˆÜ1°'¸=ÓIˆà�<Š<Ø×(Ñ(Ó*‰Ià×*Ñ*Ó,ˆIà—‘×)Ñ)×0Ñ0ˆØ×)Ò)Ø#×4Ñ4°W¸iÓH×H÷ ð ÈJØ×-Ñ-¨j¸)À]ÓS×SÐSØ÷÷ ð ð ×-Ñ-¨i¸ÈÐQZÓ[×[Ð[ð	 Iøð øØSøðø÷ ÷ ñ úð \úsx   ‚C
EÃD#ÃEÃD%ÃEÃD+Ã0D'Ã1D+Ã6EÄD)ÄEÄE ÄEÄ%EÄ'D+Ä)EÄ+D=Ä1D4Ä2D=Ä9E)NN)r?   zAsyncCollection[_DocumentType]rA   rø   rQ   úOptional[bool]r@   zOptional[str]r;   zOptional[Any]rù   rú   )rù   zType[_BulkWriteContext])r]   r1   rù   rú   )NNNN)rk   úMapping[str, Any]rl   z#Union[Mapping[str, Any], _Pipeline]re   rø   rf   r  rg   úOptional[Mapping[str, Any]]rm   z!Optional[list[Mapping[str, Any]]]ri   ú Union[str, dict[str, Any], None]rj   r  rù   rú   )NNN)rk   r  rq   r  rf   r  rg   r  ri   r  rj   r  rù   rú   )
rk   r  rt   Úintrg   r  ri   r  rù   rú   )rù   zIterator[Optional[_Run]])rù   zIterator[_Run])r´   r'   rn   úMutableMapping[str, Any]rµ   r  r¶   Úbytesr·   úlist[Mapping[str, Any]]rW   úAsyncMongoClient[Any]rù   údict[str, Any])r´   r'   rn   r  rµ   r  r¶   r  r¾   r  r·   r  rW   r  rù   r  )
r´   ú4Union[_BulkWriteContext, _EncryptedBulkWriteContext]rn   r  rB   r  rW   r  rù   r  )
r´   r  rn   r  rB   r  rW   r  rù   z.tuple[dict[str, Any], list[Mapping[str, Any]]]ró   )rÞ   úIterator[Any]rÂ   r-   r¯   r÷   r    r0   rß   r  rà   rø   rá   r  râ   zOptional[WriteConcern]rù   rú   )
rÞ   r  rÂ   r-   r¯   r÷   r|   Ústrrù   r  )r    r0   rÞ   r  rù   rú   )r    r0   rÞ   r  rÂ   r-   rù   rú   )rÂ   r-   r¯   r÷   r|   r  rù   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__rS   Úpropertyr[   ra   ro   rr   ru   r}   r€   r   r§   r¼   rÇ   rÉ   rè   rü   rÿ   r  r	  r  © rT   rR   r5   r5   S   sä  „ Ù1ð "&Ø!ð!"à2ð!"ð ð!"ð %3ð	!"ð
 ð!"ð ð!"ð 
ó!"ðF ò%ó ð%ó-ð 26Ø;?Ø15Ø,0ð(à#ð(ð 4ð(ð ð	(ð
 ð(ð /ð(ð 9ð(ð /ð(ð *ð(ð 
ó(ðL 26Ø15Ø,0ð(à#ð(ð 'ð(ð ð	(ð
 /ð(ð /ð(ð *ð(ð 
ó(ð: 26Ø15ð(à#ð(ð ð(ð /ð	(ð
 /ð(ð 
ó(ó(ó
ð ðSàðSð &ðSð ð	Sð
 ðSð &ðSð &ðSð 
òSó ðSðjVàðVð &ðVð ð	Vð
 ðVð ðVð &ðVð &ðVð 
%óVðpàAðð ðð %ð	ð
 &ðð 
!óð6àAðð ðð %ð	ð
 &ðð 
8óð> 7;ðe3à ðe3ð $ðe3ð .ð	e3ð
 ðe3ð ðe3ð ðe3ð .ðe3ð 4ðe3ð 
óe3ðN.à ð.ð $ð.ð .ð	.ð
 ð.ð 
ó.ð`%;Ø#ð%;Ø0=ð%;à	ó%;ðN"àð"ð !ð"ð $ð	"ð
 
ó"ðH!Eàð!Eð !ð!Eð $ð	!Eð
 
ó!EðF\à#ð\ð .ð\ð ð	\ð
 
ô\rT   r5   )Lr  Ú
__future__r   rÜ   r©   r˜   Úcollections.abcr   Ú	itertoolsr   Útypingr   r   r   r	   r
   r   r   Úbson.objectidr   Úbson.raw_bsonr   Úpymongor   r   Ú#pymongo.asynchronous.client_sessionr   r   Úpymongo.asynchronous.helpersr   Úpymongo.bulk_sharedr   r   r   r   r   Úpymongo.commonr   r   r   Úpymongo.errorsr   r   r   r   Úpymongo.helpers_sharedr    Úpymongo.loggerr!   r"   r#   Úpymongo.messager$   r%   r&   r'   r(   r)   r*   r+   Úpymongo.read_preferencesr,   Úpymongo.write_concernr-   Úpymongo.asynchronous.collectionr.   Ú!pymongo.asynchronous.mongo_clientr/   Úpymongo.asynchronous.poolr0   Úpymongo.typingsr1   r2   r3   Ú_IS_SYNCr5   r   rT   rR   ú<module>r7     s£   ðñõ #ã Û Û Ý *Ý ÷÷ ñ õ #Ý )ß !ß cÝ 7÷õ ÷ñ ÷
ó õ :ß MÑ M÷	÷ 	ó 	õ 4Ý .áÝ?ÝBÝ9ßFÑFà€÷^
\ò ^
\rT   