3
OÉ6b!	  ã               @   s*   d Z ddlmZ G dd„ deƒZeƒ ZdS )z%Tools for working with read concerns.é    )Ústring_typec               @   sN   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
dS )Ú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             C   s&   |d kst |tƒr|| _ntdƒ‚d S )Nzlevel must be a string or None.)Ú
isinstancer   Ú_ReadConcern__levelÚ	TypeError)ÚselfÚlevel© r	   úS/var/www/html/sandeepIITI/myenv/lib/python3.6/site-packages/pymongo/read_concern.pyÚ__init__"   s    zReadConcern.__init__c             C   s   | j S )zThe read concern level.)r   )r   r	   r	   r
   r   )   s    zReadConcern.levelc             C   s   | j dkp| j dkS )z[Return ``True`` if this read concern is compatible with
        old wire protocol versions.NÚlocal)r   )r   r	   r	   r
   Úok_for_legacy.   s    zReadConcern.ok_for_legacyc             C   s   i }| j r| j|d< |S )zÖThe 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   Údocr	   r	   r
   Údocument4   s    
zReadConcern.documentc             C   s   t |tƒr| j|jkS tS )N)r   r   r   ÚNotImplemented)r   Úotherr	   r	   r
   Ú__eq__A   s    
zReadConcern.__eq__c             C   s   | j rd| j  S dS )NzReadConcern(%s)zReadConcern())r   )r   r	   r	   r
   Ú__repr__F   s    
zReadConcern.__repr__)N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Úpropertyr   r   r   r   r   r	   r	   r	   r
   r      s   
r   N)r   Zbson.py3compatr   Úobjectr   ZDEFAULT_READ_CONCERNr	   r	   r	   r
   Ú<module>   s   8