U
    ƒIÀd  ã                   @   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Ú	GeneratorÚ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__© úZ/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/pip/_internal/cli/command_context.pyr      s    
zCommandContextMixIn.__init__)NNNc              	   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   