自动创建路径的分析器和子分析器的分析器。

argparse-autogen的Python项目详细描述


argparparparse autogen
=









pypi codecoov

巨蟒:**``3.3+``**(因为在python 3.3中引入了inspect.signature)代码::shell

pip install argparse autogen

usage
----

``argparse\u autogen.endpointparser``用于替换basic
``argparse.argumentparser```。它扩展了子parers的创建逻辑,并添加了一个新的特殊方法"add_endpoint"。

代码::python


def do_stuff(self,target,force=false):
"
这确实很酷!

:param str target:执行酷内容的目标
:param bool force:强制执行酷内容
"
打印(目标,强制)

cli=mycli()

parser.add_endpoint('do_stuff,cli.do_stuff)
parser.parse_and_call(['do_stuff','my target'])这将打印"my target false"
parser.parse_and_call(['do_stuff','--force','my target'])这将打印"my target true"

`` add_endpoint`方法足够聪明,可以解析方法docstring和
add对应有助于参数。例如,在上面的示例中,
`` parser.parse_args(['do_stuff','--help']``将显示
类似于

::


用法:example.py do_stuff[-h][--force]



可选参数:
-h,--帮助显示此帮助消息并退出
--强制执行酷操作

它检查函数签名,并向解析器添加相应的argparse参数。``**kwargs``受支持,可以作为
```[key=value[key=value…]``传递。可以通过
将"argument-overrides"选项传递到"add-endpoint"来覆盖参数设置。这必须是
a``dict[str,dict]``其中键是参数名,值是
参数,用于覆盖传递给``parser的默认值。添加参数```


>更多端点示例
-



嵌套类和复杂路径:

。代码::python


class mycli():
def_u init_u(self):
self.users=self.users()
self.groups=self.groups()

class users():
def get(self,user_id):pass
def list(self,**filter):pass
def set_roles(self,user_id,*role):pass
def update(self,user_id,**fields):pass


def get(self,group_id):pass



parser。add戋endpoint('users.get',cli.users.get,argument戋overrides={'user戋id':{'help':'users id'})
parser.add戋endpoint('users.list',cli users.list)
parser.add戋endpoint(cli.users.update)
Erscores已删除。
将跳过QualName的第一项,因此它将是"users.update",而不是"mycli.users.update"

;或者,可以使用路径和终结点的自动生成:
parser.generate戥endpoints(cli.users,root戥path戥users',endpoint戥kwargs={users.get':{参数覆盖':{用户id':{帮助':'用户id'}}})
将从类方法创建终结点。


groups\'u get\'u parser=parser.add\'u endpoint('groups get',cli.groups.get,autospec=false)
groups\'u get\'u parser.add\'u参数('group\'id',help='group id')

users_分析器=PArser.get懔endpoint懔parser('users')
users懔parser.description='用户操作'


parser.parse懔and懔call()


history
----



-能够从func的qualname自动生成路径

1.1(2017-02-28)<~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~






~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~>。| pypi图像::https://img.shields.io/pypi/status/argparse autogen.svg
:目标:https://github.com/sashgorokhov/argparse autogen
…| pypi image::https://img.shields.io/pypi/pyversions/argparse autogen.svg
:目标:https://github.com/sashgorokhov/argparse autogen
。| pypi版本image::https://badge.fury.io/py/argparse autogen.svg
:目标:https://badge.fury.io/py/argparse autogen
…| github release image::https://img.shields.io/github/release/sashgorokhov/argparse autogen.svg
:目标:https://github.com/sashgorokhov/argparse autogen
。|构建状态图像::https://travis-ci.org/sashgorokhov/argparse-autogen.svg?branch=master
:目标:https://travis ci.org/sashgorokhov/argparse autogen
…| codecov图像::https://codecov.io/gh/sashgorokhov/argparse autogen/branch/master/graph/badge.svg
:目标:https://codecov.io/gh/sashgorokhov/argparse autogen
。| Github许可证图像::https://img.shields.io/badge/license mit blue.svg
:目标:https://raw.githubusercontent.com/sashgorokhov/argparse-autogen/master/license

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Selenium Web驱动程序。负载策略不稳定   JAVAsql。SQLException:没有合适的驱动程序无法创建“oracle”类的JDBC驱动程序。jdbc。驾驶员用于连接URL的OracleDriver   java谷歌地图“优化路径点”如何解决旅行推销员的问题?   java这段代码可能会造成潜在的内存泄漏吗?   java更改JCombobox的高度   java如何清除jtable中的数据   JavaHadoop:错误安全性。UserGroupInformation:MapReduce程序中的PriviledgedActionException   java如何将sonarlint添加到gradle任务中?   性能为什么Java排序优于原语计数排序   java Spring属性PlaceHolderConfigure从数据库加载   java从泛型获取类不起作用   java Spring@Transactional传播属性   java试图拥有主菜单和子菜单类   XSL的java后处理步骤   java第一个字母和最后一个字母、第二个字母和倒数第二个字母之间的差值之和,依此类推,直到单词的中心   switch语句在Java中的下一个出发点   java 安卓如何在OnBackpress()时设置viewpager的特定项目位置?