509318396
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3
öLÖj™}  ã               @   s¸  d ddddddddd	d
ddgZ ddlZddlZddlZddlZddl	Z
ddlZddlmZ ddlmZ ddlZyddlZW n ek
r–   ddlZY nX ejZejejB ejB ZeedƒrÄeejO ZeZ eedƒrÜe ej!O Z eedƒrîej"Z"ndZ"dZ#eƒ Z$eedƒ�rej%Z&needƒ�r$ejZ&ndd„ Z&dd„ Z'dd„ Z(dd„ Z)G dd „ d ƒZ*d!d"„ Z+d#d$„ Z,da-d%d&„ Z.d'd(„ Z/d)d*„ Z0d+d,„ Z1d-d.„ Z2ej3ej4ejhej5k�o°ej3ej6kZ7d/d0„ Z8yej9ej:B ejB Z;W n e<k
�rê   dZ;Y nX d1d2„ Z=d3d„ Z>d4d„ Z?da@d5d
„ ZAd6d„ ZBdJd8d„ZCdKd9d„ZDd:e#dfd;d„ZEG d<d=„ d=ƒZFG d>d?„ d?ƒZGdMdCd „ZHejIdDk�s|ejJjKdEk�r‚eHZLneedFƒaMdOdGd„ZLG dHd„ dƒZNG dId„ deOƒZPdS )PÚNamedTemporaryFileÚTemporaryFileÚSpooledTemporaryFileÚTemporaryDirectoryÚmkstempÚmkdtempÚmktempÚTMP_MAXÚgettempprefixÚtempdirÚ
gettempdirÚgettempprefixbÚgettempdirbé    N)ÚRandom)ÚS_ISLNKÚ
O_NOFOLLOWÚO_BINARYi'  ZtmpÚlstatÚstatc             C   s   t j| t jƒ}t j|ƒ d S )N)Ú_osÚopenÚO_RDONLYÚclose)ÚfnÚfd© r   ú /usr/lib64/python3.6/tempfile.pyÚ_statU   s    r   c             C   s*   yt | ƒ W n tk
r    dS X dS d S )NFT)r   ÚOSError)r   r   r   r   Ú_existsY   s
    r   c              G   s`   d }xJ| D ]B}|d krq
t |tƒr8|tkr2tdƒ‚t}q
|tkrHtdƒ‚t}q
W |d kr\tS |S )Nz1Can't mix bytes and non-bytes in path components.)Ú
isinstanceÚbytesÚstrÚ	TypeError)ÚargsZreturn_typeÚargr   r   r   Ú_infer_return_typeb   s    

r&   c             C   sd   t | ||ƒ}|d kr|ƒ }| d kr:|tkr0t} n
tjtƒ} |d krX|tkrRtƒ }ntƒ }| |||fS )N)r&   r"   Útemplater   Úfsencoder   r   )ÚprefixÚsuffixÚdirÚoutput_typer   r   r   Ú_sanitize_paramsw   s    
r-   c               @   s,   e Zd ZdZedd„ ƒZdd„ Zdd„ ZdS )	Ú_RandomNameSequenceZ%abcdefghijklmnopqrstuvwxyz0123456789_c             C   s,   t jƒ }|t| dd ƒkr&tƒ | _|| _| jS )NÚ_rng_pid)r   ÚgetpidÚgetattrÚ_RandomZ_rngr/   )ÚselfZcur_pidr   r   r   Úrng“   s
    z_RandomNameSequence.rngc             C   s   | S )Nr   )r3   r   r   r   Ú__iter__›   s    z_RandomNameSequence.__iter__c                s0   | j ‰ | jj‰‡ ‡fdd„tdƒD ƒ}dj|ƒS )Nc                s   g | ]}ˆˆ ƒ‘qS r   r   )Ú.0Zdummy)ÚcÚchooser   r   ú
<listcomp>¡   s    z0_RandomNameSequence.__next__.<locals>.<listcomp>é   Ú )Ú
charactersr4   ZchoiceÚrangeÚjoin)r3   Zlettersr   )r7   r8   r   Ú__next__ž   s    z_RandomNameSequence.__next__N)Ú__name__Ú
__module__Ú__qualname__r<   Úpropertyr4   r5   r?   r   r   r   r   r.   ‰   s   r.   c              C   s¨   g } x$dD ]}t j|ƒ}|r
| j|ƒ q
W t jdkr\| jt jjdƒt jjdƒddd	d
gƒ n| jdddgƒ y| jt jƒ ƒ W n$ t	t
fk
r¢   | jt jƒ Y nX | S )NÚTMPDIRÚTEMPÚTMPÚntz~\AppData\Local\Tempz%SYSTEMROOT%\Tempzc:\tempzc:\tmpz\tempz\tmpz/tmpz/var/tmpz/usr/tmp)rD   rE   rF   )r   ÚgetenvÚappendÚnameÚextendÚpathÚ
expanduserÚ
expandvarsÚgetcwdÚAttributeErrorr   Úcurdir)ÚdirlistZenvnameÚdirnamer   r   r   Ú_candidate_tempdir_list¤   s    

 

rT   c              C   s4  t ƒ } tƒ }�x|D �]}|tjkr0tjj|ƒ}xêtdƒD ]Þ}t| ƒ}tjj||ƒ}y\tj	|t
dƒ}z<z*tj	|ddd��}|jdƒ W d Q R X W d tj|ƒ X W d tj|ƒ X |S  tk
rÄ   Y q: tk
�r    tjdkrútjj|ƒrútj|tjƒrúw:P Y q: tk
�r   P Y q:X q:W qW ttjd| ƒ‚d S )	Néd   i€  ÚwbF)Úclosefds   blatrG   z)No usable temporary directory found in %s)r.   rT   r   rQ   rL   Úabspathr=   Únextr>   r   Ú_bin_openflagsÚ_ioÚwriter   ÚunlinkÚFileExistsErrorÚPermissionErrorrJ   ÚisdirÚaccessÚW_OKr   ÚFileNotFoundErrorÚ_errnoÚENOENT)ZnamerrR   r+   ÚseqrJ   Úfilenamer   Úfpr   r   r   Ú_get_default_tempdir¿   s:    	
ri   c            
   C   s2   t d kr.tjƒ  zt d kr tƒ a W d tjƒ  X t S )N)Ú_name_sequenceÚ
_once_lockÚacquirer.   Úreleaser   r   r   r   Ú_get_candidate_namesî   s    

rn   c       
      C   sÎ   t ƒ }|tkrttj|ƒ}x¢ttƒD ]–}t|ƒ}tjj	| || | ƒ}ytj
||dƒ}	W nR tk
rn   w$Y n> tk
rª   tjdkr¤tjj| ƒr¤tj| tjƒr¤w$n‚ Y nX |	tjj|ƒfS W ttjdƒ‚d S )Ni€  rG   z#No usable temporary file name found)rn   r!   Úmapr   r(   r=   r   rY   rL   r>   r   r^   r_   rJ   r`   ra   rb   rX   rd   ÚEEXIST)
r+   ZpreZsufÚflagsr,   Únamesrf   rJ   Úfiler   r   r   r   Ú_mkstemp_innerü   s$    rt   c             G   sJ   | t jkr | |f|žddiŽ n&t jdks8t jj|ƒ rF| |f|žŽ  d S )NÚfollow_symlinksFrG   )r   Úsupports_follow_symlinksrJ   rL   Úislink)ÚfuncrL   r$   r   r   r   Ú_dont_follow_symlinks  s    
ry   c             C   s0   y
t j}W n tk
r   Y nX t|| dƒ d S )Nr   )r   ÚchflagsrP   ry   )rL   rz   r   r   r   Ú_resetflags   s
    
r{   c             C   s   t | ƒ ttj| dƒ d S )NiÀ  )r{   ry   r   Úchmod)rL   r   r   r   Ú_resetperms(  s    r}   c             C   s,   | d krt |ƒ d S t|ƒ tj| dƒ d S )NiÀ  )r}   r{   r   r|   )Údir_fdrL   r   r   r   Ú_resetperms_fd3  s
    r   c             C   s¼   |d krt |ƒ d S t|ƒ tjtjkr<tj| d|dd� n|td k	r�ytj| t|d�}W n tk
rl   Y n$X ztj|dƒ W d tj|ƒ X d S tj	| |d�}t
|jƒs¸tj| d|d� d S )NiÀ  F)r~   ru   )r~   )r}   r{   r   r|   rv   Ú_nofollow_moder   r   r   r   Ú_S_ISLNKÚst_mode)rJ   r~   rL   r   r   r   r   r   Ú_resetperms_at@  s$    
rƒ   c               C   s   t S )N)r'   r   r   r   r   r	   a  s    c               C   s   t jtƒ ƒS )N)r   r(   r	   r   r   r   r   r   e  s    c            
   C   s2   t d kr.tjƒ  zt d kr tƒ a W d tjƒ  X t S )N)r
   rk   rl   ri   rm   r   r   r   r   r   k  s    

c               C   s   t jtƒ ƒS )N)r   r(   r   r   r   r   r   r   w  s    Fc             C   s2   t || |ƒ\}} }}|rt}nt}t||| ||ƒS )N)r-   Ú_text_openflagsrZ   rt   )r*   r)   r+   Útextr,   rq   r   r   r   r   {  s
    c             C   sÔ   t || |ƒ\}} }}tƒ }|tkr.ttj|ƒ}x”ttƒD ]ˆ}t|ƒ}tj	j
||| |  ƒ}ytj|dƒ W nR tk
r€   w8Y n> tk
r¼   tjdkr¶tj	j|ƒr¶tj|tjƒr¶w8n‚ Y nX |S W ttjdƒ‚d S )NiÀ  rG   z(No usable temporary directory name found)r-   rn   r!   ro   r   r(   r=   r   rY   rL   r>   Úmkdirr^   r_   rJ   r`   ra   rb   rd   rp   )r*   r)   r+   r,   rr   rf   rJ   rs   r   r   r   r   £  s&    r;   c             C   s`   |d krt ƒ }tƒ }x:ttƒD ].}t|ƒ}tjj||| |  ƒ}t|ƒs|S qW t	t
jdƒ‚d S )Nz"No usable temporary filename found)r   rn   r=   r   rY   r   rL   r>   r   r^   rd   rp   )r*   r)   r+   rr   rf   rJ   rs   r   r   r   r   Ê  s    c               @   sH   e Zd ZdZdZddd„Zejdkr<ejfdd„Z	d	d
„ Z
ndd„ Z	dS )Ú_TemporaryFileCloserNFTc             C   s   || _ || _|| _d S )N)rs   rJ   Údelete)r3   rs   rJ   rˆ   r   r   r   Ú__init__ò  s    z_TemporaryFileCloser.__init__rG   c             C   s>   | j  r:| jd k	r:d| _ z| jjƒ  W d | jr8|| jƒ X d S )NT)Úclose_calledrs   r   rˆ   rJ   )r3   r]   r   r   r   r     s    z_TemporaryFileCloser.closec             C   s   | j ƒ  d S )N)r   )r3   r   r   r   Ú__del__  s    z_TemporaryFileCloser.__del__c             C   s   | j sd| _ | jjƒ  d S )NT)rŠ   rs   r   )r3   r   r   r   r     s    )T)r@   rA   rB   rs   rŠ   r‰   r   rJ   r]   r   r‹   r   r   r   r   r‡   ê  s   



r‡   c               @   s>   e Zd Zddd„Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ ZdS )Ú_TemporaryFileWrapperTc             C   s$   || _ || _|| _t|||ƒ| _d S )N)rs   rJ   rˆ   r‡   Ú_closer)r3   rs   rJ   rˆ   r   r   r   r‰     s    z_TemporaryFileWrapper.__init__c                s^   | j d }t||ƒ}t|dƒrD|‰ tjˆ ƒ‡ fdd„ƒ}| j|_|}t|tƒsZt| ||ƒ |S )Nrs   Ú__call__c                 s
   ˆ | |ŽS )Nr   )r$   Úkwargs)rx   r   r   Úfunc_wrapper+  s    z7_TemporaryFileWrapper.__getattr__.<locals>.func_wrapper)	Ú__dict__r1   ÚhasattrÚ
_functoolsÚwrapsr�   r    ÚintÚsetattr)r3   rJ   rs   Úar�   r   )rx   r   Ú__getattr__#  s    



z!_TemporaryFileWrapper.__getattr__c             C   s   | j jƒ  | S )N)rs   Ú	__enter__)r3   r   r   r   r™   8  s    
z_TemporaryFileWrapper.__enter__c             C   s   | j j|||ƒ}| jƒ  |S )N)rs   Ú__exit__r   )r3   ÚexcÚvalueÚtbÚresultr   r   r   rš   >  s    z_TemporaryFileWrapper.__exit__c             C   s   | j jƒ  d S )N)r�   r   )r3   r   r   r   r   C  s    z_TemporaryFileWrapper.closec             c   s   x| j D ]
}|V  qW d S )N)rs   )r3   Úliner   r   r   r5   J  s    z_TemporaryFileWrapper.__iter__N)T)	r@   rA   rB   r‰   r˜   r™   rš   r   r5   r   r   r   r   rŒ     s   
rŒ   úw+bé   Tc             C   s”   t |||ƒ\}}}}t}	tjdkr0|r0|	tjO }	t||||	|ƒ\}
}y tj|
| |||d�}t|||ƒS  t	k
rŽ   tj
|ƒ tj|
ƒ ‚ Y nX d S )NrG   )Ú	bufferingÚnewlineÚencoding)r-   rZ   r   rJ   ZO_TEMPORARYrt   r[   r   rŒ   ÚBaseExceptionr]   r   )Úmoder¢   r¤   r£   r*   r)   r+   rˆ   r,   rq   r   rJ   rs   r   r   r   r   T  s    




ÚposixÚcygwinÚ	O_TMPFILEc             C   sê   t |||ƒ\}}}}t}tršy$|tjB tj @ }	tj||	dƒ}
W n* tk
rX   daY nB tk
rj   Y n0X yt	j|
| |||d�S    tj
|
ƒ ‚ Y nX t|||||ƒ\}
}ytj|ƒ t	j|
| |||d�S    tj
|
ƒ ‚ Y nX d S )Ni€  F)r¢   r£   r¤   )r-   rZ   Ú_O_TMPFILE_WORKSr   r©   ÚO_CREATr   ÚIsADirectoryErrorr   r[   r   rt   r]   )r¦   r¢   r¤   r£   r*   r)   r+   r,   rq   Zflags2r   rJ   r   r   r   r   …  s0    






c               @   sì   e Zd ZdZd7dd„Zdd	„ Zd
d„ Zdd„ Zdd„ Zdd„ Z	dd„ Z
edd„ ƒZedd„ ƒZdd„ Zdd„ Zdd„ Zedd„ ƒZed d!„ ƒZed"d#„ ƒZd$d%„ Zd&d'„ Zd(d)„ Zd*d+„ Zed,d-„ ƒZd.d/„ Zd8d0d1„Zd2d3„ Zd4d5„ ZdS )9r   Fr   úw+br¡   Nc	       	      C   sH   d|krt jƒ | _nt jdd�| _|| _d| _|||||||dœ| _d S )NÚbÚ
)r£   F)r¦   r¢   r*   r)   r¤   r£   r+   )r[   ÚBytesIOÚ_fileÚStringIOÚ	_max_sizeÚ_rolledÚ_TemporaryFileArgs)	r3   Úmax_sizer¦   r¢   r¤   r£   r*   r)   r+   r   r   r   r‰   Æ  s    zSpooledTemporaryFile.__init__c             C   s,   | j r
d S | j}|r(|jƒ |kr(| jƒ  d S )N)r´   r³   ÚtellÚrollover)r3   rs   r¶   r   r   r   Ú_check×  s
     zSpooledTemporaryFile._checkc             C   sN   | j r
d S | j}tf | jŽ }| _| `|j|jƒ ƒ |j|jƒ dƒ d| _ d S )Nr   T)r´   r±   r   rµ   r\   ÚgetvalueÚseekr·   )r3   rs   Znewfiler   r   r   r¸   Ý  s     zSpooledTemporaryFile.rolloverc             C   s   | j jrtdƒ‚| S )Nz%Cannot enter context with closed file)r±   ÚclosedÚ
ValueError)r3   r   r   r   r™   î  s    zSpooledTemporaryFile.__enter__c             C   s   | j jƒ  d S )N)r±   r   )r3   r›   rœ   r�   r   r   r   rš   ó  s    zSpooledTemporaryFile.__exit__c             C   s
   | j jƒ S )N)r±   r5   )r3   r   r   r   r5   ÷  s    zSpooledTemporaryFile.__iter__c             C   s   | j jƒ  d S )N)r±   r   )r3   r   r   r   r   ú  s    zSpooledTemporaryFile.closec             C   s   | j jS )N)r±   r¼   )r3   r   r   r   r¼   ý  s    zSpooledTemporaryFile.closedc             C   s8   y| j jS  tk
r2   d| jd kr(‚ | jd S X d S )Nr®   r¦   r¤   )r±   r¤   rP   rµ   )r3   r   r   r   r¤     s    zSpooledTemporaryFile.encodingc             C   s   | j ƒ  | jjƒ S )N)r¸   r±   Úfileno)r3   r   r   r   r¾   
  s    zSpooledTemporaryFile.filenoc             C   s   | j jƒ  d S )N)r±   Úflush)r3   r   r   r   r¿     s    zSpooledTemporaryFile.flushc             C   s
   | j jƒ S )N)r±   Úisatty)r3   r   r   r   rÀ     s    zSpooledTemporaryFile.isattyc             C   s(   y| j jS  tk
r"   | jd S X d S )Nr¦   )r±   r¦   rP   rµ   )r3   r   r   r   r¦     s    zSpooledTemporaryFile.modec             C   s"   y| j jS  tk
r   d S X d S )N)r±   rJ   rP   )r3   r   r   r   rJ     s    zSpooledTemporaryFile.namec             C   s8   y| j jS  tk
r2   d| jd kr(‚ | jd S X d S )Nr®   r¦   r£   )r±   ÚnewlinesrP   rµ   )r3   r   r   r   rÁ   "  s    zSpooledTemporaryFile.newlinesc             G   s   | j j|Ž S )N)r±   Úread)r3   r$   r   r   r   rÂ   +  s    zSpooledTemporaryFile.readc             G   s   | j j|Ž S )N)r±   Úreadline)r3   r$   r   r   r   rÃ   .  s    zSpooledTemporaryFile.readlinec             G   s   | j j|Ž S )N)r±   Ú	readlines)r3   r$   r   r   r   rÄ   1  s    zSpooledTemporaryFile.readlinesc             G   s   | j j|Ž  d S )N)r±   r»   )r3   r$   r   r   r   r»   4  s    zSpooledTemporaryFile.seekc             C   s   | j jS )N)r±   Ú	softspace)r3   r   r   r   rÅ   7  s    zSpooledTemporaryFile.softspacec             C   s
   | j jƒ S )N)r±   r·   )r3   r   r   r   r·   ;  s    zSpooledTemporaryFile.tellc             C   s6   |d kr| j jƒ  n|| jkr&| jƒ  | j j|ƒ d S )N)r±   Útruncater³   r¸   )r3   Úsizer   r   r   rÆ   >  s
    
zSpooledTemporaryFile.truncatec             C   s   | j }|j|ƒ}| j|ƒ |S )N)r±   r\   r¹   )r3   Úsrs   Úrvr   r   r   r\   F  s    

zSpooledTemporaryFile.writec             C   s   | j }|j|ƒ}| j|ƒ |S )N)r±   Ú
writelinesr¹   )r3   Úiterablers   rÉ   r   r   r   rÊ   L  s    

zSpooledTemporaryFile.writelineséÿÿÿÿ)r   r­   rÌ   NNNNN)N)r@   rA   rB   r´   r‰   r¹   r¸   r™   rš   r5   r   rC   r¼   r¤   r¾   r¿   rÀ   r¦   rJ   rÁ   rÂ   rÃ   rÄ   r»   rÅ   r·   rÆ   r\   rÊ   r   r   r   r   r   ¿  s6     
		
c               @   sP   e Zd Zddd„Zeddd„ƒZedd„ ƒZd	d
„ Zdd„ Zdd„ Z	dd„ Z
dS )r   Nc             C   s0   t |||ƒ| _tj| | j| jdj| ƒd�| _d S )NzImplicitly cleaning up {!r})Úwarn_message)r   rJ   Ú_weakrefÚfinalizeÚ_cleanupÚformatÚ
_finalizer)r3   r*   r)   r+   r   r   r   r‰   _  s    
zTemporaryDirectory.__init__Fc                s8   ˆd krˆ‰d‡ ‡‡‡‡fdd„	}t jˆ||dd� d S )Nc                sj  t |d tƒ�rLˆr&|ˆkr&ˆr$d S ‚ ˆ|tˆƒd …  }|d ksHt rT|d  }}n|d krb|}n|}y¬|ˆkr‚t|tjj|ƒƒ t|||ƒ ytj	||d� W nn t
k
rÌ   ˆ j|ˆ|ˆk||d� Y nD tk
�r   tjj|ƒsòˆrðd S ‚ ˆ j|ˆ|ˆk||d� Y nX W n6 tk
�r(   Y n" tk
�rH   ˆ�rBd S ‚ Y nX nt |d tƒ�r^nˆ�sf‚ d S )Nr   )r~   )Úignore_errorsÚrepeatedr~   Úfullname)Ú
issubclassr_   ÚlenÚ_rmtree_use_dir_fdr   r   rL   rS   rƒ   r]   r¬   Ú_rmtreer`   rc   r   )rx   rL   Úexc_infoZ
entry_namer~   ZfullpathÚbase)ÚclsrÕ   rÓ   rJ   rÔ   r   r   Úonerrork  sN    
z+TemporaryDirectory._rmtree.<locals>.onerrorT)rÝ   r~   Z_onexc_kwargs)NN)Ú_shutilZrmtree)rÜ   rJ   rÓ   rÔ   r~   rÕ   rÝ   r   )rÜ   rÕ   rÓ   rJ   rÔ   r   rÙ   e  s
    ;
zTemporaryDirectory._rmtreec             C   s   | j |ƒ tj|tƒ d S )N)rÙ   Ú	_warningsÚwarnÚResourceWarning)rÜ   rJ   rÍ   r   r   r   rÐ   ©  s    
zTemporaryDirectory._cleanupc             C   s   dj | jj| jƒS )Nz	<{} {!r}>)rÑ   Ú	__class__r@   rJ   )r3   r   r   r   Ú__repr__®  s    zTemporaryDirectory.__repr__c             C   s   | j S )N)rJ   )r3   r   r   r   r™   ±  s    zTemporaryDirectory.__enter__c             C   s   | j ƒ  d S )N)Úcleanup)r3   r›   rœ   r�   r   r   r   rš   ´  s    zTemporaryDirectory.__exit__c             C   s   | j jƒ r| j| jƒ d S )N)rÒ   ÚdetachrÙ   rJ   )r3   r   r   r   rä   ·  s    
zTemporaryDirectory.cleanup)NNN)FFNN)r@   rA   rB   r‰   ÚclassmethodrÙ   rÐ   rã   r™   rš   rä   r   r   r   r   r   S  s   
 B)NNNF)NNNrÌ   )r    rÌ   NNNNNTrÌ   )r    rÌ   NNNNN)QÚ__all__Ú	functoolsr“   Úwarningsrß   Úior[   Úosr   ZshutilrÞ   Úerrnord   Zrandomr   r2   r   r   r�   ÚweakrefrÎ   Ú_threadÚImportErrorZ_dummy_threadÚallocate_lockZ_allocate_lockÚO_RDWRr«   ÚO_EXCLr„   r’   r   rZ   r   r   r'   rk   r   r   r   r&   r-   r.   rT   ri   rj   rn   rt   ry   r{   r}   r|   r]   Úsupports_dir_fdÚsupports_fdrØ   r   r   Ú
O_NONBLOCKr€   rP   rƒ   r	   r   r
   r   r   r   r   r   r‡   rŒ   r   rJ   ÚsysÚplatformr   rª   r   Úobjectr   r   r   r   r   Ú<module>   sœ   




	-
!
(
' +?  
$
  
8 