MINI MINI MANI MO
3
  \j3                 @   s   d dl Z d dlZd dlZd dlmZ d dlmZ dddddd	d
dgZG dd de jZ	G d
d de
ZG dd dee	Zdd Z
G dd de	ZG dd de	ZG dd	 d	eZG dd
 d
eZG dd de	ZG dd de	ZdS )    N)deque)wrapscontextmanagerclosingAbstractContextManagerContextDecorator	ExitStackredirect_stdoutredirect_stderrsuppressc               @   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|ddS tS )Nr   r   )r   _collections_abc_check_methodsNotImplemented)clsCr   r   r   __subclasshook__   s    z'AbstractContextManager.__subclasshook__N)	__name__
__module____qualname__r   abcabstractmethodr   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    )argskwds)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"