
    Rh}                         d dl Z d Zd Zd Zy)    Nc                 R    dj                  t        t        t        |                   S )z
    Given a glob pattern, produce a regex that matches it.

    >>> translate('*.txt')
    '[^/]*\\.txt'
    >>> translate('a?txt')
    'a.txt'
    >>> translate('**/*')
    '.*/[^/]*'
     )joinmapreplaceseparatepatterns    )/usr/lib/python3.12/zipfile/_path/glob.py	translater      s     773w 1233    c                 .    t        j                  d|       S )z
    Separate out character sets to avoid translating their contents.

    >>> [m.group(0) for m in separate('*.txt')]
    ['*.txt']
    >>> [m.group(0) for m in separate('a[?]txt')]
    ['a', '[?]', 'txt']
    z+([^\[]+)|(?P<set>[\[].*?[\]])|([\[][^\]]*$))refinditerr	   s    r   r   r      s     ;;EwOOr   c                     | j                  d      xsT t        j                  | j                  d            j                  dd      j                  dd      j                  dd      S )	zE
    Perform the replacements for a match from :func:`separate`.
    setr   z\*\*z.*z\*z[^/]*z\?.)groupr   escaper   )matchs    r   r   r      sR    
 ;;u 
		%++a.!	5	!		!			r   )r   r   r   r    r   r   <module>r      s    	4	P
r   