a
    ÁQ\a“  ã                   @   sp   d Z ddlmZmZmZmZmZ ddœdd„ZedƒZG dd„ dƒZ	G d	d
„ d
ee ƒZ
G dd„ dee ƒZdS )zè
Dummy contextvars implementation, to make prompt_toolkit work on Python 3.6.

As long as there is only one application running at a time, we don't need the
real contextvars. So, stuff like the telnet-server and so on requires 3.7.
é    )ÚAnyÚCallableÚGenericÚOptionalÚTypeVarÚContext©Úreturnc                   C   s   t ƒ S ©N)r   © r   r   úIlib/python3.9/site-packages/prompt_toolkit/eventloop/dummy_contextvars.pyÚcopy_context
   s    r   Ú_Tc                   @   s6   e Zd Zedef eeedœdd„Zd dœdd„ZdS )	r   .)ÚcallableÚargsÚkwargsr	   c                 O   s   ||i |¤ŽS r
   r   )Úselfr   r   r   r   r   r   Úrun   s    zContext.runr   c                 C   s   | S r
   r   ©r   r   r   r   Úcopy   s    zContext.copyN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   r   r   r      s   c                   @   s   e Zd ZdS )ÚTokenN)r   r   r   r   r   r   r   r      s   r   c                   @   sx   e Zd Zddœeee ddœdd„Zeedœdd„ƒZdee ed	œd
d„Z	ee
e dœdd„Ze
e ddœdd„ZdS )Ú
ContextVarN)Údefault)Únamer   r	   c                C   s   || _ || _d S r
   )Ú_nameÚ_value)r   r   r   r   r   r   Ú__init__   s    zContextVar.__init__r   c                 C   s   | j S r
   )r   r   r   r   r   r   "   s    zContextVar.name)r   r	   c                 C   s   | j p|}|d u rt‚|S r
   )r   ÚLookupError)r   r   Úresultr   r   r   Úget&   s    
zContextVar.get)Úvaluer	   c                 C   s   || _ tƒ S r
   )r   r   )r   r#   r   r   r   Úset,   s    zContextVar.set)Útokenr	   c                 C   s   d S r
   r   )r   r%   r   r   r   Úreset0   s    zContextVar.reset)N)r   r   r   Ústrr   r   r   Úpropertyr   r"   r   r$   r&   r   r   r   r   r      s   r   N)Ú__doc__Útypingr   r   r   r   r   r   r   r   r   r   r   r   r   r   Ú<module>   s   