PEP提议optparse [英] PEP proposal optparse

查看:76
本文介绍了PEP提议optparse的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述




我想知道您对我计划的optparse

的建议更改的想法。可以使用set_defaults将默认值添加到多个

选项中。但是,当向

选项添加描述时,开发人员必须在每次add_option()调用中指定它。

这导致无法读取的代码,例如:


parser.add_option('' - q'','' - quiet'',action =" store_false",

dest =''verbose'',

help =''输出较少的信息'')
parser.add_option('' - o'','' - output'',type =''string'' ,

dest =''castordir'',metavar =''< DIR>'',

help =''指定所需的CASTOR目录,在哪里存储

结果tarball'')

parser.add_option('' - r'','' - prevrel'',type =''string'',

dest =''previousrel'',metavar =''< DIR>'',

help =''回归的上一版本的顶级目录

分析'')


相同的代码可能会变成如果对于

选项的描述/帮助有一个

等效的set_defaults方法,则更具可读性。然后可以使用相同的代码:


parser.set_description(

verbose =''输出更少信息'',

castordir =''指定想要的CASTOR目录,其中

存储结果tarball'',

previousrel =''上一版本的顶级目录为

回归分析'')

parser.add_option('' - q'','' - quiet'',action =" store_false",

dest =''verbose'')

parser.add_option('' - o'','' - output'',type =''string'',

dest =''castordir'',metavar =''< DIR>'')

parser.add_option('' - r'','' - prevrel'', type =''string'',

dest =''previousrel'',metavar =''< DIR>'')


帮助描述可以通常很长,并将它们分开,这将是b $ b时尚,恕我直言,是可取的。


亲切的问候,

James Nicolson

解决方案

你好James,


我不能说我真的同意你的

提案。我倾向于保持帮助

描述我的选项简短

并简明扼要。


另外,必须使用语言'

功能(缩进)对你有利,

这样做可以确保可读性。


例如(来自我的bhimport工具):


< snippet>

def parse_options():

""" parse_options()-opts,args


解析任何命令行选项,同时返回解析后的选项和参数



"""


parser = optparse.OptionParser(usage = USAGE,version = VERSION)

parser.add_option(" "," - date-format",

action =" store",type =" str",default ="%d /%m /%Y",

dest =" dateFormat",

help =" date format string")

parser.add_option(""," - -time-format",

ac tion =" store",type =" str",default ="%H:%M:%S",

dest =" timeFormat",

help =" time format string")

parser.add_option(""," - datetime-format",

action =" store" ,type =" str",default ="%H:%M:%S%d /%m /%Y",

dest =" datetimeFormat",

help =" datetime format string")

opts,args = parser.parse_args()


if len(args) < 2:

parser.print_help()

提高SystemExit,1


返回选项,args

< / snippet>


正如你所看到的那样(只要你用固定宽度的字体读取这个


它_s_非常易读。


欢呼

詹姆斯


2008年9月18日, James< jl ******** @ gmail.comwrote:





我想要了解你对我计划的optparse

的建议更改的想法。可以使用set_defaults将默认值添加到多个

选项中。但是,当向

选项添加描述时,开发人员必须在每次add_option()调用中指定它。

这导致无法读取的代码,例如:


parser.add_option('' - q'','' - quiet'',action =" store_false",

dest =''verbose'',

help =''输出较少的信息'')
parser.add_option('' - o'','' - output'',type =''string'' ,

dest =''castordir'',metavar =''< DIR>'',

help =''指定所需的CASTOR目录,在哪里存储

结果tarball'')

parser.add_option('' - r'','' - prevrel'',type =''string'',

dest =''previousrel'',metavar =''< DIR>'',

help =''回归的上一版本的顶级目录

分析'')


如果对于

选项的描述/帮助有一个

等效的set_defaults方法,相同的代码可以变得更具可读性。然后可以使用相同的代码:


parser.set_description(

verbose =''输出更少信息'',

castordir =''指定想要的CASTOR目录,其中

存储结果tarball'',

previousrel =''上一版本的顶级目录为

回归分析'')

parser.add_option('' - q'','' - quiet'',action =" store_false",

dest =''verbose'')

parser.add_option('' - o'','' - output'',type =''string'',

dest =''castordir'',metavar =''< DIR>'')

parser.add_option('' - r'','' - prevrel'', type =''string'',

dest =''previousrel'',metavar =''< DIR>'')


帮助描述可以通常是相当长和分离恭维他们这个

时尚,恕我直言,这是可取的。


亲切的问候,

James Nicolson


-
http:/ /mail.python.org/mailman/listinfo/python-list



-

-

- 问题通过方法解决


也许最好保持描述简短并存储更长时间

其他地方的描述,但是有很多程序有很长的

描述,比如试试:ls --help(至少在我的机器上很多

这些描述都很长) 。


2008/9/18 James Mills< pr ****** @ shortcircuit.net.au>:


嗨James,


我不能说我真的同意你的

提案。我倾向于保持帮助

描述我的选项简短

并简明扼要。


另外,必须使用语言'

功能(缩进)对你有利,

这样做可以确保可读性。


例如(来自我的bhimport工具):


< snippet>

def parse_options():

""" parse_options()-opts,args


解析任何命令行选项,同时返回解析后的选项和参数



"""


parser = optparse.OptionParser(usage = USAGE,version = VERSION)

parser.add_option(" "," - date-format",

action =" store",type =" str",default ="%d /%m /%Y",

dest =" dateFormat",

help =" date format string")

parser.add_option(""," - - 时间格式",

action =" store",type =" str",default ="%H:%M:%S"

dest =" timeFormat",

help =" time format string")

parser.add_option(""," - datetime-format",

action =" store",type =" str",default ="%H:%M:%S%d /%m /%Y",

dest =" datetimeFormat",

help =" datetime format string")


opts,args = parser.parse_args()


if len(args)< 2:

parser.print_help()

提高SystemExit,1


返回选项,args

< / snippet>


正如你所看到的那样(只要你用固定宽度的字体读取这个


它_s_非常易读。


欢呼

詹姆斯


2008年9月18日, James< jl ******** @ gmail.comwrote:


>

我想知道您对我已计划的建议更改为optparse的想法。可以使用set_defaults将默认值添加到多个
选项。但是,在向
选项添加描述时,开发人员必须在每次add_option()调用中指定它。
这导致无法读取的代码,例如:

parser.add_option('' -q'','' - quiet'',action =" store_false",
dest =''verbose'',
help =''输出较少的信息'')
parser.add_option('' - o'','' - output'',type =''string'',
dest =''castordir'',metavar =''< DIR>'',
help =''指定所需的CASTOR目录,在哪里存储
结果tarball'')
parser.add_option('' - r'','' - prevrel'',type =''string'',
dest =''previousrel'',metavar =''< DIR>'',
help =''回归的上一版本的顶级目录
分析'')

如果有一个
,相同的代码可以变得更具可读性
选项的描述/帮助的set_defaults的等效方法。然后可以使用相同的代码:

parser.set_description(
verbose =''输出较少信息'',
castordir =''指定所需的CASTOR目录,其中
存储结果tarball'',
previousrel =''以前版本的顶级目录
回归分析'')

parser.add_option('' - q' ','' - quiet'',action =" store_false",
dest =''verbose'')
parser.add_option('' - o'','' - output' ',type =''string'',
dest =''castordir'',metavar =''< DIR>'')
parser.add_option('' - r'','' --prevrel'',type =''string'',
dest =''previousrel'',metavar =''< DIR>'')

帮助说明通常可以很长时间,以这种方式将它们分开,恕我直言,这是可取的。

亲切的gards,
James Nicolson

-
http://mail.python.org/mailman/listinfo/python-list




-

-

- 问题通过方法解决


James Mills写道:


正如你所看到的(只要你用固定宽度的字体读取这个


它_is_非常易读。



因为它只依赖于左边距的缩进,所以没有

比例字体的可读性差(除非你''使用带有

可变宽度空格的字体,即:-)。


< / F>


Hi,

I would like to know your thoughts on a proposed change to optparse
that I have planned. It is possible to add default values to multiple
options using the set_defaults. However, when adding descriptions to
options the developer has to specify it in each add_option() call.
This results in unreadable code such as:

parser.add_option(''-q'', ''--quiet'' , action="store_false",
dest=''verbose'',
help = ''Output less information'')
parser.add_option(''-o'', ''--output'' , type=''string'',
dest=''castordir'' , metavar=''<DIR>'' ,
help = ''specify the wanted CASTOR directory where to store the
results tarball'')
parser.add_option(''-r'', ''--prevrel'' , type=''string'',
dest=''previousrel'' , metavar=''<DIR>'' ,
help = ''Top level dir of previous release for regression
analysis'' )

The same code could become much more readable if there was an
equivalent method of set_defaults for the description/help of the
option. The same code could then become:

parser.set_description(
verbose = ''Output less information'',
castordir = ''specify the wanted CASTOR directory where
to store the results tarball'',
previousrel = ''Top level dir of previous release for
regression analysis'')

parser.add_option(''-q'', ''--quiet'' , action="store_false",
dest=''verbose'')
parser.add_option(''-o'', ''--output'' , type=''string'',
dest=''castordir'' , metavar=''<DIR>'' )
parser.add_option(''-r'', ''--prevrel'' , type=''string'',
dest=''previousrel'' , metavar=''<DIR>'' )

Help descriptions can often be quite long and separating them in this
fashion would, IMHO, be desirable.

Kind Regards,
James Nicolson

解决方案

Hi James,

I can''t say I really agree with your
proposal. I tend to keep the help
descriptions of my options short
and concise and to the point.

Also, one must use the language''s
features (indentation) to your advantage,
as doing so ensure readability.

For example (from my bhimport tool):

<snippet>
def parse_options():
"""parse_options() -opts, args

Parse any command-line options given returning both
the parsed options and arguments.
"""

parser = optparse.OptionParser(usage=USAGE, version=VERSION)

parser.add_option("", "--date-format",
action="store",type="str", default="%d/%m/%Y",
dest="dateFormat",
help="date format string")
parser.add_option("", "--time-format",
action="store", type="str", default="%H:%M:%S",
dest="timeFormat",
help="time format string")
parser.add_option("", "--datetime-format",
action="store", type="str", default="%H:%M:%S %d/%m/%Y",
dest="datetimeFormat",
help="datetime format string")

opts, args = parser.parse_args()

if len(args) < 2:
parser.print_help()
raise SystemExit, 1

return opts, args
</snippet>

As you can see (as long as you''re
reading this in fixed-width fonts)
it _is_ very readable.

cheers
James

On 9/18/08, James <jl********@gmail.comwrote:

Hi,

I would like to know your thoughts on a proposed change to optparse
that I have planned. It is possible to add default values to multiple
options using the set_defaults. However, when adding descriptions to
options the developer has to specify it in each add_option() call.
This results in unreadable code such as:

parser.add_option(''-q'', ''--quiet'' , action="store_false",
dest=''verbose'',
help = ''Output less information'')
parser.add_option(''-o'', ''--output'' , type=''string'',
dest=''castordir'' , metavar=''<DIR>'' ,
help = ''specify the wanted CASTOR directory where to store the
results tarball'')
parser.add_option(''-r'', ''--prevrel'' , type=''string'',
dest=''previousrel'' , metavar=''<DIR>'' ,
help = ''Top level dir of previous release for regression
analysis'' )

The same code could become much more readable if there was an
equivalent method of set_defaults for the description/help of the
option. The same code could then become:

parser.set_description(
verbose = ''Output less information'',
castordir = ''specify the wanted CASTOR directory where
to store the results tarball'',
previousrel = ''Top level dir of previous release for
regression analysis'')

parser.add_option(''-q'', ''--quiet'' , action="store_false",
dest=''verbose'')
parser.add_option(''-o'', ''--output'' , type=''string'',
dest=''castordir'' , metavar=''<DIR>'' )
parser.add_option(''-r'', ''--prevrel'' , type=''string'',
dest=''previousrel'' , metavar=''<DIR>'' )

Help descriptions can often be quite long and separating them in this
fashion would, IMHO, be desirable.

Kind Regards,
James Nicolson
--
http://mail.python.org/mailman/listinfo/python-list


--
--
-- "Problems are solved by method"


Perhaps it is better to keep descriptions short and store longer
descriptions elsewhere, but there are many programs that have long
descriptions, for example try: ls --help (at least on my machine a lot
of these descriptions are quite long).

2008/9/18 James Mills <pr******@shortcircuit.net.au>:

Hi James,

I can''t say I really agree with your
proposal. I tend to keep the help
descriptions of my options short
and concise and to the point.

Also, one must use the language''s
features (indentation) to your advantage,
as doing so ensure readability.

For example (from my bhimport tool):

<snippet>
def parse_options():
"""parse_options() -opts, args

Parse any command-line options given returning both
the parsed options and arguments.
"""

parser = optparse.OptionParser(usage=USAGE, version=VERSION)

parser.add_option("", "--date-format",
action="store",type="str", default="%d/%m/%Y",
dest="dateFormat",
help="date format string")
parser.add_option("", "--time-format",
action="store", type="str", default="%H:%M:%S",
dest="timeFormat",
help="time format string")
parser.add_option("", "--datetime-format",
action="store", type="str", default="%H:%M:%S %d/%m/%Y",
dest="datetimeFormat",
help="datetime format string")

opts, args = parser.parse_args()

if len(args) < 2:
parser.print_help()
raise SystemExit, 1

return opts, args
</snippet>

As you can see (as long as you''re
reading this in fixed-width fonts)
it _is_ very readable.

cheers
James

On 9/18/08, James <jl********@gmail.comwrote:

>Hi,

I would like to know your thoughts on a proposed change to optparse
that I have planned. It is possible to add default values to multiple
options using the set_defaults. However, when adding descriptions to
options the developer has to specify it in each add_option() call.
This results in unreadable code such as:

parser.add_option(''-q'', ''--quiet'' , action="store_false",
dest=''verbose'',
help = ''Output less information'')
parser.add_option(''-o'', ''--output'' , type=''string'',
dest=''castordir'' , metavar=''<DIR>'' ,
help = ''specify the wanted CASTOR directory where to store the
results tarball'')
parser.add_option(''-r'', ''--prevrel'' , type=''string'',
dest=''previousrel'' , metavar=''<DIR>'' ,
help = ''Top level dir of previous release for regression
analysis'' )

The same code could become much more readable if there was an
equivalent method of set_defaults for the description/help of the
option. The same code could then become:

parser.set_description(
verbose = ''Output less information'',
castordir = ''specify the wanted CASTOR directory where
to store the results tarball'',
previousrel = ''Top level dir of previous release for
regression analysis'')

parser.add_option(''-q'', ''--quiet'' , action="store_false",
dest=''verbose'')
parser.add_option(''-o'', ''--output'' , type=''string'',
dest=''castordir'' , metavar=''<DIR>'' )
parser.add_option(''-r'', ''--prevrel'' , type=''string'',
dest=''previousrel'' , metavar=''<DIR>'' )

Help descriptions can often be quite long and separating them in this
fashion would, IMHO, be desirable.

Kind Regards,
James Nicolson
--
http://mail.python.org/mailman/listinfo/python-list



--
--
-- "Problems are solved by method"


James Mills wrote:

As you can see (as long as you''re
reading this in fixed-width fonts)
it _is_ very readable.

given that it only relies on indentation from the left margin, it''s no
less readable in a proportional font (unless you''re using an font with
variable-width spaces, that is ;-).

</F>


这篇关于PEP提议optparse的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆