U ifl @sdddddddddd d d d g Zd dlZd dlZd dlZd dlZd dl Z d dl Z d dl mZd dlZd dlZd dlZejZejejBejBZeedreejOZeZeedreejOZeedrejZndZdZ eZ!ddZ"ddZ#ddZ$GdddZ%ddZ&ddZ'da(d d!Z)d"d#Z*d$d%Z+d&d'Z,d(dZ-d)d Z.da/d*d Z0d+d Z1d@d-dZ2dAd.dZ3d/e dfd0dZ4Gd1d2d2Z5Gd3d4d4Z6dBdd8d9dZ7ej8d:ksej9d;kre7Z:need<a;dCdd8d=dZ:Gd>ddZdS)DNamedTemporaryFile TemporaryFileSpooledTemporaryFileTemporaryDirectorymkstempmkdtempmktempTMP_MAX gettempprefixtempdir gettempdirgettempprefixb gettempdirbN)Random O_NOFOLLOWO_BINARYi'ZtmpcCs.zt|Wntk r$YdSXdSdS)NFT)_oslstatOSError)fnr-/opt/alt/python38/lib64/python3.8/tempfile.py_existsKs rcGs\d}|D]B}|dkrqt|tr6|tkr0tdt}q|tkrFtdt}q|dkrXtS|S)Nz1Can't mix bytes and non-bytes in path components.) isinstancebytesstr TypeError)argsZ return_typeargrrr_infer_return_typeTs rcCsdt|||}|dkr|}|dkr:|tkr0t}n tt}|dkrX|tkrRt}nt}||||fSN)rrtemplaterfsencoder r )prefixsuffixdir output_typerrr_sanitize_paramsis  r'c@s,eZdZdZeddZddZddZdS) _RandomNameSequenceZ%abcdefghijklmnopqrstuvwxyz0123456789_cCs,t}|t|ddkr&t|_||_|jS)N_rng_pid)rgetpidgetattr_RandomZ_rngr))selfZcur_pidrrrrngs z_RandomNameSequence.rngcCs|Sr rr-rrr__iter__sz_RandomNameSequence.__iter__cs0|j|jjfddtdD}d|S)Ncsg|] }qSrr).0ZdummycZchooserr sz0_RandomNameSequence.__next__..) charactersr.Zchoicerangejoin)r-Zlettersrr2r__next__sz_RandomNameSequence.__next__N)__name__ __module__ __qualname__r7propertyr.r0r:rrrrr({s  r(c Csg}dD]}t|}|r||qtjdkrX|tjdtjdddddgn|d d d gz|tWn$t t fk r|tj YnX|S) N)ZTMPDIRZTEMPZTMPntz~\AppData\Local\Tempz%SYSTEMROOT%\Tempzc:\tempzc:\tmpz\tempz\tmpz/tmpz/var/tmpz/usr/tmp) rgetenvappendnameextendpath expanduser expandvarsgetcwdAttributeErrorrcurdir)dirlistZenvnamedirnamerrr_candidate_tempdir_lists&    rLc CsFt}t}|D]}|tjkr,tj|}tdD]}t|}tj||}zft |t d}zz tj}Wntk rYnXt||dttj|ddS)Nr)rchflagsrHrvchmod)rDrxrrr _resetpermss   rzcCstSr )r!rrrrr scCs ttSr )rr"r rrrrr !scCs2tdkr.tztdkr taW5tXtSr )r rfrgrhrdrrrrr 's  cCs ttSr )rr"r rrrrr 3sFcCs2t|||\}}}}|rt}nt}t|||||Sr )r'_text_openflagsrTrq)r$r#r%textr&rnrrrr7s c Cst|||\}}}}t}|tkr.ttj|}ttD]}t|}tj ||||}t d|zt |dWnVtk rYq6Yn@tk rtjdkrtj |rt|tjrYq6nYnX|SttjddS)Nztempfile.mkdtemprwr?z(No usable temporary directory name found)r'rirrjrr"r8rrRrDr9rkrlmkdirrYrZrBr[r\r]r_rm)r$r#r%r&ror`rBrprrrr^s,     r6cCs`|dkrt}t}ttD]2}t|}tj||||}t|s|Sqt t j ddS)Nz"No usable temporary filename found) r rir8rrRrrDr9rrYr_rm)r$r#r%ror`rBrprrrrs  c@sHeZdZdZdZd ddZejdkreZdZdddZddZddZdd Zd d Zd d ZdS)_TemporaryFileWrapperTcCs$||_||_||_t||||_dSr )rprBrr~_closerrrrrrsz_TemporaryFileWrapper.__init__cs^|jd}t||}t|drD|tfdd}|j|_|}t|tsZt||||S)Nrp__call__cs ||Sr r)rkwargsrurr func_wrappersz7_TemporaryFileWrapper.__getattr__..func_wrapper) __dict__r+hasattr _functoolswrapsrrintsetattr)r-rBrparrrr __getattr__s     z!_TemporaryFileWrapper.__getattr__cCs|j|Sr )rp __enter__r/rrrrs z_TemporaryFileWrapper.__enter__cCs|j|||}||Sr )rp__exit__rV)r-excvaluetbresultrrrrsz_TemporaryFileWrapper.__exit__cCs|jdSr )rrVr/rrrrVsz_TemporaryFileWrapper.closeccs|jD] }|VqdSr )rp)r-linerrrr0s z_TemporaryFileWrapper.__iter__N)T) r;r<r=rrrrrVr0rrrrrs  rw+bTerrorscCst|||\}}}} t} tjdkr0|r0| tjO} t|||| | \} } z$tj| |||||d} t| | |WSt k rt | t | YnXdS)Nr? bufferingnewlineencodingr) r'rTrrBZ O_TEMPORARYrqrWrSr BaseExceptionrUrV)moderrrr$r#r%rrr&rnrbrBrprrrrs     posixcygwin O_TMPFILEc Cst|||\}}}}t} trz$| tjBtj@} t|| d} Wn*tk rXdaYnFtk rjYn4Xzt j| |||||dWSt | YnXt |||| |\} } z"t | t j| |||||dWSt | YnXdS)NrNFr) r'rT_O_TMPFILE_WORKSrrO_CREATrSIsADirectoryErrorrrWrVrqrU) rrrrr$r#r%rr&rnZflags2rbrBrrrrBs<     c@seZdZdZd9ddddZd d Zd d Zd dZddZddZ ddZ e ddZ e ddZ e ddZddZddZdd Ze d!d"Ze d#d$Ze d%d&Zd'd(Zd)d*Zd+d,Zd-d.Ze d/d0Zd1d2Zd:d3d4Zd5d6Zd7d8ZdS);rFrrrNrc  CsTd|krt|_ntjt|| |d|_||_d|_|||||||| d|_dS)Nb)rrrF)rrr$r#rrr%r)rWBytesIO_file TextIOWrapper _max_size_rolled_TemporaryFileArgs) r-max_sizerrrrr$r#r%rrrrrs"  zSpooledTemporaryFile.__init__cCs,|jr dS|j}|r(||kr(|dSr )rrtellrollover)r-rprrrr_checks zSpooledTemporaryFile._checkcCsr|jr dS|j}tf|j}|_|`|}t|drN|j| n|| | |dd|_dS)NbufferrT) rrrrrrrrXdetachgetvalueseek)r-rpZnewfileposrrrrs  zSpooledTemporaryFile.rollovercCs|jjrtd|S)Nz%Cannot enter context with closed file)rclosed ValueErrorr/rrrrszSpooledTemporaryFile.__enter__cCs|jdSr rrVr-rrrrrrrszSpooledTemporaryFile.__exit__cCs |jSr )rr0r/rrrr0szSpooledTemporaryFile.__iter__cCs|jdSr rr/rrrrVszSpooledTemporaryFile.closecCs|jjSr )rrr/rrrrszSpooledTemporaryFile.closedcCs|jjSr )rrr/rrrrszSpooledTemporaryFile.encodingcCs|jjSr )rrr/rrrrszSpooledTemporaryFile.errorscCs||jSr )rrfilenor/rrrrszSpooledTemporaryFile.filenocCs|jdSr )rflushr/rrrrszSpooledTemporaryFile.flushcCs |jSr )risattyr/rrrrszSpooledTemporaryFile.isattycCs.z |jjWStk r(|jdYSXdS)Nr)rrrHrr/rrrrs zSpooledTemporaryFile.modecCs&z |jjWStk r YdSXdSr )rrBrHr/rrrrBs zSpooledTemporaryFile.namecCs|jjSr )rnewlinesr/rrrrszSpooledTemporaryFile.newlinescGs |jj|Sr )rreadr-rrrrrszSpooledTemporaryFile.readcGs |jj|Sr )rreadlinerrrrrszSpooledTemporaryFile.readlinecGs |jj|Sr )r readlinesrrrrrszSpooledTemporaryFile.readlinescGs |jj|Sr )rrrrrrrszSpooledTemporaryFile.seekcCs|jjSr )r softspacer/rrrrszSpooledTemporaryFile.softspacecCs |jSr )rrr/rrrrszSpooledTemporaryFile.tellcCs6|dkr|jn||jkr&||j|dSr )rtruncaterr)r-sizerrrrs   zSpooledTemporaryFile.truncatecCs|j}||}|||Sr )rrXr)r-srprvrrrrXs  zSpooledTemporaryFile.writecCs|j}||}|||Sr )r writelinesr)r-iterablerprrrrrs  zSpooledTemporaryFile.writelines)rrrNNNNN)N)r;r<r=rrrrrrr0rVr>rrrrrrrrBrrrrrrrrrXrrrrrr~sR         c@sNeZdZdddZeddZeddZdd Zd d Zd d Z ddZ dS)rNcCs0t||||_tj||j|jd|d|_dS)NzImplicitly cleaning up {!r}) warn_message)rrB_weakrefZfinalize_cleanupformat _finalizer)r-r$r#r%rrrrszTemporaryDirectory.__init__cs fdd}tj|ddS)Nc st|dtr|zV|kr(ttj|t|zt|Wn"ttfk r`|YnXWqt k rxYqXnt|dt rndS)Nr) issubclassrZrzrrDrKrUr_rmtreer^)rurDexc_infoclsrBrronerror#sz+TemporaryDirectory._rmtree..onerror)r)_shutilZrmtree)rrBrrrrr!szTemporaryDirectory._rmtreecCs||t|tdSr )r _warningswarnResourceWarning)rrBrrrrr8s zTemporaryDirectory._cleanupcCsd|jj|jS)Nz <{} {!r}>)r __class__r;rBr/rrr__repr__=szTemporaryDirectory.__repr__cCs|jSr )rBr/rrrr@szTemporaryDirectory.__enter__cCs |dSr )cleanuprrrrrCszTemporaryDirectory.__exit__cCs|jr||jdSr )rrrrBr/rrrrFs zTemporaryDirectory.cleanup)NNN) r;r<r=r classmethodrrrrrrrrrrrs   )NNNF)NNN)rrNNNNNT)rrNNNNN)?__all__ functoolsrwarningsriorWosrZshutilrerrnor_Zrandomrr,sysrkweakrefr_thread allocate_lockZ_allocate_lockO_RDWRrO_EXCLr{rrrTrrr!rfrrr'r(rLrdrerirqrvrzr r r r r rrrr~rrrBplatformrrrobjectrrrrrs        -   ' ( +? '  <