File: //usr/lib64/python3.6/__pycache__/contextlib.cpython-36.opt-2.pyc
3
  \j3  �               @   s�   d dl Z d dlZd dlZd dlmZ d dlmZ dddddd	d
dgZG dd� de j�Z	G d
d� de
�ZG dd� dee	�Zdd� Z
G dd� de	�ZG dd� de	�ZG dd	� d	e�ZG dd
� d
e�ZG dd� de	�ZG dd� de	�ZdS )�    N)�deque)�wraps�contextmanager�closing�AbstractContextManager�ContextDecorator�	ExitStack�redirect_stdout�redirect_stderr�suppressc               @   s.   e Zd Zdd� Zejdd� �Zedd� �ZdS )r   c             C   s   | S )N� )�selfr   r   �"/usr/lib64/python3.6/contextlib.py�	__enter__   s    z AbstractContextManager.__enter__c             C   s   d S )Nr   )r
   �exc_type�	exc_value�	tracebackr   r   r   �__exit__   s    zAbstractContextManager.__exit__c             C   s   | t krtj|dd�S tS )Nr   r   )r   �_collections_abc�_check_methods�NotImplemented)�cls�Cr   r   r   �__subclasshook__   s    z'AbstractContextManager.__subclasshook__N)	�__name__�
__module__�__qualname__r   �abc�abstractmethodr   �classmethodr   r   r   r   r   r   
   s   c               @   s   e Zd Zdd� Zdd� ZdS )r   c             C   s   | S )Nr   )r
   r   r   r   �_recreate_cm$   s    
zContextDecorator._recreate_cmc                s   t � �� �fdd��}|S )Nc           
      s   �j � � � | |�S Q R X d S )N)r    )�args�kwds)�funcr
   r   r   �inner1   s    
z(ContextDecorator.__call__.<locals>.inner)r   )r
   r#   r$   r   )r#   r
   r   �__call__0   s    zContextDecorator.__call__N)r   r   r   r    r%   r   r   r   r   r   !   s   c               @   s,   e Zd Zdd� Zdd� Zdd� Zdd� Zd	S )
�_GeneratorContextManagerc             C   sJ   |||�| _ |||  | _| _| _t|dd �}|d kr@t| �j}|| _d S )N�__doc__)�genr#   r!   r"