U âQabÜã@s’dZddlZddlZddlZdddgZddd„Zddd„Zd d „Zd d „Zd d„Z dd„Z dd„Z e  d¡Z e  d¡Zdd„Zdd„Zdd„ZdS)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ÚescapeFcCstt||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. )Ú recursive)Úlistr)Úpathnamer©rú3/usr/lib/python3.8/site-packages/setuptools/glob.pyrs cCs"t||ƒ}|rt|ƒrt|ƒ}|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)rrÚitÚsrrr rs  ccsütj |¡\}}t|ƒsF|r0tj |¡rB|Vntj |¡rB|VdS|sˆ|rnt|ƒrnt||ƒD] }|Vq`nt||ƒD] }|VqxdS||kr¤t|ƒr¤t ||ƒ}n|g}t|ƒrÊ|rÄt|ƒrÄt}qÎt}nt }|D]$}|||ƒD]}tj  ||¡VqàqÒdS©N) ÚosÚpathÚsplitÚ has_magicÚlexistsÚisdirr Úglob2Úglob1r Úglob0Újoin)rrÚdirnameÚbasenameÚxÚdirsZ glob_in_dirÚnamerrr r 0s4      r cCsV|s"t|tƒrtj d¡}ntj}zt |¡}Wntk rHgYSXt ||¡S©NÚASCII) Ú isinstanceÚbytesrÚcurdirÚencodeÚlistdirÚOSErrorÚfnmatchÚfilter)rÚpatternÚnamesrrr r[s  rcCs8|stj |¡r4|gSntj tj ||¡¡r4|gSgSr)rrrrr)rrrrr rhs  rccs&|dd…Vt|ƒD] }|VqdS)Nr)Ú _rlistdir)rr)rrrr rxs rccs’|s"t|tƒrtj d¡}ntj}zt |¡}Wntjk rHYdSX|D]>}|V|rjtj ||¡n|}t |ƒD]}tj ||¡VqvqNdSr) r!r"rr#r$r%Úerrorrrr+)rr*rrÚyrrr r+€s  r+z([*?[])s([*?[])cCs(t|tƒrt |¡}n t |¡}|dk Sr)r!r"Úmagic_check_bytesÚsearchÚ magic_check)rÚmatchrrr r•s   rcCst|tƒr|dkS|dkSdS)Ns**z**)r!r")r)rrr r �s r cCs<tj |¡\}}t|tƒr(t d|¡}n t d|¡}||S)z#Escape all special characters. s[\1]z[\1])rrÚ splitdriver!r"r.Úsubr0)rZdriverrr r¤s   )F)F)Ú__doc__rÚrer'Ú__all__rrr rrrr+Úcompiler0r.rr rrrrr Ús    +