U Wzf_@sdZddlZddlZddlZdddgZdddZdddZd d Zd d Zd dZ ddZ ddZ e dZ e dZddZddZddZdS)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. NglobiglobescapeFcCstt||dS)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. ) recursive)listr)pathnamerrg/private/var/folders/n9/53xbvtmd7sjg1q1l55xmpg58n4mgng/T/pip-unpacked-wheel-slp6y8a5/setuptools/glob.pyrs cCs*t||}|r&t|r&t|}|r&t|S)aReturn 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 _isrecursivenextAssertionError)rritsrrr rs  ccstj|\}}t|sF|r0tj|rB|Vntj|rB|VdS|s|rnt|rnt||D] }|Vq`nt||D] }|VqxdS||krt|rt ||}n|g}t|r|rt|rt}qt}nt }|D]$}|||D]}tj ||VqqdSN) ospathsplit has_magiclexistsisdirr glob2glob1r glob0join)rrdirnamebasenamexdirs glob_in_dirnamerrr r 0s4      r cCsV|s"t|trtjd}ntj}zt|}Wntk rHgYSXt||SNASCII) isinstancebytesrcurdirencodelistdirOSErrorfnmatchfilter)rpatternnamesrrr r[s  rcCs8|stj|r4|gSntjtj||r4|gSgSr)rrrrr)rrrrr rhs  rccs2t|s t|ddVt|D] }|Vq"dS)Nr)r r _rlistdir)rr+rrrr rxs  rccs|s"t|trtjd}ntj}zt|}Wntjk rHYdSX|D]>}|V|rjtj||n|}t |D]}tj||VqvqNdSr!) r#r$rr%r&r'errorrrr-)rr,rryrrr r-s  r-z([*?[])s([*?[])cCs(t|trt|}n t|}|dk Sr)r#r$magic_check_bytessearch magic_check)rmatchrrr rs   rcCst|tr|dkS|dkSdS)Ns**z**)r#r$)r+rrr r s r cCs<tj|\}}t|tr(td|}n td|}||S)z#Escape all special characters. s[\1]z[\1])rr splitdriver#r$r0subr2)rdriverrr rs   )F)F)__doc__rrer)__all__rrr rrrr-compiler2r0rr rrrrr s    +