Mini Shell

Direktori : /proc/self/root/lib64/python3.9/__pycache__/
Upload File :
Current File : //proc/self/root/lib64/python3.9/__pycache__/fnmatch.cpython-39.pyc

a

�DOgt�@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�/usr/lib64/python3.9/fnmatch.pyrsr�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�pat_str�res_str�resrrr
�_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
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
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|�dd
�}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�srrr
�	<genexpr>~s�ztranslate.<locals>.<genexpr>z([&~|])z\\\1�^N)r0r$z.*�z(?=(?P<gz>.*?z))(?P=g�)z(?s:z)\Z)
�objectr�lenr,�find�joinr�sub�escape�
_nextgroupnum)r�STARr�add�i�n�c�j�stuff�chunks�k�inp�fixed�groupnumrrr
rPs�







�




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

Zerion Mini Shell 1.0