o
    LK&h                     @  s<  d Z 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
mZmZ e
r2ddlmZmZmZ g dZd;d<ddZd;d=ddZd=ddZed>ddZed?d dZd@d$dZd%d& ZedAd(d)ZedBd+d)ZdCd-d)ZedDd.d/ZedEd0d/ZdFd1d/Zed2Zed3ZdGd5d6ZdHd7d8Zd9d: ZdS )Iz
Filename globbing utility. Mostly a copy of `glob` from Python 3.5.

Changes include:
 * `yield from` and PEP3102 `*` removed.
 * Hidden files are not ignored.
    )annotationsN)IterableIterator)TYPE_CHECKINGAnyStroverload)	BytesPathStrOrBytesPathStrPath)globiglobescapeFpathnamer   	recursiveboolreturnlist[AnyStr]c                 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   )r   r    r   B/var/www/html/venv/lib/python3.10/site-packages/setuptools/glob.pyr      s   r   Iterator[AnyStr]c                 C  s*   t | |}|rt| rt|}|rJ |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)r   r   itsr   r   r   r   %   s
   
r   c                 c  s    t j| \}}|rt|rtnt}t| s/|r$t j| r"| V  d S t j|r-| V  d S |s;|||E d H  d S || krIt|rIt	||}n|g}t|sRt
}|D ]}|||D ]
}t j||V  q[qTd 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   7   s0   r   r'   r
   patternstr	list[str]c                 C     d S r   r   r'   r,   r   r   r   r!   [      r!   r   byteslist[bytes]c                 C  r/   r   r   r0   r   r   r   r!   ]   r1   r	   str | byteslist[str] | list[bytes]c                 C  sT   | st |trtjd} ntj} zt| }W n ty#   g  Y S w t||S NASCII)	
isinstancer2   r   curdirencodelistdirOSErrorfnmatchfilter)r'   r,   namesr   r   r   r!   _   s   
c                 C  s:   |st j| r|gS g S t jt j| |r|gS g S r   )r   r   r$   r#   r&   )r'   r(   r   r   r   r%   m   s   r%   Iterator[str]c                 C  r/   r   r   r0   r   r   r   r    }   r1   r    Iterator[bytes]c                 C  r/   r   r   r0   r   r   r   r       r1   Iterator[str | bytes]c                 c  s.    t |sJ |d d V  t| E d H  d S )Nr   )r   	_rlistdirr0   r   r   r   r       s   c                 C  r/   r   r   r'   r   r   r   rC      r1   rC   c                 C  r/   r   r   rD   r   r   r   rC      r1   c                 c  s    | st | trtjd} ntj} zt| }W n
 ty#   Y d S w |D ]}|V  | r4tj| |n|}t	|D ]
}tj||V  q:q&d S r6   )
r8   r2   r   r9   r:   r;   r<   r   r&   rC   )r'   r?   xr   yr   r   r   rC      s"   
z([*?[])s   ([*?[])r   c                 C  s&   t | trt| d uS t| d uS r   )r8   r2   magic_check_bytessearchmagic_check)r   r   r   r   r"      s   
r"   c                 C  s   t | tr	| dkS | dkS )Ns   **z**)r8   r2   )r,   r   r   r   r      s   
r   c                 C  sB   t j| \}} t| trtd| } ||  S td| } ||  S )zEscape all special characters.s   [\1]z[\1])r   r   
splitdriver8   r2   rG   subrI   )r   driver   r   r   r      s   
r   )F)r   r   r   r   r   r   )r   r   r   r   r   r   )r'   r
   r,   r-   r   r.   )r'   r   r,   r2   r   r3   )r'   r	   r,   r4   r   r5   )r'   r
   r,   r-   r   r@   )r'   r   r,   r2   r   rA   )r'   r	   r,   r4   r   rB   )r'   r
   r   r@   )r'   r   r   rA   )r'   r	   r   rB   )r   r4   r   r   )r,   r4   r   r   )__doc__
__future__r   r=   r   recollections.abcr   r   typingr   r   r   	_typeshedr   r	   r
   __all__r   r   r   r!   r%   r    rC   compilerI   rG   r"   r   r   r   r   r   r   <module>   sD    
$






