Your IP : 216.73.216.213


Current Path : /opt/alt/python35/lib64/python3.5/test/test_importlib/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib64/python3.5/test/test_importlib/__pycache__/util.cpython-35.opt-2.pyc



���]�0�@s�ddlZddlZddlZddlZddlZddlmZmZmZddlZddl	Zddl
mZddlZddl
Z
ddlZddlZej�Zde_de_de
jkr�de_de
jkr�de_ej�adt_dt_dt_dt_dt_dd�Ze�d	d
�Zddd�Zdd
d�Zddd�ZdZ e
j!d3kr�e"j#�Z$e$e"kr�e"j%�Z$ejj&e$�s�dZ ed�dZ'de(ej)�de(e'j)�iZ)dd�Z*ddd�Z+ej,dd��Z-ej,ddddd ��Z.ej,d!d"��Z/Gd#d$�d$�Z0Gd%d&�d&e0�Z1Gd'd(�d(e0�Z2d)d*�Z3d+d,�Z4ej,d-d.��Z5d/d0�Z6Gd1d2�d2�Z7dS)4�N)�	machinery�util�invalidate_caches)�support�errno�	importlibZ	_testcapicCs�x�tjD]v}xmtjD]b}tj|}tjj||�}tjj|�r|t_|t_	|t_
|t_dSqWq
WdS)N)�sys�pathr�EXTENSION_SUFFIXES�
EXTENSIONS�name�os�join�exists�ext�filename�	file_path)r	rrr�r�)/opt/alt/python35/lib64/python3.5/util.py�_extension_detailss
				rcCsRd|krd	nf}tj|�}tj|d|dd
�}d|d|iS)N�.r�freshZblocked�_frozen_importlib�_frozen_importlib_external�Frozen�Source)r)rr)rZimport_fresh_module)�module_namer�frozen�sourcerrr�import_importlib/s
	rc
Ks�|dkrtj}nt|t�s1||}dj||j�}||f}tj||�}|j|_|j|_	||_
x4|j�D]&\}}||}	t|||	�q�W|S)Nz{}_{})
�unittestZTestCase�
isinstance�type�format�__name__�types�	new_class�
__module__Z_NAMEZ_KIND�items�setattr)
�cls�kind�base�kwargsr�basesZspecialized�attr�values�valuerrr�specialize_class8s
	
r2cKs4t|d||�}t|d||�}||fS)Nrr)r2)r*r,r-rrrrr�split_frozenKsr3cKst|||�S)N)r3)Z
test_classr,r-rrr�	test_bothQsr4T�win32�cygwinFrrcCstjtd�|�S)Nz&requires a case-insensitive filesystem)r ZskipIf�CASE_INSENSITIVE_FS)�testrrr�case_insensitive_testsds
r9�c
CsUtjj||d�}t|d��}|j|�WdQRXdj||�|fS)Nz.py�wz{}.{})r
r	r�open�writer#)�parentrZpkg_dir�contentr	Zsubfilerrr�	submoduleksr@cgs�xR|D]J}|dkr.tdj|���ytj|=Wqtk
rPYqXqWz	dVWdx1|D])}ytj|=Wqhtk
r�YqhXqhWXdS)Nr�marshal�impzcannot uncache {0})rrArB)�
ValueErrorr#r�modules�KeyError)�namesrrrr�uncachers

		

rG�pkgc#s�fdd�tjD�}tjd���}t�|���tj|���t�tjj	|��}|r�tjj	|d�}tj
��n|d}|dkr�d}|dk	r�t|d��}|j|�WdQRX|VWdQRXWdQRXWdQRXdS)Ncs/g|]%}|jd�d�kr|�qS)rr)�	partition)�.0�n)rrr�
<listcomp>�s	ztemp_module.<locals>.<listcomp>z__init__.pyz.pyr:r;)
rrDrZtemp_cwdrGZ
DirsOnSysPathrr
r	r�mkdirr<r=)rr?rH�	conflicts�cwd�locationZmodpathZmodfiler)rr�temp_module�s 
rQcks�i}z�x�dgfdgfdgfdiffD]U\}}tt|�||<||krs||}||=n|}tt||�q4Wt|�r�tdj|j����dVWdx*|j�D]\}}tt||�q�WXdS)N�	meta_pathr	�
path_hooks�path_importer_cachezunrecognized arguments: {0})�getattrrr)�lenrCr#�keysr()r-Z	originalsr/�defaultZ	new_valuer1rrr�import_state�s"
	

	rYc@sFeZdZdidd�Zdd�Zdd�Zdd	�Zd
S)�
_ImporterMock�module_codecGsi|_i|_x�|D]�}|jd�s7|}n|dtd��}d|krcd}n+||kr�|jdd�d}n|}tj|�}||_d|_||_	||_
||kr�dg|_||j|<||kr|||j|<qWdS)Nz	.__init__r�rz<mock __file__>z<mock __path__>)rDr[�endswithrV�rsplitr%�
ModuleType�
__loader__�__file__�__package__r/�__path__)�selfr[rFr�import_name�package�modulerrr�__init__�s*		
						
z_ImporterMock.__init__cCs|j|S)N)rD)rdrrrr�__getitem__�sz_ImporterMock.__getitem__cCs)t|jj��|_|jj�|S)N)rGrDrW�_uncache�	__enter__)rdrrrrk�s
z_ImporterMock.__enter__cGs|jjddd�dS)N)rj�__exit__)rd�exc_inforrrrl�sz_ImporterMock.__exit__N)r$r'�__qualname__rhrirkrlrrrrrZ�srZc@s+eZdZddd�Zdd�ZdS)�mock_modulesNcCs||jkrdS|SdS)N)rD)rd�fullnamer	rrr�find_module�szmock_modules.find_modulecCs~||jkrt�nb|j|tj|<||jkroy|j|�Wntk
rntj|=�YnX|j|SdS)N)rD�ImportErrorrr[�	Exception)rdrprrr�load_module�s	

zmock_modules.load_module)r$r'rnrqrtrrrrro�sroc@s:eZdZdddd�Zdd�Zdd�ZdS)�	mock_specNcCs[y|j|}Wntk
r)dSYnXtj||jd|dt|dd��}|S)N�loader�submodule_search_locationsrc)rDrEr�spec_from_file_locationrarU)rdrpr	r>rg�specrrr�	find_specs
	zmock_spec.find_speccCs&|j|jkrt�|j|jS)N)rrDrr)rdryrrr�
create_moduleszmock_spec.create_modulecCs1y|j|jj�Wntk
r,YnXdS)N)r[�__spec__rrE)rdrgrrr�exec_modules
zmock_spec.exec_module)r$r'rnrzr{r}rrrrrus
rucs8tjrdd�Stj���fdd��}|S)Nc_sdS)Nr)�argsr-rrr�<lambda>"sz'writes_bytecode_files.<locals>.<lambda>cs6tj}dt_z�||�}Wd|t_X|S)NF)r�dont_write_bytecode)r~r-ZoriginalZ	to_return)�fxnrr�wrapper#s		
z&writes_bytecode_files.<locals>.wrapper)rr��	functools�wraps)r�r�r)r�r�writes_bytecode_filess	
!	r�cCs^ytjtjj|��Wn:tk
rY}z|jtjkrG�WYdd}~XnXdS)N)r
rMr	�dirname�OSErrorr�EEXIST)�
bytecode_path�errorrrr�ensure_bytecode_path/s
r�cgsd}g}i}d}d}z�tj�}||d<t�}x7|D]/}|jd�se|}	n|dtd��}	|j|	�|	tjkr�tj|	=|jd�}
|}xY|
dd
�D]G}t	j
j||�}t	j
j|�s�t	j
|�|j|�q�Wt	j
j||
dd�}t|d��}
|
j|j|��WdQRX|j|�|||<qGWt|�}|j�td	|g�}|j�|VWd|dk	r�|jddd�|dk	r�|jddd�tj|�XdS)Nzattr = {0!r}z.rootrhz	.__init__rr\z.pyr;r	���r�)�tempfile�mkdtemp�setr]rV�addrrD�splitr
r	rrrM�appendr<r=r#rGrkrYrlr�rmtree)rFrZ
created_paths�mappingZ
state_managerZuncache_managerZtemp_dirZimport_namesrreZ
name_partsrZ	directory�filerrr�create_modules;sL
	
	





	r�cs��fdd�}|S)Ncs|�krt��S)N)rr)�entry)�entries�importerrr�hookwszmock_path_hook.<locals>.hookr)r�r�r�r)r�r�r�mock_path_hookusr�c@seZdZdd�ZdS)�CASEOKTestBasecs<d}t�fdd�|D��|kr8�jd�dS)N�PYTHONCASEOK�PYTHONCASEOKc3s'|]}|�jjjjkVqdS)N)r�_bootstrap_external�_os�environ)rJ�x)rdrr�	<genexpr>�sz4CASEOKTestBase.caseok_env_changed.<locals>.<genexpr>z/os.environ changes not reflected in _os.environ)r�r�)�anyZskipTest)rdZshould_existZ
possibilitiesr)rdr�caseok_env_changed�sz!CASEOKTestBase.caseok_env_changedN)r$r'rnr�rrrrr�~sr�)r5r6)8�builtins�
contextlibrr�rrrrr
Zos.pathr8rr rr�r%�SimpleNamespaceZBUILTINSZ	good_nameZbad_name�builtin_module_namesrr	rrrrrrr2r3r4r7�platformra�upperZchanged_name�lowerrZsource_importlib�staticmethod�
__import__r9r@�contextmanagerrGrQrYrZrorur�r�r�r�r�rrrr�<module>sn									
	):