3
ûâdeø  ã               @   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)Z	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 ƒ jƒ  d| _tƒ | _d S )NF)ÚsuperÚ__init__Ú_in_main_contextr   Ú_main_context)Úself)Ú	__class__© ú@/tmp/pip-build-red6nood/pip/pip/_internal/cli/command_context.pyr      s    
zCommandContextMixIn.__init__c             c   s<   | j  st‚d| _ z| j� d V  W d Q R X W d 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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   