Your IP : 18.227.183.161


Current Path : /opt/alt/python310/lib64/python3.10/__pycache__/
Upload File :
Current File : //opt/alt/python310/lib64/python3.10/__pycache__/fnmatch.cpython-310.pyc

o

6��f9�@s|dZddlZddlZddlZddlZgd�ZddlmZe�jZ	[dd�Z
ejddd	�d
d��Zdd
�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/python310/lib64/python3.10/fnmatch.pyrs
r�T)�maxsize�typedcCs<t|t�rt|d�}t|�}t|d�}nt|�}t�|�jS)Nz
ISO-8859-1)�
isinstance�bytes�strr�re�compile�match)rZpat_strZres_str�resrrr
�_compile_pattern,s

rcCsjg}tj�|�}t|�}tjtur!|D]}||�r|�|�q|S|D]}|tj�|��r2|�|�q#|S)zJConstruct a list from those elements of the iterable NAMES that match PAT.)rrr	r�	posixpath�append)�namesr�resultrr
rrr
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
rrrrr
rFsrcCs2t�}g}|j}dt|�}}||k�r]||}|d}|dkr.|r(|d|ur,||��n+|dkr8|d��n!|dk�rR|}||krM||dkrM|d}||kr[||d	kr[|d}||krs||d	krs|d}||krs||d	kse||kr||d
�n�|||�}d|vr�|�dd
�}n�g}	||dkr�|dn|d}
	|�d|
|�}
|
dkr�n|	�|||
��|
d}|
d}
q�|||�}|r�|	�|�n|	dd7<tt|	�ddd�D]*}
|	|
dd|	|
dk�r|	|
ddd�|	|
dd�|	|
d<|	|
=q�d�dd�|	D��}t�dd|�}|d}|�s$|d�n5|dk�r.|d�n+|ddk�r>d|dd�}n|ddv�rId|}|d|�d	��n|t�	|��||ks||k�sdJ�|}g}|j}dt|�}}||k�r�|||u�r�|||�|d7}||k�r�|||u�s~||k�r|||u�s�J�|d7}||k�r�|d�nW|||u�s�J�g}
||k�r�|||u�r�|
�||�|d7}||k�r�|||u�s�d�|
�}
||k�r�|d�||
�nt
�}|d|�d|
�d|�d��||k�s�||k�sJ�d�|�}d|�d �S)!zfTranslate a shell PATTERN to a regular expression.

    There is no way to quote meta-characters.
    r��*����?�.�[�!�]z\[�-�\�\\�T�Ncss$�|]
}|�dd��dd�VqdS)r&r'r%z\-N)�replace)�.0�srrr
�	<genexpr>�s��ztranslate.<locals>.<genexpr>z([&~|])z\\\1z(?!)�^)r.r"z.*�z(?=(?P<gz>.*?z))(?P=g�)z(?s:z)\Z)�objectr�lenr*�find�range�joinr�sub�escape�
_nextgroupnum)r�STARr�add�i�n�c�jZstuffZchunks�k�chunkZinpZfixedZgroupnumrrr
rPs�
�
�
�,�
�


�@�

�



�
r)�__doc__rrr�	functools�__all__�	itertoolsr�__next__r8r�	lru_cacherrrrrrrr
�<module>s
	

?>