B
    \                 @   sT   d Z ddlZG dd deZG dd deZG dd deZeZG d	d
 d
eZ	dS )z
    sphinx.deprecation
    ~~~~~~~~~~~~~~~~~~

    Sphinx deprecation classes and utilities.

    :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS.
    :license: BSD, see LICENSE for details.
    Nc               @   s   e Zd ZdS )RemovedInSphinx20WarningN)__name__
__module____qualname__ r   r   1lib/python3.7/site-packages/sphinx/deprecation.pyr      s   r   c               @   s   e Zd ZdS )RemovedInSphinx30WarningN)r   r   r   r   r   r   r   r      s   r   c               @   s   e Zd ZdS )RemovedInSphinx40WarningN)r   r   r   r   r   r   r   r	      s   r	   c                   sb   e Zd ZdZ fddZ fddZd fdd	Z fd	d
Zd fdd	Zd fdd	Z	  Z
S )DeprecatedDictz-A deprecated dict which warns on each access.c                s    || _ || _tt| | d S )N)messagewarningsuperr
   __init__)selfdatar   r   )	__class__r   r   r   &   s    zDeprecatedDict.__init__c                s*   t j| j| jdd tt| || d S )N   )
stacklevel)warningswarnr   r   r   r
   __setitem__)r   keyvalue)r   r   r   r   ,   s    zDeprecatedDict.__setitem__Nc                s&   t j| j| jdd tt| ||S )Nr   )r   )r   r   r   r   r   r
   
setdefault)r   r   default)r   r   r   r   1   s    zDeprecatedDict.setdefaultc                s$   t j| j| jdd tt| |S )Nr   )r   )r   r   r   r   r   r
   __getitem__)r   r   )r   r   r   r   6   s    zDeprecatedDict.__getitem__c                s&   t j| j| jdd tt| ||S )Nr   )r   )r   r   r   r   r   r
   get)r   r   r   )r   r   r   r   ;   s    zDeprecatedDict.getc                s(   t j| j| jdd tt| | d S )Nr   )r   )r   r   r   r   r   r
   update)r   other)r   r   r   r   @   s    zDeprecatedDict.update)N)N)N)r   r   r   __doc__r   r   r   r   r   r   __classcell__r   r   )r   r   r
   #   s   r
   )
r   r   DeprecationWarningr   PendingDeprecationWarningr   r	   ZRemovedInNextVersionWarningdictr
   r   r   r   r   <module>
   s   