completions¶
Use both jedi and prompt_toolkit to aide IPython in generating completions.
The function from this module that will be easiest for end users to utilize is.:
-
create_pt_completers()[source][source] Return a
MergedCompletercombining all of the public facing completers initialized in this module. This includes all of the concreteprompt_toolkit.completion.Completersas well as subclasses of the abstract base class.
This creates a combination of almost all of prompt_toolkits completion mechanisms and combines them.
-
combined_completers[source]¶ A ThreadedCompleter instantiated with a MergedCompleter that combines FuzzyWordCompleter, FuzzyCompleter, PathCompleter, WordCompleter and IPython’s IPythonPTCompleter.
In addition, auto-suggestions are generated in a manner similar to fish from an
prompt_toolkit.auto_suggest.AutoSuggestFromHistory instance wrapped in
a prompt_toolkit.auto_suggest.ThreadedAutoSuggest instance as this
dramatically speeds the completions up.
See Also – prompt_toolkit docs¶
- Prompt Toolkit
More documentation on use of the prompt_toolkit API.
Completions API¶
-
class
SimpleCompleter(shell=None, completer=None, min_input_len=0, *args, **kwargs)[source][source]¶ Bases:
prompt_toolkit.completion.base.CompleterBuilding up a customized Completer using the prompt_toolkit API.
Utilizes the min_input_len of the PathCompleter along with adding more necessary dunders and functionally useful fallbacks in case of being called incorrectly, rather adding dozens of assert statements.
-
property
document[source][source]¶ Instance of
prompt_toolkit.document.Document.
-
get_completions(complete_event, doc=None)[source][source]¶ For now lets not worry about CompleteEvent too much.
But we will need to add a get_async_completions method.
Todo
Possibly alias this to
completefor readline compat.
-
get_completions_async(document: prompt_toolkit.document.Document, complete_event: prompt_toolkit.completion.base.CompleteEvent) → AsyncGenerator[prompt_toolkit.completion.base.Completion, None][source][source]¶ Asynchronous generator of completions.
-
property
-
class
PathCallable(only_directories: bool = False, get_paths: Optional[Callable[], List[str]]] = None, file_filter: Optional[Callable[[str], bool]] = None, min_input_len: int = 0, expanduser: bool = False)[source][source]¶ Bases:
prompt_toolkit.completion.filesystem.PathCompleterPathCompleter with
__call__defined.The superclass
PathCompleteris initialized with a set of parameters, and ‘expanduser’ defaults to False.The ‘expanduser’ attribute is set to True in contrast with the superclass
PathCompleter's default; however, that can be overridden in a subclass.
-
create_fuzzy_keyword_completer()[source][source]¶ Return FuzzyWordCompleter initialized with all valid Python keywords.
-
create_word_completer()[source][source]¶ Return WordCompleter initialized with all valid Python keywords.
-
class
MergedCompleter(completers)[source][source]¶ Bases:
prompt_toolkit.completion.base.CompleterCombine several completers into one.
-
class
FuzzyCallable(WORD: Optional[bool] = False, pattern: Optional[Pattern[str]] = None, enable_fuzzy: Optional[Union[prompt_toolkit.filters.base.Filter, bool]] = True, meta_dict: Optional[Dict[str, str]] = None, words: Optional[Union[List[str], Callable[], List[str]]]] = None, ignore_case: Optional[bool] = False, sentence: Optional[bool] = False, match_middle: Optional[bool] = False)[source][source]¶ Bases:
prompt_toolkit.completion.fuzzy_completer.FuzzyWordCompleterA FuzzyCompleter with
__call__defined.-
__init__(WORD: Optional[bool] = False, pattern: Optional[Pattern[str]] = None, enable_fuzzy: Optional[Union[prompt_toolkit.filters.base.Filter, bool]] = True, meta_dict: Optional[Dict[str, str]] = None, words: Optional[Union[List[str], Callable[], List[str]]]] = None, ignore_case: Optional[bool] = False, sentence: Optional[bool] = False, match_middle: Optional[bool] = False)[source][source]¶ Mostly FuzzyWordCompleter…except callable.
And the superclasses are initialized a little better.
- Parameters
completer – A
Completerinstance.WORD – When True, use WORD characters.
pattern – Regex pattern which selects the characters before the cursor that are considered for the fuzzy matching.
enable_fuzzy – (bool or
Filter) Enabled the fuzzy behavior. For easily turning fuzzyness on or off according to a certain condition.words – List of words or callable that returns a list of words.
ignore_case – If True, case-insensitive completion.
meta_dict – Optional dict mapping words to their meta-text. (This should map strings to strings or formatted text.)
WORD – When True, use WORD characters.
sentence – When True, don’t complete by comparing the word before the cursor, but by comparing all the text before the cursor. In this case, the list of words is just a list of strings, where each string can contain spaces. (Can not be used together with the WORD option.)
match_middle – When True, match not only the start, but also in the middle of the word.
-