OXIESEC PANEL
- Current Dir:
/
/
snap
/
core24
/
988
/
usr
/
lib
/
python3.12
/
zipfile
/
_path
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
05/04/2025 04:37:50 PM
rwxr-xr-x
📄
__init__.py
10.5 KB
02/04/2025 02:48:35 PM
rw-r--r--
📁
__pycache__
-
05/04/2025 04:37:50 PM
rwxr-xr-x
📄
glob.py
893 bytes
02/04/2025 02:48:35 PM
rw-r--r--
Editing: glob.py
Close
import re def translate(pattern): r""" Given a glob pattern, produce a regex that matches it. >>> translate('*.txt') '[^/]*\\.txt' >>> translate('a?txt') 'a.txt' >>> translate('**/*') '.*/[^/]*' """ return ''.join(map(replace, separate(pattern))) def separate(pattern): """ 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'] """ return re.finditer(r'([^\[]+)|(?P<set>[\[].*?[\]])|([\[][^\]]*$)', pattern) def replace(match): """ Perform the replacements for a match from :func:`separate`. """ return match.group('set') or ( re.escape(match.group(0)) .replace('\\*\\*', r'.*') .replace('\\*', r'[^/]*') .replace('\\?', r'.') )