U
    õÕ/ep	  ã                   @  sj   d Z ddlmZ ddlZe e¡ZddlZddlm	Z	 ddl
mZmZmZ dZe	dddd	d
œdd„ƒZdS )zE Provide functions for manipulating environment variables in tests.

é    )ÚannotationsN)Úcontextmanager)ÚAnyÚIteratorÚMapping)ÚenvsetzMapping[str, str] | Noner   zIterator[None])ÚvalueÚkwÚreturnc                 k  sH   t j ¡ }| rt j | ¡ t jjf |Ž dV  t j ¡  t j |¡ dS )zî Temporarily set environment variables and undo the updates on exit.

    Args:
        value (optional) :
            A mapping of strings to strings to apply to os.environ

    Any remaining keywoard args are applied to os.environ

    N)ÚosÚenvironÚcopyÚupdateÚclear)r   r	   Úold© r   ú;/tmp/pip-unpacked-wheel-f5fndrjf/bokeh/_testing/util/env.pyr   (   s    

r   )N)Ú__doc__Ú
__future__r   ÚloggingÚ	getLoggerÚ__name__Úlogr   Ú
contextlibr   Útypingr   r   r   Ú__all__r   r   r   r   r   Ú<module>   s   
