Your IP : 18.190.253.224
�
�s�Wc @ s� d Z d d l Z d d l Z d d l m Z d d l m Z d d d d d d
d g Z e d g 7Z d e f d
� � YZ d e f d � � YZ
d � Z d e f d � � YZ d e f d � � YZ
d e
f d � � YZ d
e
f d � � YZ d e f d � � YZ e j d d k Z e r7d � Z d � Z n d � Z d � Z y d d l m Z Wn e k
rve Z n
Xd � Z d e f d � � YZ d e f d � � YZ d S(! sA contextlib2 - backports and enhancements to the contextlib modulei����N( t deque( t wrapst contextmanagert closingt ContextDecoratort ExitStackt redirect_stdoutt redirect_stderrt suppresst ContextStackc B s) e Z d Z d � Z d � Z d � Z RS( sJ A base class or mixin that enables context managers to work as decorators.c C s t j d t � | j � S( s� Returns the context manager used to actually wrap the call to the
decorated function.
The default implementation just returns *self*.
Overriding this method allows otherwise one-shot context managers
like _GeneratorContextManager to support use as decorators via
implicit recreation.
DEPRECATED: refresh_cm was never added to the standard library's
ContextDecorator API
s2 refresh_cm was never added to the standard library( t warningst warnt DeprecationWarningt _recreate_cm( t self( ( s<