Your IP : 18.191.166.168
3
\�@s�dZddlZddlZddlZdddgZdd�dd�Zdd�d d�Zd
d�Zdd
�Zdd�Z dd�Z
dd�Zdd�Zdd�Z
dd�Zejd�Zejd�Zdd�Zdd�Zd d!�Zd"d�ZdS)#zFilename globbing utility.�N�glob�iglob�escapeF)� recursivecCstt||d��S)ayReturn 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.6/glob.pyr scCs$t||d�}|r t|�r t|�}|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.
F)�_iglob�_isrecursive�next)rr�it�srrr rsccstjj|�\}}t|�sF|r0tjj|�rB|Vntjj|�rB|VdS|s�|rjt|�rjt|||�EdHnt|||�EdHdS||kr�t|�r�t ||d�}n|g}t|�r�|r�t|�r�t}q�t}nt
}x2|D]*}x$||||�D]}tjj||�Vq�Wq�WdS)NT)�os�path�split� has_magic�lexists�isdirr�_glob2�_glob1r
�_glob0�join)rr�dironly�dirname�basename�dirsZglob_in_dir�namerrr r
's0
r
cCs0tt||��}t|�s$dd�|D�}tj||�S)Ncss|]}t|�s|VqdS)N)� _ishidden)�.0�xrrr � <genexpr>Rsz_glob1.<locals>.<genexpr>)r�_iterdirr�fnmatch�filter)r�patternr�namesrrr rOsrcCs8|stjj|�r4|gSntjjtjj||��r4|gSgS)N)rrrrr)rrrrrr rUsrcCst||d�S)NF)r)rr%rrr �glob0bsr'cCst||d�S)NF)r)rr%rrr �glob1esr(ccs"|dd�Vt||�EdHdS)Nr)� _rlistdir)rr%rrrr rksrccs�|s"t|t�rttjd�}ntj}yXtj|��D}x<|D]4}y|sJ|j�rR|jVWq6tk
rhYq6Xq6WWdQRXWntk
r�dSXdS)N�ASCII)�
isinstance�bytesr�curdir�scandir�is_dirr�OSError)rrr
�entryrrr r"rs
r"ccshtt||��}xT|D]L}t|�s|V|r8tjj||�n|}x"t||�D]}tjj||�VqHWqWdS)N)rr"rrrrr))rrr&r r�yrrr r)�s
r)z([*?[])s([*?[])cCs(t|t�rtj|�}n
tj|�}|dk S)N)r+r,�magic_check_bytes�search�magic_check)r�matchrrr r�s
rcCs|ddkS)Nr�.�.�.)r7r9r)rrrr r�srcCst|t�r|dkS|dkSdS)Ns**z**)r+r,)r%rrr r�s
rcCs<tjj|�\}}t|t�r(tjd|�}ntjd|�}||S)z#Escape all special characters.
s[\1]z[\1])rr�
splitdriver+r,r3�subr5)rZdriverrr r�s
)�__doc__r�rer#�__all__rrr
rrr'r(rr"r)�compiler5r3rrrrrrrr �<module>s(
(
?>