
    _i                    n    d 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 ddlmZ erddlmZ ddZddZdS )zRConstants, types, and classes shared across Client Bulk Write API implementations.    )annotations)TYPE_CHECKINGAnyMappingMutableMappingNoReturn)ClientBulkWriteExceptionOperationFailure)_get_wce_doc)_DocumentOutops#list[tuple[str, Mapping[str, Any]]]offsetintfull_resultMutableMapping[str, Any]resultMapping[str, Any]returnNonec                   |                     d          r|d         |d<   |dxx         |                     dd          z  cc<   |dxx         |                     dd          z  cc<   |dxx         |                     dd          z  cc<   |dxx         |                     dd          z  cc<   |dxx         |                     dd          z  cc<   |                     d          }|rU|D ]R}|                                }|d	         |z   }||d	<   | |         d
         |d<   |d                             |           St          |          }|r|d                             |           dS dS )z?Merge result of a single bulk write batch into the full result.error	nInsertedr   nDeletednMatched	nModified	nUpsertedwriteErrorsidx   opwriteConcernErrorsN)getcopyappendr   )	r   r   r   r   write_errorsdocreplacementoriginal_indexwces	            >D:\Nbitz\venv\Lib\site-packages\pymongo/_client_bulk_shared.py_merge_commandr,      s    zz' /%gG

; : ::
vzz*a888
vzz*a888

; : ::

; : ::::m,,L ; 	; 	;C((**K Z&0N!/K #N 3A 6K&--k::::
v

C
 6()00555556 6    r   verbose_resultsboolr   c                h   | d         ri| d                              d            | d         d         }|d         }|d         }|dk    r(|                    d          rd	}t          |||           t          | d
         t                    rt          | |          | d
         t          | |          )z6Raise a ClientBulkWriteException from the full result.r   c                    | d         S )Nr    )r   s    r+   <lambda>z4_throw_client_bulk_write_exception.<locals>.<lambda>B   s
    %, r-   )keyr   codeerrmsg   zTransaction numberszrThis MongoDB deployment does not support retryable writes. Please add retryWrites=false to your connection string.r   )sort
startswithr
   
isinstanceBaseExceptionr	   )r   r.   errr5   msgr6   s         r+   "_throw_client_bulk_write_exceptionr>   <   s    
 =! >M"'',F,F'GGG-(+6{(m2::#..)>??:- 
 #64===+g&66 _&{ODD+V]J^^
";
@
@@r-   N)
r   r   r   r   r   r   r   r   r   r   )r   r   r.   r/   r   r   )__doc__
__future__r   typingr   r   r   r   r   pymongo.errorsr	   r
   pymongo.helpers_sharedr   pymongo.typingsr   r,   r>   r2   r-   r+   <module>rE      s     Y X " " " " " " H H H H H H H H H H H H H H E E E E E E E E / / / / / / -,,,,,,6 6 6 6@A A A A A Ar-   