File: //lib/python3/dist-packages/setuptools/__pycache__/glob.cpython-310.pyc
o
    �_�a	  �                   @   s�   d Z ddlZddlZddlZg d�Zddd�Zddd�Zd	d
� Zdd� Zd
d� Z	dd� Z
dd� Ze�d�Z
e�d�Zdd� Zdd� Zdd� ZdS )z�
Filename globbing utility. Mostly a copy of `glob` from Python 3.5.
Changes include:
 * `yield from` and PEP3102 `*` removed.
 * Hidden files are not ignored.
�    N)�glob�iglob�escapeFc                 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.
    )�	recursive)�listr   )�pathnamer   � r   �1/usr/lib/python3/dist-packages/setuptools/glob.pyr      s   r   c                 C   s*   t | |�}|rt| �rt|�}|rJ �|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�| �\}}|rt|�rtnt}t| �s/|r$t j�| �r"| V  d S t j�|�r-| V  d S |s;|||�E d H  d S || krIt|�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
   0   s0   ����r
   c                 C   sT   | st |t�rtj�d�} ntj} zt�| �}W n ty#   g  Y S w t�||�S �N�ASCII)	�
isinstance�bytesr   �curdir�encode�listdir�OSError�fnmatch�filter)r   �pattern�namesr   r   r	   r   T   s   
�r   c                 C   s:   |s
t j�| �r|gS g S t j�t j�| |��r|gS g S r   )r   r   r   r   r   )r   r   r   r   r	   r   a   s   �r   c                 c   s4   � t |�sJ �|d d� V  t| �D ]}|V  qd S )Nr   )r   �	_rlistdir)r   r)   �xr   r   r	   r   q   s   ��r   c                 c   s�   � | st | t�rtj�d�} ntj} zt�| �}W n tjy$   Y d S w |D ]}|V  | r5tj�| |�n|}t	|�D ]
}tj�||�V  q;q'd S r   )
r!   r"