U
    X…7h  ã                   @   sž   d Z ddlZddlZddlZdddgZdedœdd„Zdedœd	d„Zd
d„ Zdd„ Z	dd„ Z
dd„ Zdd„ Ze d¡Ze d¡Zdd„ Zdd„ Zdd„ ZdS )z¡
Filename globbing utility. Mostly a copy of `glob` from Python 3.5.

Changes include:
 * `yield from` and PEP3102 `*` removed.
 * Hidden files are not ignored.
é    NÚglobÚiglobÚescapeF©Ú	recursivec                 C   s   t t| |dƒS )ay  Return a list of paths matching a pathname pattern.

    The pattern may contain simple shell-style wildcards a la
    fnmatch. However, unlike fnmatch, filenames starting with a
    dot are special cases that are not matched by '*' and '?'
    patterns.

    If recursive is true, the pattern '**' will match any files and
    zero or more directories and subdirectories.
    r   )Úlistr   )Úpathnamer   © r	   úI/var/www/formularioweb/env/lib/python3.8/site-packages/setuptools/glob.pyr      s    c                 C   s*   t | |ƒ}|r&t| ƒr&t|ƒ}|r&t‚|S )aŒ  Return an iterator which yields the paths matching a pathname pattern.

    The pattern may contain simple shell-style wildcards a la
    fnmatch. However, unlike fnmatch, filenames starting with a
    dot are special cases that are not matched by '*' and '?'
    patterns.

    If recursive is true, the pattern '**' will match any files and
    zero or more directories and subdirectories.
    )Ú_iglobÚ_isrecursiveÚnextÚAssertionError)r   r   ÚitÚsr	   r	   r
   r      s
    
c                 c   sÎ   t j | ¡\}}|r t|ƒr tnt}t| ƒsZ|rDt j | ¡rV| V  nt j |¡rV| V  d S |sr|||ƒE d H  d S || krŽt|ƒrŽt	||ƒ}n|g}t|ƒs t
}|D ]$}|||ƒD ]}t j ||¡V  q²q¤d S ©N)ÚosÚpathÚsplitr   Úglob2Úglob1Ú	has_magicÚlexistsÚisdirr   Úglob0Újoin)r   r   ÚdirnameÚbasenameÚglob_in_dirÚdirsÚnamer	   r	   r
   r   0   s(    r   c                 C   sV   | s"t |tƒrtj d¡} ntj} zt | ¡}W n tk
rH   g  Y S X t ||¡S ©NÚASCII)	Ú
isinstanceÚbytesr   ÚcurdirÚencodeÚlistdirÚOSErrorÚfnmatchÚfilter)r   ÚpatternÚnamesr	   r	   r
   r   T   s    

r   c                 C   s8   |st j | ¡r4|gS nt j t j | |¡¡r4|gS g S r   )r   r   r   r   r   )r   r   r	   r	   r
   r   a   s    r   c                 c   s,   t |ƒst‚|d d… V  t| ƒE d H  d S )Nr   )r   r   Ú	_rlistdir)r   r+   r	   r	   r
   r   q   s    r   c                 c   s   | s"t | tƒrtj d¡} ntj} zt | ¡}W n tk
rF   Y d S X |D ]>}|V  | rhtj | |¡n|}t	|ƒD ]}tj ||¡V  qtqLd S r!   )
r#   r$   r   r%   r&   r'   r(   r   r   r-   )r   r,   Úxr   Úyr	   r	   r
   r-   x   s    
r-   z([*?[])s   ([*?[])c                 C   s(   t | tƒrt | ¡}n
t | ¡}|d k	S r   )r#   r$   Úmagic_check_bytesÚsearchÚmagic_check)r   Úmatchr	   r	   r
   r      s    

r   c                 C   s   t | tƒr| dkS | dkS d S )Ns   **z**)r#   r$   )r+   r	   r	   r
   r   •   s    
r   c                 C   s<   t j | ¡\}} t| tƒr(t d| ¡} nt d| ¡} ||  S )zEscape all special characters.s   [\1]z[\1])r   r   Ú
splitdriver#   r$   r0   Úsubr2   )r   Údriver	   r	   r
   r   œ   s
    
)F)F)Ú__doc__r)   r   ÚreÚ__all__Úboolr   r   r   r   r   r   r-   Úcompiler2   r0   r   r   r   r	   r	   r	   r
   Ú<module>   s    
$

