U ,ak @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$dZ+d%d Z,da-d&d Z.d'd Z/ddd4d5dZ5ej6d6ksej7d7kre5Z8need8a9d?dd4d9dZ8Gd:ddZ:Gd;dde;Zsz0_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}zeZdZdddZddZddZdd Zd d Zd d ZdS)_TemporaryFileWrapperTcCs$||_||_||_t||||_dSr )rprBrwrv_closerrxrrrrysz_TemporaryFileWrapper.__init__cs^|jd}t||}t|drD|tfdd}|j|_|}t|tsZt||||S)Nrp__call__cs ||Sr r)rkwargsfuncrr func_wrappersz7_TemporaryFileWrapper.__getattr__..func_wrapper) __dict__r+hasattr _functoolswrapsr~rintsetattr)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 )r~rVr/rrrrVsz_TemporaryFileWrapper.closeccs|jD] }|VqdSr )rp)r-linerrrr0s z_TemporaryFileWrapper.__iter__N)T) r;r<r=ryrrrrVr0rrrrr}s  r}w+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%rwrr&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&rnZflags2rbrBrrrr2s<     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%rrrrryus"  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=rryrrrrr0rVr>rrrrrrrrBrrrrrrrrrXrrrrrrnsR         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%rrrry szTemporaryDirectory.__init__cs fdd}tj|ddS)Nc st|dtrdd}zV|kr0|tj|||zt|Wn"ttfk rh|YnXWqtk rYqXnt|dtrndS)NrcSs6zt|dWntk r$YnXt|ddS)Nrrt)rZchflagsrHchmod)rDrrr resetpermss z?TemporaryDirectory._rmtree..onerror..resetperms) issubclassrZrrDrKrUr_rmtreer^)rrDexc_inforclsrBrronerrorsz+TemporaryDirectory._rmtree..onerror)r)_shutilZrmtree)rrBrrrrrszTemporaryDirectory._rmtreecCs||t|tdSr )r _warningswarnResourceWarning)rrBrrrrr/s zTemporaryDirectory._cleanupcCsd|jj|jS)Nz <{} {!r}>)r __class__r;rBr/rrr__repr__4szTemporaryDirectory.__repr__cCs|jSr )rBr/rrrr7szTemporaryDirectory.__enter__cCs |dSr )cleanuprrrrr:szTemporaryDirectory.__exit__cCs|jr||jdSr )rrrrBr/rrrr=s zTemporaryDirectory.cleanup)NNN) r;r<r=ry classmethodrrrrrrrrrrrs   )NNNF)NNN)rrNNNNNT)rrNNNNN)=__all__ functoolsrwarningsriorWosrZshutilrerrnor_Zrandomrr,sysrkweakrefr_thread allocate_lockZ_allocate_lockO_RDWRrO_EXCLrrrrrTrrr!rfrrr'r(rLrdrerirqr r r r r rrrrvr}rrBplatformrrrobjectrrrrrs        -  ' ( +? '  <