Your IP : 18.118.114.72
a
?�gt�@s|dZddlZddlZddlZddlZgd�ZddlmZe�jZ [dd�Z
ejddd �d
d��Zdd
�Z
dd�Zdd�ZdS)a�Filename matching with shell patterns.
fnmatch(FILENAME, PATTERN) matches according to the local convention.
fnmatchcase(FILENAME, PATTERN) always takes case in account.
The functions operate by translating the pattern into a regular
expression. They cache the compiled regular expressions for speed.
The function translate(PATTERN) returns a regular expression
corresponding to PATTERN. (It does not compile it.)
�N)�filter�fnmatch�fnmatchcase� translate)�countcCs"tj�|�}tj�|�}t||�S)a�Test whether FILENAME matches PATTERN.
Patterns are Unix shell style:
* matches everything
? matches any single character
[seq] matches any character in seq
[!seq] matches any char not in seq
An initial period in FILENAME is not special.
Both FILENAME and PATTERN are first case-normalized
if the operating system requires it.
If you don't want this, use fnmatchcase(FILENAME, PATTERN).
)�os�path�normcaser)�name�pat�r�,/opt/alt/python39/lib64/python3.9/fnmatch.pyrsr�T)�maxsize�typedcCs<t|t�r(t|d�}t|�}t|d�}nt|�}t�|�jS)Nz
ISO-8859-1)�
isinstance�bytes�strr�re�compile�match)rZpat_strZres_str�resrrr
�_compile_pattern,s
rcCshg}tj�|�}t|�}tjtur@|D]}||�r&|�|�q&n$|D]}|tj�|��rD|�|�qD|S)zJConstruct a list from those elements of the iterable NAMES that match PAT.)rrr r� posixpath�append)�namesr�resultrr
rrr
r6s
rcCst|�}||�duS)z�Test whether FILENAME matches PATTERN, including case.
This is a version of fnmatch() which doesn't case-normalize
its arguments.
N)r)r
rrrrr
rFsrcCsLt�}g}|j}dt|�}}||k�r||}|d}|dkrZ|rP|d|urX||�q|dkrl|d�q|dk�r�|}||kr�||dkr�|d}||kr�||d kr�|d}||kr�||d kr�|d}q�||kr�|d
��q�|||�}d|v�r|�dd
�}n�g} ||dk�r"|dn|d}
|�d|
|�}
|
dk�rF�ql| �|||
��|
d}|
d}
�q*| �|||��d�dd�| D��}t�dd|�}|d}|ddk�r�d|dd�}n|ddv�r�d|}|d|�d ��q|t�|��q||k�sJ�|}g}|j}dt|�}}||k�rZ|||u�rZ|||�|d7}�q*||k�r(|||u�svJ�|d7}||k�r�|d��q(|||u�s�J�g}||k�r�|||u�r�|�||�|d7}�q�d�|�}||k�r|d�||�n"t �}
|d|
�d|�d|
�d���qZ||k�s6J�d�|�}d|�d�S) zfTranslate a shell PATTERN to a regular expression.
There is no way to quote meta-characters.
r��*����?�.�[�!�]z\[z--�\�\\��-�css"|]}|�dd��dd�VqdS)r%r&r(z\-N)�replace)�.0�srrr
� <genexpr>~s�ztranslate.<locals>.<genexpr>z([&~|])z\\\1�^N)r.r"z.*�z(?=(?P<gz>.*?z))(?P=g�)z(?s:z)\Z)
�objectr�lenr*�find�joinr�sub�escape�
_nextgroupnum)r�STARr�add�i�n�c�jZstuffZchunks�kZinpZfixedZgroupnumrrr
rPs�
�
r)�__doc__rrr� functools�__all__� itertoolsr�__next__r7r� lru_cacherrrrrrrr
�<module>s
?>