HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //proc/self/root/lib/python3/dist-packages/keyring/tests/__pycache__/util.cpython-38.pyc
U

ܦ�\��@slddlZddlZddlZddlZddlZeZGdd�d�Zejdd��Z	dd�Z
ejejZ
e
fdd	�ZdS)
�Nc@s:eZdZdZdd�Zd
dd�Zdd�Zd	d
�Zdd�ZdS)�ImportKillerz@Context manager to make an import of a given name or names fail.cGs
||_dS�N��names)�selfr�r�4/usr/lib/python3/dist-packages/keyring/tests/util.py�__init__
szImportKiller.__init__NcCs||jkr|SdSrr)r�fullname�pathrrr�find_modules
zImportKiller.find_modulecCs||jkst�t|��dSr)r�AssertionError�ImportError)rr
rrr�load_moduleszImportKiller.load_modulecCs8i|_|jD]}tj�|d�|j|<qtj�d|�dS)Nr)�originalr�sys�modules�pop�	meta_path�insert)r�namerrr�	__enter__s
zImportKiller.__enter__cGs6tj�|�|j��D]\}}|dk	r|tj|<qdSr)rr�remover�itemsr)r�args�key�valuerrr�__exit__szImportKiller.__exit__)N)	�__name__�
__module__�__qualname__�__doc__r	rrrrrrrrr
s
rcks�i}|��D]6\}}|�|�||<|dkr:||krB||=q|||<qdV|��D](\}}|dkrr||krz||=qR|||<qRdS)z�Helper context manager to make and unmake changes to a dict.

    A None is not a valid value for the destination, and so means that the
    associated name should be removed.N)r�get)Zdestination�changesrrrrrr�NoNoneDictMutator%s
r$cKsttjf|�S)z6A context manager to temporarily change the os.environ)r$�os�environ)r#rrr�Environ<sr'cCs&d}td|�D]}|t�|�7}q|S)z2Generate a random string with length <i>k</i>
    �r)�range�randomZchoice)�k�source�result�irrr�
random_stringDsr/)�
contextlibr%rr*�string�typeZ
__metaclass__r�contextmanagerr$r'Z
ascii_lettersZdigitsZALPHABETr/rrrr�<module>s