ok
Direktori : /opt/alt/python35/lib64/python3.5/__pycache__/ |
Current File : //opt/alt/python35/lib64/python3.5/__pycache__/contextlib.cpython-35.pyc |
>�Ma�0 � @ s d Z d d l Z d d l m Z d d l m Z d d d d d d d g Z Gd d � d e � Z Gd d � d e � Z d d � Z Gd d � d e � Z Gd d � d � Z Gd d � d e � Z Gd d � d e � Z Gd d � d � Z Gd d � d e � Z d S)z4Utilities for with-statement contexts. See PEP 343.� N)�deque)�wraps�contextmanager�closing�ContextDecorator� ExitStack�redirect_stdout�redirect_stderr�suppressc @ s. e Z d Z d Z d d � Z d d � Z d S)r zJA base class or mixin that enables context managers to work as decorators.c C s | S)a6 Return a recreated instance of self. Allows an otherwise one-shot context manager like _GeneratorContextManager to support use as a decorator via implicit recreation. This is a private interface just for _GeneratorContextManager. See issue #11647 for details. � )�selfr r �//opt/alt/python35/lib64/python3.5/contextlib.py�_recreate_cm s zContextDecorator._recreate_cmc s% t � � � � f d d � � } | S)Nc s% � j � � � | | � SWd QRXd S)N)r )�args�kwds)�funcr r r �inner s z(ContextDecorator.__call__.<locals>.inner)r )r r r r )r r r �__call__ s !zContextDecorator.__call__N)�__name__� __module__�__qualname__�__doc__r r r r r r r s c @ sF e Z d Z d Z d d � Z d d � Z d d � Z d d � Z d S)�_GeneratorContextManagerz%Helper for @contextmanager decorator.c C si | | | � | _ | | | | _ | _ | _ t | d d � } | d k r\ t | � j } | | _ d S)Nr )�genr r r �getattr�typer )r r r r �docr r r �__init__% s z!_GeneratorContextManager.__init__c C s | j | j | j | j � S)N)� __class__r r r )r r r r r 3 s z%_GeneratorContextManager._recreate_cmc C s9 y t | j � SWn! t k r4 t d � d � Yn Xd S)Nzgenerator didn't yield)�nextr � StopIteration�RuntimeError)r r r r � __enter__9 s z"_GeneratorContextManager.__enter__c C s0 | d k rE y t | j � Wn t k r5 d SYq,Xt d � � n� | d k rZ | � } y | j j | | | � Wn� t k r� } z | | k SWYd d } ~ Xn{ t k r� } z7 | | k r� d S| t k r� | j | k r� d S� WYd d } ~ Xn% t j � d | k rd S� Yn Xt d � � d S)NFzgenerator didn't stop� z#generator didn't stop after throw())r r r r! �throw� __cause__�sys�exc_info)r r �value� traceback�excr r r �__exit__? s. z!_GeneratorContextManager.__exit__N)r r r r r r r"