Miscellaneous¶
Argparse version¶
argparse
module is a table with __call
metamethod. argparse.version
is a string in MAJOR.MINOR.PATCH
format specifying argparse version.
Overwriting default help option¶
If the property add_help
of a parser is set to false
, no help option will be added to it. Otherwise, the value of the field will be used to configure it.
1 2 | local parser = argparse()
:add_help "/?"
|
$ lua script.lua /?
Usage: script.lua [/?]
Options:
/? Show this help message and exit.
Help command¶
A help command can be added to the parser using the :add_help_command([value])
method. It accepts an optional string or table value which is used to configure the command.
1 2 3 4 | local parser = argparse()
:add_help_command()
parser:command "install"
:description "Install a rock."
|
$ lua script.lua help
Usage: script.lua [-h] <command> ...
Options:
-h, --help Show this help message and exit.
Commands:
help Show help for commands.
install Install a rock.
$ lua script.lua help install
Usage: script.lua install [-h]
Install a rock.
Options:
-h, --help Show this help message and exit.
Disabling option handling¶
When handle_options
property of a parser or a command is set to false
, all options will be passed verbatim to the argument list, as if the input included double-hyphens.
1 2 3 4 5 | parser:handle_options(false)
parser:argument "input"
:args "*"
parser:option "-f" "--foo"
:args "*"
|
$ lua script.lua bar -f --foo bar
{
input = {"bar", "-f", "--foo", "bar"}
}
Prohibiting overuse of options¶
By default, if an option is invoked too many times, latest invocations overwrite the data passed earlier.
1 | parser:option "-o --output"
|
$ lua script.lua -oFOO -oBAR
{
output = "BAR"
}
Set overwrite
property to false
to prohibit this behavior.
1 2 | parser:option "-o --output"
:overwrite(false)
|
$ lua script.lua -oFOO -oBAR
Usage: script.lua [-h] [-o <output>]
Error: option '-o' must be used at most 1 time
Parsing algorithm¶
argparse interprets command line arguments in the following way:
Argument | Interpretation |
---|---|
foo |
An argument of an option or a positional argument. |
--foo |
An option. |
--foo=bar |
An option and its argument. The option must be able to take arguments. |
-f |
An option. |
-abcdef |
Letters are interpreted as options. If one of them can take an argument, the rest of the string is passed to it. |
-- |
The rest of the command line arguments will be interpreted as positional arguments. |
Property lists¶
Parser properties¶
Properties that can be set as arguments when calling or constructing a parser, in this order:
Property | Type |
---|---|
name |
String |
description |
String |
epilog |
String |
Other properties:
Property | Type |
---|---|
usage |
String |
help |
String |
require_command |
Boolean |
handle_options |
Boolean |
add_help |
Boolean or string or table |
command_target |
String |
usage_max_width |
Number |
usage_margin |
Number |
help_max_width |
Number |
help_usage_margin |
Number |
help_description_margin |
Number |
help_vertical_space |
Number |
Command properties¶
Properties that can be set as arguments when calling or constructing a command, in this order:
Property | Type |
---|---|
name |
String |
description |
String |
epilog |
String |
Other properties:
Property | Type |
---|---|
hidden_name |
String |
summary |
String |
target |
String |
usage |
String |
help |
String |
require_command |
Boolean |
handle_options |
Boolean |
action |
Function |
add_help |
Boolean or string or table |
command_target |
String |
hidden |
Boolean |
usage_max_width |
Number |
usage_margin |
Number |
help_max_width |
Number |
help_usage_margin |
Number |
help_description_margin |
Number |
help_vertical_space |
Number |
Argument properties¶
Properties that can be set as arguments when calling or constructing an argument, in this order:
Property | Type |
---|---|
name |
String |
description |
String |
default |
Any |
convert |
Function or table |
args |
Number or string |
Other properties:
Property | Type |
---|---|
target |
String |
defmode |
String |
show_default |
Boolean |
argname |
String or table |
choices |
Table |
action |
Function or string |
init |
Any |
hidden |
Boolean |
Option and flag properties¶
Properties that can be set as arguments when calling or constructing an option or a flag, in this order:
Property | Type |
---|---|
name |
String |
description |
String |
default |
Any |
convert |
Function or table |
args |
Number or string |
count |
Number or string |
Other properties:
Property | Type |
---|---|
hidden_name |
String |
target |
String |
defmode |
String |
show_default |
Boolean |
overwrite |
Booleans |
argname |
String or table |
choices |
Table |
action |
Function or string |
init |
Any |
hidden |
Boolean |