Current File : //opt/imh-python/lib/python3.9/__pycache__/tempfile.cpython-39.opt-2.pyc
a

-�h�k�@s�gd�ZddlZddlZddlZddlZddl	Z
ddlZddl
mZddlZddlZddlZddlZejZejejBejBZeed�r�eejOZeZeed�r�eej OZeed�r�ej!Z!ndZ!dZ"e�Z#d	d
�Z$dd�Z%d
d�Z&Gdd�d�Z'dd�Z(dd�Z)da*dd�Z+dd�Z,dd�Z-dd�Z.da/dd�Z0dd �Z1d<d"d#�Z2d=d$d%�Z3d&e"dfd'd(�Z4Gd)d*�d*�Z5Gd+d,�d,�Z6d>dd0�d1d2�Z7ej8d3k�s�ej9d4k�r�e7Z:need5�a;d?dd0�d6d7�Z:Gd8d9�d9�Z<Gd:d;�d;e=�Z>dS)@)
�NamedTemporaryFile�
TemporaryFile�SpooledTemporaryFile�TemporaryDirectory�mkstemp�mkdtemp�mktemp�TMP_MAX�
gettempprefix�tempdir�
gettempdir�gettempprefixb�gettempdirb�N)�Random�
O_NOFOLLOW�O_BINARYri'�tmpcCs,zt�|�Wnty"YdS0dSdS)NFT)�_os�lstat�OSError)�fn�r�)/opt/imh-python/lib/python3.9/tempfile.py�_existsLs
rcGs\d}|D]B}|durqt|t�r6|tur0td��t}q|turFtd��t}q|durXtS|S)Nz1Can't mix bytes and non-bytes in path components.)�
isinstance�bytes�str�	TypeError)�args�return_type�argrrr�_infer_return_typeUs
r!cCsdt|||�}|dur|�}|dur:|tur0t}n
t�t�}|durX|turRt�}nt�}||||fS�N)r!r�templater�fsencoderr
)�prefix�suffix�dir�output_typerrr�_sanitize_paramsjs
r)c@s,eZdZdZedd��Zdd�Zdd�ZdS)	�_RandomNameSequence�%abcdefghijklmnopqrstuvwxyz0123456789_cCs,t��}|t|dd�kr&t�|_||_|jS)N�_rng_pid)r�getpid�getattr�_Random�_rngr,)�self�cur_pidrrr�rng�s
z_RandomNameSequence.rngcCs|Sr"r�r1rrr�__iter__�sz_RandomNameSequence.__iter__cs0|j�|jj���fdd�td�D�}d�|�S)Ncsg|]}����qSrr)�.0�dummy��c�chooserr�
<listcomp>��z0_RandomNameSequence.__next__.<locals>.<listcomp>��)�
charactersr3�choice�range�join)r1�lettersrr8r�__next__�sz_RandomNameSequence.__next__N)�__name__�
__module__�__qualname__r?�propertyr3r5rDrrrrr*|s

r*c	Cs�g}dD]}t�|�}|r|�|�qtjdkrX|�tj�d�tj�d�ddddg�n|�gd	��z|�t���Wn"t	t
fy�|�tj�Yn0|S)
N)�TMPDIR�TEMP�TMP�ntz~\AppData\Local\Tempz%SYSTEMROOT%\Tempzc:\tempzc:\tmpz\tempz\tmp)z/tmpz/var/tmpz/usr/tmp)r�getenv�append�name�extend�path�
expanduser�
expandvars�getcwd�AttributeErrorr�curdir)�dirlist�envname�dirnamerrr�_candidate_tempdir_list�s


�rZcCsht�}t�}|D�]@}|tjkr,tj�|�}td�D�]}t|�}tj�||�}z�t�	|t
d�}zdzHtj	|ddd��}|�d�Wd�n1s�0YWt�
|�nt�
|�0Wt�|�nt�|�0|WSty�Yq4t�y6tjdk�r,tj�|��r,t�|tj��r,Yq4YqYq4t�yNYqYq40q4qttjd|��dS)	N�d��wbF)�closefdsblatrLz)No usable temporary directory found in %s)r*rZrrVrQ�abspathrA�nextrB�open�_bin_openflags�_io�write�close�unlink�FileExistsError�PermissionErrorrO�isdir�access�W_OKr�FileNotFoundError�_errno�ENOENT)�namerrWr'�seqrO�filename�fd�fprrr�_get_default_tempdir�s@	

*�
��rtcCs:tdur6t��ztdur t�aWt��n
t��0tSr")�_name_sequence�
_once_lock�acquirer*�releaserrrr�_get_candidate_names�sryc
	Cs�t�}|turttj|�}tt�D]�}t|�}tj�	||||�}t
�d|�zt�||d�}	WnRt
yxYq"Yn>ty�tjdkr�tj�|�r�t�|tj�r�Yq"n�Yn0|	tj�|�fSt
tjd��dS)Nztempfile.mkstempr\rLz#No usable temporary file name found)ryr�maprr$rArr`rQrB�_sys�auditrargrhrOrirjrkr_rm�EEXIST)
r'�pre�suf�flagsr(�namesrprO�filerrrrr�_mkstemp_inner�s*��r�cCstSr")r#rrrrr	sr	cCst�t��Sr")rr$r	rrrrrsrcCs:tdur6t��ztdur t�aWt��n
t��0tSr")r
rvrwrtrxrrrrrsrcCst�t��Sr")rr$rrrrrr
$sr
FcCs2t|||�\}}}}|rt}nt}t|||||�Sr")r)�_text_openflagsrbr�)r&r%r'�textr(r�rrrr(s
rc	Cs�t|||�\}}}}t�}|tur.ttj|�}tt�D]�}t|�}tj	�
||||�}t�d|�zt�
|d�WnRty�Yq6Yn>ty�tjdkr�tj	�|�r�t�|tj�r�Yq6n�Yn0|Sttjd��dS)Nztempfile.mkdtemp�rLz(No usable temporary directory name found)r)ryrrzrr$rArr`rQrBr{r|�mkdirrgrhrOrirjrkrmr})r&r%r'r(r�rprOr�rrrrOs,
��rr>cCs`|durt�}t�}tt�D]2}t|�}tj�||||�}t|�s|Sqt	t
jd��dS)Nz"No usable temporary filename found)rryrArr`rrQrBrrgrmr})r&r%r'r�rprOr�rrrrws
�rc@sHeZdZdZdZddd�Zejdkr<ejfdd�Z	d	d
�Z
ndd�Z	dS)
�_TemporaryFileCloserNFTcCs||_||_||_dSr")r�rO�delete�r1r�rOr�rrr�__init__�sz_TemporaryFileCloser.__init__rLcCsL|jsH|jdurHd|_z|j��W|jrH||j�n|jrF||j�0dS�NT)�close_calledr�rer�rO)r1rfrrrre�s�z_TemporaryFileCloser.closecCs|��dSr")rer4rrr�__del__�sz_TemporaryFileCloser.__del__cCs|jsd|_|j��dSr�)r�r�rer4rrrre�s)T)rErFrGr�r�r�rrOrfrer�rrrrr��s



r�c@s>eZdZddd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�ZdS)�_TemporaryFileWrapperTcCs$||_||_||_t|||�|_dSr")r�rOr�r��_closerr�rrrr��sz_TemporaryFileWrapper.__init__cs^|jd}t||�}t|d�rD|�t����fdd��}|j|_|}t|t�sZt|||�|S)Nr��__call__cs�|i|��Sr"r)r�kwargs��funcrr�func_wrapper�sz7_TemporaryFileWrapper.__getattr__.<locals>.func_wrapper)	�__dict__r.�hasattr�
_functools�wrapsr�r�int�setattr)r1rOr��ar�rr�r�__getattr__�s



z!_TemporaryFileWrapper.__getattr__cCs|j��|Sr")r��	__enter__r4rrrr��s
z_TemporaryFileWrapper.__enter__cCs|j�|||�}|��|Sr")r��__exit__re)r1�exc�value�tb�resultrrrr��sz_TemporaryFileWrapper.__exit__cCs|j��dSr")r�rer4rrrre�sz_TemporaryFileWrapper.closeccs|jD]
}|VqdSr")r�)r1�linerrrr5�s
z_TemporaryFileWrapper.__iter__N)T)	rErFrGr�r�r�r�rer5rrrrr��s
r��w+b���T��errorscCs�t|||�\}}}}	t}
tjdkr0|r0|
tjO}
t||||
|	�\}}z$tj||||||d�}
t|
||�WSt	y�t�
|�t�|��Yn0dS)NrL��	buffering�newline�encodingr�)r)rbrrO�O_TEMPORARYr�rcrar��
BaseExceptionrfre)�moder�r�r�r&r%r'r�r�r(r�rrrOr�rrrrs

�

r�posix�cygwin�	O_TMPFILEc
Cs�t|||�\}}}}t}	tr�z$|	tjBtj@}
t�||
d�}Wn&tyVdaYnDtyfYn40zt	j||||||d�WSt�
|��Yn0t||||	|�\}}z"t�|�t	j||||||d�WSt�
|��Yn0dS)Nr\Fr�)
r)rb�_O_TMPFILE_WORKSrr��O_CREATra�IsADirectoryErrorrrcrer�rf)
r�r�r�r�r&r%r'r�r(r��flags2rrrOrrrr3s6
�


�
rc@s�eZdZdZd7dd�dd�Zeej�Zd	d
�Z	dd�Z
d
d�Zdd�Zdd�Z
dd�Zedd��Zedd��Zedd��Zdd�Zdd�Zdd �Zed!d"��Zed#d$��Zed%d&��Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd8d1d2�Zd3d4�Zd5d6�Z dS)9rFrr�r�Nr�c	
	CsTd|vrt��|_ntjt��||	|d�|_||_d|_||||||||	d�|_dS)N�b)r�r�r�F)r�r�r&r%r�r�r'r�)rc�BytesIO�_file�
TextIOWrapper�	_max_size�_rolled�_TemporaryFileArgs)
r1�max_sizer�r�r�r�r&r%r'r�rrrr�vs
��zSpooledTemporaryFile.__init__cCs,|jr
dS|j}|r(|��|kr(|��dSr")r�r��tell�rollover)r1r�r�rrr�_check�s
zSpooledTemporaryFile._checkcCsv|jr
dS|j}tfi|j��}|_|`|��}t|d�rR|j�|���	��n|�|�	��|�
|d�d|_dS)N�bufferrT)r�r�rr�r�r�r�rd�detach�getvalue�seek)r1r��newfile�posrrrr��s

zSpooledTemporaryFile.rollovercCs|jjrtd��|S)Nz%Cannot enter context with closed file)r��closed�
ValueErrorr4rrrr��szSpooledTemporaryFile.__enter__cCs|j��dSr"�r�re�r1r�r�r�rrrr��szSpooledTemporaryFile.__exit__cCs
|j��Sr")r�r5r4rrrr5�szSpooledTemporaryFile.__iter__cCs|j��dSr"r�r4rrrre�szSpooledTemporaryFile.closecCs|jjSr")r�r�r4rrrr��szSpooledTemporaryFile.closedcCs|jjSr")r�r�r4rrrr��szSpooledTemporaryFile.encodingcCs|jjSr")r�r�r4rrrr��szSpooledTemporaryFile.errorscCs|��|j��Sr")r�r��filenor4rrrr��szSpooledTemporaryFile.filenocCs|j��dSr")r��flushr4rrrr��szSpooledTemporaryFile.flushcCs
|j��Sr")r��isattyr4rrrr��szSpooledTemporaryFile.isattycCs,z
|jjWSty&|jdYS0dS)Nr�)r�r�rUr�r4rrrr��s
zSpooledTemporaryFile.modecCs$z
|jjWStyYdS0dSr")r�rOrUr4rrrrO�s
zSpooledTemporaryFile.namecCs|jjSr")r��newlinesr4rrrr��szSpooledTemporaryFile.newlinescGs|jj|�Sr")r��read�r1rrrrr��szSpooledTemporaryFile.readcGs|jj|�Sr")r��readliner�rrrr��szSpooledTemporaryFile.readlinecGs|jj|�Sr")r��	readlinesr�rrrr��szSpooledTemporaryFile.readlinescGs|jj|�Sr")r�r�r�rrrr��szSpooledTemporaryFile.seekcCs
|j��Sr")r�r�r4rrrr��szSpooledTemporaryFile.tellcCs6|dur|j��n||jkr&|��|j�|�dSr")r��truncater�r�)r1�sizerrrr��s

zSpooledTemporaryFile.truncatecCs|j}|�|�}|�|�|Sr")r�rdr�)r1�sr��rvrrrrd�s

zSpooledTemporaryFile.writecCs|j}|�|�}|�|�|Sr")r��
writelinesr�)r1�iterabler�r�rrrr��s

zSpooledTemporaryFile.writelines)rr�r�NNNNN)N)!rErFrGr�r��classmethod�_types�GenericAlias�__class_getitem__r�r�r�r�r5rerHr�r�r�r�r�r�r�rOr�r�r�r�r�r�r�rdr�rrrrrosJ��







rc@sXeZdZddd�Zedd��Zedd��Zdd	�Zd
d�Zdd
�Z	dd�Z
eej�Z
dS)rNcCs0t|||�|_tj||j|jd�|�d�|_dS)NzImplicitly cleaning up {!r})�warn_message)rrO�_weakref�finalize�_cleanup�format�
_finalizer)r1r&r%r'rrrr�
s

�zTemporaryDirectory.__init__cs ��fdd�}tj�|d�dS)Nc	s�t|dt�r�dd�}zT|�kr0|tj�|��||�zt�|�Wn ttfyf��|�Yn0Wq�ty|Yq�0nt|dt�r�n�dS)NrcSs4zt�|d�Wnty"Yn0t�|d�dS)Nrr�)r�chflagsrU�chmod)rQrrr�
resetpermss
z?TemporaryDirectory._rmtree.<locals>.onerror.<locals>.resetperms)	�
issubclassrhrrQrYrfr��_rmtreerl)r�rQ�exc_infor���clsrOrr�onerrorsz+TemporaryDirectory._rmtree.<locals>.onerror)r�)�_shutil�rmtree)r�rOr�rr�rr�szTemporaryDirectory._rmtreecCs|�|�t�|t�dSr")r��	_warnings�warn�ResourceWarning)r�rOr�rrrr�.s
zTemporaryDirectory._cleanupcCsd�|jj|j�S)Nz	<{} {!r}>)r��	__class__rErOr4rrr�__repr__3szTemporaryDirectory.__repr__cCs|jSr")rOr4rrrr�6szTemporaryDirectory.__enter__cCs|��dSr")�cleanupr�rrrr�9szTemporaryDirectory.__exit__cCs|j��r|�|j�dSr")r�r�r�rOr4rrrr�<s
zTemporaryDirectory.cleanup)NNN)rErFrGr�r�r�r�r�r�r�r�r�r�r�rrrrr�s


r)NNNF)NNN)r�r�NNNNNT)r�r�NNNNN)?�__all__�	functoolsr��warningsr��iorc�osr�shutilr��errnorm�randomrr/�sysr{�typesr��weakrefr��_thread�
allocate_lock�_allocate_lock�O_RDWRr��O_EXCLr�r�rrbrrr#rvrr!r)r*rZrtruryr�r	rr
rr
rrrr�r�rrO�platformrr�r�objectrrrrr�<module>sx





	-
'
( +?��'
��<