a DOg;m@sgdZddlZddlZddlZddlZddl Z ddl Z ddl mZddlZddlZddlZddlZejZejejBejBZeedreejOZeZeedreej OZeedrej!Z!ndZ!dZ"eZ#d d Z$d d Z%d dZ&GdddZ'ddZ(ddZ)da*ddZ+ddZ,ddZ-ddZ.ddZ/dd Z0da1d!d"Z2d#d$Z3d@d&d'Z4dAd(d)Z5d*e"dfd+d,Z6Gd-d.d.Z7Gd/d0d0Z8dBdd4d5d6Z9ej:d7ksej;d8kre9ZGd>d?d?e?Z@dS)D) NamedTemporaryFile TemporaryFileSpooledTemporaryFileTemporaryDirectorymkstempmkdtempmktempTMP_MAX gettempprefixtempdir gettempdirgettempprefixb gettempdirbN)Random O_NOFOLLOWO_BINARYri'tmpcCs,zt|Wnty"YdS0dSdS)NFT)_oslstatOSError)fnr-/opt/alt/python39/lib64/python3.9/tempfile.py_existsLs  rcGsrd}|D]X}|durqt|tjr,t|}t|trL|turFtdt}q|tur\tdt}q|durntS|S)Nz1Can't mix bytes and non-bytes in path components.) isinstancerPathLikefspathbytesstr TypeError)argsZ return_typeargrrr_infer_return_typeUs    r"cCsdt|||}|dur|}|dur:|tur0t}n tt}|durX|turRt}nt}||||fSN)r"rtemplaterfsencoder r )prefixsuffixdir output_typerrr_sanitize_paramsns  r*c@s,eZdZdZeddZddZddZdS) _RandomNameSequenceZ%abcdefghijklmnopqrstuvwxyz0123456789_cCs,t}|t|ddkr&t|_||_|jS)N_rng_pid)rgetpidgetattr_RandomZ_rngr,)selfZcur_pidrrrrngs z_RandomNameSequence.rngcCs|Sr#rr0rrr__iter__sz_RandomNameSequence.__iter__cs0|j|jjfddtdD}d|S)Ncsg|] }qSrr).0ZdummycZchooserr z0_RandomNameSequence.__next__..) charactersr1Zchoicerangejoin)r0Zlettersrr5r__next__sz_RandomNameSequence.__next__N)__name__ __module__ __qualname__r;propertyr1r3r>rrrrr+s  r+c Csg}dD]}t|}|r||qtjdkrX|tjdtjdddddgn|gd z|tWn"t t fy|tj Yn0|S) N)ZTMPDIRZTEMPZTMPntz~\AppData\Local\Tempz%SYSTEMROOT%\Tempzc:\tempzc:\tmpz\tempz\tmp)z/tmpz/var/tmpz/usr/tmp) rgetenvappendnameextendpath expanduser expandvarsgetcwdAttributeErrorrcurdir)dirlistZenvnamedirnamerrr_candidate_tempdir_lists   rPc Csht}t}|D]@}|tjkr,tj|}tdD]}t|}tj||}zt |t d}zdzHt j |ddd}| dWdn1s0YWt |n t |0Wt|n t|0|WStyYq4ty6tjdkr,tj|r,t|tjr,Yq4YqYq4tyNYqYq40q4qttjd|dS) NdwbF)closefdsblatrCz)No usable temporary directory found in %s)r+rPrrMrHabspathr<nextr=open_bin_openflags_iowritecloseunlinkFileExistsErrorPermissionErrorrFisdiraccessW_OKrFileNotFoundError_errnoZENOENT)ZnamerrNr(seqrFfilenamefdfprrr_get_default_tempdirs@    *   rhcCs:tdur6tztdur taWtn t0tSr#)_name_sequence _once_lockacquirer+releaserrrr_get_candidate_namessrmc Cst}|turttj|}ttD]}t|}tj ||||}t d|zt ||d} WnRt yxYq"Yn>tytjdkrtj|rt|tjrYq"nYn0| tj|fSt tjddS)Nztempfile.mkstemprRrCz#No usable temporary file name found)rmrmaprr%r<rrVrHr=_sysauditrWr]r^rFr_r`rarUrcEEXIST) r(ZpreZsufflagsr)namesrdrFfilerfrrr_mkstemp_inners*      rucGsL|tjvr"||g|Rddin&tjdks8tj|sH||g|RdS)Nfollow_symlinksFrC)rsupports_follow_symlinksrFrHislink)funcrHr rrr_dont_follow_symlinkss rzcCs<z tj}WntyYn0t||dttj|ddS)Nr)rchflagsrLrzchmod)rHr|rrr _resetpermss    r~cCstSr#)r$rrrrr "sr cCs ttSr#)rr%r rrrrr &sr cCs:tdur6tztdur taWtn t0tSr#)r rjrkrhrlrrrrr ,sr cCs ttSr#)rr%r rrrrr 8sr FcCs2t|||\}}}}|rt}nt}t|||||Sr#)r*_text_openflagsrXru)r'r&r(textr)rrrrrr<s rc Cst|||\}}}}t}|tur.ttj|}ttD]}t|}tj ||||}t d|zt |dWnRtyYq6Yn>tytjdkrtj |rt|tjrYq6nYn0|SttjddS)Nztempfile.mkdtempr{rCz(No usable temporary directory name found)r*rmrrnrr%r<rrVrHr=rorpmkdirr]r^rFr_r`rarcrq)r'r&r(r)rsrdrFrtrrrrcs,       rr:cCs`|durt}t}ttD]2}t|}tj||||}t|s|Sqt t j ddS)Nz"No usable temporary filename found) r rmr<rrVrrHr=rr]rcrq)r'r&r(rsrdrFrtrrrrs  rc@sHeZdZdZdZd ddZejdkreZdZdddZddZddZdd Zd d Zd d ZdS)_TemporaryFileWrapperTcCs$||_||_||_t||||_dSr#)rtrFrr_closerrrrrrsz_TemporaryFileWrapper.__init__cs^|jd}t||}t|drD|tfdd}|j|_|}t|tsZt||||S)Nrt__call__cs|i|Sr#r)r kwargsryrr func_wrappersz7_TemporaryFileWrapper.__getattr__..func_wrapper) __dict__r.hasattr _functoolswrapsrrintsetattr)r0rFrtarrrr __getattr__s     z!_TemporaryFileWrapper.__getattr__cCs|j|Sr#)rt __enter__r2rrrrs z_TemporaryFileWrapper.__enter__cCs|j|||}||Sr#)rt__exit__r[)r0excvaluetbresultrrrrsz_TemporaryFileWrapper.__exit__cCs|jdSr#)rr[r2rrrr[sz_TemporaryFileWrapper.closeccs|jD] }|VqdSr#)rt)r0linerrrr3 s z_TemporaryFileWrapper.__iter__N)T) r?r@rArrrrr[r3rrrrrs  rw+bTerrorscCst|||\}}}} t} tjdkr0|r0| tjO} t|||| | \} } z$tj| |||||d} t| | |WSt yt | t | Yn0dS)NrC bufferingnewlineencodingr) r*rXrrFZ O_TEMPORARYrurYrWr BaseExceptionr\r[)moderrrr'r&r(rrr)rrrfrFrtrrrrs     rposixcygwin O_TMPFILEc Cst|||\}}}}t} trz$| tjBtj@} t|| d} Wn&tyVdaYnDtyfYn40zt j| |||||dWSt | Yn0t |||| |\} } z"t | t j| |||||dWSt | Yn0dS)NrRFr) r*rX_O_TMPFILE_WORKSrrO_CREATrWIsADirectoryErrorrrYr[rur\) rrrrr'r&r(rr)rrZflags2rfrFrrrrGs6       rc@seZdZdZd7ddddZeejZd d Z d d Z d dZ ddZ ddZ ddZeddZeddZeddZddZddZdd Zed!d"Zed#d$Zed%d&Zd'd(Zd)d*Zd+d,Zd-d.Zd/d0Zd8d1d2Zd3d4Zd5d6Z dS)9rFrrrNrc  CsTd|vrt|_ntjt|| |d|_||_d|_|||||||| d|_dS)Nb)rrrF)rrr'r&rrr(r)rYBytesIO_file TextIOWrapper _max_size_rolled_TemporaryFileArgs) r0max_sizerrrrr'r&r(rrrrrs  zSpooledTemporaryFile.__init__cCs,|jr dS|j}|r(||kr(|dSr#)rrtellrollover)r0rtrrrr_checks zSpooledTemporaryFile._checkcCsv|jr dS|j}tfi|j}|_|`|}t|drR|j| n|| | |dd|_dS)NbufferrT) rrrrrrrrZdetachgetvalueseek)r0rtZnewfileposrrrrs   zSpooledTemporaryFile.rollovercCs|jjrtd|S)Nz%Cannot enter context with closed file)rclosed ValueErrorr2rrrrszSpooledTemporaryFile.__enter__cCs|jdSr#rr[r0rrrrrrrszSpooledTemporaryFile.__exit__cCs |jSr#)rr3r2rrrr3szSpooledTemporaryFile.__iter__cCs|jdSr#rr2rrrr[szSpooledTemporaryFile.closecCs|jjSr#)rrr2rrrrszSpooledTemporaryFile.closedcCs|jjSr#)rrr2rrrrszSpooledTemporaryFile.encodingcCs|jjSr#)rrr2rrrrszSpooledTemporaryFile.errorscCs||jSr#)rrfilenor2rrrrszSpooledTemporaryFile.filenocCs|jdSr#)rflushr2rrrrszSpooledTemporaryFile.flushcCs |jSr#)risattyr2rrrrszSpooledTemporaryFile.isattycCs,z |jjWSty&|jdYS0dS)Nr)rrrLrr2rrrrs  zSpooledTemporaryFile.modecCs$z |jjWStyYdS0dSr#)rrFrLr2rrrrFs  zSpooledTemporaryFile.namecCs|jjSr#)rnewlinesr2rrrrszSpooledTemporaryFile.newlinescGs |jj|Sr#)rreadr0r rrrrszSpooledTemporaryFile.readcGs |jj|Sr#)rreadlinerrrrrszSpooledTemporaryFile.readlinecGs |jj|Sr#)r readlinesrrrrrszSpooledTemporaryFile.readlinescGs |jj|Sr#)rrrrrrrszSpooledTemporaryFile.seekcCs |jSr#)rrr2rrrrszSpooledTemporaryFile.tellcCs6|dur|jn||jkr&||j|dSr#)rtruncaterr)r0sizerrrrs   zSpooledTemporaryFile.truncatecCs|j}||}|||Sr#)rrZr)r0srtrvrrrrZs  zSpooledTemporaryFile.writecCs|j}||}|||Sr#)r writelinesr)r0iterablertrrrrr s  zSpooledTemporaryFile.writelines)rrrNNNNN)N)!r?r@rArr classmethod_types GenericAlias__class_getitem__rrrrr3r[rBrrrrrrrrFrrrrrrrrZrrrrrrsJ         rc@sXeZdZdddZeddZeddZdd Zd d Zd d Z ddZ ee j Z dS)rNcCs0t||||_tj||j|jd|d|_dS)NzImplicitly cleaning up {!r}) warn_message)rrF_weakrefZfinalize_cleanupformat _finalizer)r0r'r&r(rrrrs  zTemporaryDirectory.__init__cs fdd}tj|ddS)Nc st|dtrxzT|kr(ttj|t|zt|Wn ttfy^|Yn0Wqt ytYq0nt|dt rndS)Nr) issubclassr^r~rrHrOr\r_rmtreerb)ryrHexc_infoclsrFrronerror&s z+TemporaryDirectory._rmtree..onerror)r)_shutilZrmtree)rrFrrrrr$szTemporaryDirectory._rmtreecCs||t|tdSr#)r _warningswarnResourceWarning)rrFrrrrr;s zTemporaryDirectory._cleanupcCsd|jj|jS)Nz <{} {!r}>)r __class__r?rFr2rrr__repr__@szTemporaryDirectory.__repr__cCs|jSr#)rFr2rrrrCszTemporaryDirectory.__enter__cCs |dSr#)cleanuprrrrrFszTemporaryDirectory.__exit__cCs|jr||jdSr#)rrrrFr2rrrrIs zTemporaryDirectory.cleanup)NNN)r?r@rArrrrrrrrrrrrrrrrs   r)NNNF)NNN)rrNNNNNT)rrNNNNN)A__all__ functoolsrwarningsriorYosrZshutilrerrnorcZrandomrr/sysrotypesrweakrefr_thread allocate_lockZ_allocate_lockO_RDWRrO_EXCLrrrrXrrr$rjrr"r*r+rPrhrirmrurzr~r r r r r rrrrrrrFplatformrrrobjectrrrrrs|        -   ' ( +? '  <