B
    u9a                 @   s   d dl Z d dlZd dlZdddgZddddZddddZd	d
 Zdd Zdd Zdd Z	dd Z
dd Zdd Zdd ZedZedZdd Zdd Zdd  Zd!d ZdS )"    NglobiglobescapeF)	recursivec            C   s   t t| |dS )N)r   )listr   )pathnamer    r   /usr/lib/python3.7/glob.pyr   	   s    c            C   s$   t | |d}|r t| r t|}|S )NF)_iglob_isrecursivenext)r   r   itsr   r   r	   r      s    c             c   s   t j| \}}t| sF|r0t j| rB| V  nt j|rB| V  d S |s|rjt|rjt|||E d H  nt|||E d H  d S || krt|rt	||d}n|g}t|r|rt|rt}qt}nt
}x2|D ]*}x$||||D ]}t j||V  qW qW d S )NT)ospathsplit	has_magiclexistsisdirr   _glob2_glob1r
   _glob0join)r   r   dironlydirnamebasenamedirsZglob_in_dirnamer   r   r	   r
   '   s0    
r
   c             C   s0   t t| |}t|s$dd |D }t||S )Nc             s   s   | ]}t |s|V  qd S )N)	_ishidden).0xr   r   r	   	<genexpr>R   s    z_glob1.<locals>.<genexpr>)r   _iterdirr   fnmatchfilter)r   patternr   namesr   r   r	   r   O   s    r   c             C   s8   |st j| r4|gS nt jt j| |r4|gS g S )N)r   r   r   r   r   )r   r   r   r   r   r	   r   U   s    r   c             C   s   t | |dS )NF)r   )r   r%   r   r   r	   glob0b   s    r'   c             C   s   t | |dS )NF)r   )r   r%   r   r   r	   glob1e   s    r(   c             c   s"   |d d V  t | |E d H  d S )Nr   )	_rlistdir)r   r%   r   r   r   r	   r   k   s    r   c          
   c   s   | s"t | trttjd} ntj} yVt| B}x:|D ]2}y|rH| rP|jV  W q6 tk
rf   Y q6X q6W W d Q R X W n tk
r   d S X d S )NASCII)
isinstancebytesr   curdirscandiris_dirr   OSError)r   r   r   entryr   r   r	   r"   r   s    

r"   c             c   sh   t t| |}xT|D ]L}t|s|V  | r8tj| |n|}x"t||D ]}tj||V  qHW qW d S )N)r   r"   r   r   r   r   r)   )r   r   r&   r    r   yr   r   r	   r)      s    
r)   z([*?[])s   ([*?[])c             C   s(   t | trt| }n
t| }|d k	S )N)r+   r,   magic_check_bytessearchmagic_check)r   matchr   r   r	   r      s    

r   c             C   s   | d dkS )Nr   )..   r   )r   r   r   r	   r      s    r   c             C   s   t | tr| dkS | dkS d S )Ns   **z**)r+   r,   )r%   r   r   r	   r      s    
r   c             C   s<   t j| \}} t| tr(td| } ntd| } ||  S )Ns   [\1]z[\1])r   r   
splitdriver+   r,   r3   subr5   )r   Zdriver   r   r	   r      s
    
)r   rer#   __all__r   r   r
   r   r   r'   r(   r   r"   r)   compiler5   r3   r   r   r   r   r   r   r   r	   <module>   s&   
(


