Your IP : 3.148.117.22
B
� f��@sjdZddlZddlZddlZddlZddddgZdd�Zejdd d
�dd��Zd
d�Z dd�Z
dd�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� translatecCs"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/python37/lib64/python3.7/fnmatch.pyrs�T)�maxsize�typedcCs<t|t�r(t|d�}t|�}t|d�}nt|�}t�|�jS)Nz
ISO-8859-1)�
isinstance�bytes�strr�re�compile�match)r
Zpat_strZres_str�resrrr�_compile_pattern&s
rcCspg}tj�|�}t|�}tjtkrDxH|D]}||�r(|�|�q(Wn(x&|D]}|tj�|��rJ|�|�qJW|S)z3Return the subset of the list NAMES that match PAT.)rrrr� posixpath�append)�namesr
�resultrr rrrr0s
cCst|�}||�dk S)z�Test whether FILENAME matches PATTERN, including case.
This is a version of fnmatch() which doesn't case-normalize
its arguments.
N)r)r r
rrrrr@sc Cs�dt|�}}d}�x�||k�r�||}|d}|dkrB|d}q|dkrT|d}q|dk�r�|}||kr~||d kr~|d}||kr�||d
kr�|d}x ||kr�||d
kr�|d}q�W||kr�|d}�q�|||�}d|kr�|�d
d�}n�g}||d k�r|dn|d}xB|�d||�}|dk�r0P|�|||��|d}|d}�qW|�|||��d�dd�|D��}t�dd|�}|d}|dd k�r�d|dd�}n|ddk�r�d
|}d||f}q|t�|�}qWd|S)zfTranslate a shell PATTERN to a regular expression.
There is no way to quote meta-characters.
r���*z.*�?�.�[�!�]z\[z--�\z\\��-�css"|]}|�dd��dd�VqdS)r$z\\r&z\-N)�replace)�.0�srrr� <genexpr>tsztranslate.<locals>.<genexpr>z([&~|])z\\\1�^N)r,r!z%s[%s]z (?s:%s)\Z)�lenr(�findr�joinr�sub�escape) r
�i�nr�c�jZstuffZchunks�krrrrJsV
)�__doc__rrr� functools�__all__r� lru_cacherrrrrrrr�<module>s
?>