3
�
�^j3 c @ 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 �N� ��selfr r �"/usr/lib64/python3.6/contextlib.py� __enter__ � z AbstractContextManager.__enter__c C � d S r
r )r �exc_typeZ exc_value� tracebackr r r �__exit__ s zAbstractContextManager.__exit__c C s | t krtj|dd�S tS )Nr r )r �_collections_abcZ_check_methodsZNotImplemented)ZclsZCr r r �__subclasshook__ s z'AbstractContextManager.__subclasshook__N) �__name__�
__module__�__qualname__r �abcZabstractmethodr Zclassmethodr r r r r r
s c @ s e Zd Zdd� Zdd� ZdS )r c C r r
r r r r r �_recreate_cm$ �
zContextDecorator._recreate_cmc s t � �� �fdd��}|S )Nc
s �j � � � | |�S Q R X d S r
)r ��args�kwds��funcr r r �inner1 s
z(ContextDecorator.__call__.<locals>.innerr )r r$ r% r r# r �__call__0 s zContextDecorator.__call__N)r r r r r&