常用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 接口,但绝对不是所有甚至大多数都有的特性,如果你想使用特定的,看看有没有它有这个功能。 您能画出您心目中的argparse
和rpc
接口吗? 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接口的主要内容,如果未能解决你的问题,请参考以下文章