�
�(�g} � � � d dl Z d� Zd� Zd� Zy)� Nc �R � dj 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 � � �7�7�3�w��� 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 � � �;�;�E�w�O�Or
c �� � | j d� xsT t j | j d� � j dd� j dd� j dd� 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
|