Ë
    Ü_ËiRx  ã                  óÀ  — 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 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 ddlm Z  ddl!m"Z" erddl#m$Z$ ddl%m&Z& ddl'm(Z(m)Z) ddl*m+Z+m,Z,m-Z- ddl.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4 ddl5m6Z6 ddl7m8Z8m9Z9m:Z: ddl;m<Z<m=Z=m>Z>m?Z?m@Z@ ddlAmBZB ddlCmDZDmEZEmFZFmGZG ddlHmIZImJZJ ddlKmLZL dZM G d„ d«      ZNy)zIThe client-level bulk write operations interface.

.. versionadded:: 4.9
é    )ÚannotationsN)ÚMutableMapping)Úislice)ÚTYPE_CHECKINGÚAnyÚMappingÚOptionalÚTypeÚUnion)ÚObjectId)ÚRawBSONDocument)Ú_csotÚcommon)ÚAsyncClientSessionÚ_validate_session_write_concern)ÚAsyncCollection)ÚAsyncCommandCursor)ÚAsyncDatabase)Ú_handle_reauth)ÚAsyncMongoClient)ÚAsyncConnection)Ú_merge_commandÚ"_throw_client_bulk_write_exception)Úvalidate_is_document_typeÚvalidate_ok_for_replaceÚvalidate_ok_for_update)ÚConfigurationErrorÚConnectionFailureÚInvalidOperationÚNotPrimaryErrorÚOperationFailureÚWaitQueueTimeoutError)Ú_RETRYABLE_ERROR_CODES)Ú_COMMAND_LOGGERÚ_CommandStatusMessageÚ
_debug_log)Ú_ClientBulkWriteContextÚ_convert_client_bulk_exceptionÚ_convert_exceptionÚ_convert_write_resultÚ_randint)ÚReadPreference)ÚClientBulkWriteResultÚDeleteResultÚInsertOneResultÚUpdateResult)Ú_DocumentOutÚ	_Pipeline)ÚWriteConcernFc                  ó
  — 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
e	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd	„«       Z	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 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y)'Ú_AsyncClientBulkz4The private guts of the client-level bulk write API.Nc                ó†  — || _         || _        || _        | j                  � t        j                  d| j                  «       || _        || _        || _        || _        g | _	        g | _
        d| _        d| _        d| _        d| _        d| _        | j                   j                   j"                  | _        d| _        d| _        y)z'Initialize a _AsyncClientBulk instance.NÚletr   F)ÚclientÚwrite_concernr7   r   r   ÚorderedÚbypass_doc_valÚcommentÚverbose_resultsÚopsÚ
namespacesÚ
idx_offsetÚ	total_opsÚexecutedÚuses_collationÚuses_array_filtersÚoptionsÚretry_writesÚis_retryableÚretryingÚstarted_retryable_write)Úselfr8   r9   r:   Úbypass_document_validationr<   r7   r=   s           úc/var/www/pod-logistic/pod-api/venv/lib/python3.12/site-packages/pymongo/asynchronous/client_bulk.pyÚ__init__z_AsyncClientBulk.__init__Y   s°   € ð ˆŒØ*ˆÔØˆŒØ�8‰8ÐÜ×,Ñ,¨U°D·H±HÔ=ØˆŒØ8ˆÔØˆŒØ.ˆÔØ8:ˆŒØ%'ˆŒØ ˆŒØˆŒØˆŒØ#ˆÔØ"'ˆÔØ ŸK™K×/Ñ/×<Ñ<ˆÔØˆŒØ',ˆÕ$ó    c                ó   — t         S ©N)r'   )rJ   s    rL   Úbulk_ctx_classz_AsyncClientBulk.bulk_ctx_classx   s   € ä&Ð&rN   c                ó  — t        d|«       t        |t        «      sd|v st        «       |d<   d|dœ}| j                  j                  d|f«       | j                  j                  |«       | xj                  dz  c_        y)z*Add an insert document to the list of ops.ÚdocumentÚ_idéÿÿÿÿ)ÚinsertrS   rV   é   N)r   Ú
isinstancer   r   r>   Úappendr?   rA   )rJ   Ú	namespacerS   Úcmds       rL   Ú
add_insertz_AsyncClientBulk.add_insert|   sf   € ä! *¨hÔ7ä˜8¤_Ô5¸À(Ñ9JÜ&›jˆH�U‰OØ¨Ñ2ˆØ�‰�‰˜ 3˜Ô(Ø�‰×Ñ˜yÔ)Ø�Š˜!ÑŽrN   c
                ó6  — t        |«       d|||dœ}
|�||
d<   |�d| _        ||
d<   |�||
d<   |�d| _        ||
d<   |	�|	|
d	<   |rd
| _        | j                  j                  d|
f«       | j                  j                  |«       | xj                  dz  c_        y)z8Create an update document and add it to the list of ops.rU   ©ÚupdateÚfilterÚ
updateModsÚmultiNÚupsertTÚarrayFiltersÚhintÚ	collationÚsortFr_   rW   )r   rD   rC   rG   r>   rY   r?   rA   )rJ   rZ   Úselectorr_   rb   rc   rf   Úarray_filtersre   rg   r[   s              rL   Ú
add_updatez_AsyncClientBulk.add_update‡   s½   € ô 	˜vÔ&àØØ Øñ	
ˆð ÐØ"ˆC�‰MØÐ$Ø&*ˆDÔ#Ø"/ˆC�ÑØÐØˆC�‰KØÐ Ø"&ˆDÔØ(ˆC�ÑØÐØˆC�‰KÙà %ˆDÔØ�‰�‰˜ 3˜Ô(Ø�‰×Ñ˜yÔ)Ø�Š˜!ÑŽrN   c                ó  — t        |«       d||ddœ}|�||d<   |�||d<   |�d| _        ||d<   |�||d	<   | j                  j                  d
|f«       | j                  j                  |«       | xj
                  dz  c_        y)z8Create a replace document and add it to the list of ops.rU   Fr^   Nrc   re   Trf   rg   ÚreplacerW   )r   rC   r>   rY   r?   rA   )	rJ   rZ   rh   Úreplacementrc   rf   re   rg   r[   s	            rL   Úadd_replacez_AsyncClientBulk.add_replace®   s›   € ô 	  Ô,àØØ%Øñ	
ˆð ÐØ"ˆC�‰MØÐØˆC�‰KØÐ Ø"&ˆDÔØ(ˆC�ÑØÐØˆC�‰KØ�‰�‰˜ CÐ(Ô)Ø�‰×Ñ˜yÔ)Ø�Š˜!ÑŽrN   c                óæ   — d||dœ}|�||d<   |�d| _         ||d<   |rd| _        | j                  j                  d|f«       | j                  j                  |«       | xj
                  d	z  c_        y)
z7Create a delete document and add it to the list of ops.rU   )Údeleter`   rb   Nre   Trf   Frp   rW   )rC   rG   r>   rY   r?   rA   )rJ   rZ   rh   rb   rf   re   r[   s          rL   Ú
add_deletez_AsyncClientBulk.add_deleteÍ   sv   € ð  x¸%Ñ@ˆØÐØˆC�‰KØÐ Ø"&ˆDÔØ(ˆC�ÑÙà %ˆDÔØ�‰�‰˜ 3˜Ô(Ø�‰×Ñ˜yÔ)Ø�Š˜!ÑŽrN   c              ƒ  ób	  K  — ||d<   ||d<   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-                  «       |j.                  z
  }	t        j                  t        j                  «      rÅt	        t         t
        j0                  |j                  j                  |	|t        t        |«      «      |j                  |||j                  j                  |j                  j                  |j                  j                  d   |j                  j                  d   |j                  j                   ¬«       |j"                  r|j3                  |||	«       | j4                  j7                  ||j8                  «      ƒ d{  –—†  |S 7 �Œg7 Œ	# t:        $ �r÷}
t*        j*                  j-                  «       |j.                  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                  |||	«       d	|
i}t=        |
t@        «      r:| j4                  j7                  |
jB                  |j8                  «      ƒ d{  –—†7   n/| j4                  j7                  i |j8                  «      ƒ d{  –—†7   Y d}
~
|S d}
~
ww xY w­w)
zHA proxy for AsyncConnection.write_command that handles event publishing.r>   ÚnsInfor   rW   ©ÚmessageÚclientIdÚcommandÚcommandNameÚdatabaseNameÚ	requestIdÚoperationIdÚdriverConnectionIdÚserverConnectionIdÚ
serverHostÚ
serverPortÚ	serviceIdN©ru   rv   Ú
durationMSÚreplyrx   ry   rz   r{   r|   r}   r~   r   r€   ©ru   rv   r‚   Úfailurerx   ry   rz   r{   r|   r}   r~   r   r€   ÚisServerSideErrorÚerror)%r$   Ú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Ú_succeedr8   Ú_process_responseÚsessionÚ	ExceptionrX   r    r!   Údetailsr)   ÚFAILEDÚ_fail)rJ   Úbwcr[   Ú
request_idÚmsgÚop_docsÚns_docsr8   rƒ   ÚdurationÚexcr…   s               rL   r˜   z_AsyncClientBulk.write_commandã   se  è ø€ ð ˆˆE‰
ØˆˆH‰Ü×'Ñ'¬¯©Ô6ÜÜÜ-×5Ñ5Ø×2Ñ2×?Ñ?ØÜ ¤ c£›OØ Ÿ[™[Ø$Ø&Ø#&§8¡8§;¡;Ø#&§8¡8×#@Ñ#@ØŸ8™8×+Ñ+¨AÑ.ØŸ8™8×+Ñ+¨AÑ.ØŸ(™(×-Ñ-õð �;Š;Ø�J‰J�s˜J¨°Ô9ð9	EØŸ(™(×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à—+‘+×/Ñ/°°s·{±{ÓC×CÐCðF ˆðs Mùð, DùÜó !	EÜ×(Ñ(×,Ñ,Ó.°·±Ñ?ˆ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à˜c�NˆEä˜#Ô/Ô0Ø—k‘k×3Ñ3°C·K±KÀÇÁÓM×MÒMà—k‘k×3Ñ3°B¸¿¹ÓD×DÑDûØˆûðE!	Eüsn   ‚DR/Ä*J+ Ä?J&Å EJ+ ÊJ)Ê J+ Ê$R/Ê&J+ Ê)J+ Ê+
R,Ê5F6R'Ñ+Q.Ñ,/R'ÒRÒR'Ò!R/Ò'R,Ò,R/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'                  ||j(                  «      ƒ d{  –—† }t*        j*                  j-                  «       |j.                  z
  }	|�t1        |j2                  ||«      }
nìddi}
t        j                  t        j                  «      rÅt	        t         t
        j4                  |j                  j                  |	|
t        t        |«      «      |j                  |||j                  j                  |j                  j                  |j                  j                  d   |j                  j                  d   |j                  j                   ¬«       |j"                  r|j7                  ||
|	«       |
S 7 �ŒW# t8        $ �r¸}t*        j*                  j-                  «       |j.                  z
  }	t;        |t<        «      r"t1        |j2                  ||j>                  «      }n(t;        |t@        «      r|j>                  }ntC        |«      }t        j                  t        j                  «      rÔt	        t         t
        jD                  |j                  j                  |	|t        t        |«      «      |j                  |||j                  j                  |j                  j                  |j                  j                  d   |j                  j                  d   |j                  j                   t;        |t<        «      ¬«       |j"                  r!|j.                  €J ‚|jG                  |||	«       d|i}
Y d}~|
S d}~ww xY w­w)	zFA proxy for AsyncConnection.unack_write that handles event publishing.r   rW   rt   NÚokr�   r„   r‡   )$r$   rˆ   r‰   rŠ   r&   r%   r‹   rŒ   r�   rŽ   r�   r�   r‘   r’   r“   r”   r•   r–   r—   Úunack_writeÚmax_bson_sizerš   r›   rœ   r*   Únamer�   rž   r¡   rX   r!   r¢   r    r)   r£   r¤   )rJ   r¥   r[   r¦   r§   r¨   r©   r8   Úresultrª   rƒ   r«   r…   s                rL   r®   z_AsyncClientBulk.unack_write?  s0  è ø€ ô ×'Ñ'¬¯©Ô6ÜÜÜ-×5Ñ5Ø×2Ñ2×?Ñ?ØÜ ¤ c£›OØ Ÿ[™[Ø$Ø&Ø#&§8¡8§;¡;Ø#&§8¡8×#@Ñ#@ØŸ8™8×+Ñ+¨AÑ.ØŸ8™8×+Ñ+¨AÑ.ØŸ(™(×-Ñ-õð �;Š;Ø—*‘*˜S *¨g°wÓ?ˆCð9	#ØŸ8™8×/Ñ/°°S×5FÑ5FÓG×Gˆ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ð@ ˆðs Húô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à˜c�NŒEØˆûð?	#üsD   ‚DQÄ)J Ä4JÄ5EJ Ê	QÊJ Ê
QÊF-QÑQÑQÑQc           	   ƒ  ó˜   K  — |j                  |||«      \  }}}}| j                  ||||||| j                  «      ƒ d{  –—†  ||fS 7 Œ­w)z6Executes a batch of bulkWrite server commands (unack).N)Úbatch_commandr®   r8   )	rJ   r¥   r[   r>   r?   r¦   r§   Úto_send_opsÚ
to_send_nss	            rL   Ú_execute_batch_unackz%_AsyncClientBulk._execute_batch_unack˜  s]   è ø€ ð 47×3DÑ3DÀSÈ#ÈzÓ3ZÑ0ˆ
�C˜ jØ×Ñ˜s C¨°S¸+ÀzÐSW×S^ÑS^Ó_×_Ð_Ø˜JÐ&Ð&ð 	`ús   ‚=A
¿AÁ 	A
c           	   ƒ  óš   K  — |j                  |||«      \  }}}}| j                  ||||||| j                  «      ƒ d{  –—† }	|	||fS 7 Œ	­w)z4Executes a batch of bulkWrite server commands (ack).N)r³   r˜   r8   )
rJ   r¥   r[   r>   r?   r¦   r§   r´   rµ   r±   s
             rL   Ú_execute_batchz_AsyncClientBulk._execute_batch¤  sa   è ø€ ð 47×3DÑ3DÀSÈ#ÈzÓ3ZÑ0ˆ
�C˜ jØ×)Ñ)Ø��j # {°JÀÇÁó
÷ 
ˆð �{ JÐ.Ð.ð
ús   ‚=A¿A	Á 
Ac              ƒ  ó  K  — |j                  d«      �r |rd|_        t        t        | j                  d«      d¬«      }t        ||d   |j                  || j                  ¬«      }|j                  |«      ƒ d{  –—†  	 |2 3 d{  –—† }|d   | j                  z   }| j                  |   \  }	}
|d	   s"|d
   j                  |«       | j                  r y|d	   sŒZ| j                  sŒg|	dk(  r|
d   d   }t        |d¬«      }|	dv rd}	t        |dd¬«      }|	dk(  rt!        |d¬«      }||	› d�   |<   Œ³y7 Œ»7 Œ±6 y# t"        $ r=}|j$                  r|j'                  «       ƒ d{  –—†7   t)        |«      |d<   Y d}~yd}~ww xY w­w)z?Internal helper for processing the server reply command cursor.ÚcursorTÚadminz$cmd.bulkWrite)Údatabaser°   )r    r<   NÚidxr­   ÚwriteErrorsrV   rS   rT   )Úacknowledged)r_   rl   r_   )r¿   Úin_client_bulkrp   ÚResultsr‡   )ÚgetÚ_leave_aliver   r   r8   r   r”   r<   Ú_maybe_pin_connectionr@   r>   rY   r:   r=   r/   r0   r.   r¡   ÚaliveÚcloser(   )rJ   Úfull_resultr±   r‘   r    ÚcollÚ
cmd_cursorÚdocÚoriginal_indexÚop_typeÚopÚinserted_idÚresr«   s                 rL   Ú_process_results_cursorz(_AsyncClientBulk._process_results_cursor²  s¢  è ø€ ð �:‰:�hÕÙØ'+�Ô$Ü"Ü& t§{¡{°GÓ<Ø%ôˆDô ,ØØ�xÑ Ø—‘ØØŸ™ôˆJð ×2Ñ2°4Ó8×8Ð8ðFØ!+÷ Oð O˜#Ø%(¨¡Z°$·/±/Ñ%A�NØ"&§(¡(¨>Ñ":‘K�G˜Rà˜tš9Ø˜}Ñ-×4Ñ4°SÔ9ØŸ<š<Ù"ð ˜4“y T×%9Ó%9Ø" hÒ.Ø*,¨Z©.¸Ñ*?˜KÜ"1°+ÈDÔ"Q˜CØ"Ð&;Ñ;Ø&.˜GÜ".¨sÀÐVZÔ"[˜CØ" hÒ.Ü".¨sÀÔ"F˜CØKN˜ w i¨wÐ$7Ñ8¸ÒHðK  ð 9øðOø¡øô( ò Fà×#Ò#Ø$×*Ñ*Ó,×,Ñ,Ü"@ÀÓ"E��w–ûð	FüsŒ   ‚A8FÁ:D6Á;FÂ D< ÂD:ÂD8ÂD:Â
AD< ÃFÃD< ÃD< Ã)AD< Ä5FÄ8D:Ä:D< Ä;FÄ<	FÅE=Å$E'Å%E=Å8FÅ=FÆFc           	   ƒ  óþ	  K  — d}d}	| j                   j                  }
|j                  | j                   |«       | j                  ||	|||
|| j                   j                  «      }| j
                  | j                  k  �rw| j                  | j
                  z
  |j                  k  r|xs |}ddi}| j                   |d<   | j                  |d<   |xr |j                   }|s|st        j                  ||«       | j                  �| j                  |d<   | j                  r| j                  |d<   | j                  r| j                  |d	<   |rG|r#| j                   s|j#                  «        d
| _        |j%                  ||t&        j(                  |«       |j+                  ||| j                   «       |j-                  |«       |j/                  | j                   |«       t1        | j2                  | j
                  d«      }t1        | j4                  | j
                  d«      }|j6                  �rZ| j9                  ||||«      ƒ d{  –—† \  }}}|}|j;                  d«      �r|d   }t=        |d«      xr> t?        |j@                  tB        «      xr" |j@                  j;                  dd«      tD        v }t?        |tF        «      xr t?        |tH        tJ        f«       }|rR|s|rNtM        jN                  |«      }tQ        | j2                  | j
                  ||«       tS        || j                  «       n8tQ        | j2                  | j
                  ||«       tS        || j                  «       d|d<   g |d<   |j;                  dd«      tU        |«      k  rd
|d<   |d   s(||d<   tQ        | j2                  | j
                  ||«       y|rw|j;                  di «      }|j;                  dd«      tD        v rMtM        jN                  |«      }tQ        | j2                  | j
                  ||«       tS        || j                  «       | jW                  ||||«      ƒ d{  –—†  tQ        | j2                  | j
                  ||«       d| _,        d| _        n| j[                  ||||«      ƒ d{  –—† \  }}| xj
                  tU        |«      z  c_        |d   s| j                  r|d   ry| j
                  | j                  k  r�Œvyy7 �Œ´7 Œ©7 Œ^­w)z<Internal helper for executing batches of bulkWrite commands.r»   Ú	bulkWriterW   Ú
errorsOnlyr:   NÚbypassDocumentValidationr<   r7   Tr‡   r¢   Úcoder   r¾   ÚnErrorsÚanySuccessfulr­   ÚwriteConcernErrorF).r8   Ú_event_listenersÚvalidate_sessionrQ   Úcodec_optionsr@   rA   Úmax_write_batch_sizer=   r:   Úin_transactionr   Úapply_write_concernr;   r<   r7   rI   Ú_start_retryable_writeÚ	_apply_tor,   ÚPRIMARYÚsend_cluster_timeÚadd_server_apiÚapply_timeoutr   r>   r?   r¿   r¸   rÂ   ÚhasattrrX   r¢   Údictr#   r   r    r"   ÚcopyÚdeepcopyr   r   ÚlenrÐ   rH   r¶   )rJ   r9   r    r‘   Úop_idÚ	retryablerÇ   Úfinal_write_concernr�   Úcmd_nameÚ	listenersr¥   r[   Únot_in_transactionr>   r?   Ú
raw_resultr´   Ú_r±   r‡   Úretryable_top_level_errorÚretryable_network_errorÚfullÚwces                            rL   Ú_execute_commandz!_AsyncClientBulk._execute_commandæ  ss  è ø€ ð ˆØˆØ—K‘K×0Ñ0ˆ	ð 	×Ñ˜dŸk™k¨7Ô3à×!Ñ!ØØØØØØØ�K‰K×%Ñ%ó
ˆð �o‰o §¡Ó.ð �~‰~ §¡Ñ/°3×3KÑ3KÒKØ 3Ò D°}�ð  Ð"ˆCØ$(×$8Ñ$8Ð 8ˆC�ÑØ!Ÿ\™\ˆC�	‰NØ!(Ò!G°×1GÑ1GÐ-GÐÙ!©Ü×)Ñ)¨#¨}Ô=Ø×"Ñ"Ð.Ø26×2EÑ2E�Ð.Ñ/Ø�|Š|Ø!%§¡��I‘Ø�xŠxØ!ŸX™X��E‘
áñ  T×%AÒ%AØ×2Ñ2Ô4Ø37�DÔ0Ø×!Ñ! # y´.×2HÑ2HÈ$ÔOØ×"Ñ" 3¨°·±Ô=Ø×Ñ Ô$à×Ñ˜tŸ{™{¨CÔ0Ü˜Ÿ™ 4§?¡?°DÓ9ˆCÜ §¡°·±À$ÓGˆJð ×)Ó)Ø37×3FÑ3FÀsÈCÐQTÐV`Ó3a×-aÑ*�
˜K¨Ø#�ð —:‘:˜gÕ&Ø" 7™O�Eä  yÓ1ò SÜ& u§}¡}´dÓ;òSà!ŸM™M×-Ñ-¨f°aÓ8Ô<RÐRð .ô
 /9ØÔ0ó/ò /Zä(¨´ÔBWÐ0XÓYÐYð ,ñ !Ñ&?ÑCZÜ#Ÿ}™}¨[Ó9˜Ü& t§x¡x°·±À$ÈÔOÜ:¸4À×AUÑAUÕVä& t§x¡x°·±À+ÈvÔVÜ:¸;È×H\ÑH\Ô]à"&��w‘Ø(*��}Ñ%Ø—:‘:˜i¨Ó+¬c°+Ó.>Ò>Ø37�K Ñ0ð ˜d’|Ø&0�F˜7‘OÜ" 4§8¡8¨T¯_©_¸kÈ6ÔRØáà Ÿ*™*Ð%8¸"Ó=�CØ—w‘w˜v qÓ)Ô-CÑCô  $Ÿ}™}¨[Ó9˜Ü& t§x¡x°·±À$ÈÔOÜ:¸4À×AUÑAUÔVð ×2Ñ2°;ÀÈÈgÓV×VÐVô ˜tŸx™x¨¯©¸+ÀvÔNð !&�”Ø/4�Õ,ð (,×'@Ñ'@ÀÀcÈ3ÐPZÓ'[×![‘�˜Qà�OŠOœs ;Ó/Ñ/�Oð ˜7Ò#¨¯ª¸À]Ò9SØðI �o‰o §¡Ö.ðH .bùð^ Wøð "\ús?   ‚I S=ÉS6ÉHS=ÑS9ÑAS=ÒS;ÒAS=Ó4S=Ó9S=Ó;S=c              ƒ  ó  ‡ ‡‡K  — ddg g dddddi i i dœŠt        «       Š	 	 	 	 	 	 	 	 d
ˆˆˆ fd„}‰ j                  j                  ‰ j                  |||‰ ‰¬«      ƒ d{  –—†  ‰d   s
‰d   s‰d	   rt	        ‰‰ j
                  «       ‰S 7 Œ+­w)z'Execute commands with w=1 WriteConcern.FNr   )r×   r‡   r¾   ÚwriteConcernErrorsÚ	nInsertedÚ	nUpsertedÚnMatchedÚ	nModifiedÚnDeletedÚinsertResultsÚupdateResultsÚdeleteResultsc              “  ó–   •K  — |j                   dk  rt        d«      ‚‰j                  ‰j                  | |‰|‰«      ƒ d {  –—†  y 7 Œ­w)Né   ú<MongoClient.bulk_write requires MongoDB server version 8.0+.)Úmax_wire_versionr   rö   r9   )r    r‘   rë   rÇ   rê   rJ   s      €€€rL   Úretryable_bulkz8_AsyncClientBulk.execute_command.<locals>.retryable_bulk  sY   øè ø€ ð
 ×$Ñ$ rÒ)Ü&ØRóð ð ×'Ñ'Ø×"Ñ"ØØØØØó÷ ò ús   ƒ>A	ÁAÁA	)ÚbulkÚoperation_idr‡   r¾   rø   )r    úOptional[AsyncClientSession]r‘   r   rë   ÚboolÚreturnÚNone)r+   r8   Ú_retryable_writerG   r   r=   )rJ   r    Ú	operationr  rÇ   rê   s   `   @@rL   Úexecute_commandz _AsyncClientBulk.execute_commandi  sÕ   úè ø€ ð #ØØØ"$ØØØØØØØØñ1
ˆô “
ˆð	Ø1ð	à!ð	ð ð	ð ÷		ð$ �k‰k×*Ñ*Ø×ÑØØØØØð +ó 
÷ 	
ð 	
ð �wÒ ;¨}Ò#=ÀÐMaÒAbÜ.¨{¸D×<PÑ<PÔQØÐð	
ús   …ABÁB	Á,Bc           	   ƒ  ó  K  — d}d}| j                   j                  }t        «       }| j                  |||||d| j                   j                  «      }| j
                  | j                  k  �rddi}d|d<   d|d<   | j                  �| j                  |d	<   d
di|d<   | j                  r| j                  |d<   | j                  r| j                  |d<   |j                  |«       t        | j                  | j
                  d«      }t        | j                  | j
                  d«      }	| j                  ||||	«      ƒ d{  –—† \  }
}| xj
                  t        |
«      z  c_        | j
                  | j                  k  r�Œyy7 ŒB­w)zDExecute commands with OP_MSG and w=0 writeConcern. Always unordered.r»   rÒ   NrW   TrÓ   Fr:   rÔ   Úwr   ÚwriteConcernr<   r7   )r8   rÙ   r+   rQ   rÛ   r@   rA   r;   r<   r7   rã   r   r>   r?   r¶   ré   )rJ   r‘   r�   rí   rî   rê   r¥   r[   r>   r?   r´   rñ   s               rL   Úexecute_command_unackz&_AsyncClientBulk.execute_command_unackž  s]  è ø€ ð
 ˆØˆØ—K‘K×0Ñ0ˆ	Ü“
ˆà×!Ñ!ØØØØØØØ�K‰K×%Ñ%ó
ˆð �o‰o §¡Ó.à Ð"ˆCØ $ˆC�ÑØ"ˆC�	‰NØ×"Ñ"Ð.Ø26×2EÑ2E�Ð.Ñ/Ø#&¨ (ˆC�ÑØ�|Š|Ø!%§¡��I‘Ø�xŠxØ!ŸX™X��E‘
à×Ñ Ô$Ü˜Ÿ™ 4§?¡?°DÓ9ˆCÜ §¡°·±À$ÓGˆJð $(×#<Ñ#<¸SÀ#ÀsÈJÓ#W×W‰NˆK˜à�OŠOœs ;Ó/Ñ/�Oð) �o‰o §¡Ö.ð$ Xús   ‚D:FÄ<E?Ä=>FÅ=Fc              ƒ  óÊ   K  — | j                   rt        d«      ‚| j                  rt        d«      ‚| j                  �t	        d«      ‚| j                  |«      ƒ d{  –—† S 7 Œ­w)z3Execute all operations, returning no results (w=0).z3Collation is unsupported for unacknowledged writes.z6arrayFilters is unsupported for unacknowledged writes.NzGCannot set bypass_document_validation with unacknowledged write concern)rC   r   rD   r;   r!   r  )rJ   r‘   s     rL   Úexecute_no_resultsz#_AsyncClientBulk.execute_no_resultsÈ  sg   è ø€ ð
 ×ÒÜ$Ð%ZÓ[Ð[Ø×"Ò"Ü$Ð%]Ó^Ð^à×ÑÐ*Ü"ØYóð ð ×/Ñ/°Ó5×5Ð5Ð5ús   ‚AA#ÁA!ÁA#c              ƒ  ó�  K  — | j                   st        d«      ‚| j                  rt        d«      ‚d| _        t        || j                  «      }| j                  j
                  s~| j                  j                  ||«      ƒ d{  –—† 4 ƒd{  –—† }|j                  dk  rt        d«      ‚| j                  |«      ƒ d{  –—†  t        ddd«      cddd«      ƒd{  –—†  S | j                  ||«      ƒ d{  –—† }t        || j                  j
                  | j                  «      S 7 Œ£7 Œœ7 Œk7 ŒP# 1 ƒd{  –—†7  sw Y   Œ_xY w7 ŒL­w)zExecute operations.zNo operations to executez*Bulk operations can only be executed once.TNr  r  F)r>   r   rB   r   r9   r¿   r8   Ú_conn_for_writesr  r  r-   r  r=   )rJ   r    r  Ú
connectionr±   s        rL   Úexecutez_AsyncClientBulk.executeÙ  sA  è ø€ ð �xŠxÜ"Ð#=Ó>Ð>Ø�=Š=Ü"Ð#OÓPÐPØˆŒÜ1°'¸4×;MÑ;MÓNˆà×!Ñ!×.Ò.Ø!Ÿ[™[×9Ñ9¸'À9ÓM×M÷ Að AÐQ[Ø×.Ñ.°Ò3Ü*ØVóð ð ×-Ñ-¨jÓ9×9Ð9Ü,¨T°5¸%Ó@÷A÷ Añ Að ×+Ñ+¨G°YÓ?×?ˆÜ$ØØ×Ñ×+Ñ+Ø× Ñ ó
ð 	
ð Nøð Aøð
 :øðAø÷ A÷ Añ Aúð @úsx   ‚BEÂD'ÂEÂD)ÂEÂ/D/Â?D+Ã D/ÃEÃD-ÃEÃ7EÃ80EÄ)EÄ+D/Ä-EÄ/EÄ5D8Ä6EÄ=E)TNNNF)r8   úAsyncMongoClient[Any]r9   r3   r:   r	  rK   úOptional[bool]r<   zOptional[str]r7   zOptional[Any]r=   r	  r
  r  )r
  zType[_ClientBulkWriteContext])rZ   ÚstrrS   r1   r
  r  )NNNNN)rZ   r  rh   úMapping[str, Any]r_   z#Union[Mapping[str, Any], _Pipeline]rb   r	  rc   r  rf   úOptional[Mapping[str, Any]]ri   z!Optional[list[Mapping[str, Any]]]re   ú Union[str, dict[str, Any], None]rg   r  r
  r  )NNNN)rZ   r  rh   r  rm   r  rc   r  rf   r  re   r  rg   r  r
  r  )NN)rZ   r  rh   r  rb   r	  rf   r  re   r  r
  r  )r¥   r'   r[   úMutableMapping[str, Any]r¦   Úintr§   zUnion[bytes, dict[str, Any]]r¨   úlist[Mapping[str, Any]]r©   r!  r8   r  r
  údict[str, Any])r¥   r'   r[   r  r¦   r   r§   Úbytesr¨   r!  r©   r!  r8   r  r
  r  )
r¥   r'   r[   r"  r>   ú#list[tuple[str, Mapping[str, Any]]]r?   ú	list[str]r
  z7tuple[list[Mapping[str, Any]], list[Mapping[str, Any]]])
r¥   r'   r[   r"  r>   r$  r?   r%  r
  zGtuple[dict[str, Any], list[Mapping[str, Any]], list[Mapping[str, Any]]])
rÇ   r  r±   r  r‘   r   r    r  r
  r  rP   )r9   r3   r    r  r‘   r   rê   r   rë   r	  rÇ   r  rì   zOptional[WriteConcern]r
  r  )r    r  r  r  r
  r  )r‘   r   r
  r  )r    r  r  r  r
  r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__rM   ÚpropertyrQ   r\   rj   rn   rq   r   r˜   r®   r¶   r¸   rÐ   rö   r  r  r  r  © rN   rL   r5   r5   V   sê  „ Ù>ð Ø59Ø!%Ø!Ø %ð-à%ð-ð $ð-ð ð	-ð
 %3ð-ð ð-ð ð-ð ð-ð 
ó-ð> ò'ó ð'ó	ð" "&Ø15Ø;?Ø15Ø,0ð%àð%ð $ð%ð 4ð	%ð
 ð%ð ð%ð /ð%ð 9ð%ð /ð%ð *ð%ð 
ó%ðX "&Ø15Ø15Ø,0ðàðð $ðð 'ð	ð
 ðð /ðð /ðð *ðð 
óðH 26Ø15ðàðð $ðð ð	ð
 /ðð /ðð 
óð, ðYà$ðYð &ðYð ð	Yð
 *ðYð )ðYð )ðYð &ðYð 
òYó ðYðvWà$ðWð &ðWð ð	Wð
 ðWð )ðWð )ðWð &ðWð 
%óWðr
'à$ð
'ð ð
'ð 1ð	
'ð
 ð
'ð 
Aó
'ð/à$ð/ð ð/ð 1ð	/ð
 ð/ð 
Qó/ð2Fà-ð2Fð )ð2Fð ð	2Fð
 .ð2Fð 
ó2Fðx 7;ðAà#ðAð .ðAð ð	Að
 ðAð ðAð .ðAð 4ðAð 
óAðF3à-ð3ð ð3ð 
"ó	3ðj(0àð(0ð 
ó(0ðT6àð6ð 
ó6ð"
à-ð
ð ð
ð 
ô	
rN   r5   )Or)  Ú
__future__r   rç   rš   r‰   Úcollections.abcr   Ú	itertoolsr   Útypingr   r   r   r	   r
   r   Úbson.objectidr   Úbson.raw_bsonr   Úpymongor   r   Ú#pymongo.asynchronous.client_sessionr   r   Úpymongo.asynchronous.collectionr   Ú#pymongo.asynchronous.command_cursorr   Úpymongo.asynchronous.databaser   Úpymongo.asynchronous.helpersr   Ú!pymongo.asynchronous.mongo_clientr   Úpymongo.asynchronous.poolr   Úpymongo._client_bulk_sharedr   r   Úpymongo.commonr   r   r   Úpymongo.errorsr   r   r   r    r!   r"   Úpymongo.helpers_sharedr#   Úpymongo.loggerr$   r%   r&   Úpymongo.messager'   r(   r)   r*   r+   Úpymongo.read_preferencesr,   Úpymongo.resultsr-   r.   r/   r0   Úpymongo.typingsr1   r2   Úpymongo.write_concernr3   Ú_IS_SYNCr5   r+  rN   rL   ú<module>rE     s¡   ðñõ #ã Û Û Ý *Ý ÷÷ õ #Ý )ß !ß cÝ ;Ý BÝ 7Ý 7áÝBÝ9÷÷ñ ÷
÷ õ :ß MÑ M÷õ õ 4÷ó ÷ 4Ý .à€÷^

ò ^

rN   