View file File name : tempfile.cpython-38.pyc Content :U �;rc{ � @ st d Z ddddddddd d ddd g ZddlZddlZddlZddlZ zddl ZejZ W np ek r� ddlZddlZdd� Zdd� Ze je je je jhe jko�e je jko�e je jkZdCdd�Z Y nX ddlZddlm Z! ddlZddl"Z#ddl$Z$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��rNe j/Z/ndZ/dZ0e&� Z1dd� Z2dd� Z3d d!� Z4G d"d#� d#�Z5d$d%� Z6d&d'� Z7da8d(d)� Z9d*d+� Z:d,d � Z;d-d� Z<da=d.d� Z>d/d � Z?dDd0d�Z@dEd1d�ZAd2e0dfd3d�ZBG d4d5� d5�ZCG d6d7� d7�ZDdFdd;�d<d�ZEe jFd=k�s2ejGd>k�r8eEZHne+e d?�aIdGdd;�d@d�ZHG dAd� d�ZJG dBd� deK�ZLdS )Ha� Temporary files. This module provides generic, low- and high-level interfaces for creating temporary files and directories. All of the interfaces provided by this module can be used without fear of race conditions except for 'mktemp'. 'mktemp' is subject to race conditions and should not be used; it is provided for backward compatibility only. The default path names are returned as str. If you supply bytes as input, all return values will be in bytes. Ex: >>> tempfile.mkstemp() (4, '/tmp/tmptpu9nin8') >>> tempfile.mkdtemp(suffix=b'') b'/tmp/tmppbi8f0hy' This module also provides some data items to the user: TMP_MAX - maximum number of names that will be tried before giving up. tempdir - If this is set to a string before the first use of any routine from this module, it will be considered as another candidate location to store temporary files. �NamedTemporaryFile� TemporaryFile�SpooledTemporaryFile�TemporaryDirectory�mkstemp�mkdtemp�mktemp�TMP_MAX� gettempprefix�tempdir� gettempdir�gettempprefixb�gettempdirb� Nc C sJ zt j�| �rtd��W n* tk rB |t jj| t�� � Y d S X g }zt �| �}W n& tk r| |t j| t�� � Y nX |D ]�}t j�| |�}zt �|�j }W n tk r� d}Y nX t �|�r�t||� q�zt � |� W q� tk �r |t j |t�� � Y q�X q�zt �| � W n( tk �rD |t j| t�� � Y nX d S )N�%Cannot call rmtree on a symbolic linkr )�_os�path�islink�OSError�_sys�exc_info�listdir�join�lstat�st_mode�_stat�S_ISDIR�_rmtree_unsafe�unlink�rmdir)r �onerror�names�name�fullname�mode� r$ �/usr/lib/python3.8/tempfile.pyr 2 s6 r c C s� g }zt �| �}W n: tk rL } z||_|t j|t�� � W 5 d }~X Y nX |D �]x}t j�||�}zt j|| dd�}|j }W n tk r� d}Y nX t �|��r�zt j|t j | d�} W n& tk r� |t j|t�� � Y n�X z�t j�|t �| ���rFt| ||� zt j|| d� W n( tk �rB |t j|t�� � Y nX n8ztd��W n* tk �r| |t jj|t�� � Y nX W 5 t �| � X qRzt j|| d� W qR tk �r� |t j|t�� � Y qRX qRd S )NF)�dir_fd�follow_symlinksr )r&