Project Icon

riposte

轻松构建定制互动式Shell,简化REPL构建流程

Riposte 是一个帮助开发者将应用程序封装在定制互动式Shell中的工具。它简化了构建REPL的常见任务,使开发者可以专注于应用程序的具体领域逻辑。无论是处理嵌入式设备的安全项目还是构建自定义工具,Riposte 都能提供强大的Shell逻辑和用户友好的功能。该工具支持 Python 3.8 及以上版本,并提供命令注册、TAB补全、类型提示、打印方法、命令历史记录、动态提示符和横幅显示等丰富特性。

Riposte 项目介绍

项目概述

Riposte 是一个让开发者能够轻松地为应用添加定制交互式命令行界面的工具。通过将构建 REPL(Read-Eval-Print Loop)的常见任务抽象化,Riposte 使开发者能够专注于应用的领域逻辑,而不必费神去处理底层的命令行界面实现。

Riposte 的产生源于在开发 routersploit 项目的过程中,开发团队经历了许多关于 REPL 处理的复杂问题。随着项目的扩展,命令行逻辑与业务逻辑交织在一起,使代码可读性和开发友好性下降。开发者们意识到,必须寻找一种更好的方法来解决这些问题,而 Riposte 正是为此而生。

快速开始

安装

Riposte 可以通过 PyPI 仓库获取,支持 Python 3.8 及以上版本。安装方法如下:

pip install riposte

示例用法

以下是一个使用 Riposte 创建简单计算器应用的示例代码:

from riposte import Riposte

calculator = Riposte(prompt="calc:~$ ")

MEMORY = []


@calculator.command("add")
def add(x: int, y: int):
    result = f"{x} + {y} = {x + y}"
    MEMORY.append(result)
    calculator.success(result)


@calculator.command("multiply")
def multiply(x: int, y: int):
    result = f"{x} * {y} = {x * y}"
    MEMORY.append(result)
    calculator.success(result)


@calculator.command("memory")
def memory():
    for entry in MEMORY:
        calculator.print(entry)


calculator.run()

使用该应用程序时,用户可以在命令行中输入以下命令:

calc:~$ add 2 2
[+] 2 + 2 = 4
calc:~$ multiply 3 3
[+] 3 * 3 = 9
calc:~$ memory
2 + 2 = 4
3 * 3 = 9
calc:~$

核心功能

命令注册

开发者可以使用 Riposte.command 装饰器为 REPL 注册命令,同时绑定相应的处理函数。

from riposte import Riposte

repl = Riposte()

@repl.command("hello")
def hello():
    repl.success("你好,你在找我吗?")

repl.run()

在命令行中输入以下命令进行测试:

riposte:~ $ hello
[+] 你好,你在找我吗?

Riposte.command 装饰器还支持可选参数,比如 descriptionguides,用于描述命令和定义参数解释规则。

自动补全

Riposte 支持命令的 Tab 键自动补全,开发者可以通过 Riposte.complete 装饰器注册补全函数,为特定命令提供补全选项。

参数指引

参数指引是让命令解释用户通过提示输入的参数的方式。Riposte 使用 Python 的类型提示进行参数类型判断。

打印功能

Riposte 提供了一些线程安全的打印方法,例如 printinfoerrorstatussuccess 等,方便开发者在命令行界面中输出信息。

历史记录

命令历史记录会保存在用户的 HOME 目录下,默认最大保存 100 条记录,开发者可以通过参数自定义存储文件和记录长度。

动态提示符

Riposte 允许开发者自定义和动态调整命令提示符的样式。

横幅展示

开发者可以在启动后,使用 Banner 属性显示自定义的欢迎信息或项目 logo。

命令行参数

Riposte 提供了命令行接口,开发者可以通过 -c 开关传递命令,也可以自定义应用的命令行参数。

项目状态

Riposte 目前处于开发阶段,可以看作是 beta 版。一些概念已经在 routersploit 项目中经过验证,但未来可能会有一些改变。

贡献与版本控制

Riposte 使用 SemVer 版本控制系统。项目接受贡献,开发者可以参考项目的贡献指南了解详细的信息。

许可

Riposte 采用 MIT 许可协议。开发者可以阅读项目的许可证文件获得更多信息。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号