3
A|e	                 @   s   d Z ddlZddlZddlZdddgZdddZdddZd	d
 Zdd Zdd Z	dd Z
dd ZejdZejdZdd Zdd Zdd ZdS )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   S/var/www/html/StaffProfile/staffvenv/lib/python3.6/site-packages/setuptools/glob.pyr      s    c             C   s,   t | |}|r(t| r(t|}| s(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.
    )_iglob_isrecursivenextAssertionError)r   r   itsr   r   r	   r      s
    

c             c   s   t jj| \}}|r t|r tnt}t| sZ|rDt jj| rV| V  nt jj|rV| V  d S |sr|||E d H  d S || krt|rt	||}n|g}t|st
}x0|D ](}x"|||D ]}t jj||V  qW qW d 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   s(    
r
   c             C   sR   | s"t |trtjjd} ntj} ytj| }W n tk
rD   g S X tj||S )NASCII)	
isinstancebytesr   curdirencodelistdirOSErrorfnmatchfilter)r   patternnamesr   r   r	   r   T   s    
r   c             C   s8   |st jj| r4|gS nt jjt jj| |r4|gS g S )N)r   r   r   r   r   )r   r   r   r   r	   r   a   s    r   c             c   s6   t |st|d d V  xt| D ]
}|V  q$W d S )Nr   )r   r   	_rlistdir)r   r(   xr   r   r	   r   q   s    r   c             c   s   | s"t | trtjjd} ntj} ytj| }W n tjk
rF   d S X xJ|D ]B}|V  | rjtjj| |n|}x t	|D ]}tjj||V  qxW qNW d S )Nr   )
r    r!   r   r"   r#   r$   errorr   r   r*   )r   r)   r+   r   yr   r   r	   r*   y   s    

r*   z([*?[])s   ([*?[])c             C   s(   t | trtj| }n
tj| }|d k	S )N)r    r!   magic_check_bytessearchmagic_check)r   matchr   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j| \}} t| tr(tjd| } ntjd| } ||  S )z#Escape all special characters.
    s   [\1]z[\1])r   r   
splitdriver    r!   r.   subr0   )r   driver   r   r	   r      s
    
)F)F)__doc__r   rer&   __all__r   r   r
   r   r   r   r*   compiler0   r.   r   r   r   r   r   r   r	   <module>   s    


$

