U
    P^                     @   s,   d dl mZ d dlmZ G dd deZdS )    )contextmanager)	ExitStackc                       s0   e Zd Z fddZedd Zdd Z  ZS )CommandContextMixInc                    s    t t|   d| _t | _d S )NF)superr   __init___in_main_contextr   _main_contextself	__class__ B/tmp/pip-install-220asx0h/pip/pip/_internal/cli/command_context.pyr   
   s    zCommandContextMixIn.__init__c              	   c   s:   | j r
td| _ z| j d V  W 5 Q R X W 5 d| _ X d S )NTF)r   AssertionErrorr   r	   r   r   r   main_context   s    
z CommandContextMixIn.main_contextc                 C   s   | j s
t| j|S )N)r   r   r   enter_context)r
   Zcontext_providerr   r   r   r      s    
z!CommandContextMixIn.enter_context)__name__
__module____qualname__r   r   r   r   __classcell__r   r   r   r   r   	   s   

r   N)
contextlibr   Zpip._vendor.contextlib2r   objectr   r   r   r   r   <module>   s   