U Qab @ s d Z ddlZddlZddlZdddgZdddZdddZd d Zdd Zd d Z dd Z dd ZedZ edZdd 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. NglobiglobescapeFc C s t t| |dS )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 3/usr/lib/python3.8/site-packages/setuptools/glob.pyr s c C s" 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_isrecursivenext)r r itsr r r r s c c s t j| \}}t| sF|r0t j| rB| V nt j|rB| V d S |s|rnt|rnt||D ] }|V q`nt||D ] }|V qxd S || krt|rt ||}n|g}t|r|rt|rt}qt}nt }|D ]$}|||D ]}t j||V qqd S N)ospathsplit has_magiclexistsisdirr glob2glob1r glob0join)r r dirnamebasenamexdirsZglob_in_dirnamer r r r 0 s4 r c C sV | s"t |trtjd} ntj} zt| }W n tk rH g Y S X t||S NASCII) isinstancebytesr curdirencodelistdirOSErrorfnmatchfilter)r patternnamesr r r r [ s r c C s8 |st j| r4|gS nt jt j| |r4|gS g S r )r r r r r )r r r r r r h s r c c s&