a (šRe ã@sdZddlZddlZddlZgd¢Zddd„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ú…/builddir/build/BUILDROOT/alt-python39-setuptools-58.3.0-2.el8.x86_64/opt/alt/python39/lib/python3.9/site-packages/setuptools/glob.pyrs rcCs*t||ƒ}|r&t|ƒr&t|ƒ}|r&J‚|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  rccsÎtj |¡\}}|r t|ƒr tnt}t|ƒsZ|rDtj |¡rV|Vntj |¡rV|VdS|sr|||ƒEdHdS||krŽt|ƒrŽt ||ƒ}n|g}t|ƒs t }|D]$}|||ƒD]}tj  ||¡Vq²q¤dS©N) ÚosÚpathÚsplitr Úglob2Úglob1Ú has_magicÚlexistsÚisdirr Úglob0Újoin)rrÚdirnameÚbasenameÚ glob_in_dirÚdirsÚnamerrr r 0s(   r cCsT|s"t|tƒrtj d¡}ntj}zt |¡}WntyFgYS0t ||¡S©NÚASCII) Ú isinstanceÚbytesrÚcurdirÚencodeÚlistdirÚOSErrorÚfnmatchÚfilter)rÚpatternÚnamesrrr rTs   rcCs8|stj |¡r4|gSntj tj ||¡¡r4|gSgSr)rrrrr)rrrrr ras  rccs2t|ƒs J‚|dd…Vt|ƒD] }|Vq"dS)Nr)r Ú _rlistdir)rr)Úxrrr rqs  rccs|s"t|tƒrtj d¡}ntj}zt |¡}WntjyFYdS0|D]>}|V|rhtj ||¡n|}t |ƒD]}tj ||¡VqtqLdSr) r!r"rr#r$r%Úerrorrrr+)rr*r,rÚyrrr r+ys  r+z([*?[])s([*?[])cCs(t|tƒrt |¡}n t |¡}|duSr)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/Úsubr1)rÚdriverrr rs   r)F)F)Ú__doc__rÚrer'Ú__all__rrr rrrr+Úcompiler1r/rr rrrrr Ús   $