6.21.4.2 How callbacks are called
All callbacks are called as follows:
func(option, opt_str, value, parser, *args, **kwargs)
where
- is the Option instance that's calling the callback
- is the option string seen on the command-line that's triggering the
callback. (If an abbreviated long option was used,
opt_strwill be the full, canonical option string--e.g. if the user puts"-foo"on the command-line as an abbreviation for"-foobar", thenopt_strwill be"-foobar".) - is the argument to this option seen on the command-line. optparse will
only expect an argument if type is set; the type of
valuewill be the type implied by the option's type. If type for this option isNone(no argument expected), thenvaluewill beNone. Ifnargs> 1,valuewill be a tuple of values of the appropriate type. - is the OptionParser instance driving the whole thing, mainly
useful because you can access some other interesting data through
its instance attributes:
- the current list of leftover arguments, ie. arguments that have
been consumed but are neither options nor option arguments.
Feel free to modify
parser.largs, e.g. by adding more arguments to it. (This list will become args, the second return value of parse_args().) - the current list of remaining arguments, ie. with
opt_strandvalue(if applicable) removed, and only the arguments following them still there. Feel free to modifyparser.rargs, e.g. by consuming more arguments. - the object where option values are by default stored (an instance of optparse.OptionValues). This lets callbacks use the same mechanism as the rest of optparse for storing option values; you don't need to mess around with globals or closures. You can also access or modify the value(s) of any options already encountered on the command-line.
- the current list of leftover arguments, ie. arguments that have
been consumed but are neither options nor option arguments.
Feel free to modify
- is a tuple of arbitrary positional arguments supplied via the
callback_argsoption attribute. - is a dictionary of arbitrary keyword arguments supplied via
callback_kwargs.
See About this document... for information on suggesting changes.





