B
    T\                 @   sN   d dl Z d dlZdd Zdd Zdd Zdd	 Zed
Zdd Zdd Z	dS )    Nc                s    |\} |stdt|sH s0t|s> rD|rD|gS g S  rpt|rpfddt|D }nt|r|gng }t rtnt fdd|D S )a  A filesystem agnostic glob implemention.

    Parameters
    ----------
    fs : filesystem
        The filesystem to search.
    path_impl : os.path like
        The path module implementation to use. Designed to pass in
        ``posixpath`` or ``ntpath`` modules directly.
    pathname : str
        The path or pattern to glob

    Returns
    -------
    paths : list
        A list of paths matching the given path or pattern.
    z%glob pattern must be an absolute pathc                s   g | ]}t  |r|qS  )_safe_isdir).0d)fsr   .lib/python3.7/site-packages/dask/bytes/glob.py
<listcomp>X   s    z generic_glob.<locals>.<listcomp>c                s,   g | ]$}| D ]} ||qqS r   )join)r   Zdirname2name)basenamer   glob_in_dir	path_implr   r   r   _   s   )split
ValueError
_has_magicr   existsgeneric_glob_glob_pattern
_glob_path)r   r   pathnamedirnamedirsr   )r   r   r   r   r   r   <   s    r   c             C   s$   y
|  |S  tk
r   dS X d S )NF)isdirOSError)r   r   r   r   r   r   d   s    
r   c                s:    fdd|  |D }t|s.dd |D }t||S )Nc                s   g | ]}  |d  qS )   )r   )r   f)r   r   r   r   m   s    z!_glob_pattern.<locals>.<listcomp>c             S   s   g | ]}t |s|qS r   )	_ishidden)r   xr   r   r   r   o   s    )Zlsr   fnmatchfilter)r   r   r   patternnamesr   )r   r   r   l   s    r   c             C   s.   |st | |s$|r*| |||r*|gS g S )N)r   r   r	   )r   r   r   r   r   r   r   r   s   s    r   z([*?[])c             C   s   t | d k	S )N)_magic_checksearch)sr   r   r   r   }   s    r   c             C   s   | d dkS )Nr   .r   )pathr   r   r   r      s    r   )
r   rer   r   r   r   compiler"   r   r   r   r   r   r   <module>8   s   (
