Am,s D d Z ddlZddlZddlZddlZddlZddlZddlZg dZddddddZ ddddddZ ddZdd Zdd Z d Zd Zdd Zd Zd ZddZd Zd Zd Z ej d Z ej d Zd Zd Zd Zd Zej eedd z Z dS )zFilename globbing utility. N)globiglobescapeFroot_dirdir_fd recursiveinclude_hiddenc D t t | |||| S )a Return a list of paths matching a pathname pattern. The pattern may contain simple shell-style wildcards a la fnmatch. Unlike fnmatch, filenames starting with a dot are special cases that are not matched by '*' and '?' patterns by default. If `include_hidden` is true, the patterns '*', '?', '**' will match hidden directories. If `recursive` is true, the pattern '**' will match any files and zero or more directories and subdirectories. r )listr )pathnamer r r r s +/opt/alt/python311/lib64/python3.11/glob.pyr r s2 h&I%35 5 5 6 6 6 c v t j d| | t j d| ||| |t j | }n | dd }t | |||d| }| r|rPt | dd r9 t | }|rt j |f| }n# t $ r Y nw xY w|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. z glob.globzglob.glob/2Nr Fr ) sysauditosfspath_iglob_isrecursivenext itertoolschain StopIteration)r r r r r itss r r r s Ik8Y///ImXy(FCCC9X&&BQB< (FIu- / / /B y \(2A2,%?%? RA /_aT2.. D Is 'B) ) B65B6c # K t j | \ }}t | sI|r#t t || | r| V n"t t || | r| V d S |sH|r*t | rt ||||| E d {V nt ||||| E d {V d S || k r%t | rt ||||d| }n|g}t | r!|rt | rt } nt } nt } |D ]E} | t || |||| D ]$} t j || V %Fd S )Nr T) r pathsplit has_magic_lexists_join_isdirr _glob2_glob1r _glob0join)r r r r dironlyr dirnamebasenamedirsglob_in_dirnames r r r <