- from prompt_toolkit import prompt
- from prompt_toolkit.history import FileHistory
- from prompt_toolkit.auto_suggest import AutoSuggestFromHistory
- from prompt_toolkit.contrib.completers import WordCompleter
- import click
- SQLCompleter = WordCompleter(['select', 'from', 'insert', 'update', 'delete', 'drop'],
- ignore_case=True)
- while 1:
- user_input = prompt(u'SQL>',
- history=FileHistory('history.txt'),
- auto_suggest=AutoSuggestFromHistory(),
- completer=SQLCompleter,
- )
- click.echo_via_pager(user_input)
编辑器
在我之前的文┞仿中提到一个细节,就是当敕令变得太复杂时就会回到编辑器,同样的 click 供给了一个简单的 API 可以来启动编辑器,并将编辑器中输入的文本返回到应用中:
假设我们正在为 SQL 实现 REPL。我们可以应用 SQL 关键字存储我们的主动完成字典。让我们看看若何做到这一点:
- import click
- message = click.edit()
模糊搜刮
模糊搜刮是一种让用户经由过程起码的输仁攀来缩小提示。同样有一个模糊搜刮库,让我们安装这个库:
- pip install fuzzyfinder
模糊搜刮的API很简单,你传递进部分字符串和一个可能选择的列表,模糊搜刮将返回一个新的列表,它和应用了按相干性排序的含混算法的字符串进行匹配,例如:
- >>> from fuzzyfinder import fuzzyfinder
- >>> suggestions = fuzzyfinder('abc', ['abcd', 'defabca', 'aagbec', 'xyz', 'qux'])
- >>> list(suggestions)
- ['abcd', 'defabca', 'aagbec']
如今我们有了模糊搜刮,我们将它参加到我们的 SQL 交互式说冥器中。如许就定义了一个完成器,而不是 prompt-toolkit 附带的 WordCompleter。例如:
推荐阅读
什么是主动编码器主动编码器(AutoEncoder)最开端作为一种数据的紧缩办法,其特点有: 跟数据相干程度很高,这意味着主动编码器只能紧缩与练习数据类似的数据,这个其实比较显然,因>>>详细阅读
地址:http://www.17bianji.com/lsqh/36115.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示