
    c=                        d dl mZ d dlZd dlZd dlZd dlmZmZ d dlmZ d dl	m
Z
 d dlmZ ej        dd            Zej        	 ddd            Zej        	 dd d            Zej        	 dd!d            Zd"d#dZdS )$    )annotationsN)	GeneratorIterator)copy)Path)TextIOoutr   returnIterator[None]c              #     K   | xt           _        t           _        	 dV  t           j        t           _        t           j        t           _        dS # t           j        t           _        t           j        t           _        w xY w)z+Patch and subsequently reset a text stream.N)sysstderrstdout
__stderr__
__stdout__)r	   s    6lib/python3.11/site-packages/pylint/testutils/utils.py_patch_streamsr      s[       "!CJ$^
^


 ^
^
####s   A .A<replacement_sys_pathlist[str] | NoneGenerator[None, None, None]c              #     K   t           j        }	 | t          |           t           _        d V  |t           _        d S # |t           _        w xY wN)r   pathr   )r   original_paths     r   _test_sys_pathr      sS       HM! 	2011CH =    s	   = Acurrent_working_directorystr | Path | Nonec              #     K   t          j                    }	 | t          j        |            d V  t          j        |           d S # t          j        |           w xY wr   )osgetcwdchdir)r   original_dirs     r   	_test_cwdr#   (   sf       9;;L$ 	0H.///
s   A Anew_pythonpath
str | Nonec              #  \  K   t           j                            d          }| r| t           j        d<   n| |t           j        d= 	 d V  ||t           j        d<   d S dt           j        v rt           j        d= d S d S # ||t           j        d<   ndt           j        v rt           j        d= w xY w)N
PYTHONPATH)r   environget)r$   original_pythonpaths     r   _test_environ_pythonpathr+   5   s       *..66 %#1
<  	 %$7 %J|$) 	)':BJ|$$$RZ' 	)
<(((	) 	)  	)':BJ|$$RZ' 	)
<(((((s   A< </B+.paths	list[str]chrootstrNonec                T   t                      t                      }}| D ]}t          j                            ||          }t          j                            |          }|s|                    |           Y|                    t          j                            |                     |                    |           |D ]5}t          j                            |          st          j        |           6|D ]-}t          |dd          5  	 ddd           n# 1 swxY w Y   .dS )a  Creates directories and files found in <path>.

    :param list paths: list of relative paths to files or directories
    :param str chroot: the root directory in which paths will be created

    >>> from os.path import isdir, isfile
    >>> isdir('/tmp/a')
    False
    >>> create_files(['a/b/foo.py', 'a/b/c/', 'a/b/c/d/e.py'], '/tmp')
    >>> isdir('/tmp/a')
    True
    >>> isdir('/tmp/a/b/c')
    True
    >>> isfile('/tmp/a/b/c/d/e.py')
    True
    >>> isfile('/tmp/a/b/foo.py')
    True
    wzutf-8)encodingN)
setr   r   joinbasenameadddirnameisdirmakedirsopen)r-   r/   dirsfilesr   filenamedirpathfilepaths           r   create_filesrB   H   sW   & %%%D 	 	w||FD))7##D)) 	HHTNNNN HHRW__T**+++IIdOOOO ! !w}}W%% 	!K     (C'222 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 s   DD 	#D 	)r	   r   r
   r   r   )r   r   r
   r   )r   r   r
   r   )r$   r%   r
   r   )r,   )r-   r.   r/   r0   r
   r1   )
__future__r   
contextlibr   r   collections.abcr   r   r   pathlibr   typingr   contextmanagerr   r   r#   r+   rB        r   <module>rK      sP  
 # " " " " "     				 



 / / / / / / / /                   $ $ $ $ -1	! 	! 	! 	! 	! 37	 	 	 	 	 !%) ) ) ) )$# # # # # # #rJ   