U
    «ÃT_Ï  ã                   @   s\   d dl mZ d dlmZ d dlmZ erHd dlmZmZm	Z	 e	ddd�Z
G dd	„ d	eƒZd
S )é    )Úcontextmanager)Ú	ExitStack)ÚMYPY_CHECK_RUNNING)ÚIteratorÚContextManagerÚTypeVarÚ_TT)Ú	covariantc                       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__© úE/tmp/pip-unpacked-wheel-8u7dkzi1/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   Ú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   Úpip._internal.utils.typingr   Útypingr   r   r   r   Úobjectr
   r   r   r   r   Ú<module>   s   