
    .
0h^                    V    d Z ddlmZ ddlmZ ddlmZ ddlmZ  G d de          Z	dS )	z=Helpers for batch requests to the Google Cloud Firestore API.    )annotations)gapic_v1)retry)BaseWriteBatchc                  R     e Zd ZdZd fdZej        j        dfddZd Z	d Z
 xZS )
WriteBatcha
  Accumulate write operations to be sent in a batch. Use this over
    `BulkWriteBatch` for lower volumes or when the order of operations
    within a given batch is important.

    This has the same set of methods for write operations that
    :class:`~google.cloud.firestore_v1.document.DocumentReference` does,
    e.g. :meth:`~google.cloud.firestore_v1.document.DocumentReference.create`.

    Args:
        client (:class:`~google.cloud.firestore_v1.client.Client`):
            The client that created this batch.
    returnNonec                Z    t          t          |                               |           d S )N)client)superr   __init__)selfr   	__class__s     Z/var/www/html/nourish/venv/lib/python3.11/site-packages/google/cloud/firestore_v1/batch.pyr   zWriteBatch.__init__%   s*    j$(((77777    Nr   retries.Retry | object | Nonetimeoutfloat | Nonelistc                    |                      ||          \  }} | j        j        j        d|| j        j        d|}g | _        t          |j                  x| _        }|j        | _        |S )a  Commit the changes accumulated in this batch.

        Args:
            retry (google.api_core.retry.Retry): Designation of what errors, if any,
                should be retried.  Defaults to a system-specified policy.
            timeout (float): The timeout for this request.  Defaults to a
                system-specified value.

        Returns:
            List[:class:`google.cloud.firestore_v1.write.WriteResult`, ...]:
            The write results corresponding to the changes committed, returned
            in the same order as the changes were applied to this batch. A
            write result contains an ``update_time`` field.
        )requestmetadata )	_prep_commit_client_firestore_apicommit_rpc_metadata
_write_pbsr   write_resultscommit_time)r   r   r   r   kwargscommit_responseresultss          r   r   zWriteBatch.commit(   s    & ++E7;;<$,5< 
\/
 
 
 
 '+O,I'J'JJW*6r   c                    | S Nr   )r   s    r   	__enter__zWriteBatch.__enter__I   s    r   c                6    ||                                   d S d S r'   )r   )r   exc_type	exc_value	tracebacks       r   __exit__zWriteBatch.__exit__L   s!    KKMMMMM r   )r	   r
   )r   r   r   r   r	   r   )__name__
__module____qualname____doc__r   r   methodDEFAULTr   r(   r-   __classcell__)r   s   @r   r   r      s         8 8 8 8 8 8
 08/F $    B        r   r   N)
r1   
__future__r   google.api_corer   r   retries$google.cloud.firestore_v1.base_batchr   r   r   r   r   <module>r9      s    D C " " " " " " $ $ $ $ $ $ , , , , , , ? ? ? ? ? ?7 7 7 7 7 7 7 7 7 7r   