
    z#g                     X   S SK r S SKrS SKrSS jr\" 5       r\ R
                  \ R                  -  \ R                  -  r\	" \ S5      (       a  \\ R                  -  r\	" \ S5      (       a  \\ R                  -  r\r\	" \ S5      (       a  \\ R                  -  rSS jrS\SS	S
S4S jrS rg)    Nc                     S/nU (       a  UR                  U 5        U(       a  UR                  U5        UR                  [        R                  " S5      5        SR                  U5      $ )z
Generate filename prefix for a temporary file

Parameters
----------
package : str, optional
    package name, will be included in prefix if given
extra : str, optional
    extra string to include in prefix

Returns
-------
str
    filename prefix
	reportbugz%Y%m%d%H%M%S--)appendtimestrftimejoin)packageextraplists      5/usr/lib/python3/dist-packages/reportbug/tempfiles.pytempfile_prefixr      sL      MEWU	LL/088E?    O_NOINHERIT
O_NOFOLLOWO_BINARYc                     SU;   a  [         R                  " U [        S5      nO[         R                  " U [        S5      n [         R                  " X1U5      $ ! [
         a    [         R                  " U5        e f = f)z
Wrapper for open() setting some flags

Parameters
----------
filename : str
    file name
mode : str, optional
    open mode
bufsize : int, optional
    buffer size in bytes

Returns
-------
an open file object
bi  )osopen_bin_openflags_text_openflagsfdopen	Exceptionclose)filenamemodebufsizefds       r   open_write_safer!   E   sb    " d{WWX~u5WWX6yy7++ 
s   A "A: Tzw+c                 h    [         R                  " XX#5      u  pg[        R                  " XdU5      nX4$ )aS  
Wrapper for tempfile.mkstemp

Main differences are that text defaults to True, and it returns a
Python file object instead of an os-level file descriptor.

Parameters
----------
suffix : str, optional
prefix : str
dir : str
text : bool
mode : str
bufsize : int

Returns
-------
(file object, str)
    tuple with file object and file name
)tempfilemkstempr   r   )	suffixprefixdirtextr   r   fhr   r    s	            r   TempFiler+   d   s0    , ##FC>LB	2W	%B>r   c                 z    [         R                  R                  U 5      (       a  [         R                  " U 5        gg)z
Clean up a temporary file

Removes (unlinks) the named file if it exists.

Parameters
----------
temp_filename : str
    Full filename of the file to clean up.

Returns
-------
None
N)r   pathexistsunlink)temp_filenames    r   cleanup_temp_filer1      s(     
ww~~m$$
		-  %r   )NN)zw+br   )r   r$   r   r   templateO_RDWRO_CREATO_EXCLr   hasattrr   r   r   r   r!   r+   r1    r   r   <module>r8      s   . 
  2  ))bjj(2994
2}r~~%O
2|r}}$O 
2zbkk!N
> xT6!r   