Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
cpython
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
Batuhan Osman TASKAYA
cpython
Commits
c69313a7
Kaydet (Commit)
c69313a7
authored
Nis 21, 2011
tarafından
Ezio Melotti
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Fix some more markup glitches in argparse doc.
üst
569083ad
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
110 additions
and
98 deletions
+110
-98
argparse.rst
Doc/library/argparse.rst
+110
-98
No files found.
Doc/library/argparse.rst
Dosyayı görüntüle @
c69313a7
...
@@ -93,7 +93,7 @@ used when :meth:`~ArgumentParser.parse_args` is called. For example::
...
@@ -93,7 +93,7 @@ used when :meth:`~ArgumentParser.parse_args` is called. For example::
... const=sum, default=max,
... const=sum, default=max,
... help='sum the integers (default: find the max)')
... help='sum the integers (default: find the max)')
Later, calling :meth:`parse_args` will return an object with
Later, calling :meth:`
~ArgumentParser.
parse_args` will return an object with
two attributes, ``integers`` and ``accumulate``. The ``integers`` attribute
two attributes, ``integers`` and ``accumulate``. The ``integers`` attribute
will be a list of one or more ints, and the ``accumulate`` attribute will be
will be a list of one or more ints, and the ``accumulate`` attribute will be
either the :func:`sum` function, if ``--sum`` was specified at the command line,
either the :func:`sum` function, if ``--sum`` was specified at the command line,
...
@@ -289,10 +289,10 @@ arguments they contain. For example::
...
@@ -289,10 +289,10 @@ arguments they contain. For example::
Namespace(f='bar')
Namespace(f='bar')
Arguments read from a file must by default be one per line (but see also
Arguments read from a file must by default be one per line (but see also
:meth:`
convert_arg_line_to_args`) and are treated as if they were in the same
:meth:`
~ArgumentParser.convert_arg_line_to_args`) and are treated as if they
place as the original file referencing argument on the command line. So in the
were in the same place as the original file referencing argument on the command
example above, the expression ``['-f', 'foo', '@args.txt']`` is considered
line. So in the example above, the expression ``['-f', 'foo', '@args.txt']``
equivalent to the expression ``['-f', 'foo', '-f', 'bar']``.
is considered
equivalent to the expression ``['-f', 'foo', '-f', 'bar']``.
The ``fromfile_prefix_chars=`` argument defaults to ``None``, meaning that
The ``fromfile_prefix_chars=`` argument defaults to ``None``, meaning that
arguments will never be treated as file references.
arguments will never be treated as file references.
...
@@ -302,11 +302,12 @@ argument_default
...
@@ -302,11 +302,12 @@ argument_default
^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^
Generally, argument defaults are specified either by passing a default to
Generally, argument defaults are specified either by passing a default to
:meth:`add_argument` or by calling the :meth:`set_defaults` methods with a
:meth:`~ArgumentParser.add_argument` or by calling the
specific set of name-value pairs. Sometimes however, it may be useful to
:meth:`~ArgumentParser.set_defaults` methods with a specific set of name-value
specify a single parser-wide default for arguments. This can be accomplished by
pairs. Sometimes however, it may be useful to specify a single parser-wide
passing the ``argument_default=`` keyword argument to :class:`ArgumentParser`.
default for arguments. This can be accomplished by passing the
For example, to globally suppress attribute creation on :meth:`parse_args`
``argument_default=`` keyword argument to :class:`ArgumentParser`. For example,
to globally suppress attribute creation on :meth:`~ArgumentParser.parse_args`
calls, we supply ``argument_default=SUPPRESS``::
calls, we supply ``argument_default=SUPPRESS``::
>>> parser = argparse.ArgumentParser(argument_default=argparse.SUPPRESS)
>>> parser = argparse.ArgumentParser(argument_default=argparse.SUPPRESS)
...
@@ -356,11 +357,14 @@ formatter_class
...
@@ -356,11 +357,14 @@ formatter_class
:class:`ArgumentParser` objects allow the help formatting to be customized by
:class:`ArgumentParser` objects allow the help formatting to be customized by
specifying an alternate formatting class. Currently, there are three such
specifying an alternate formatting class. Currently, there are three such
classes: :class:`argparse.RawDescriptionHelpFormatter`,
classes:
:class:`argparse.RawTextHelpFormatter` and
:class:`argparse.ArgumentDefaultsHelpFormatter`. The first two allow more
.. class:: RawDescriptionHelpFormatter
control over how textual descriptions are displayed, while the last
RawTextHelpFormatter
automatically adds information about argument default values.
ArgumentDefaultsHelpFormatter
The first two allow more control over how textual descriptions are displayed,
while the last automatically adds information about argument default values.
By default, :class:`ArgumentParser` objects line-wrap the description_ and
By default, :class:`ArgumentParser` objects line-wrap the description_ and
epilog_ texts in command-line help messages::
epilog_ texts in command-line help messages::
...
@@ -385,7 +389,7 @@ epilog_ texts in command-line help messages::
...
@@ -385,7 +389,7 @@ epilog_ texts in command-line help messages::
likewise for this epilog whose whitespace will be cleaned up and whose words
likewise for this epilog whose whitespace will be cleaned up and whose words
will be wrapped across a couple lines
will be wrapped across a couple lines
Passing :class:`argparse.RawDescriptionHelpFormatter` as ``formatter_class=``
Passing :class:`
~
argparse.RawDescriptionHelpFormatter` as ``formatter_class=``
indicates that description_ and epilog_ are already correctly formatted and
indicates that description_ and epilog_ are already correctly formatted and
should not be line-wrapped::
should not be line-wrapped::
...
@@ -606,11 +610,12 @@ The following sections describe how each of these are used.
...
@@ -606,11 +610,12 @@ The following sections describe how each of these are used.
name or flags
name or flags
^^^^^^^^^^^^^
^^^^^^^^^^^^^
The :meth:`add_argument` method must know whether an optional argument, like
The :meth:`~ArgumentParser.add_argument` method must know whether an optional
``-f`` or ``--foo``, or a positional argument, like a list of filenames, is
argument, like ``-f`` or ``--foo``, or a positional argument, like a list of
expected. The first arguments passed to :meth:`add_argument` must therefore be
filenames, is expected. The first arguments passed to
either a series of flags, or a simple argument name. For example, an optional
:meth:`~ArgumentParser.add_argument` must therefore be either a series of
argument could be created like::
flags, or a simple argument name. For example, an optional argument could
be created like::
>>> parser.add_argument('-f', '--foo')
>>> parser.add_argument('-f', '--foo')
...
@@ -618,8 +623,9 @@ while a positional argument could be created like::
...
@@ -618,8 +623,9 @@ while a positional argument could be created like::
>>> parser.add_argument('bar')
>>> parser.add_argument('bar')
When :meth:`parse_args` is called, optional arguments will be identified by the
When :meth:`~ArgumentParser.parse_args` is called, optional arguments will be
``-`` prefix, and the remaining arguments will be assumed to be positional::
identified by the ``-`` prefix, and the remaining arguments will be assumed to
be positional::
>>> parser = argparse.ArgumentParser(prog='PROG')
>>> parser = argparse.ArgumentParser(prog='PROG')
>>> parser.add_argument('-f', '--foo')
>>> parser.add_argument('-f', '--foo')
...
@@ -639,8 +645,8 @@ action
...
@@ -639,8 +645,8 @@ action
:class:`ArgumentParser` objects associate command-line args with actions. These
:class:`ArgumentParser` objects associate command-line args with actions. These
actions can do just about anything with the command-line args associated with
actions can do just about anything with the command-line args associated with
them, though most actions simply add an attribute to the object returned by
them, though most actions simply add an attribute to the object returned by
:meth:`
parse_args`. The ``action`` keyword argument specifies how the
:meth:`
~ArgumentParser.parse_args`. The ``action`` keyword argument specifies
command-line args should be handled. The supported actions are:
how the
command-line args should be handled. The supported actions are:
* ``'store'`` - This just stores the argument's value. This is the default
* ``'store'`` - This just stores the argument's value. This is the default
action. For example::
action. For example::
...
@@ -692,8 +698,8 @@ command-line args should be handled. The supported actions are:
...
@@ -692,8 +698,8 @@ command-line args should be handled. The supported actions are:
Namespace(types=[<type 'str'>, <type 'int'>])
Namespace(types=[<type 'str'>, <type 'int'>])
* ``'version'`` - This expects a ``version=`` keyword argument in the
* ``'version'`` - This expects a ``version=`` keyword argument in the
:meth:`
add_argument` call, and prints version information and exits whe
n
:meth:`
~ArgumentParser.add_argument` call, and prints version informatio
n
invoked.
and exits when
invoked.
>>> import argparse
>>> import argparse
>>> parser = argparse.ArgumentParser(prog='PROG')
>>> parser = argparse.ArgumentParser(prog='PROG')
...
@@ -709,11 +715,12 @@ the Action API. The easiest way to do this is to extend
...
@@ -709,11 +715,12 @@ the Action API. The easiest way to do this is to extend
* ``parser`` - The ArgumentParser object which contains this action.
* ``parser`` - The ArgumentParser object which contains this action.
* ``namespace`` - The namespace object that will be returned by
* ``namespace`` - The namespace object that will be returned by
:meth:`parse_args`. Most actions add an attribute to this object.
:meth:`~ArgumentParser.parse_args`. Most actions add an attribute to this
object.
* ``values`` - The associated command-line args, with any type-conversions
* ``values`` - The associated command-line args, with any type-conversions
applied. (Type-conversions are specified with the type_ keyword argument to
applied. (Type-conversions are specified with the type_ keyword argument to
:meth:`add_argument`.
:meth:`
~ArgumentParser.
add_argument`.
* ``option_string`` - The option string that was used to invoke this action.
* ``option_string`` - The option string that was used to invoke this action.
The ``option_string`` argument is optional, and will be absent if the action
The ``option_string`` argument is optional, and will be absent if the action
...
@@ -820,21 +827,20 @@ will be consumed and a single item (not a list) will be produced.
...
@@ -820,21 +827,20 @@ will be consumed and a single item (not a list) will be produced.
const
const
^^^^^
^^^^^
The ``const`` argument of :meth:`
add_argument` is used to hold constant values
The ``const`` argument of :meth:`
~ArgumentParser.add_argument` is used to hold
that are not read from the command line but are required for the various
constant values that are not read from the command line but are required for
ArgumentParser
actions. The two most common uses of it are:
the various :class:`ArgumentParser`
actions. The two most common uses of it are:
* When :meth:`add_argument` is called with ``action='store_const'`` or
* When :meth:`~ArgumentParser.add_argument` is called with
``action='append_const'``. These actions add the ``const`` value to one of
``action='store_const'`` or ``action='append_const'``. These actions add the
the attributes of the object returned by :meth:`parse_args`. See the action_
``const`` value to one of the attributes of the object returned by :meth:`~ArgumentParser.parse_args`. See the action_ description for examples.
description for examples.
* When :meth:`
add_argument` is called with option strings (like ``-f`` or
* When :meth:`
~ArgumentParser.add_argument` is called with option strings
``--foo``) and ``nargs='?'``. This creates an optional argument that can be
(like ``-f`` or ``--foo``) and ``nargs='?'``. This creates an optional
followed by zero or one command-line args. When parsing the command line, if
argument that can be followed by zero or one command-line args.
the option string is encountered with no command-line arg following it, the
When parsing the command line, if the option string is encountered with no
value of ``const`` will be assumed instead. See the nargs_ description for
command-line arg following it, the value of ``const`` will be assumed instead.
examples.
See the nargs_ description for
examples.
The ``const`` keyword argument defaults to ``None``.
The ``const`` keyword argument defaults to ``None``.
...
@@ -843,10 +849,11 @@ default
...
@@ -843,10 +849,11 @@ default
^^^^^^^
^^^^^^^
All optional arguments and some positional arguments may be omitted at the
All optional arguments and some positional arguments may be omitted at the
command line. The ``default`` keyword argument of :meth:`add_argument`, whose
command line. The ``default`` keyword argument of
value defaults to ``None``, specifies what value should be used if the
:meth:`~ArgumentParser.add_argument`, whose value defaults to ``None``,
command-line arg is not present. For optional arguments, the ``default`` value
specifies what value should be used if the command-line arg is not present.
is used when the option string was not present at the command line::
For optional arguments, the ``default`` value is used when the option string
was not present at the command line::
>>> parser = argparse.ArgumentParser()
>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('--foo', default=42)
>>> parser.add_argument('--foo', default=42)
...
@@ -883,9 +890,9 @@ type
...
@@ -883,9 +890,9 @@ type
By default, ArgumentParser objects read command-line args in as simple strings.
By default, ArgumentParser objects read command-line args in as simple strings.
However, quite often the command-line string should instead be interpreted as
However, quite often the command-line string should instead be interpreted as
another type, like a :class:`float`, :class:`int` or :class:`file`. The
another type, like a :class:`float`, :class:`int` or :class:`file`. The
``type`` keyword argument of :meth:`
add_argument` allows any necessar
y
``type`` keyword argument of :meth:`
~ArgumentParser.add_argument` allows an
y
type-checking and type-conversions to be performed. Many common built-in types
necessary type-checking and type-conversions to be performed. Many common
can be used directly as the value of the ``type`` argument::
built-in types
can be used directly as the value of the ``type`` argument::
>>> parser = argparse.ArgumentParser()
>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('foo', type=int)
>>> parser.add_argument('foo', type=int)
...
@@ -941,9 +948,9 @@ choices
...
@@ -941,9 +948,9 @@ choices
Some command-line args should be selected from a restricted set of values.
Some command-line args should be selected from a restricted set of values.
These can be handled by passing a container object as the ``choices`` keyword
These can be handled by passing a container object as the ``choices`` keyword
argument to :meth:`
add_argument`. When the command line is parsed, arg value
s
argument to :meth:`
~ArgumentParser.add_argument`. When the command line i
s
will be checked, and an error message will be displayed if the arg was not one
parsed, arg values will be checked, and an error message will be displayed if
of the acceptable values::
the arg was not one
of the acceptable values::
>>> parser = argparse.ArgumentParser(prog='PROG')
>>> parser = argparse.ArgumentParser(prog='PROG')
>>> parser.add_argument('foo', choices='abc')
>>> parser.add_argument('foo', choices='abc')
...
@@ -976,7 +983,7 @@ required
...
@@ -976,7 +983,7 @@ required
In general, the :mod:`argparse` module assumes that flags like ``-f`` and ``--bar``
In general, the :mod:`argparse` module assumes that flags like ``-f`` and ``--bar``
indicate *optional* arguments, which can always be omitted at the command line.
indicate *optional* arguments, which can always be omitted at the command line.
To make an option *required*, ``True`` can be specified for the ``required=``
To make an option *required*, ``True`` can be specified for the ``required=``
keyword argument to :meth:`add_argument`::
keyword argument to :meth:`
~ArgumentParser.
add_argument`::
>>> parser = argparse.ArgumentParser()
>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('--foo', required=True)
>>> parser.add_argument('--foo', required=True)
...
@@ -986,8 +993,9 @@ keyword argument to :meth:`add_argument`::
...
@@ -986,8 +993,9 @@ keyword argument to :meth:`add_argument`::
usage: argparse.py [-h] [--foo FOO]
usage: argparse.py [-h] [--foo FOO]
argparse.py: error: option --foo is required
argparse.py: error: option --foo is required
As the example shows, if an option is marked as ``required``, :meth:`parse_args`
As the example shows, if an option is marked as ``required``,
will report an error if that option is not present at the command line.
:meth:`~ArgumentParser.parse_args` will report an error if that option is not
present at the command line.
.. note::
.. note::
...
@@ -1021,7 +1029,7 @@ argument::
...
@@ -1021,7 +1029,7 @@ argument::
The ``help`` strings can include various format specifiers to avoid repetition
The ``help`` strings can include various format specifiers to avoid repetition
of things like the program name or the argument default_. The available
of things like the program name or the argument default_. The available
specifiers include the program name, ``%(prog)s`` and most keyword arguments to
specifiers include the program name, ``%(prog)s`` and most keyword arguments to
:meth:`add_argument`, e.g. ``%(default)s``, ``%(type)s``, etc.::
:meth:`
~ArgumentParser.
add_argument`, e.g. ``%(default)s``, ``%(type)s``, etc.::
>>> parser = argparse.ArgumentParser(prog='frobble')
>>> parser = argparse.ArgumentParser(prog='frobble')
>>> parser.add_argument('bar', nargs='?', type=int, default=42,
>>> parser.add_argument('bar', nargs='?', type=int, default=42,
...
@@ -1081,8 +1089,8 @@ An alternative name can be specified with ``metavar``::
...
@@ -1081,8 +1089,8 @@ An alternative name can be specified with ``metavar``::
--foo YYY
--foo YYY
Note that ``metavar`` only changes the *displayed* name - the name of the
Note that ``metavar`` only changes the *displayed* name - the name of the
attribute on the :meth:`
parse_args` object is still determined by the dest_
attribute on the :meth:`
~ArgumentParser.parse_args` object is still determined
value.
by the dest_
value.
Different values of ``nargs`` may cause the metavar to be used multiple times.
Different values of ``nargs`` may cause the metavar to be used multiple times.
Providing a tuple to ``metavar`` specifies a different display for each of the
Providing a tuple to ``metavar`` specifies a different display for each of the
...
@@ -1104,10 +1112,11 @@ dest
...
@@ -1104,10 +1112,11 @@ dest
^^^^
^^^^
Most :class:`ArgumentParser` actions add some value as an attribute of the
Most :class:`ArgumentParser` actions add some value as an attribute of the
object returned by :meth:`parse_args`. The name of this attribute is determined
object returned by :meth:`~ArgumentParser.parse_args`. The name of this
by the ``dest`` keyword argument of :meth:`add_argument`. For positional
attribute is determined by the ``dest`` keyword argument of
argument actions, ``dest`` is normally supplied as the first argument to
:meth:`~ArgumentParser.add_argument`. For positional argument actions,
:meth:`add_argument`::
``dest`` is normally supplied as the first argument to
:meth:`~ArgumentParser.add_argument`::
>>> parser = argparse.ArgumentParser()
>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('bar')
>>> parser.add_argument('bar')
...
@@ -1158,9 +1167,9 @@ The parse_args() method
...
@@ -1158,9 +1167,9 @@ The parse_args() method
Option value syntax
Option value syntax
^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^
The :meth:`
parse_args` method supports several ways of specifying the value
of
The :meth:`
~ArgumentParser.parse_args` method supports several ways
of
an option (if it takes one). In the simplest case, the option and its value ar
e
specifying the value of an option (if it takes one). In the simplest case, th
e
passed as two separate arguments::
option and its value are
passed as two separate arguments::
>>> parser = argparse.ArgumentParser(prog='PROG')
>>> parser = argparse.ArgumentParser(prog='PROG')
>>> parser.add_argument('-x')
>>> parser.add_argument('-x')
...
@@ -1197,10 +1206,10 @@ as long as only the last option (or none of them) requires a value::
...
@@ -1197,10 +1206,10 @@ as long as only the last option (or none of them) requires a value::
Invalid arguments
Invalid arguments
^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^
While parsing the command line,
``parse_args`` checks for a variety of errors,
While parsing the command line,
:meth:`~ArgumentParser.parse_args` checks for a
including ambiguous options, invalid types, invalid options, wrong number of
variety of errors, including ambiguous options, invalid types, invalid options,
positional arguments, etc. When it encounters such an error, it exits and
wrong number of positional arguments, etc. When it encounters such an error,
prints the error along with a usage message::
it exits and
prints the error along with a usage message::
>>> parser = argparse.ArgumentParser(prog='PROG')
>>> parser = argparse.ArgumentParser(prog='PROG')
>>> parser.add_argument('--foo', type=int)
>>> parser.add_argument('--foo', type=int)
...
@@ -1225,13 +1234,13 @@ prints the error along with a usage message::
...
@@ -1225,13 +1234,13 @@ prints the error along with a usage message::
Arguments containing ``"-"``
Arguments containing ``"-"``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The
``parse_args`` method attempts to give errors whenever the user has clearly
The
:meth:`~ArgumentParser.parse_args` method attempts to give errors whenever
made a mistake, but some situations are inherently ambiguous. For example, the
the user has clearly made a mistake, but some situations are inherently
command-line arg ``'-1'`` could either be an attempt to specify an option or
an
ambiguous. For example, the command-line arg ``'-1'`` could either be
an
attempt to
provide a positional argument. The ``parse_args`` method is cautious
attempt to
specify an option or an attempt to provide a positional argument.
here: positional arguments may only begin with ``'-'`` if they look like
The :meth:`~ArgumentParser.parse_args` method is cautious here: positional
negative numbers and there are no options in the parser that look like negative
arguments may only begin with ``'-'`` if they look like negative numbers and
numbers::
there are no options in the parser that look like negative
numbers::
>>> parser = argparse.ArgumentParser(prog='PROG')
>>> parser = argparse.ArgumentParser(prog='PROG')
>>> parser.add_argument('-x')
>>> parser.add_argument('-x')
...
@@ -1265,7 +1274,8 @@ numbers::
...
@@ -1265,7 +1274,8 @@ numbers::
If you have positional arguments that must begin with ``'-'`` and don't look
If you have positional arguments that must begin with ``'-'`` and don't look
like negative numbers, you can insert the pseudo-argument ``'--'`` which tells
like negative numbers, you can insert the pseudo-argument ``'--'`` which tells
``parse_args`` that everything after that is a positional argument::
:meth:`~ArgumentParser.parse_args` that everything after that is a positional
argument::
>>> parser.parse_args(['--', '-f'])
>>> parser.parse_args(['--', '-f'])
Namespace(foo='-f', one=None)
Namespace(foo='-f', one=None)
...
@@ -1274,8 +1284,8 @@ like negative numbers, you can insert the pseudo-argument ``'--'`` which tells
...
@@ -1274,8 +1284,8 @@ like negative numbers, you can insert the pseudo-argument ``'--'`` which tells
Argument abbreviations
Argument abbreviations
^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^
The :meth:`
parse_args` method allows long options to be abbreviated if th
e
The :meth:`
~ArgumentParser.parse_args` method allows long options to b
e
abbreviation is unambiguous::
abbreviat
ed if the abbreviat
ion is unambiguous::
>>> parser = argparse.ArgumentParser(prog='PROG')
>>> parser = argparse.ArgumentParser(prog='PROG')
>>> parser.add_argument('-bacon')
>>> parser.add_argument('-bacon')
...
@@ -1296,7 +1306,8 @@ Beyond ``sys.argv``
...
@@ -1296,7 +1306,8 @@ Beyond ``sys.argv``
Sometimes it may be useful to have an ArgumentParser parse args other than those
Sometimes it may be useful to have an ArgumentParser parse args other than those
of :data:`sys.argv`. This can be accomplished by passing a list of strings to
of :data:`sys.argv`. This can be accomplished by passing a list of strings to
``parse_args``. This is useful for testing at the interactive prompt::
:meth:`~ArgumentParser.parse_args`. This is useful for testing at the
interactive prompt::
>>> parser = argparse.ArgumentParser()
>>> parser = argparse.ArgumentParser()
>>> parser.add_argument(
>>> parser.add_argument(
...
@@ -1314,11 +1325,11 @@ of :data:`sys.argv`. This can be accomplished by passing a list of strings to
...
@@ -1314,11 +1325,11 @@ of :data:`sys.argv`. This can be accomplished by passing a list of strings to
The Namespace object
The Namespace object
^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^
By default, :meth:`
parse_args` will return a new object of type :class:`Namespace`
By default, :meth:`
~ArgumentParser.parse_args` will return a new object of type
where the necessary attributes have been set. This class is deliberately simple,
:class:`Namespace` where the necessary attributes have been set. This class is
just an :class:`object` subclass with a readable string representation. If you
deliberately simple, just an :class:`object` subclass with a readable string
prefer to have dict-like view of the attributes, you can use the standard Python
representation. If you prefer to have dict-like view of the attributes, you
idiom via :func:`vars`::
can use the standard Python
idiom via :func:`vars`::
>>> parser = argparse.ArgumentParser()
>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('--foo')
>>> parser.add_argument('--foo')
...
@@ -1357,9 +1368,9 @@ Sub-commands
...
@@ -1357,9 +1368,9 @@ Sub-commands
:class:`ArgumentParser` supports the creation of such sub-commands with the
:class:`ArgumentParser` supports the creation of such sub-commands with the
:meth:`add_subparsers` method. The :meth:`add_subparsers` method is normally
:meth:`add_subparsers` method. The :meth:`add_subparsers` method is normally
called with no arguments and returns an special action object. This object
called with no arguments and returns an special action object. This object
has a single method,
``add_parser``, which takes a command name and any
has a single method,
:meth:`~ArgumentParser.add_parser`, which takes a
:class:`ArgumentParser` constructor arguments, and returns an
command name and any :class:`ArgumentParser` constructor arguments, and
:class:`ArgumentParser` object that can be modified as usual.
returns an
:class:`ArgumentParser` object that can be modified as usual.
Some example usage::
Some example usage::
...
@@ -1393,7 +1404,7 @@ Sub-commands
...
@@ -1393,7 +1404,7 @@ Sub-commands
for that particular parser will be printed. The help message will not
for that particular parser will be printed. The help message will not
include parent parser or sibling parser messages. (A help message for each
include parent parser or sibling parser messages. (A help message for each
subparser command, however, can be given by supplying the ``help=`` argument
subparser command, however, can be given by supplying the ``help=`` argument
to
``add_parser`
` as above.)
to
:meth:`add_parser
` as above.)
::
::
...
@@ -1612,7 +1623,8 @@ Mutual exclusion
...
@@ -1612,7 +1623,8 @@ Mutual exclusion
PROG: error: one of the arguments --foo --bar is required
PROG: error: one of the arguments --foo --bar is required
Note that currently mutually exclusive argument groups do not support the
Note that currently mutually exclusive argument groups do not support the
*title* and *description* arguments of :meth:`add_argument_group`.
*title* and *description* arguments of
:meth:`~ArgumentParser.add_argument_group`.
Parser defaults
Parser defaults
...
@@ -1622,7 +1634,7 @@ Parser defaults
...
@@ -1622,7 +1634,7 @@ Parser defaults
Most of the time, the attributes of the object returned by :meth:`parse_args`
Most of the time, the attributes of the object returned by :meth:`parse_args`
will be fully determined by inspecting the command-line args and the argument
will be fully determined by inspecting the command-line args and the argument
actions. :meth:`
ArgumentParser.
set_defaults` allows some additional
actions. :meth:`set_defaults` allows some additional
attributes that are determined without any inspection of the command line to
attributes that are determined without any inspection of the command line to
be added::
be added::
...
@@ -1659,9 +1671,9 @@ Parser defaults
...
@@ -1659,9 +1671,9 @@ Parser defaults
Printing help
Printing help
^^^^^^^^^^^^^
^^^^^^^^^^^^^
In most typical applications, :meth:`
parse_args` will take care of formatting
In most typical applications, :meth:`
~ArgumentParser.parse_args` will take
and printing any usage or error messages. However, several formatting methods
care of formatting and printing any usage or error messages. However, several
are available:
formatting methods
are available:
.. method:: ArgumentParser.print_usage(file=None)
.. method:: ArgumentParser.print_usage(file=None)
...
@@ -1696,7 +1708,7 @@ Partial parsing
...
@@ -1696,7 +1708,7 @@ Partial parsing
Sometimes a script may only parse a few of the command-line arguments, passing
Sometimes a script may only parse a few of the command-line arguments, passing
the remaining arguments on to another script or program. In these cases, the
the remaining arguments on to another script or program. In these cases, the
:meth:`parse_known_args` method can be useful. It works much like
:meth:`
~ArgumentParser.
parse_known_args` method can be useful. It works much like
:meth:`~ArgumentParser.parse_args` except that it does not produce an error when
:meth:`~ArgumentParser.parse_args` except that it does not produce an error when
extra arguments are present. Instead, it returns a two item tuple containing
extra arguments are present. Instead, it returns a two item tuple containing
the populated namespace and the list of remaining argument strings.
the populated namespace and the list of remaining argument strings.
...
@@ -1753,7 +1765,7 @@ Exiting methods
...
@@ -1753,7 +1765,7 @@ Exiting methods
Upgrading optparse code
Upgrading optparse code
-----------------------
-----------------------
Originally, the mod:`argparse` module had attempted to maintain compatibility
Originally, the
:
mod:`argparse` module had attempted to maintain compatibility
with :mod:`optparse`. However, :mod:`optparse` was difficult to extend
with :mod:`optparse`. However, :mod:`optparse` was difficult to extend
transparently, particularly with the changes required to support the new
transparently, particularly with the changes required to support the new
``nargs=`` specifiers and better usage messages. When most everything in
``nargs=`` specifiers and better usage messages. When most everything in
...
@@ -1762,8 +1774,8 @@ longer seemed practical to try to maintain the backwards compatibility.
...
@@ -1762,8 +1774,8 @@ longer seemed practical to try to maintain the backwards compatibility.
A partial upgrade path from :mod:`optparse` to :mod:`argparse`:
A partial upgrade path from :mod:`optparse` to :mod:`argparse`:
* Replace all
``add_option()`` calls with :meth:`ArgumentParser.add_argument`
* Replace all
:meth:`optparse.OptionParser.add_option` calls with
calls.
:meth:`ArgumentParser.add_argument`
calls.
* Replace ``options, args = parser.parse_args()`` with ``args =
* Replace ``options, args = parser.parse_args()`` with ``args =
parser.parse_args()`` and add additional :meth:`ArgumentParser.add_argument`
parser.parse_args()`` and add additional :meth:`ArgumentParser.add_argument`
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment