Sindbad~EG File Manager

Current Path : /proc/2568807/root/usr/local/lib/python3.12/test/__pycache__/
Upload File :
Current File : //proc/2568807/root/usr/local/lib/python3.12/test/__pycache__/test_pkgutil.cpython-312.pyc

�

'Μg�h���ddlmZddlmZmZddlmZmZddlZddl	Z	ddl
Z
ddlmZddl
Z
ddlZddlZddlZddlZddlZddlmZddlmZddlmZGd	�d
ej0�ZGd�dej0�ZGd
�dej0�ZGd�dej0�ZGd�dej0�Zd�Zedk(rej@�yy)�)�Path)�unload�CleanImport)�check_warnings�ignore_warningsN)�spec_from_file_location)�
DirsOnSysPath)�FakePath)�uncachec�T�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zy
)�PkgutilTestsc���tj�|_|jtj
|j�tjjd|j�y�Nr)	�tempfile�mkdtemp�dirname�
addCleanup�shutil�rmtree�sys�path�insert��selfs �./usr/local/lib/python3.12/test/test_pkgutil.py�setUpzPkgutilTests.setUps>���'�'�)�������
�
�t�|�|�4�������4�<�<�(�c�&�tjd=yr)rrrs r�tearDownzPkgutilTests.tearDown s
���H�H�Q�Krc�T�d}d}tjj|j|�}tj|�ttjj|d�d�}|j
�ttjj|d�d�}|j|�|j
�tjtjj|d��ttjj|dd�d�}|j|�|j
�tj|d�}|j||�tj|d�}|j||�tj|=y)N�test_getdata_filesys�%Hello, world!
Second line
Third line�__init__.py�wb�res.txt�sub�sub/res.txt)
�osr�joinr�mkdir�open�close�write�pkgutil�get_data�assertEqualr�modules)r�pkg�
RESOURCE_DATA�package_dir�f�res1�res2s       rr!z!PkgutilTests.test_getdata_filesys#s(��$��D�
��g�g�l�l�4�<�<��5��
�����������k�=�9�4�@��	���	�������k�9�5�t�<��	���
��	���	�
��������k�5�1�2�������k�5�)�<�d�C��	���
��	���	�����Y�/������}�-�����]�3������}�-��K�K��rc�(�d}d}d}tjj|j|�}t	j
|d�}|j
|dzd�|j
|dz|�|j
|dz|�|j�tjjd	|�tj|d
�}|j||�tj|d�}|j||�g}tj|g�D]=}	|j|	tj�|j!|	j"��?|j|dg�tjd	=tj$|=y)N�test_getdata_zipfile.zip�test_getdata_zipfiler"�w�/__init__.py��/res.txtz/sub/res.txtrr%r')r(rr)r�zipfile�ZipFile�writestrr,rrr.r/r0�iter_modules�assertIsInstance�
ModuleInfo�append�namer1)
r�zipr2r3�zip_file�zr6r7�names�
moduleinfos
          rr:z!PkgutilTests.test_getdata_zipfile@sI��(��$��D�
��7�7�<�<����c�2���O�O�H�c�*��	
�
�
�3��'��,�	�
�
�3��#�]�3�	�
�
�3��'��7�	���	�	������8�$�����Y�/������}�-�����]�3������}�-���!�.�.��z�:�J��!�!�*�g�.@�.@�A��L�L����)�;�	
����!7� 8�9��H�H�Q�K��K�K��rc���d}d}d}tjj|j|�}t	j
|d�}|j
|dzd�|j
|dz|�|j�tjjd|�	tj|d	�}|j||�g}tjt|�g�D]=}|j|tj �|j#|j$��?|j||g�tjd=tj&j)|d�d
}	|j+t,|	�5t/tjd��ddd�y#tjd=tj&j)|d�wxYw#1swYyxYw)Nr9r:r"r;r<r=r>rr%z9path must be None or list of paths to look for modules in�invalid_path)r(rr)rr?r@rAr,rrr.r/r0rBr
rCrDrErFr1�pop�assertRaisesRegex�
ValueError�list)
rrGr2r3rHrI�resrJrK�expected_msgs
          r�test_issue44061_iter_modulesz)PkgutilTests.test_issue44061_iter_modulescs���(��$��D�
��7�7�<�<����c�2���O�O�H�c�*��	
�
�
�3��'��,�	�
�
�3��#�]�3�	���	�	������8�$�	'��"�"�3�	�2�C����S�-�0��E�%�2�2�H�X�4F�3G�H�
��%�%�j�'�2D�2D�E����Z�_�_�-�I�
���U�S�E�*�������K�K�O�O�C��&�S��
�
#�
#�J��
=���%�%�n�5�6�>�
=��������K�K�O�O�C��&��>�
=�s�"BF/�G%�/3G"�%G.c�6�d}tjj|j|�}tj|d�|jtj|�tj|jg��D]}|jd��y)N�unreadable_packager)rzunexpected package found)
r(rr)rr*r�rmdirr.�
walk_packages�fail)r�package_name�d�ts    r�test_unreadable_dir_on_syspathz+PkgutilTests.test_unreadable_dir_on_syspath�sh��+���G�G�L�L����|�4��	����A��������!�$��&�&�T�\�\�N�;�A��I�I�0�1�<rc�~�d}tjj|j|�}tj|�ttjj|d�d�}|j
�tjtjj|d��ttjj|dd�d�}|j
�ttjj|dd�d�}|j
�d}tjj|j|�}tj|�ttjj|d�d�}|j
�tjtjj|d��ttjj|dd�d�}|j
�ttjj|dd�d�}|j
�gd�}tj|jg�D�cgc]}|d��	}}|j||�|D]%}	|	jd�r�tj|	=�'ycc}w)	N�test_walkpackages_filesysr#r$r&zmod.py)r&zsub.test_walkpackages_filesysz!sub.test_walkpackages_filesys.modr_ztest_walkpackages_filesys.subz!test_walkpackages_filesys.sub.mod��mod)
r(rr)rr*r+r,r.rXr0�endswithrr1)
r�pkg1�pkg1_dirr5�pkg2�pkg2_dir�expected�e�actualr2s
          rr_z&PkgutilTests.test_walkpackages_filesys�s���*���7�7�<�<����d�3��
�����������h�
�6��=��	���	�
��������h��.�/�������h��}�=�t�D��	���	�������h��x�8�$�?��	���	����7�7�<�<����d�3��
�����������h�
�6��=��	���	�
��������h�(C�D�E�������h�(C�]�S�UY�Z��	���	�������h�(C�X�N�PT�U��	���	�
�� '�4�4�d�l�l�^�D�E�D�!��1��D��E������*��C��|�|�E�"�����C� ���Fs�/J:c��d}d}d}tjj|j|�}t	j
|d�}|j
|dzd�|j
|dz|zdzd�|j
|dz|zdzd�|j
|dzd�|j
|dz|zdzd�|j
|dz|zdzd�|j�tjjd	|�gd
�}tj|g�D�cgc]}|d��	}}|j||�tjd	=|D]%}	|	jd�r�tj|	=�'y
cc}w)zBTests the same as test_walkpackages_filesys, only with a zip file.ztest_walkpackages_zipfile.zip�test_walkpackages_zipfiler&r;r<r=�/z/mod.pyr)r&zsub.test_walkpackages_zipfilez!sub.test_walkpackages_zipfile.modrkztest_walkpackages_zipfile.subz!test_walkpackages_zipfile.sub.modr`raN)r(rr)rr?r@rAr,rrr.rXr0rbr1)
rrGrcrerHrIrgrhrir2s
          rrkz&PkgutilTests.test_walkpackages_zipfile�sb��.��*�����7�7�<�<����c�2���O�O�H�c�*��	�
�
�4�.�(�"�-�	�
�
�4�#�:��$�~�5�r�:�	�
�
�4�#�:��$�y�0�"�5�	�
�
�4�.�(�"�-�	�
�
�4�#�:��$�~�5�r�:�	�
�
�4�#�:��$�y�0�"�5�	���	�������8�$�
�� '�4�4�h�Z�@�A�@�!��1��@��A������*��H�H�Q�K��C��|�|�E�"�����C� ���	Bs�)Fc�D�d}|jttf�5tt	j
|��ddd�d}|jttf�5tt	j
|��ddd�y#1swY�NxYw#1swYyxYw)N�test_dirstest_dir)�assertRaises�	TypeErrorrPrQr.rX)r�	str_input�bytes_inputs   r�2test_walk_packages_raises_on_string_or_bytes_inputz?PkgutilTests.test_walk_packages_raises_on_string_or_bytes_input�sy���	�
�
�
�	�:�6�
7���&�&�y�1�2�8�"��
�
�
�	�:�6�
7���&�&�{�3�4�8�
7�	8�
7��8�
7�s�B
�"B�
B�Bc���ddl}ddl}dtfdtjfdtjjfd|fd|fd|j
fd|j
fd	|j
jfd
|j
jfd|j
jjfd|j
jjfd
tfdtfdtjfdtjfdtfdtfdtjff}dtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfd tfd!tfd"tfd#tff}d$}|D]�}tjj|j |�}	tj"|d�%�tjj|d&�}t'|d'�5}|j)d�|j+�ddd�t-j.�t-j0|�}|||ffz
}t3|�dkDs��||dd(tffz
}��|d)tffz
}|D]G\}	}
|j5|	�*�5t7j8|	�}|j;||
�ddd��I|D]O\}	}|j5|	�*�5|j=|�5t7j8|	�ddd�ddd��Qy#t$$rY���wxYw#1swY��xYw#1swY��xYw#1swY�=xYw#1swY��xYw)+Nrr(zos.pathzos.path:pathsep�loggingzlogging:zlogging.handlerszlogging.handlers:zlogging.handlers:SysLogHandlerzlogging.handlers.SysLogHandlerz(logging.handlers:SysLogHandler.LOG_ALERTz(logging.handlers.SysLogHandler.LOG_ALERTzbuiltins.intzbuiltins:intzbuiltins.int.from_byteszbuiltins:int.from_byteszbuiltins.ZeroDivisionErrorzbuiltins:ZeroDivisionErrorzos:pathr`g@Tr=z?abczabc/foo�foozos.foozos.foo:zos.pth:pathsepzlogging.handlers:NoSuchHandlerz,logging.handlers:SysLogHandler.NO_SUCH_VALUEz,logging.handlers.SysLogHandler.NO_SUCH_VALUE�ZeroDivisionErrorzos.path.9abc�9abc)	u	वमस�é�Èu안녕하세요uさよならuありがとうuХорошоuспасибоu现代汉语常用字表��exist_okr#r;���u०वमस)�s)ru�logging.handlersr(r�pathsep�handlers�
SysLogHandler�	LOG_ALERT�int�
from_bytesrwrprP�ImportError�AttributeErrorr)r�makedirs�UnicodeEncodeErrorr+r-�flush�	importlib�invalidate_caches�
import_module�len�subTestr.�resolve_namer0ro)
rru�
success_cases�
failure_cases�
unicode_words�uwr[r5rar~rg�o�excs
             r�test_name_resolutionz!PkgutilTests.test_name_resolution�s9�����2�J�
���� �
������0�
�� �
��!�
��!1�!1�2�
 �'�"2�"2�3�
-�w�/?�/?�/M�/M�N�
-�w�/?�/?�/M�/M�N�
7�� � �.�.�8�8�
:�
7�� � �.�.�8�8�
:�
�S�!�
�S�!�
&����7�
&����7�
)�+<�=�
)�+<�=�
���� �)
�
�0�9��
�	�N�
�)��
�9��
���
�Z� �
�
�#�
�K� �
�~�&�
��$�
�{�+�
-�~�>�
;�^�L�
;�^�L�
 �+�.�
�Z�(�
�Z� �#
�
�,M�
� �B������T�\�\�2�.�A�
����A��-�
�����Q�
�.�A��a������������	��

�'�'�)��)�)�"�-�C��b�#�Y�Z�'�M��2�w��{��"�S�b�'�;�!7�!8�8�
�% �*	�4�j�A�B�B�
�(�K�A�x������"��(�(��+��� � ��H�-�#�"�)�
$�F�A�s������"��&�&�s�+��(�(��+�,�#�"�$��1'�
��
��
���#�"��,�+��#�"�sN�L3�"M�,(M�8M(�
M� M(�3	M�?M�M
	�M	�M%�!M(�(M1	c���tjjtjjt�dd�}tdd�5t
|�5|jtjd�d�ddd�ddd�tdd�5t
|�5|jtjd�d�ddd�ddd�tdd�5t
|�5|jtjd�d	�|jtjd�d�|jtjd�d	�ddd�ddd�tdd�5t
|�5|jtjd�d	�|jtjd�d�|jtjd�d	�ddd�ddd�y#1swY���xYw#1swY���xYw#1swY��]xYw#1swY��bxYw#1swY��xYw#1swY��xYw#1swY�^xYw#1swYyxYw)
N�test_import�data�package3zpackage3.submodulezpackage3.submodule.attr�	submodulezpackage3.submodule:attrzpackage3:submodule.attr�rebound�
r(rr)r�__file__rr	r0r.r��rrs  r�%test_name_resolution_import_rebindingz2PkgutilTests.test_name_resolution_import_rebindingEs����w�w�|�|�B�G�G�O�O�H�5�}�f�M��
�Z�!5�
6�
�d�8K����W�1�1�2K�L�k�Z�9L�
6�
�Z�!5�
6�
�d�8K����W�1�1�2K�L�k�Z�9L�
6�
�Z�!5�
6�
�d�8K����W�1�1�2K�L�i�X����W�1�1�2K�L�k�Z����W�1�1�2K�L�i�X�9L�
6��Z�!5�
6�
�d�8K����W�1�1�2K�L�i�X����W�1�1�2K�L�k�Z����W�1�1�2K�L�i�X�9L�
6�
6�9L�8K��
6�
6��8K�8K��
6�
6��8K�8K��
6�
6��9L�8K��
6�
6���H�&H�H�H7�)&H*�H7�+I�7A0I�'I�I(�A0I�?I(�H	�H�H'�*H4	�/H7�7I�I
	�	I�I�I%	�!I(�(I1c���tjjtjjt�dd�}tdd�5t
|�5|jtjd�d�ddd�ddd�tdd�5t
|�5|jtjd�d�ddd�ddd�tdd�5t
|�5|jtjd�d	�|jtjd�d�|jtjd�d�ddd�ddd�tdd�5t
|�5|jtjd�d	�|jtjd�d�|jtjd�d�ddd�ddd�y#1swY���xYw#1swY���xYw#1swY��]xYw#1swY��bxYw#1swY��xYw#1swY��xYw#1swY�^xYw#1swYyxYw)
Nr�r��package4zpackage4.submodulezpackage4.submodule.attrr�zpackage4.submodule:attrzpackage4:submodule.attr�originr�r�s  r�&test_name_resolution_import_rebinding2z3PkgutilTests.test_name_resolution_import_rebinding2Vs����w�w�|�|�B�G�G�O�O�H�5�}�f�M��
�Z�!5�
6�
�d�8K����W�1�1�2K�L�k�Z�9L�
6�
�Z�!5�
6�
�d�8K����W�1�1�2K�L�k�Z�9L�
6�
�Z�!5�
6�
�d�8K����W�1�1�2K�L�h�W����W�1�1�2K�L�k�Z����W�1�1�2K�L�k�Z�9L�
6��Z�!5�
6�
�d�8K����W�1�1�2K�L�h�W����W�1�1�2K�L�k�Z����W�1�1�2K�L�k�Z�9L�
6�
6�9L�8K��
6�
6��8K�8K��
6�
6��8K�8K��
6�
6��9L�8K��
6�
6�r�N)�__name__�
__module__�__qualname__rrr!r:rTr]r_rkrsr�r�r��rrr
r
sF��)�
��:!�F%7�N	2�&!�P!!�F5�Y,�vY�"
[rr
c�P�eZdZGd�de�ZGd�de�Zd�Zd�Zd�Zd�Z	y	)
�PkgutilPEP302Testsc��eZdZd�Zd�Zd�Zy)�PkgutilPEP302Tests.MyTestLoaderc��y�Nr�)r�specs  r�
create_modulez-PkgutilPEP302Tests.MyTestLoader.create_moduleis��rc�\�|jjdd�dz|jd<y)N�loadsrr`)�__dict__�get)rras  r�exec_modulez+PkgutilPEP302Tests.MyTestLoader.exec_modulels&��$'�L�L�$4�$4�W�a�$@�1�$D�C�L�L��!rc��y)N�
Hello, world!r�r�s  rr/z(PkgutilPEP302Tests.MyTestLoader.get_dataps��"rN)r�r�r�r�r�r/r�rr�MyTestLoaderr�hs��	�	E�	#rr�c��eZdZdd�Zy)�!PkgutilPEP302Tests.MyTestImporterNc�v�tj�}t|d|jjz|g��S)Nz<%s>)�loader�submodule_search_locations)r�r�r�	__class__r�)r�fullnamer�targetr�s     r�	find_specz+PkgutilPEP302Tests.MyTestImporter.find_spects;��'�4�4�6�F�*�8�+1�F�4D�4D�4M�4M�+M�28�FH�J�
Jr)NN)r�r�r�r�r�rr�MyTestImporterr�ss��	Jrr�c�`�tjjd|j��yr)r�	meta_pathrr�rs rrzPkgutilPEP302Tests.setUp{s���
�
���Q�� 3� 3� 5�6rc�&�tjd=yr)rr�rs rrzPkgutilPEP302Tests.tearDown~s���M�M�!�rc�r�|jtjdd�d�tjd=y)Nrv�dummyr�)r0r.r/rr1rs r�test_getdata_pep302z&PkgutilPEP302Tests.test_getdata_pep302�s+������)�)�%��9�?�K��K�K��rc���ddl}|j|jd�|jtjdd�d�|j|jd�t
jd=y)Nrr`rvr�r�)rvr0r�r.r/rr1)rrvs  r�test_alreadyloadedz%PkgutilPEP302Tests.test_alreadyloaded�sX��	�������A�&�����)�)�%��9�?�K�������A�&��K�K��rN)
r�r�r��objectr�r�rrr�r�r�rrr�r�fs0��	#�v�	#�J��J�7���
rr�c�6�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	y)	�ExtendPathTestsc�z�tj�}tjj	d|�t
jj
||�}tj|�tt
jj
|d�d�5}|jd�ddd�|S#1swY|SxYw)Nrr#r;zKfrom pkgutil import extend_path
__path__ = extend_path(__path__, __name__)
)
rrrrrr(r)r*r+r-)r�pkgnamer�pkgdir�fls     r�create_initzExtendPathTests.create_init�s����"�"�$��������7�#������g�w�/��
�����
�"�'�'�,�,�v�}�5�s�
;�r��H�H�d�e�<���<���s�B0�0B:c���tjj|||dz�}t|d�5}t	dj|�|��ddd�y#1swYyxYw)N�.pyr;zvalue={})�file)r(rr)r+�print�format)rrr��submodule_name�value�module_namer�s       r�create_submodulez ExtendPathTests.create_submodule�sJ���g�g�l�l�7�G�^�e�5K�L��
�+�s�
#�r��*�#�#�E�*��4�$�
#�
#�s�A�A c
��d}|j|�}|j|�}|j||dd�|j||dd�ddl}ddl}|j	|j
jd�|j	|jjd�|j	t|j�ttjj||�tjj||�g��tj|�tj|�tjd=tjd=tj d=tj d=tj d=y)Nrv�barr�bazr`�foo.bar�foo.baz)r�r��foo.bar�foo.bazr0r�r�r��sorted�__path__r(rr)rrrr1�rr��	dirname_0�	dirname_1rvs     r�test_simplezExtendPathTests.test_simple�s'�����$�$�W�-�	��$�$�W�-�	����i��%��;����i��%��;������������*����������*�	
�������-�������i��!A�!#�����i��!A�!C�D�	E�
	�
�
�i� ��
�
�i� ��H�H�Q�K��H�H�Q�K��K�K����K�K�	�"��K�K�	�"rc��tj}tj}d}d}|j|�}tj
j
||�}dj||�}tjj|d�tjj|d�	|j|||d�tj|�t||��}||�}	|D]�}
|
j|�}|j }	|j }|j%|
tj&j(�|j+|
|	�|j%|tj&j,�|j/|
j|����|j1t2�5t|d��ddd�|j1t2�5t|d��ddd�t5j6|�tj
d=	tjd=tjd=y#t"$rY��<wxYw#1swY��xYw#1swY�oxYw#t8$rYywxYw#t5j6|�tj
d=	tjd=tjd=w#t8$rYwwxYwxYw)N�spam�eggsz{}.{}rzinvalid.modulez.spamz	spam.eggs)r.�iter_importers�get_importerr�r(rr)r�rr1rNr�r�r�rQr�r�r�rC�	machinery�
FileFinderr0�SourceFileLoader�assertIsNoneror�rr�KeyError)
rr�r�r��modnamer�pathitemr��	importers�expected_importer�finderr�r�s
             r�test_iter_importersz#ExtendPathTests.test_iter_importers�sR�� �/�/���+�+�������"�"�7�+���7�7�<�<���1���>�>�'�7�3��������$�'��������&�"	��!�!�'�7�G�Q�?��#�#�H�-��^�H�5�6�I� ,�X� 6��#���'�'��1�������#�]�]�F�
�%�%�f�i�.A�.A�.L�.L�M�� � ��):�;��%�%�f�&/�&9�&9�&J�&J�L��!�!�&�"2�"2�7�";�<�$��"�"�;�/��^�$4�5�6�0��"�"�;�/��^�G�,�-�0�
�M�M�'�"������
��K�K��'��K�K��,��)&�����0�/��0�/���
��
��
�M�M�'�"������
��K�K��'��K�K��,���
��
�s��)A$J�I
�BJ�7I�	J�&I&�8J�'"I2�
	I�J�I�J�I#�J�&I/�+J�2	I>�=I>�'K�)"K�K�	K�K�K�Kc
��d}|j|�}|j|�}|j||dd�tjtjj||d��|j||dd�ddl}ddl}|j|jjd�|j|jjd�|jt|j�ttjj||�tjj||�g��tj|�tj|�t jd=t jd=t j"d=t j"d=t j"d=y)	Nrvr�rr#r�r`r�r�)r�r�r(�unlinkrr)r�r�r0r�r�r�r�r�rrrr1r�s     r�test_mixed_namespacez$ExtendPathTests.test_mixed_namespace�sD�����$�$�W�-�	��$�$�W�-�	����i��%��;�
�	�	�"�'�'�,�,�y�'�=�A�B����i��%��;������������*����������*�	
�������-�������i��!A�!#�����i��!A�!C�D�	E�
	�
�
�i� ��
�
�i� ��H�H�Q�K��H�H�Q�K��K�K����K�K�	�"��K�K�	�"rc��d}|j|�}|jdtjdd��|jdtjdd��|jdtjdd��|jdtjdd��t	j
|�tjd=y)Nrv�notalist)�not�arQ�{r)r�r0r.�extend_pathrrrr)rr�r�s   r�test_extend_path_argument_typesz/ExtendPathTests.test_extend_path_argument_typess������$�$�W�-�	�	
����W�%8�%8��U�%K�L����-�w�/B�/B�CW�Y^�/_�`�����g�1�1�#�u�=�>�����w�2�2�4��?�@�	�
�
�i� ��H�H�Q�Krc��d}|j|�}ttjj	|d�d�5}|jdj	gd���ddd�t
jtjd�}|j|ddtj�|j|dd�|j|d	d
�tj|�tjd=y#1swY��xYw)Nrvzbar.pkgr;�
)r��/foo/bar/bazr=z#commentr����r�r}rr)r�r+r(rr)r-r.rrr0rr)rr�r��pkg_file�extended_pathss     r�test_extend_path_pkg_filesz*ExtendPathTests.test_extend_path_pkg_filess������$�$�W�-�	�
�"�'�'�,�,�y�)�4�c�
:�h��N�N�4�9�9�&��
�;�!�,�,�S�X�X�u�=��������,�c�h�h�7������+�U�3������+�^�<�	�
�
�i� ��H�H�Q�K�!;�
:�s�#D�D
N)
r�r�r�r�r�r�r�r�rrr�rrr�r��s&��	�5�
#�:-�`#�:�rr�c�$�eZdZd�Zd�Zd�Zd�Zy)�NestedNamespacePackageTestc�f�tj�|_tjdd|_yr�)rr�basedirrr�old_pathrs rrz NestedNamespacePackageTest.setUp6s!���'�'�)���������
rc�|�|jtjddtj|j
�yr�)rrrrrrrs rrz#NestedNamespacePackageTest.tearDown:s#���m�m�������
�
�d�l�l�#rc��|jdd�\}}tjj|j|jdtjj��}tj|d��ttjj||dz�d�5}|j|�ddd�y#1swYyxYw)N�.r`Tr{r�r;)
�rsplitr(rr)r�replace�sepr�r+r-)rrF�contents�base�final�	base_pathr5s       rr�z(NestedNamespacePackageTest.create_module>s����k�k�#�q�)���e��G�G�L�L����t�|�|�C������/M�N�	�
���I��-�
�"�'�'�,�,�y�%�%�-�8�#�
>�!�
�G�G�H��?�
>�
>�s�,C�Cc�p�d}|jd|�|jd|�|jd|�|jd|�|jdd�|jdd	�tjjd
tjj|jd��tjjd
tjj|jd��d
dl}|jtd
�|jt|j�d�d
dl
}|jtd�|jt|jj�d�d
dlm}d
dlm}|j|d�|j|d�y)NzBimport pkgutil; __path__ = pkgutil.extend_path(__path__, __name__)za.pkg.__init__zb.pkg.__init__za.pkg.subpkg.__init__zb.pkg.subpkg.__init__za.pkg.subpkg.czc = 1zb.pkg.subpkg.dzd = 2rr�br2�z
pkg.subpkg)�c)r[r`)r�rrrr(r)rr2rrr0r�r��
pkg.subpkg�subpkg�pkg.subpkg.cr�pkg.subpkg.dr[)r�pkgutil_boilerplater2rr[s     r�test_nestedz&NestedNamespacePackageTest.test_nestedEsC��
A�	�	
���+�-@�A����+�-@�A����2�4G�H����2�4G�H����+�W�5����+�W�5�������2�7�7�<�<����c�:�;�������2�7�7�<�<����c�:�;�������&�����S�\�\�*�A�.�������-�����S�Z�Z�0�0�1�1�5�"�"�����A������A�rN)r�r�r�rrr�r$r�rrr
r
4s��$�$��rr
c���eZdZejedk(d�ee��d���Zee��d��Zee��d��Z	ee��d��Z
d�Zd	�Zee��d
��Z
d�Zd�Zd
�Zy)�ImportlibMigrationTests�__main__znot compatible with __main__)�categoryc�v�t}b	|jtjt��|ay#|awxYwr�)�
__loader__�assertIsNotNoner.�
get_loaderr�)r�this_loaders  r�0test_get_loader_handles_missing_loader_attributezHImportlibMigrationTests.test_get_loader_handles_missing_loader_attributebs5��!���	%�� � ��!3�!3�H�!=�>�$�J���J�s�(4�8c�v�d}tt�|�}|`t|�5	|tj|<tj|�}tjj|d�	ddd�|j�y#tjj|d�wxYw#1swY�@xYw�Nr��	�typer�__spec__rr1r.r,rNr��rrFrar�s    r�.test_get_loader_handles_missing_spec_attributezFImportlibMigrationTests.test_get_loader_handles_missing_spec_attributems������d�3�i��o���L�
��
�
,�$'����D�!� �+�+�D�1��������d�+��	
���&�!��������d�+���
�s"�B/�(B
� B/�
"B,�,B/�/B8c��d}tt�|�}d|_t|�5	|tj|<tj|�}tjj|d�	ddd�|j�y#tjj|d�wxYw#1swY�@xYwr0r1r4s    r�+test_get_loader_handles_spec_attribute_nonezCImportlibMigrationTests.test_get_loader_handles_spec_attribute_nonezs������d�3�i��o�����
��
�
,�$'����D�!� �+�+�D�1��������d�+��	
���&�!��������d�+���
�s"�B4�(B� B4�"B1�1B4�4B=c���d}dtj|<	tj|�}tj|=|j	|�y#tj|=wxYw�Nz
totally bogus)rr1r.r,r��rrFr�s   r�#test_get_loader_None_in_sys_modulesz;ImportlibMigrationTests.test_get_loader_None_in_sys_modules�sT���� ����D��	"��'�'��-�F����D�!����&�!�����D�!�s�A�A"c��tdtf�5tjd�}ddd�|j	�y#1swY�xYw)Nz.*\bpkgutil.get_loader\b.*r)r�DeprecationWarningr.r,r+�rrRs  r�test_get_loader_is_deprecatedz5ImportlibMigrationTests.test_get_loader_is_deprecated�sE��
�
*�,>�?�
��$�$�U�+�C�
�	
���S�!�	
�
���A�Ac��tdtf�5tjd�}ddd�|j	�y#1swY�xYw)Nz.*\bpkgutil.find_loader\b.*r)rr=r.�find_loaderr+r>s  r�test_find_loader_is_deprecatedz6ImportlibMigrationTests.test_find_loader_is_deprecated�sE��
�
+�-?�@�
��%�%�e�,�C�
�	
���S�!�	
�
�r@c�T�d}tj|�}|j|�yr9)r.rBr�r:s   r�test_find_loader_missing_modulez7ImportlibMigrationTests.test_find_loader_missing_module�s%�����$�$�T�*�����&�!rc���t�5}|jtjd��|j	t|j�d�ddd�y#1swYyxYw)Nz*??r)rr�r.r�r0r��warnings)rr;s  r�"test_get_importer_avoids_emulationz:ImportlibMigrationTests.test_get_importer_avoids_emulation�sG��
�
�����g�2�2�5�9�:����S����_�a�0��
�
�s�A
A�A'c��	tjtd��y#t$r|j	d�YywxYw)Nz/homez3Unexpected AttributeError when calling get_importer)r.r�rr�rYrs r�test_issue44061z'ImportlibMigrationTests.test_issue44061�s8��	M�� � ��g��/���	M��I�I�K�L�	M�s�!�>�>c��t�5}tj�D]}�|jt	|j
�d�ddd�y#1swYyxYwr)rr.r�r0r�rG)rr;�importers   r�$test_iter_importers_avoids_emulationz<ImportlibMigrationTests.test_iter_importers_avoids_emulation�s?��
�
��#�2�2�4��4����S����_�a�0��
�
�s�?A�AN)r�r�r��unittest�skipIfrr=r.r5r7r;r?rCrErHrJrMr�rrr&r&]s���
�X�_�_�X��+�-K�L��0�1�%�2�M�%��0�1�
"�2�
"��0�1�
"�2�
"��0�1�"�2�"�"�"��0�1�"�2�"�
1�M�1rr&c�j�ddl}ddl}|jj�|j�yr)�	zipimportr��_zip_directory_cache�clearr�)rQr�s  r�tearDownModulerT�s(����
�"�"�(�(�*��I���!rr')!�pathlibr�test.support.import_helperrr�test.support.warnings_helperrrrNrr��importlib.utilrr.r(�os.pathrrr?r	�test.support.os_helperr
�test.test_importlib.utilr�TestCaser
r�r�r
r&rTr��mainr�rr�<module>r^s����:�H��
��2��	���
��4�+�,�J[�8�$�$�J[�Z
(��*�*�(�Z^�h�'�'�^�B&��!2�!2�&�RW1�h�/�/�W1�t"��z���H�M�M�O�r

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists