???<!-- GIF89;a -->
123123123123
.....................................................................................................................................???<!-- GIF89;a -->
123123123123
.....................................................................................................................................ž
¦ÿf¥#  c               @   s¬   d  Z  d d l Z d d l m Z d d l m Z 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 e ƒ Z d S(   u4   Utilities for with-statement contexts.  See PEP 343.i    N(   u   deque(   u   wrapsu   contextmanageru   closingu   ContextDecoratoru	   ExitStackc             B   s2   |  Ee  Z d  Z d Z d d „  Z d d „  Z d S(   u   ContextDecoratoruJ   A base class or mixin that enables context managers to work as decorators.c             C   s   |  S(   u6  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.
        (    (   u   self(    (    u/   /opt/alt/python33/lib64/python3.3/contextlib.pyu   _recreate_cm   s    
u   ContextDecorator._recreate_cmc                s%   t  ˆ  ƒ ‡  ‡ f d d †  ƒ } | S(   Nc           
      s$   ˆ j  ƒ   ˆ  |  | Ž  SWd  QXd  S(   N(   u   _recreate_cm(   u   argsu   kwds(   u   funcu   self(    u/   /opt/alt/python33/lib64/python3.3/contextlib.pyu   inner   s    u(   ContextDecorator.__call__.<locals>.inner(   u   wraps(   u   selfu   funcu   inner(    (   u   funcu   selfu/   /opt/alt/python33/lib64/python3.3/contextlib.pyu   __call__   s    !u   ContextDecorator.__call__N(   u   __name__u
   __module__u   __qualname__u   __doc__u   _recreate_cmu   __call__(   u
   __locals__(    (    u/   /opt/alt/python33/lib64/python3.3/contextlib.pyu   ContextDecorator
   s   c             B   sJ   |  Ee  Z d  Z d Z d d „  Z d d „  Z d d „  Z d d	 „  Z d
 S(   u   _GeneratorContextManageru%   Helper for @contextmanager decorator.c             O   s3   | | | Ž  |  _  | | | |  _ |  _ |  _ d  S(   N(   u   genu   funcu   argsu   kwds(   u   selfu   funcu   argsu   kwds(    (    u/   /opt/alt/python33/lib64/python3.3/contextlib.pyu   __init__$   s    u!   _GeneratorContextManager.__init__c             C   s   |  j  |  j |  j |  j Ž S(   N(   u	   __class__u   funcu   argsu   kwds(   u   self(    (    u/   /opt/alt/python33/lib64/python3.3/contextlib.pyu   _recreate_cm(   s    u%   _GeneratorContextManager._recreate_cmc             C   s6   y t  |  j ƒ SWn t k
 r1 t d ƒ ‚ Yn Xd  S(   Nu   generator didn't yield(   u   nextu   genu   StopIterationu   RuntimeError(   u   self(    (    u/   /opt/alt/python33/lib64/python3.3/contextlib.pyu	   __enter__.   s    u"   _GeneratorContextManager.__enter__c             C   sÜ   | d  k rE y t |  j ƒ Wn t k
 r5 d  SYqØ Xt d ƒ ‚ n“ | d  k r] | ƒ  } n  y& |  j j | | | ƒ t d ƒ ‚ WnR t k
 r´ } z | | k	 SWYd  d  } ~ Xn$ t j ƒ  d | k	 rÓ ‚  n  Yn Xd  S(   Nu   generator didn't stopu#   generator didn't stop after throw()i   (   u   Noneu   nextu   genu   StopIterationu   RuntimeErroru   throwu   sysu   exc_info(   u   selfu   typeu   valueu	   tracebacku   exc(    (    u/   /opt/alt/python33/lib64/python3.3/contextlib.pyu   __exit__4   s     	u!   _GeneratorContextManager.__exit__N(   u   __name__u
   __module__u   __qualname__u   __doc__u   __init__u   _recreate_cmu	   __enter__u   __exit__(   u
   __locals__(    (    u/   /opt/alt/python33/lib64/python3.3/contextlib.pyu   _GeneratorContextManager!   s
   u   _GeneratorContextManagerc                s"   t  ˆ  ƒ ‡  f d d †  ƒ } | S(   uÜ  @contextmanager decorator.

    Typical usage:

        @contextmanager
        def some_generator(<arguments>):
            <setup>
            try:
                yield <value>
            finally:
                <cleanup>

    This makes this:

        with some_generator(<arguments>) as <variable>:
            <body>

    equivalent to this:

        <setup>
        try:
            <variable> = <value>
            <body>
        finally:
            <cleanup>

    c                 s   t  ˆ  |  | Ž S(   N(   u   _GeneratorContextManager(   u   argsu   kwds(   u   func(    u/   /opt/alt/python33/lib64/python3.3/contextlib.pyu   helperq   s    u   contextmanager.<locals>.helper(   u   wraps(   u   funcu   helper(    (   u   funcu/   /opt/alt/python33/lib64/python3.3/contextlib.pyu   contextmanagerU   s    c             B   s>   |  Ee  Z d  Z d Z d d „  Z d d „  Z d d „  Z d S(	   u   closingu2  Context to automatically close something at the end of a block.

    Code like this:

        with closing(<module>.open(<arguments>)) as f:
            <block>

    is equivalent to this:

        f = <module>.open(<arguments>)
        try:
            <block>
        finally:
            f.close()

    c             C   s   | |  _  d  S(   N(   u   thing(   u   selfu   thing(    (    u/   /opt/alt/python33/lib64/python3.3/contextlib.pyu   __init__ˆ   s    u   closing.__init__c             C   s   |  j  S(   N(   u   thing(   u   self(    (    u/   /opt/alt/python33/lib64/python3.3/contextlib.pyu	   __enter__Š   s    u   closing.__enter__c             G   s   |  j  j ƒ  d  S(   N(   u   thingu   close(   u   selfu   exc_info(    (    u/   /opt/alt/python33/lib64/python3.3/contextlib.pyu   __exit__Œ   s    u   closing.__exit__N(   u   __name__u
   __module__u   __qualname__u   __doc__u   __init__u	   __enter__u   __exit__(   u
   __locals__(    (    u/   /opt/alt/python33/lib64/python3.3/contextlib.pyu   closingw   s   c             B   s†   |  Ee  Z d  Z d Z d d „  Z d d „  Z d d „  Z d d	 „  Z d
 d „  Z d d „  Z	 d d „  Z
 d d „  Z d d „  Z d S(   u	   ExitStacku‹  Context manager for dynamic management of a stack of exit callbacks

    For example:

        with ExitStack() as stack:
            files = [stack.enter_context(open(fname)) for fname in filenames]
            # All opened files will automatically be closed at the end of
            # the with statement, even if attempts to open files later
            # in the list raise an exception

    c             C   s   t  ƒ  |  _ d  S(   N(   u   dequeu   _exit_callbacks(   u   self(    (    u/   /opt/alt/python33/lib64/python3.3/contextlib.pyu   __init__   s    u   ExitStack.__init__c             C   s+   t  |  ƒ ƒ  } |  j | _ t ƒ  |  _ | S(   u?   Preserve the context stack by transferring it to a new instance(   u   typeu   _exit_callbacksu   deque(   u   selfu	   new_stack(    (    u/   /opt/alt/python33/lib64/python3.3/contextlib.pyu   pop_all    s    u   ExitStack.pop_allc                s/   ‡  ‡ f d d †  } ˆ  | _  |  j | ƒ d S(   u:   Helper to correctly register callbacks to __exit__ methodsc                 s   ˆ ˆ  |  Œ S(   N(    (   u   exc_details(   u   cmu   cm_exit(    u/   /opt/alt/python33/lib64/python3.3/contextlib.pyu   _exit_wrapper©   s    u.   ExitStack._push_cm_exit.<locals>._exit_wrapperN(   u   __self__u   push(   u   selfu   cmu   cm_exitu   _exit_wrapper(    (   u   cmu   cm_exitu/   /opt/alt/python33/lib64/python3.3/contextlib.pyu   _push_cm_exit§   s    	u   ExitStack._push_cm_exitc             C   sR   t  | ƒ } y | j } Wn" t k
 r= |  j j | ƒ Yn X|  j | | ƒ | S(   u  Registers a callback with the standard __exit__ method signature

        Can suppress exceptions the same way __exit__ methods can.

        Also accepts any object with an __exit__ method (registering a call
        to the method instead of the object itself)
        (   u   typeu   __exit__u   AttributeErroru   _exit_callbacksu   appendu   _push_cm_exit(   u   selfu   exitu   _cb_typeu   exit_method(    (    u/   /opt/alt/python33/lib64/python3.3/contextlib.pyu   push®   s    
u   ExitStack.pushc                s2   ‡  ‡ ‡ f d d †  } ˆ | _  |  j | ƒ ˆ S(   u\   Registers an arbitrary callback and arguments.

        Cannot suppress exceptions.
        c                s   ˆ ˆ  ˆ Ž  d  S(   N(    (   u   exc_typeu   excu   tb(   u   argsu   callbacku   kwds(    u/   /opt/alt/python33/lib64/python3.3/contextlib.pyu   _exit_wrapperÇ   s    u)   ExitStack.callback.<locals>._exit_wrapper(   u   __wrapped__u   push(   u   selfu   callbacku   argsu   kwdsu   _exit_wrapper(    (   u   argsu   callbacku   kwdsu/   /opt/alt/python33/lib64/python3.3/contextlib.pyu   callbackÂ   s    	u   ExitStack.callbackc             C   s8   t  | ƒ } | j } | j | ƒ } |  j | | ƒ | S(   uª   Enters the supplied context manager

        If successful, also pushes its __exit__ method as a callback and
        returns the result of the __enter__ method.
        (   u   typeu   __exit__u	   __enter__u   _push_cm_exit(   u   selfu   cmu   _cm_typeu   _exitu   result(    (    u/   /opt/alt/python33/lib64/python3.3/contextlib.pyu   enter_contextÏ   s
    	u   ExitStack.enter_contextc             C   s   |  j  d d d ƒ d S(   u$   Immediately unwind the context stackN(   u   __exit__u   None(   u   self(    (    u/   /opt/alt/python33/lib64/python3.3/contextlib.pyu   closeÜ   s    u   ExitStack.closec             C   s   |  S(   N(    (   u   self(    (    u/   /opt/alt/python33/lib64/python3.3/contextlib.pyu	   __enter__à   s    u   ExitStack.__enter__c       	         s  | d d  k	 } t j ƒ  d ‰  ‡  f d d †  } d } d } xy |  j r¹ |  j j ƒ  } y% | | Œ  r} d } d } d } n  WqA t j ƒ  } | | d | d ƒ d } | } YqA XqA W| ry | d j } | d ‚ Wqt k
 rÿ | | d _ ‚  YqXn  | o| S(   Ni    i   c                sN   x> |  j  } | | k r d  S| d  k s4 | ˆ  k r8 Pn  | }  q | |  _  d  S(   N(   u   __context__u   None(   u   new_excu   old_excu   exc_context(   u	   frame_exc(    u/   /opt/alt/python33/lib64/python3.3/contextlib.pyu   _fix_exception_contexté   s    		u2   ExitStack.__exit__.<locals>._fix_exception_contextFT(   NNN(	   u   Noneu   sysu   exc_infou   Falseu   _exit_callbacksu   popu   Trueu   __context__u   BaseException(	   u   selfu   exc_detailsu   received_excu   _fix_exception_contextu   suppressed_excu   pending_raiseu   cbu   new_exc_detailsu	   fixed_ctx(    (   u	   frame_excu/   /opt/alt/python33/lib64/python3.3/contextlib.pyu   __exit__ã   s2    u   ExitStack.__exit__N(   u   __name__u
   __module__u   __qualname__u   __doc__u   __init__u   pop_allu   _push_cm_exitu   pushu   callbacku   enter_contextu   closeu	   __enter__u   __exit__(   u
   __locals__(    (    u/   /opt/alt/python33/lib64/python3.3/contextlib.pyu	   ExitStack‘   s   (   u   __doc__u   sysu   collectionsu   dequeu	   functoolsu   wrapsu   __all__u   objectu   ContextDecoratoru   _GeneratorContextManageru   contextmanageru   closingu	   ExitStack(    (    (    u/   /opt/alt/python33/lib64/python3.3/contextlib.pyu   <module>   s   4"