Class attributes: standard_option_list : [Option] list of standard options that will be accepted by all instances of this parser class (intended to be overridden by subclasses).
Instance attributes: usage : string a usage string for your program. Before it is displayed to the user, "%prog" will be expanded to the name of your program (self.prog or os.path.basename(sys.argv[0])). prog : string the name of the current program (to override os.path.basename(sys.argv[0])).
option_groups : [OptionGroup] list of option groups in this parser (option groups are irrelevant for parsing the command-line, but very useful for generating help)
allow_interspersed_args : bool = true if true, positional arguments may be interspersed with options. Assuming -a and -b each take a single argument, the command-line -ablah foo bar -bboo baz will be interpreted the same as -ablah -bboo -- foo bar baz If this flag were false, that command line would be interpreted as -ablah -- foo bar -bboo baz -- ie. we stop processing options as soon as we see the first non-option argument. (This is the tradition followed by Python's getopt module, Perl's Getopt::Std, and other argument- parsing libraries, but it is generally annoying to users.)
process_default_values : bool = true if true, option default values are processed similarly to option values from the command line: that is, they are passed to the type-checking function for the option's type (as long as the default value is a string). (This really only matters if you have defined custom types; see SF bug #955889.) Set it to false to restore the behaviour of Optik 1.4.1 and earlier.
rargs : [string] the argument list currently being parsed. Only set when parse_args() is active, and continually trimmed down as we consume arguments. Mainly there for the benefit of callback options. largs : [string] the list of leftover arguments that we have skipped while parsing options. If allow_interspersed_args is false, this list is always empty. values : Values the set of option values currently being accumulated. Only set when parse_args() is active. Also mainly for callbacks.
Because of the rargs
, largs
, and values
attributes,
OptionParser is not thread-safe. If, for some perverse reason, you
need to parse command-line arguments simultaneously in different
threads, use different OptionParser instances.
There are no implemented interfaces.
standard_option_list
(type:
list
)
[]
add_option(*args, **kwargs)
add_option(Option) add_option(opt_str, ..., kwarg=val, ...)
add_option_group(*args, **kwargs)
add_options(option_list)
check_values(values, args)
check_values(values : Values, args : [string]) -> (values : Values, args : [string])
Check that the supplied option values and leftover arguments are valid. Returns the option values and leftover arguments (possibly adjusted, possibly completely new -- whatever you like). Default implementation just returns the passed-in values; subclasses may override as desired.
disable_interspersed_args()
enable_interspersed_args()
error(msg)
error(msg : string)
Print a usage message incorporating msg
to stderr and exit.
If you override this in a subclass, it should not return -- it
should either exit or raise an exception.
exit(status=0, msg=None)
expand_prog_name(s)
format_description(formatter)
format_help(formatter=None)
format_option_help(formatter=None)
get_default_values()
get_description()
get_option(opt_str)
get_option_group(opt_str)
get_prog_name()
get_usage()
get_version()
has_option(opt_str)
parse_args(args=None, values=None)
parse_args(args : [string] = sys.argv[1:], values : Values = None) -> (values : Values, args : [string])
Parse the command-line options found in args
(default:
sys.argv[1:]). Any errors result in a call to error()
, which
by default prints the usage message to stderr and calls
sys.exit() with an error message. On success returns a pair
(values, args) where values
is an Values instance (with all
your option values) and args
is the list of arguments left
over after parsing options.
print_help(file=None)
print_help(file : file = stdout)
Print an extended help message, listing all options and any
help text provided with them, to file
(default stdout).
print_usage(file=None)
print_usage(file : file = stdout)
Print the usage message for the current program (self.usage) to
file
(default stdout). Any occurence of the string "%prog" in
self.usage is replaced with the name of the current program
(basename of sys.argv[0]). Does nothing if self.usage is empty
or not defined.
print_version(file=None)
print_version(file : file = stdout)
Print the version message for this program (self.version) to
file
(default stdout). As with print_usage(), any occurence
of "%prog" in self.version is replaced by the current program's
name. Does nothing if self.version is empty or undefined.
remove_option(opt_str)
set_conflict_handler(handler)
set_default(dest, value)
set_defaults(**kwargs)
set_description(description)
set_process_default_values(process)
set_usage(usage)