使用Python几个库打造自己的REPL
来源:互联网 发布:java设计模式uml 编辑:程序博客网 时间:2024/05/20 04:14
使用Python几个库打造自己的REPL
当我们使用python为用户提供应用接口的时候,有时需要自己为用户打造专属REPL,接下来我们便使用Prompt Toolkit,Click,Pygments和Fuzzy Finder简单打造一个专属的用户命令行工具。我们以打造一个SQL命令行工具为例子:
Python Prompt Toolkit
Prompt Toolkit这个库是打造REPL的瑞士军刀,可以代替readline和curses等库的功能。
首先我们先从简单入手,先打造一个会回显你输入的内容的REPL:
此时的Prompt Toolkit代替了readline的功能
接下来我们添加输入命令历史纪录的功能,使得REPL可以通过上下按钮访问到历史命令,而且我们还可以通过CTRL-R来对命令进行搜索。
然后我们添加自动提示功能和自动填充功能,当我们输入命令的时候,REPL会根据我们的输入提示可能的命令,并可以根据我们给出的库自动填充命令:
Click模块
当有时用户输入的命令太长的时候,直接使用命令行输入很很难进行调试,因此我们使用Click模块,使得用户输入长命令的时候可以在文本文档先进行书写,再导入到REPL进行执行。需要加入以下代码:
import clickmessage = click.edit()
Fuzzy Finder
当我们需要对命令进行模糊匹配的时候,此时我们可以使用Fuzzy Finder。
基本用法如下:
将模糊匹配的功能集成到SQL REPL:
当我们输入se的时候,系统就会自动对SQLKeywords中的关键词进行模糊匹配,并提醒我们可能输入的是什么。
Pygments
为SQL REPL添加关键词高亮的功能时,我们要用到Pygments这个库,通过关键词的高亮显示可以帮助用户及早发现语句的结构错误。使用Pygments之前,要先用pip工具进行安装:
pip install Pygments
将高亮功能集成到SQL REPL中:
Conclusion
至此,我们通过使用Prompt Toolkit,Click,Pygments,Fuzzy Finder这四个库开发了一个简易的SQL REPL。当我们在为用户开发用户命令行的时候,这些库显然可以很容易帮助我们建立一个更好的REPL。
- 使用Python几个库打造自己的REPL
- 利用python库打造自己的视频下载器
- linux 下打造自己的 Python IDE
- 打造自己的Python编码环境
- 打造自己的 Python 编码环境
- 打造自己的JS库
- 使用LFS打造自己的Linux心得体会
- 使用Vim打造自己的IDE
- 使用FontCreator打造属于自己的字体
- 使用 CEFPython 打造自己的浏览器视图
- 使用注解打造自己的IOC框架
- 使用vultr+ shadowsocks打造自己的vpn
- 转几个Python的连接,自己参考
- 利用python打造自己的ftp暴力破解工具
- python+cartodb+ExifRead 打造自己的大数据照片地图
- 使用Vim打造现代化的Python IDE
- 打造属于自己的图文符号库
- 打造自己的smali代码库
- 记第一篇博客
- hdu3045 斜率优化
- Oculus展示新突破“焦点平面显示技术”,让近视人群使用VR头盔时摘掉眼镜
- 学习自动化测试的一些总结
- 数学建模|机器学习|主成分分析原理(PCA)
- 使用Python几个库打造自己的REPL
- iOS汇编教程
- maven工程没有target/dependency目录
- Nginx 403错误常见问题解决方法
- Android Studio 自动找不到android.widget.EditText
- Java中,&&与&,||与|的区别
- spring与mybatis三种整合方法
- java案例-基于集合的登录注册案例
- iOS开发UIBezierPath的详细介绍