/
opt
/
imh-python
/
lib
/
python3.9
/
site-packages
/
prompt_toolkit
/
contrib
/
completers
/
/opt/imh-python/lib/python3.9/site-packages/prompt_toolkit/contrib/completers
mkdir
upload
Name
Size
Mode
Actions
__pycache__/
-
0755
rm
system.py
2057
0644
edit
dl
rm
__init__.py
103
0644
edit
dl
rm
Edit:
/opt/imh-python/lib/python3.9/site-packages/prompt_toolkit/contrib/completers/system.py
(2057B)
from __future__ import annotations from prompt_toolkit.completion.filesystem import ExecutableCompleter, PathCompleter from prompt_toolkit.contrib.regular_languages.compiler import compile from prompt_toolkit.contrib.regular_languages.completion import GrammarCompleter __all__ = [ "SystemCompleter", ] class SystemCompleter(GrammarCompleter): """ Completer for system commands. """ def __init__(self) -> None: # Compile grammar. g = compile( r""" # First we have an executable. (?P<executable>[^\s]+) # Ignore literals in between. ( \s+ ("[^"]*" | '[^']*' | [^'"]+ ) )* \s+ # Filename as parameters. ( (?P<filename>[^\s]+) | "(?P<double_quoted_filename>[^\s]+)" | '(?P<single_quoted_filename>[^\s]+)' ) """, escape_funcs={ "double_quoted_filename": (lambda string: string.replace('"', '\\"')), "single_quoted_filename": (lambda string: string.replace("'", "\\'")), }, unescape_funcs={ "double_quoted_filename": ( lambda string: string.replace('\\"', '"') ), # XXX: not entirely correct. "single_quoted_filename": (lambda string: string.replace("\\'", "'")), }, ) # Create GrammarCompleter super().__init__( g, { "executable": ExecutableCompleter(), "filename": PathCompleter(only_directories=False, expanduser=True), "double_quoted_filename": PathCompleter( only_directories=False, expanduser=True ), "single_quoted_filename": PathCompleter( only_directories=False, expanduser=True ), }, )
Save
cmd:
run