LoginSignup
2
2

More than 5 years have passed since last update.

【Python】prompt-toolkitでfuzzy complete(あいまいな補完)を実装する

Last updated at Posted at 2019-01-28

動作環境

> python --version
Python 3.7.1

> pipenv graph
prompt-toolkit==2.0.8
  - six [required: >=1.9.0, installed: 1.12.0]
  - wcwidth [required: Any, installed: 0.1.7]

基本的な補完機能(WordCompleter)

wordcompleter.gif

単語の補完には、prompt_toolkit.completion.WordCompleterが使える

from prompt_toolkit import prompt
from prompt_toolkit.completion import WordCompleter

# 単語の候補
my_completer = WordCompleter(
    ["apple", "goole", "japan", "hoge", "hello world", "good morning"]
)

while 1:
    # hisotoryで履歴を追加
    user_input = prompt(">", completer=my_completer)
    print(user_input)

あいまいな補完(FuzzyWordCompleter)

fuzzywordcompleter.gif

prompt_toolkit 2.0.8 から、あいまい検索(fuzzy find)でのauto_completeができるようになった

FuzzyWordCompleterWordCompleterをラップしたものであるため、WordCompleterと同じように使える

from prompt_toolkit import prompt
from prompt_toolkit.completion import FuzzyWordCompleter

# 単語の候補
my_completer = FuzzyWordCompleter(
    ["apple", "goole", "japan", "hoge", "hello world", "good morning"]
)

while 1:
    # hisotoryで履歴を追加
    user_input = prompt("> ", completer=my_completer)
    print(user_input)

参考文献

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2