常用python rpc和cli接口

Posted

技术标签:

【中文标题】常用python rpc和cli接口【英文标题】:Common python rpc and cli interface 【发布时间】:2015-04-17 16:31:28 【问题描述】:

我有一个使用 argparse 的 cli 应用程序,我想用 pyjsonrpc 添加一个 rpc 接口。

看来我将不得不复制大量代码并维护两个我不想这样做的接口。

有没有办法从另一个生成一个,或者有一个抽象接口来生成两者?

【问题讨论】:

有一些 RPC 库可以生成等效的 CLI 接口,但绝对不是所有甚至大多数都有的特性,如果你想使用特定的,看看有没有它有这个功能。 您能画出您心目中的argparserpc 接口吗? rpc 接口会处理转换成 Python 字典的 JSON 表达式吗?它与vars(parser.parse_args()) 制作的字典相比如何? Ipython 从其config 文件中的条目生成其argparse 参数。因此用户可以使用默认配置、配置文件配置和/或命令行来设置大量参数。 test_argparse.py 还生成带有参数简写的大多数测试用例。 【参考方案1】:

我找不到合适的解决方案,所以我决定编写一个小库,从基本定义类生成 cli 和 rpc 接口。

完善后,我会将其添加到 pypi,目前可在 https://github.com/F483/apigen 获得

编辑:pypi 包 'apigen' 现在可用 https://pypi.python.org/pypi/apigen

【讨论】:

pypi.python.org/pypi/plac 是一个 argparse 生成器,它使用 inspect 根据函数参数填充解析器。它还增强了子解析器部分。 但它对我的 jsonrpc 接口没有帮助,而且问题在于两者都有一个共同的 api。

以上是关于常用python rpc和cli接口的主要内容,如果未能解决你的问题,请参考以下文章

带有常用选项的 Python 多命令 CLI

python—webservice接口测试

使用 neon-wallet-db + neon-js + NEO-cli /rpc 搭建轻钱包服务端

rpc接口和http接口的区别和联系

如何从网页调用python脚本

通过python调用jenkins-cli实现快速发布