Your IP : 216.73.216.213


Current Path : /opt/alt/python35/lib64/python3.5/site-packages/Cython/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib64/python3.5/site-packages/Cython/__pycache__/Utils.cpython-35.pyc



Z��ZM8�
@s_ddlmZyddlmZWnek
r>eZYnXddlZddlZddlZddl	Z	ddl
Z
ddlZddlm
Z
ejjZdd�Zdd�Zd	d
�Zdd�Zd
d�Zdd�Zdd�Zdd�Zedddd��Zedd��Zedd��Zedd��Zedd��Zd d!�Zejd"�j Z!d#d$�Z"d%d&�Z#d'd(�Z$d)ddd*d+�Z%ddd,d-�Z&d.d/�Z'd0d1�Z(ed2d3��Z)e
d4dd5d6��Z*d7ej+d8d9d:�Z,Gd;d<�d<�Z-Gd=d>�d>e.�Z/d?d@�Z0dS)A�)�absolute_import)�
basestringN)�contextmanagercs4i�t�����fdd�}�|_|S)Ncs6�j|��}|�kr2�|�}�|<|S)N)�get)�args�res)�cache�f�
uncomputed��?/opt/alt/python35/lib64/python3.5/site-packages/Cython/Utils.py�wrappersz cached_function.<locals>.wrapper)�objectZuncached)r	r
r)rr	r
r�cached_functions
		rcs&d�j���fdd�}|S)Nz
__%s_cachecsct|�d�}|dkr4i}t|�|�||krH||S�||�}||<|S)N)�getattr�setattr)�selfrrr)�
cache_namer	rrr
%szcached_method.<locals>.wrapper)�__name__)r	r
r)rr	r�
cached_method#s
	rcCs tjj|�\}}||S)N)�os�path�splitext)rZnewsuf�base�_rrr�replace_suffix0srcCs5tjj|�rtj|�tj|ddd�S)N�w�encodingz
ISO-8859-1)rr�exists�unlink�codecs�open)rrrr�
open_new_file5s
r"c
Csfyt|�}Wntk
r$Yn>X|jd�|j�|rbtj||j|jdf�dS)NzN#error Do not use this file, it is the result of a failed Cython compilation.
�)r"�EnvironmentError�write�closer�utime�st_atime�st_mtime)r�str	rrr�
castrate_fileDs

r+cCst|�}||kS)N)�modification_time)r�timeZftimerrr�file_newer_thanTsr.cCs?ytj|�Wn'tk
r:tjj|�s6�YnXdS)N)r�makedirs�OSErrorr�isdir)rrrr�
safe_makedirsYs

r2cCswtjj|tjj|��}yt|�}Wntk
rOt|�YnXt||�scdStj	||�dS)z�
    Copy file sourcefile to directory destdir (creating it if needed),
    preserving metadata. If the destination file exists and is not
    older than the source file, the copying is skipped.
    N)
rr�join�basenamer,r0r2r.�shutil�copy2)Z
sourcefileZdestdir�destfileZdesttimerrr�copy_file_to_dir_if_neweras!
r8FcCs�|r|ttj�}|r�|d}ddlm}t||�sTtd��|rytjj|j	�f|}nt
|j	�f|}|}|r�||7}|s�|jd�}	t|	dd��}
|	d}||}d|}
x�|D]�}tjj||�}t
|�r |S|s�t||
�}|dk	r�tjj||�}t
|�rf|Stjj||||
�}t
|�r�|Sq�WdS)	Nr)�FileSourceDescriptorz$Only file sources for code supported�.r#�__init__���r<)�tuple�sysrZCython.Compiler.Scanningr9�
isinstance�RuntimeErrorr�dirname�filename�find_root_package_dir�splitr3�path_exists�check_package_dir)�dirsZqualified_name�suffix�pos�include�sys_pathZ	file_descr9Zdotted_filename�names�
package_names�module_nameZmodule_filenameZpackage_filename�dirr�package_dirrrr�search_include_directoriestsD	





	rQcCs@tjj|�}||kr"|St|�r8t|�S|SdS)N)rrrA�is_package_dirrC)�	file_pathrOrrrrC�s
rCcCs:x3|D]+}tjj||�}t|�sdSqW|S)N)rrr3rR)rOrMrArrrrF�s

rFcCs:x3dD]+}tjj||�}t|�rdSqWdS)N�__init__.py�__init__.pyc�__init__.pyx�__init__.pxdr#)rTrUrVrW)rrr3rE)Zdir_pathrBrrrrrR�s
rRcCs�tjj|�rdSy�t}t|dd�}|r�tjj|�}|j|�r�|t|�dd�}y|j|�dSWnt	k
r�dSYnXWnt
k
r�YnXdS)NT�archiver#F)rrr�
__loader__r�normpath�
startswith�len�get_data�IOError�	NameError)r�loaderZarchive_pathrZ�arcnamerrrrE�s"



rEcCs_t|t�r[y7tj�}|dkr6tj�}|j|�}Wntk
rZYnX|S)N)r?�bytesr>�getfilesystemencoding�getdefaultencoding�decode�UnicodeDecodeError)rBZfilename_encodingrrr�decode_filename�s
rgzcoding[:=]\s*([-\w.]+)c
Cs8t|dddd�}zt|�SWd|j�XdS)NrzUTF-8�error_handling�ignore)�open_source_file�detect_opened_file_encodingr&)�source_filenamer	rrr�detect_file_encoding�srmcCs |jd�jd�}t|�dkr�t|d�}|rM|jd�St|�dkr�t|d�}|r�|jd�SdS|jd�g}x�td�D]r}|jd�}x2|r�|dkr�|j|�|jd�}q�Wtdj|��}|r�|jd�Sq�WdS)N��
r#r�zUTF-8�)	�readrDr\�_match_file_encoding�group�seek�range�appendr3)r	�lines�m�chars�i�crrrrrk�s*



rkcCs&|jd�dkr"|jd�dS)z�
    Read past a BOM at the beginning of a source file.
    This could be added to the scanner, but it's *substantially* easier
    to keep it at this level.
    r#urN)rrru)r	rrr�skip_bomsr}�rcCs�|dkrst|ddd|dd�}t|�}|dkri|dkri|jd�t|�|S|j�tjj|�s�y/t}|j	|j
�r�t||||�SWntt
fk
r�YnXtj|d|d|d|�}t|�|S)NrzUTF-8�moderhrir�errors)rjrkrur}r&rrrrYr[rX�open_source_from_loaderr_�AttributeError�ior!)rlrrrhr	r`�streamrrrrjs*



rjcCs`tjj|�}|t|j�dd�}|j|�}tjtj|�d|d|�S)Nr#rr�)	rrrZr\rXr]r��
TextIOWrapper�BytesIO)r`rlrrhZnrmpathra�datarrrr�7sr�cCsd}|dd�dkr2d}|dd�}t|�dkrVt|d�}n�|ddkr�|d}|dkr�t|dd�d	�}q	|d
kr�t|dd�d�}q	|dkr�t|dd�d�}q	t|d�}nt|d�}|r|S|S)
NFr#�-Trpr�0ZxX�ZoO�ZbB)r\�int)�valueZis_negZliteral_typerrr�
str_to_numberBs"
r�cCs6t|t�rt|�}d|ko2dknS)Nrp�li�l)r?rr�)r�rrr�long_literal^sr�cCs�dtjkrtjdSd}tjdkretjdkrStjjd�}ntjjd�}|r�tjj|�r�tjj	|d�Stjjtjj	dd	��S)
z�get the cython cache dir

    Priority:

    1. CYTHON_CACHE_DIR
    2. (OS X): ~/Library/Caches/Cython
       (posix not OS X): XDG_CACHE_HOME/cython if XDG_CACHE_HOME defined
    3. ~/.cython

    ZCYTHON_CACHE_DIRN�posix�darwinz~/Library/Caches�XDG_CACHE_HOME�cython�~z.cython)
r�environ�namer>�platformr�
expanduserrr1r3)�parentrrr�get_cython_cache_dirdsr�rpc#s�d�}tj|�}z�tj�\�}tj||�zxtj|�g���fdd�}��fdd�}ddlm}|d|�}d|_|j�|VWdtj||�|dk	r�|j	�XWdtj|�XdS)	NcsIz4x-tj�d�}|r.�j|�qPqWWdtj��XdS)Ni�)rrrrwr&)�d)r��pipe_inrr�copy�s	zcaptured_fd.<locals>.copycs(dj��}�r$|j��}|S)N�)r3re)�output)r�rrr�
get_output�szcaptured_fd.<locals>.get_outputr)�Thread�targetT)
r�dup�pipe�dup2r&�	threadingr��daemon�startr3)r�r�tZorig_streamZpipe_outr�r�r�r)r�rr�r�captured_fd�s&

	
	r�s
TcCsf|j�y
|j}Wntk
r1|}YnX|j|�|rR|j|�|rb|j�dS)N)�flush�bufferr�r%)�s�end�filer��outrrr�print_bytes�s




r�c@sLeZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�LazyStrcCs
||_dS)N)�callback)rr�rrrr;�szLazyStr.__init__cCs
|j�S)N)r�)rrrr�__str__�szLazyStr.__str__cCs
|j�S)N)r�)rrrr�__repr__�szLazyStr.__repr__cCs|j�|S)N)r�)r�rightrrr�__add__�szLazyStr.__add__cCs||j�S)N)r�)r�leftrrr�__radd__�szLazyStr.__radd__N)r�
__module__�__qualname__r;r�r�r�r�rrrrr��s
r�c@sCeZdZfdd�Zdd�Zdd�Zdd�Zd	S)
�
OrderedSetcCs&g|_t�|_|j|�dS)N)�_list�set�_set�update)r�elementsrrrr;�s	zOrderedSet.__init__cCs
t|j�S)N)�iterr�)rrrr�__iter__�szOrderedSet.__iter__cCs"x|D]}|j|�qWdS)N)�add)rr��errrr��s
zOrderedSet.updatecCs3||jkr/|jj|�|jj|�dS)N)r�r�rwr�)rr�rrrr��szOrderedSet.addN)rr�r�r;r�r�r�rrrrr��sr�cs�fdd�}|S)z6Class decorator for creating a class with a metaclass.cs�|jj�}|jd�}|dk	r`t|t�rB|g}x|D]}|j|�qIW|jdd�|jdd��|j|j|�S)N�	__slots__�__dict__�__weakref__)r�r�rr?�str�popr�	__bases__)�cls�	orig_vars�slots�	slots_var)�	metaclassrrr
�s	
zadd_metaclass.<locals>.wrapperr)r�r
r)r�r�
add_metaclass�sr�)1�
__future__rZ__builtin__r�ImportErrorr�rr>�rer�r r5�
contextlibrr�getmtimer,rrrr"r+r.r2r8rQrCrFrRrErg�compile�searchrsrmrkr}rjr�r�r�r�r��stdoutr�r�rr�r�rrrr�<module>sV

.



	(