o
    Zh                     @  sd   d dl mZ d dlmZ d dlmZmZmZ d dlm	Z	 er$d dl
mZ edd
dZdddZdS )    )annotations)contextmanager)TYPE_CHECKINGAnyCallable)config)	Generatorconfig_overridesdict[str, Any]returnGenerator[None, None, None]c                 c  sR    ddl m} t| }|jtd|d dV  W d   dS 1 s"w   Y  dS )a  A context manager that overrides config options. It can
    also be used as a function decorator.

    Examples
    --------
    >>> with patch_config_options({"server.headless": True}):
    ...     assert config.get_option("server.headless") is True
    ...     # Other test code that relies on these options

    >>> @patch_config_options({"server.headless": True})
    ... def test_my_thing():
    ...     assert config.get_option("server.headless") is True
    r   )patch
get_option)newN)unittest.mockr   build_mock_config_get_optionobjectr   )r	   r   mock_get_option r   Z/var/www/html/Persson_Maskin/env/lib/python3.10/site-packages/streamlit/testing/v1/util.pypatch_config_options   s   "r   overrides_dictCallable[[str], Any]c                   s   t j d fdd}|S )Nnamestrr   r   c                   s   | v r|  S  | S )Nr   )r   orig_get_optionr   r   r   mock_config_get_option8   s   z<build_mock_config_get_option.<locals>.mock_config_get_option)r   r   r   r   )r   r   )r   r   r   r   r   r   3   s   r   N)r	   r
   r   r   )r   r
   r   r   )
__future__r   
contextlibr   typingr   r   r   	streamlitr   collections.abcr   r   r   r   r   r   r   <module>   s   