
    <h<                     R    S r SSKrSSKJr  SSKJr   " S S5      r " S S\5      rg)	a  This module contains classes - NamedFileInTemporaryDirectory, TemporaryWorkingDirectory.

These classes add extra features such as creating a named file in temporary directory and
creating a context manager for the working directory which is also temporary.
    N)Path)TemporaryDirectoryc                   4    \ rS rSrSS jrS r\rS rS rSr	g)	NamedFileInTemporaryDirectory   c                     [        S0 UD6U l        [        U R                  R                  5      U-  nSU;   a  SOSn[	        XbX7S9U l        g)a  
Open a file named `filename` in a temporary directory.

This context manager is preferred over `NamedTemporaryFile` in
stdlib `tempfile` when one needs to reopen the file.

Arguments `mode` and `bufsize` are passed to `open`.
Rest of the arguments are passed to `TemporaryDirectory`.

bNzutf-8)encoding )r   _tmpdirr   nameopenfile)selffilenamemodebufsizeadd_to_syspathkwdspathr
   s           hC:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\IPython/utils/tempdir.py__init__&NamedFileInTemporaryDirectory.__init__   sG     *1D1DLL%%&1$;4GW@	    c                 l    U R                   R                  5         U R                  R                  5         g N)r   closer   cleanupr   s    r   r   %NamedFileInTemporaryDirectory.cleanup   s     		r   c                     U R                   $ r   )r   r   s    r   	__enter__'NamedFileInTemporaryDirectory.__enter__#   s    yyr   c                 $    U R                  5         g r   )r   )r   typevalue	tracebacks       r   __exit__&NamedFileInTemporaryDirectory.__exit__&   s    r   )r   r   N)F)
__name__
__module____qualname____firstlineno__r   r   __del__r"   r(   __static_attributes__r   r   r   r   r      s    A  Gr   r   c                   8   ^  \ rS rSrSrU 4S jrU 4S jrSrU =r$ )TemporaryWorkingDirectory*   z
Creates a temporary directory and sets the cwd to that directory.
Automatically reverts to previous cwd upon cleanup.
Usage example:

    with TemporaryWorkingDirectory() as tmpdir:
        ...
c                    > [         R                  " 5       U l        [        R                  " U R
                  5        [        [        U ]#  5       $ r   )	r   cwdold_wd_oschdirr   superr2   r"   )r   	__class__s    r   r"   #TemporaryWorkingDirectory.__enter__4   s1    hhj		$)).?AAr   c                 l   > [         R                  " U R                  5        [        [        U ]  XU5      $ r   )r7   r8   r6   r9   r2   r(   )r   excr&   tbr:   s       r   r(   "TemporaryWorkingDirectory.__exit__9   s(    		$++.>s2NNr   )r6   )	r+   r,   r-   r.   __doc__r"   r(   r0   __classcell__)r:   s   @r   r2   r2   *   s    B
O Or   r2   )	r@   osr7   pathlibr   tempfiler   r   r2   r   r   r   <module>rE      s.      ' <O 2 Or   