U
    
Ha                     @   sB   d dl mZmZ d dlmZmZmZ edddZG dd dZdS )	    )	ExitStackcontextmanager)ContextManagerIteratorTypeVar_TT)	covariantc                       sL   e Zd Zdd fddZeed dddZee eddd	Z	  Z
S )
CommandContextMixInN)returnc                    s   t    d| _t | _d S )NF)super__init___in_main_contextr   _main_contextself	__class__ E/tmp/pip-unpacked-wheel-tx790h60/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_context)context_providerr
   c                 C   s   | j s
t| j|S )N)r   r   r   enter_context)r   r   r   r   r   r      s    
z!CommandContextMixIn.enter_context)__name__
__module____qualname__r   r   r   r   r   r   r   __classcell__r   r   r   r   r	      s   
r	   N)	
contextlibr   r   typingr   r   r   r   r	   r   r   r   r   <module>   s   