轻松的参数解析器
项目描述
defopt是一个轻量级、无需努力的参数解析器。
defopt将
允许函数可以从代码和命令行运行,无需修改。
奖励您对函数进行文档化。
让您免于编写、测试和维护参数解析代码。
defopt将不会
以任何方式修改您的函数。
允许您构建高度复杂或定制的命令行工具。
如果您希望完全控制命令行的外观或行为,请尝试docopt、click或argh。如果您只想编写Python代码,并将命令行界面留给其他人,那么defopt就是为您准备的。
用法
一旦您编写并记录了您的函数,只需将其传递给defopt.run()即可完成。
import defopt
# Use type hints:
def main(greeting: str, *, count: int = 1):
"""
Display a friendly greeting.
:param greeting: Greeting to display
:param count: Number of times to display the greeting
"""
for _ in range(count):
print(greeting)
# ... or document parameter types in the docstring:
def main(greeting, *, count=1):
"""
Display a friendly greeting.
:param str greeting: Greeting to display
:param int count: Number of times to display the greeting
"""
for _ in range(count):
print(greeting)
if __name__ == '__main__':
defopt.run(main)
参数描述以及函数本身的描述被用来构建一个信息丰富的帮助信息。
$ python test.py -h usage: test.py [-h] [-c COUNT] greeting Display a friendly greeting. positional arguments: greeting Greeting to display optional arguments: -h, --help show this help message and exit -c COUNT, --count COUNT Number of times to display the greeting (default: 1)
现在,您可以从Python和命令行以相同的方式调用您的函数。
>>> from test import main >>> main('hello!', count=2) hello! hello!
$ python test.py hello! --count 2 hello! hello!
哲学
defopt是在以下指导原则下开发的
界面可以在几秒钟内完全理解。如果需要更长的时间,您的时间将更好地用于学习更灵活的工具。
您所学的任何内容都适用于现有的生态系统。defopt使用的确切docstrings也被Sphinx的autodoc扩展用于生成文档,以及由您的IDE用于类型检查。您可能已经知道您需要知道的一切来使用defopt。
所有内容都为您处理。如果您使用defopt,那是因为您根本不想编写任何解析参数的代码。您可以信任它为您的函数构建一个逻辑上一致的命令行界面,无需任何配置。
您的Python函数永远不会被修改。类型转换仅应用于来自命令行的数据。当在代码中使用时,鸭子类型仍然按照您期望的方式工作,没有惊喜。
开发
有关源代码、示例、问题、功能请求和错误报告,请访问GitHub存储库。
文档
文档托管在Read the Docs。
项目详情
关闭
defopt-6.4.0.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 359a56137b4b7dcbc051d2157e6591a09c35c4297cfc00f1ef8dbcd192d19a34 |
|
MD5 | 30905cb7a99af7272e7ebfdd5cd15ad4 |
|
BLAKE2b-256 | cc3f3baf4e6fed12dac76c0ccb4716fd4235ef0aa5b48f66aab6f970afc7b44e |