Kyl*_*and 5 python pep8 argparse
在我看来,没有简单的方法可以RawDescriptionHelpFormatter在模块中使用argparse,而不违反 PEP8 或扰乱您的命名空间。
这是最明显的格式化方法:
parser = argparse.ArgumentParser(prog='PROG',
....
formatter_class=argparse.RawDescriptionHelpFormatter)
Run Code Online (Sandbox Code Playgroud)
这违反了行不能超过80个字符的规定
以下是文档中示例的argparse外观(剧透:这实际上是正确的;请参阅下面的评论):
parser = argparse.ArgumentParser(
prog='PROG',
formatter_class=argparse.RawDescriptionHelpFormatter,
....
Run Code Online (Sandbox Code Playgroud)
这违反了 PEP8 E128 关于连续行缩进的规定。
这是另一种可能性:
parser = argparse.ArgumentParser(
prog='PROG',
formatter_class=
argparse.RawDescriptionHelpFormatter,
....
Run Code Online (Sandbox Code Playgroud)
=这违反了关于keyward 参数周围空格的 PEP8 E251 。
(当然,这甚至没有解决我的行字符计数假设标记parser从第一列开始的事实,这是最好的情况;如果我们想在类中创建一个解析器和/或者一个函数?)
因此,据我所知,唯一剩下的选择是要么使命名空间变得混乱:
from argparse import RawDescriptionHelpFormatter, ArgumentParser
Run Code Online (Sandbox Code Playgroud)
...或者使用一个愚蠢的临时变量(这也会使命名空间变得混乱):
rawformatter = argparse.RawDescriptionHelpFormatter
parser = argparse.ArgumentParser(prog='PROG',
....
formatter_class=rawformatter)
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?我想直接在当前命名空间中使用 RawDescriptionHelpFormatter 和 ArgumentParser 并不是什么大问题,但这似乎是不必要的挫败感。
你的第二个例子对我来说看起来不错,并且似乎与“#悬挂缩进应该添加一个级别”相匹配。示例如下: http: //legacy.python.org/dev/peps/pep-0008/#indentation
似乎也符合这个类似的问题/答案:What is PEP8's E128: continuation line under-indented for Visual indent?
| 归档时间: |
|
| 查看次数: |
1601 次 |
| 最近记录: |