
    nh	                    F    d Z ddlmZ ddlmZmZ  G d d      Z e       Zy)zTools for working with read concerns.

.. seealso:: This module is compatible with both the synchronous and asynchronous PyMongo APIs.
    )annotations)AnyOptionalc                  `    e Zd ZdZd	d
dZedd       Zedd       Zedd       ZddZ	ddZ
y)ReadConcerna  ReadConcern

    :param level: (string) The read concern level specifies the level of
          isolation for read operations.  For example, a read operation using a
          read concern level of ``majority`` will only return data that has been
          written to a majority of nodes. If the level is left unspecified, the
          server default will be used.

    .. versionadded:: 3.2

    Nc                d    |t        |t              r|| _        y t        dt	        |             )Nz$level must be a string or None, not )
isinstancestr_ReadConcern__level	TypeErrortype)selflevels     z/var/www/html/SchoolMeal/SchoolMeal/pds_admin_SchoolMeal/Backend/venv/lib/python3.12/site-packages/pymongo/read_concern.py__init__zReadConcern.__init__%   s.    =Juc2 DLB4;-PQQ    c                    | j                   S )zThe read concern level.)r   r   s    r   r   zReadConcern.level+   s     ||r   c                @    | j                   du xs | j                   dk(  S )zdReturn ``True`` if this read concern is compatible with
        old wire protocol versions.
        Nlocalr   r   s    r   ok_for_legacyzReadConcern.ok_for_legacy0   s!    
 zzT!:TZZ7%::r   c                @    i }| j                   r| j                  |d<   |S )zThe document representation of this read concern.

        .. note::
          :class:`ReadConcern` is immutable. Mutating the value of
          :attr:`document` does not mutate this :class:`ReadConcern`.
        r   )r   r   )r   docs     r   documentzReadConcern.document7   s"     <<::CL
r   c                `    t        |t              r| j                  |j                  k(  S t        S N)r	   r   r   NotImplemented)r   others     r   __eq__zReadConcern.__eq__D   s%    e[)==ENN22r   c                :    | j                   rd| j                   z  S y)NzReadConcern(%s)zReadConcern()r   r   s    r   __repr__zReadConcern.__repr__I   s    ::$tzz11r   r   )r   Optional[str]returnNone)r$   r#   )r$   bool)r$   zdict[str, Any])r   r   r$   r&   )r$   r
   )__name__
__module____qualname____doc__r   propertyr   r   r   r    r"    r   r   r   r      sS    
R   ; ; 
 

r   r   N)r*   
__future__r   typingr   r   r   DEFAULT_READ_CONCERNr,   r   r   <module>r0      s'    #  4 4n #} r   