Mini Shell
a
�DOg� � @ s� d Z ddlZddlZddlZddlZddlZg d�Zdd�dd�Zdd�dd �Zd
d� Z dd
� Z
dd� Zdd� Zdd� Z
dd� Zdd� Zdd� Zdd� Ze�d�Ze�d�Zdd� Zd d!� Zd"d#� Zd$d%� ZdS )&zFilename globbing utility.� N)�glob�iglob�escapeF�� recursivec 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.
r )�listr )�pathnamer � r �/usr/lib64/python3.9/glob.pyr s r c C s: t �d| |� t| |d�}|r6t| �r6t|�}|r6J �|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.
z glob.globF)�sys�audit�_iglob�_isrecursive�next)r r �it�sr r r
r s r c c s t j�| �\}}t| �sN|r J �|r8t j�| �rJ| V nt j�|�rJ| V d S |s�|rrt|�rrt|||�E d H nt|||�E d H d S || kr�t|�r�t ||d�}n|g}t|�r�|r�t|�r�t}q�t}nt
}|D ]&}||||�D ]}t j�||�V q�q�d S )NT)�os�path�split� has_magic�lexists�isdirr �_glob2�_glob1r
�_glob0�join)r r �dironly�dirname�basename�dirsZglob_in_dir�namer r r
r
* s2 r
c C s, t | |�}t|�s dd� |D �}t�||�S )Nc s s | ]}t |�s|V qd S �N)� _ishidden)�.0�xr r r
� <genexpr>U � z_glob1.<locals>.<genexpr>)�_listdirr"