1148
Comment:
|
1964
|
Deletions are marked like this. | Additions are marked like this. |
Line 33: | Line 33: |
== Discussion == * Impossible to verify the amount of options passed. I have had to create a function to verify in certain circumstances if we have at least one option set: (takes an OptParse Values instances returned by parser.parse_args() as argument) {{{ #!python def is_empty(options): """ Returns True or False if an option is set or not. """ values = options.__dict__.values() return (values == [None] * len(values)) }}} Is my need for this is due to a bad design in my option parsing? |
OptParse is a module introduced in Python2.3 that makes it easy to write command line tools.
You give a description of the options that the program can receive, and OptParse will do reasonable stuff for you.
For example:
1 import optparse
2
3 if __name__=="__main__":
4 parser = optparse.OptionParser("usage: %prog [options] arg1 arg2")
5 parser.add_option("-H", "--host", dest="hostname",
6 default="127.0.0.1", type="string",
7 help="specify hostname to run on")
8 parser.add_option("-p", "--port", dest="portnum", default=80,
9 type="int", help="port number to run on")
10
11 (options, args) = parser.parse_args()
12 if len(args) != 2:
13 parser.error("incorrect number of arguments")
14 hostname = options.hostname
15 portnum = options.portnum
args contains your fixed arguments, options contains your values.
For example, options.portnum would contain the integer 80, in the example above.
References
[http://docs.python.org/lib/module-optparse.html Official Python optparse Documentation]
Discussion
* Impossible to verify the amount of options passed.
I have had to create a function to verify in certain circumstances if we have at least one option set:
(takes an OptParse Values instances returned by parser.parse_args() as argument)
Is my need for this is due to a bad design in my option parsing?