File: D:/Python311/Lib/test/test_importlib/__pycache__/test_namespace_pkgs.cpython-311.pyc
�
��Vc`2 � � � d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl m
Z
e j d� � � Ze j d� � � Z
G d� dej � � Z G d� de� � Z G d � d
e� � Z G d� de� � Z G d
� de� � Z G d� de� � Z G d� de� � Z G d� de� � Z G d� de� � Z G d� de� � Z G d� de� � Z G d� de� � Z G d� de� � Z G d� d e� � Z G d!� d"e� � Z G d#� d$e� � Z G d%� d&e� � Ze d'k r ej! � � dS dS )(� N)�utilc # � K � t j } t j � � � } dV � | t _ t j � � � t j � |� � dS # | t _ t j � � � t j � |� � w xY w)z�
Make sure sys.modules is the same object and has the same content
when exiting the context as when entering.
Similar to importlib.test.util.uncache, but doesn't require explicit
names.
N)�sys�modules�copy�clear�update)�sys_modules_saved�sys_modules_copys �;D:\Python311\Lib\test\test_importlib\test_namespace_pkgs.py�sys_modules_contextr
s� � � � � ����{�'�'�)�)��-�
����'��������������+�,�,�,�,�,�� (��������������+�,�,�,�,���s �A= �=ACc + �6 K � | � dt j � � | � dt j � � t j di | ��}|5 t
� � 5 dV � ddd� � n# 1 swxY w Y ddd� � dS # 1 swxY w Y dS )z�
Save import state and sys.modules cache and restore it on exit.
Typical usage:
>>> with namespace_tree_context(path=['/tmp/xxyy/portion1',
... '/tmp/xxyy/portion2']):
... pass
� meta_path�
path_hooksN� )�
setdefaultr r r r �import_stater
)�kwargs�import_contexts r �namespace_tree_contextr ( s" � � � � ���k�3�=�1�1�1�
���l�C�N�3�3�3��&�0�0��0�0�N� � � �,�.�.� � �
����� � � � � � � � � � ���� � � � � � � � � � � � � � � � ���� � � � � � s6 �B�%A6�*B�6A: �:B�=A: �>B�B�Bc �~ � e Zd ZdZej � ej � e� � d� � Z d� Z
dS )�NamespacePackageTestzj
Subclasses should define self.root and self.paths (under that root)
to be added to sys.path.
�namespace_pkgsc � � � � fd�� j D � � � _ � � t � j �� � � � d S )Nc �Z �� g | ]'}t j � �j |� � ��(S r )�os�path�join�root)�.0r �selfs �r �
<listcomp>z.NamespacePackageTest.setUp.<locals>.<listcomp>A s8 �� �
�
�
�.2�B�G�L�L���D�)�)�
�
�
� )r )�paths�resolved_paths�enterContextr )r! s `r �setUpzNamespacePackageTest.setUp@ s[ �� �
�
�
�
�6:�j�
�
�
���
���0�d�6I�J�J�J�K�K�K�K�Kr# N)�__name__�
__module__�__qualname__�__doc__r r r �dirname�__file__r r'