
    h!	                     8    d Z ddlmZ  G d de      Z e       Zy)z%Tools for working with read concerns.    )string_typec                   T    e Zd ZdZd	dZed        Zed        Zed        Zd Z	d Z
y)
ReadConcerna  ReadConcern

    :Parameters:
        - `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                 L    |t        |t              r|| _        y t        d      )Nzlevel must be a string or None.)
isinstancer   _ReadConcern__level	TypeError)selflevels     W/var/www/html/ranktracker/api/venv/lib/python3.12/site-packages/pymongo/read_concern.py__init__zReadConcern.__init__"   s'    =Juk: DL13 3    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 )z[Return ``True`` if this read concern is compatible with
        old wire protocol versions.Nlocalr   r   s    r   ok_for_legacyzReadConcern.ok_for_legacy.   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.document4   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__A   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__F   s    ::$tzz11r   r   )__name__
__module____qualname____doc__r   propertyr   r   r   r   r    r   r   r   r      sR    3   ; ;
 
 

r   r   N)r"   bson.py3compatr   objectr   DEFAULT_READ_CONCERNr$   r   r   <module>r(      s$    , &5& 5p #} r   