Ë
    Ü_Ëièv  ã                  óÀ  — 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)ÚClientSessionÚ_validate_session_write_concern)Ú
Collection)ÚCommandCursor)ÚDatabase)Ú_handle_reauth)ÚMongoClient)Ú
Connection)Ú_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)ÚWriteConcernTc                  ó
  — 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)'Ú_ClientBulkz4The 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 _ClientBulk 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           úb/var/www/pod-logistic/pod-api/venv/lib/python3.12/site-packages/pymongo/synchronous/client_bulk.pyÚ__init__z_ClientBulk.__init__Y   s°   € ð ˆŒØ*ˆÔØˆŒØ�8‰8ÐÜ×,Ñ,¨U°D·H±HÔ=ØˆŒØ8ˆÔØˆŒØ.ˆÔØ8:ˆŒØ%'ˆŒØ ˆŒØˆŒØˆŒØ#ˆÔØ"'ˆÔØ ŸK™K×/Ñ/×<Ñ<ˆÔØˆŒØ',ˆÕ$ó    c                ó   — t         S ©N)r'   )rJ   s    rL   Úbulk_ctx_classz_ClientBulk.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_ClientBulk.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_ClientBulk.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_ClientBulk.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_ClientBulk.add_deleteÍ   sv   € ð  x¸%Ñ@ˆØÐØˆC�‰KØÐ Ø"&ˆDÔØ(ˆC�ÑÙà %ˆDÔØ�‰�‰˜ 3˜Ô(Ø�‰×Ñ˜yÔ)Ø�Š˜!ÑŽrN   c                ó	  — ||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(                  «      }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                  «       |S # 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@        «      r1| j4                  j7                  |
jB                  |j8                  «       n&| j4                  j7                  i |j8                  «       Y d	}
~
|S d	}
~
ww xY w)
zCA proxy for Connection.write_command that handles event publishing.r>   ÚnsInfor   rW   ©ÚmessageÚclientIdÚcommandÚcommandNameÚdatabaseNameÚ	requestIdÚoperationIdÚdriverConnectionIdÚserverConnectionIdÚ
serverHostÚ
serverPortÚ	serviceId©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ÚerrorN)%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_ClientBulk.write_commandã   s?  € ð ˆˆ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	?Ø—H‘H×*Ñ*¨:°s¸C¿I¹IÓFˆ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à�K‰K×)Ñ)¨%°·±Ô=ðF ˆøô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Ø—‘×-Ñ-¨c¯k©k¸3¿;¹;ÕGà—‘×-Ñ-¨b°#·+±+Ô>ûØˆûðE!	?ús   ÄE?J Ê
RÊGQ>Ñ>Rc                óŒ  — 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(                  «      }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 # 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)	zAA proxy for Connection.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_ClientBulk.unack_write?  s#  € ô ×'Ñ'¬¯©Ô6ÜÜÜ-×5Ñ5Ø×2Ñ2×?Ñ?ØÜ ¤ c£›OØ Ÿ[™[Ø$Ø&Ø#&§8¡8§;¡;Ø#&§8¡8×#@Ñ#@ØŸ8™8×+Ñ+¨AÑ.ØŸ8™8×+Ñ+¨AÑ.ØŸ(™(×-Ñ-õð �;Š;Ø—*‘*˜S *¨g°wÓ?ˆCð9	#Ø—X‘X×)Ñ)¨#¨s×/@Ñ/@ÓAˆ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ð@ ˆøô? ó 	#Ü×(Ñ(×,Ñ,Ó.°·±Ñ?ˆ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Øˆûð?	#ús   Ä	E6J Ê
QÊF-P>Ð>Qc           	     ó|   — |j                  |||«      \  }}}}| j                  ||||||| j                  «       ||fS )z6Executes a batch of bulkWrite server commands (unack).)Úbatch_commandr®   r8   )	rJ   r¥   r[   r>   r?   r¦   r§   Úto_send_opsÚ
to_send_nss	            rL   Ú_execute_batch_unackz _ClientBulk._execute_batch_unack˜  sJ   € ð 47×3DÑ3DÀSÈ#ÈzÓ3ZÑ0ˆ
�C˜ jØ×Ñ˜˜c :¨s°KÀÈTÏ[É[ÔYØ˜JÐ&Ð&rN   c           	     ó~   — |j                  |||«      \  }}}}| j                  ||||||| j                  «      }	|	||fS )z4Executes a batch of bulkWrite server commands (ack).)r³   r˜   r8   )
rJ   r¥   r[   r>   r?   r¦   r§   r´   rµ   r±   s
             rL   Ú_execute_batchz_ClientBulk._execute_batch¤  sQ   € ð 47×3DÑ3DÀSÈ#ÈzÓ3ZÑ0ˆ
�C˜ jØ×#Ñ# C¨¨j¸#¸{ÈJÐX\×XcÑXcÓdˆØ�{ JÐ.Ð.rN   c                óÐ  — |j                  d«      �r|rd|_        t        t        | j                  d«      d¬«      }t        ||d   |j                  || j                  ¬«      }|j                  |«       	 |D ]«  }|d   | j                  z   }| j                  |   \  }	}
|d   s"|d	   j                  |«       | j                  r y
|d   sŒT| j                  sŒa|	dk(  r|
d   d   }t        |d¬«      }|	dv rd}	t        |dd¬«      }|	dk(  rt!        |d¬«      }||	› d�   |<   Œ­ y
y
# t"        $ r4}|j$                  r|j'                  «        t)        |«      |d<   Y d
}~y
d
}~ww xY w)z?Internal helper for processing the server reply command cursor.ÚcursorTÚadminz$cmd.bulkWrite)Údatabaser°   )r    r<   Úidxr­   ÚwriteErrorsNrV   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#_ClientBulk._process_results_cursor°  s„  € ð �:‰:�hÕÙØ'+�Ô$ÜÜ! $§+¡+¨wÓ7Ø%ôˆDô 'ØØ�xÑ Ø—‘ØØŸ™ôˆJð ×,Ñ,¨TÔ2ðFØ%ò O�CØ%(¨¡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ñ'Oð%  øôL ò Fà×#Ò#Ø×$Ñ$Ô&Ü"@ÀÓ"E��w–ûð	Fús,   Á6AD( ÃD( ÃD( ÃAD( Ä(	E%Ä1*E Å E%c           	     ó¸	  — d}d}	| j                   j                  }
|j                  | j                   |«       | j                  ||	|||
|| j                   j                  «      }| j
                  | j                  k  �r_| 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                  �rJ| j9                  ||||«      \  }}}|}|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                  ||||«       tQ        | j2                  | j
                  ||«       d| _,        d| _        n| j[                  ||||«      \  }}| xj
                  tU        |«      z  c_        |d   s| j                  r|d   ry| j
                  | j                  k  r�Œ^yy)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_ClientBulk._execute_commandä  sK  € ð ˆØˆØ—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ð ×)Ó)Ø-1×-@Ñ-@ÀÀcÈ3ÐPZÓ-[Ñ*�
˜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ð ×,Ñ,¨[¸&À$ÈÔPô ˜tŸx™x¨¯©¸+ÀvÔNð !&�”Ø/4�Õ,ð "&×!:Ñ!:¸3ÀÀSÈ*Ó!U‘�˜Qà�OŠOœs ;Ó/Ñ/�Oð ˜7Ò#¨¯ª¸À]Ò9SØðI �o‰o §¡Ö.rN   c                óþ   ‡ ‡‡— ddg g dddddi i i dœŠt        «       Š	 	 	 	 	 	 	 	 d
ˆˆˆ fd„}‰ j                  j                  ‰ j                  |||‰ ‰¬«       ‰d   s
‰d   s‰d	   rt	        ‰‰ j
                  «       ‰S )z'Execute commands with w=1 WriteConcern.FNr   )r×   r‡   r¾   ÚwriteConcernErrorsÚ	nInsertedÚ	nUpsertedÚnMatchedÚ	nModifiedÚnDeletedÚinsertResultsÚupdateResultsÚdeleteResultsc                óz   •— |j                   dk  rt        d«      ‚‰j                  ‰j                  | |‰|‰«       y )Né   ú<MongoClient.bulk_write requires MongoDB server version 8.0+.)Úmax_wire_versionr   rö   r9   )r    r‘   rë   rÇ   rê   rJ   s      €€€rL   Úretryable_bulkz3_ClientBulk.execute_command.<locals>.retryable_bulk}  sK   ø€ ð
 ×$Ñ$ rÒ)Ü&ØRóð ð ×!Ñ!Ø×"Ñ"ØØØØØõrN   )ÚbulkÚoperation_idr‡   r¾   rø   )r    úOptional[ClientSession]r‘   r   rë   ÚboolÚreturnÚNone)r+   r8   Ú_retryable_writerG   r   r=   )rJ   r    Ú	operationr  rÇ   rê   s   `   @@rL   Úexecute_commandz_ClientBulk.execute_commandg  sÂ   ú€ ð #ØØØ"$ØØØØØØØØñ1
ˆô “
ˆð	Ø,ð	àð	ð ð	ð ÷		ð$ 	�‰×$Ñ$Ø×ÑØØØØØð 	%ô 	
ð �wÒ ;¨}Ò#=ÀÐMaÒAbÜ.¨{¸D×<PÑ<PÔQØÐrN   c           	     óê  — 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                  ||||	«      \  }
}| xj
                  t        |
«      z  c_        | j
                  | j                  k  r�Œ	yy)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!_ClientBulk.execute_command_unackœ  sP  € ð
 ˆØˆØ—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ð "×6Ñ6°s¸CÀÀjÓQ‰NˆK˜à�OŠOœs ;Ó/Ñ/�Oð) �o‰o §¡Ö.rN   c                ó®   — | j                   rt        d«      ‚| j                  rt        d«      ‚| j                  �t	        d«      ‚| j                  |«      S )z3Execute all operations, returning no results (w=0).z3Collation is unsupported for unacknowledged writes.z6arrayFilters is unsupported for unacknowledged writes.zGCannot set bypass_document_validation with unacknowledged write concern)rC   r   rD   r;   r!   r  )rJ   r‘   s     rL   Úexecute_no_resultsz_ClientBulk.execute_no_resultsÆ  s]   € ð
 ×ÒÜ$Ð%ZÓ[Ð[Ø×"Ò"Ü$Ð%]Ó^Ð^à×ÑÐ*Ü"ØYóð ð ×)Ñ)¨$Ó/Ð/rN   c                ó  — | j                   st        d«      ‚| j                  rt        d«      ‚d| _        t        || j                  «      }| j                  j
                  s^| j                  j                  ||«      5 }|j                  dk  rt        d«      ‚| j                  |«       t        ddd«      cddd«       S | j                  ||«      }t        || j                  j
                  | j                  «      S # 1 sw Y   ŒFxY w)zExecute operations.zNo operations to executez*Bulk operations can only be executed once.Tr  r  NF)r>   r   rB   r   r9   r¿   r8   Ú_conn_for_writesr  r  r-   r  r=   )rJ   r    r  Ú
connectionr±   s        rL   Úexecutez_ClientBulk.execute×  sý   € ð �xŠxÜ"Ð#=Ó>Ð>Ø�=Š=Ü"Ð#OÓPÐPØˆŒÜ1°'¸4×;MÑ;MÓNˆà×!Ñ!×.Ò.Ø—‘×-Ñ-¨g°yÓAð AÀZØ×.Ñ.°Ò3Ü*ØVóð ð ×'Ñ'¨
Ô3Ü,¨T°5¸%Ó@÷Añ Að ×%Ñ% g¨yÓ9ˆÜ$ØØ×Ñ×+Ñ+Ø× Ñ ó
ð 	
÷Að Aús   Á>8C=Ã=D)TNNNF)r8   úMongoClient[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0àð0ð 
ó0ð"
à(ð
ð ð
ð 
ô	
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.synchronous.client_sessionr   r   Úpymongo.synchronous.collectionr   Ú"pymongo.synchronous.command_cursorr   Úpymongo.synchronous.databaser   Úpymongo.synchronous.helpersr   Ú pymongo.synchronous.mongo_clientr   Úpymongo.synchronous.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¡   ðñõ #ã Û Û Ý *Ý ÷÷ õ #Ý )ß !ß ]Ý 5Ý <Ý 1Ý 6áÝ<Ý3÷÷ñ ÷
÷ õ :ß MÑ M÷õ õ 4÷ó ÷ 4Ý .à€÷\

ò \

rN   