3 2ah@s.dddddddddd d d d g Zd dlZd dlZd dlZd dlZd dl Z d dl Z d dl mZd dlZy d dlZWnek rd dlZYnXejZejejBejBZeedreejOZeZeedreejOZeedrejZndZdZ eZ!eedrej"Z#needrej$Z#nddZ#ddZ%ddZ&ddZ'GdddZ(d d!Z)d"d#Z*da+d$d%Z,d&d'Z-d(dZ.d)d Z/da0d*d Z1d+d Z2d?d-dZ3d@d.dZ4d/e dfd0dZ5Gd1d2d2Z6Gd3d4d4Z7dBd8dZ8ej9d9ksej:j;d:kre8ZGd>dde?Z@dS)ENamedTemporaryFile TemporaryFileSpooledTemporaryFileTemporaryDirectorymkstempmkdtempmktempTMP_MAX gettempprefixtempdir gettempdirgettempprefixb gettempdirbN)Random O_NOFOLLOWO_BINARYi'ZtmplstatstatcCstj|tj}tj|dS)N)_osopenO_RDONLYclose)fnfdr-/opt/alt/python36/lib64/python3.6/tempfile.py_statTsrc Cs*y t|Wntk r dSXdSdS)NFT)rOSError)rrrr_existsXs  rcGs`d}xJ|D]B}|dkrq t|tr8|tkr2tdt}q |tkrHtdt}q W|dkr\tS|S)Nz1Can't mix bytes and non-bytes in path components.) isinstancebytesstr TypeError)argsZ return_typeargrrr_infer_return_typeas  r%cCsdt|||}|dkr|}|dkr:|tkr0t}n tjt}|dkrX|tkrRt}nt}||||fS)N)r%r!templaterfsencoder r )prefixsuffixdir output_typerrr_sanitize_paramsvs  r,c@s,eZdZdZeddZddZddZdS) _RandomNameSequenceZ%abcdefghijklmnopqrstuvwxyz0123456789_cCs,tj}|t|ddkr&t|_||_|jS)N_rng_pid)rgetpidgetattr_RandomZ_rngr.)selfZcur_pidrrrrngs z_RandomNameSequence.rngcCs|S)Nr)r2rrr__iter__sz_RandomNameSequence.__iter__cs0|j|jjfddtdD}dj|S)Ncsg|] }qSrr).0Zdummy)cchooserr sz0_RandomNameSequence.__next__..) charactersr3choicerangejoin)r2Zlettersr)r6r7r__next__sz_RandomNameSequence.__next__N)__name__ __module__ __qualname__r;propertyr3r4r?rrrrr-s r-c Csg}x$dD]}tj|}|r |j|q Wtjdkr\|jtjjdtjjdddd d gn|jd d d gy|jtjWn$t t fk r|jtj YnX|S)NTMPDIRTEMPTMPntz~\AppData\Local\Tempz%SYSTEMROOT%\Tempzc:\tempzc:\tmpz\tempz\tmpz/tmpz/var/tmpz/usr/tmp)rDrErF) rgetenvappendnameextendpath expanduser expandvarsgetcwdAttributeErrorrcurdir)dirlistZenvnamedirnamerrr_candidate_tempdir_lists    rTcCs4t}t}x|D]}|tjkr0tjj|}xtdD]}t|}tjj||}y\tj |t d}zr_bin_openflags_iowriterunlinkFileExistsErrorPermissionErrorrJisdiraccessW_OKrFileNotFoundError_errnoENOENT)ZnamerrRr*seqrJfilenamerfprrr_get_default_tempdirs:    ric Cs2tdkr.tjztdkr taWdtjXtS)N)_name_sequence _once_lockacquirer-releaserrrr_get_candidate_namess  rnc Cst}|tkrttj|}xttD]}t|}tjj ||||}ytj ||d} WnRt k rnw$Yn>t k rtj dkrtjj|rtj|tjrw$nYnX| tjj|fSWt tjddS)NirGz#No usable temporary file name found)rnr maprr'r=rrYrLr>rr^r_rJr`rarbrXrdEEXIST) r*ZpreZsufflagsr+namesrfrJfilerrrr_mkstemp_inners$ rtcCstS)N)r&rrrrr scCs tjtS)N)rr'r rrrrr sc Cs2tdkr.tjztdkr taWdtjXtS)N)r rkrlrirmrrrrr #s  cCs tjtS)N)rr'r rrrrr /sFcCs2t|||\}}}}|rt}nt}t|||||S)N)r,_text_openflagsrZrt)r)r(r*textr+rqrrrr3s c Cst|||\}}}}t}|tkr.ttj|}xttD]}t|}tj j ||||}ytj |dWnRt k rw8Yn>t k rtjdkrtj j|rtj|tjrw8nYnX|SWt tjddS)NirGz(No usable temporary directory name found)r,rnr rorr'r=rrYrLr>mkdirr^r_rJr`rarbrdrp)r)r(r*r+rrrfrJrsrrrr[s&  r:cCs`|dkrt}t}x:ttD].}t|}tjj||||}t|s|SqWt t j ddS)Nz"No usable temporary filename found) r rnr=rrYrrLr>rr^rdrp)r)r(r*rrrfrJrsrrrrsc@sHeZdZdZdZd ddZejdkr|j r:|jdk r:d|_z|jjWd|jr8||jXdS)NT) close_calledrsrryrJ)r2r]rrrrs z_TemporaryFileCloser.closecCs |jdS)N)r)r2rrr__del__sz_TemporaryFileCloser.__del__cCs|jsd|_|jjdS)NT)r{rsr)r2rrrrs)T) r@rArBrsr{rzrrJr]rr|rrrrrxs   rxc@s>eZdZdddZddZddZdd Zd d Zd d ZdS)_TemporaryFileWrapperTcCs$||_||_||_t||||_dS)N)rsrJryrx_closer)r2rsrJryrrrrzsz_TemporaryFileWrapper.__init__cs^|jd}t||}t|drD|tjfdd}|j|_|}t|tsZt||||S)Nrs__call__cs ||S)Nr)r#kwargs)funcrr func_wrappersz7_TemporaryFileWrapper.__getattr__..func_wrapper) __dict__r0hasattr _functoolswrapsr~rintsetattr)r2rJrsarr)rr __getattr__s     z!_TemporaryFileWrapper.__getattr__cCs|jj|S)N)rs __enter__)r2rrrrs z_TemporaryFileWrapper.__enter__cCs|jj|||}|j|S)N)rs__exit__r)r2excvaluetbresultrrrrsz_TemporaryFileWrapper.__exit__cCs|jjdS)N)r~r)r2rrrrsz_TemporaryFileWrapper.closeccsx|jD] }|VqWdS)N)rs)r2linerrrr4s z_TemporaryFileWrapper.__iter__N)T) r@rArBrzrrrrr4rrrrr}s  r}w+bTc Cst|||\}}}}t} tjdkr0|r0| tjO} t|||| |\} } y tj| ||||d} t| | |St k rtj | tj | YnXdS)NrG) bufferingnewlineencoding) r,rZrrJZ O_TEMPORARYrtr[rr} BaseExceptionr]r) moderrrr)r(r*ryr+rqrrJrsrrrr s      posixcygwin O_TMPFILEc Cst|||\}}}}t}try$|tjBtj@} tj|| d} Wn*tk rXdaYnBtk rjYn0Xyt j| ||||dStj | YnXt |||||\} } ytj | t j| ||||dStj | YnXdS)NiF)rrr) r,rZ_O_TMPFILE_WORKSrrO_CREATrIsADirectoryErrorrr[rrtr]) rrrrr)r(r*r+rqZflags2rrJrrrr=s0       c@seZdZdZd7ddZdd Zd d Zd d ZddZddZ ddZ e ddZ e ddZ ddZddZddZe ddZe d d!Ze d"d#Zd$d%Zd&d'Zd(d)Zd*d+Ze d,d-Zd.d/Zd8d0d1Zd2d3Zd4d5ZdS)9rFrw+brNc CsHd|krtj|_ntjdd|_||_d|_|||||||d|_dS)Nb )rF)rrr)r(rrr*)r[BytesIO_fileStringIO _max_size_rolled_TemporaryFileArgs) r2max_sizerrrrr)r(r*rrrrz~s zSpooledTemporaryFile.__init__cCs,|jr dS|j}|r(|j|kr(|jdS)N)rrtellrollover)r2rsrrrr_checks zSpooledTemporaryFile._checkcCsN|jr dS|j}tf|j}|_|`|j|j|j|jdd|_dS)NrT)rrrrr\getvalueseekr)r2rsZnewfilerrrrszSpooledTemporaryFile.rollovercCs|jjrtd|S)Nz%Cannot enter context with closed file)rclosed ValueError)r2rrrrszSpooledTemporaryFile.__enter__cCs|jjdS)N)rr)r2rrrrrrrszSpooledTemporaryFile.__exit__cCs |jjS)N)rr4)r2rrrr4szSpooledTemporaryFile.__iter__cCs|jjdS)N)rr)r2rrrrszSpooledTemporaryFile.closecCs|jjS)N)rr)r2rrrrszSpooledTemporaryFile.closedc Cs8y|jjStk r2d|jdkr(|jdSXdS)Nrrr)rrrPr)r2rrrrs zSpooledTemporaryFile.encodingcCs|j|jjS)N)rrfileno)r2rrrrszSpooledTemporaryFile.filenocCs|jjdS)N)rflush)r2rrrrszSpooledTemporaryFile.flushcCs |jjS)N)risatty)r2rrrrszSpooledTemporaryFile.isattyc Cs(y|jjStk r"|jdSXdS)Nr)rrrPr)r2rrrrszSpooledTemporaryFile.modec Cs"y|jjStk rdSXdS)N)rrJrP)r2rrrrJszSpooledTemporaryFile.namec Cs8y|jjStk r2d|jdkr(|jdSXdS)Nrrr)rnewlinesrPr)r2rrrrs zSpooledTemporaryFile.newlinescGs |jj|S)N)rread)r2r#rrrrszSpooledTemporaryFile.readcGs |jj|S)N)rreadline)r2r#rrrrszSpooledTemporaryFile.readlinecGs |jj|S)N)r readlines)r2r#rrrrszSpooledTemporaryFile.readlinescGs|jj|dS)N)rr)r2r#rrrrszSpooledTemporaryFile.seekcCs|jjS)N)r softspace)r2rrrrszSpooledTemporaryFile.softspacecCs |jjS)N)rr)r2rrrrszSpooledTemporaryFile.tellcCs6|dkr|jjn||jkr&|j|jj|dS)N)rtruncaterr)r2sizerrrrs   zSpooledTemporaryFile.truncatecCs|j}|j|}|j||S)N)rr\r)r2srsrvrrrr\s  zSpooledTemporaryFile.writecCs|j}|j|}|j||S)N)r writelinesr)r2iterablersrrrrrs  zSpooledTemporaryFile.writelines)rrrNNNNN)N)r@rArBrrzrrrrr4rrCrrrrrrrJrrrrrrrrr\rrrrrrws6        c@sBeZdZdddZeddZddZdd Zd d Zd d Z dS)rNcCs0t||||_tj||j|jdj|d|_dS)NzImplicitly cleaning up {!r}) warn_message)rrJ_weakreffinalize_cleanupformat _finalizer)r2r)r(r*rrrrzs zTemporaryDirectory.__init__cCstj|tj|tdS)N)_shutilrmtree _warningswarnResourceWarning)clsrJrrrrrs zTemporaryDirectory._cleanupcCsdj|jj|jS)Nz <{} {!r}>)r __class__r@rJ)r2rrr__repr__"szTemporaryDirectory.__repr__cCs|jS)N)rJ)r2rrrr%szTemporaryDirectory.__enter__cCs |jdS)N)cleanup)r2rrrrrrr(szTemporaryDirectory.__exit__cCs|jjrtj|jdS)N)rdetachrrrJ)r2rrrr+s zTemporaryDirectory.cleanup)NNN) r@rArBrz classmethodrrrrrrrrrr s   )NNNF)NNNr)rrNNNNNTr)rrNNNNN)A__all__ functoolsrwarningsrior[osrZshutilrerrnordZrandomrr1weakrefr_thread ImportErrorZ _dummy_thread allocate_lockZ_allocate_lockO_RDWRrO_EXCLrurrrZrrr&rkrrrrr%r,r-rTrirjrnrtr r r r r rrrrxr}rrJsysplatformrrrobjectrrrrrs          -  ( ' +? $  8