• Home
  • Raw
  • Download

Lines Matching full:parser

1 :mod:`argparse` --- Parser for command-line options, arguments and sub-commands
36 parser = argparse.ArgumentParser(description='Process some integers.')
37 parser.add_argument('integers', metavar='N', type=int, nargs='+',
39 parser.add_argument('--sum', dest='accumulate', action='store_const',
43 args = parser.parse_args()
85 Creating a parser
91 >>> parser = argparse.ArgumentParser(description='Process some integers.')
106 >>> parser.add_argument('integers', metavar='N', type=int, nargs='+',
108 >>> parser.add_argument('--sum', dest='accumulate', action='store_const',
128 >>> parser.parse_args(['--sum', '7', '-1', '42'])
153 arguments added to parser)
176 * add_help_ - Add a -h/--help option to the parser (default: ``True``)
191 parser = argparse.ArgumentParser()
192 parser.add_argument('--foo', help='foo help')
193 args = parser.parse_args()
217 >>> parser = argparse.ArgumentParser(prog='myprogram')
218 >>> parser.print_help()
230 >>> parser = argparse.ArgumentParser(prog='myprogram')
231 >>> parser.add_argument('--foo', help='foo of the %(prog)s program')
232 >>> parser.print_help()
246 >>> parser = argparse.ArgumentParser(prog='PROG')
247 >>> parser.add_argument('--foo', nargs='?', help='foo help')
248 >>> parser.add_argument('bar', nargs='+', help='bar help')
249 >>> parser.print_help()
261 >>> parser = argparse.ArgumentParser(prog='PROG', usage='%(prog)s [options]')
262 >>> parser.add_argument('--foo', nargs='?', help='foo help')
263 >>> parser.add_argument('bar', nargs='+', help='bar help')
264 >>> parser.print_help()
287 >>> parser = argparse.ArgumentParser(description='A foo that bars')
288 >>> parser.print_help()
307 >>> parser = argparse.ArgumentParser(
310 >>> parser.print_help()
329 repeating the definitions of these arguments, a single parser with all the
354 If you change the parent parsers after the child parser, those changes will
375 >>> parser = argparse.ArgumentParser(
384 >>> parser.print_help()
399 >>> parser = argparse.ArgumentParser(
409 >>> parser.print_help()
427 >>> parser = argparse.ArgumentParser(
430 >>> parser.add_argument('--foo', type=int, default=42, help='FOO!')
431 >>> parser.add_argument('bar', nargs='*', default=[1, 2, 3], help='BAR!')
432 >>> parser.print_help()
452 >>> parser = argparse.ArgumentParser(prog='PROG', prefix_chars='-+')
453 >>> parser.add_argument('+f')
454 >>> parser.add_argument('++bar')
455 >>> parser.parse_args('+f X ++bar Y'.split())
475 >>> parser = argparse.ArgumentParser(fromfile_prefix_chars='@')
476 >>> parser.add_argument('-f')
477 >>> parser.parse_args(['-f', 'foo', '@args.txt'])
496 pairs. Sometimes however, it may be useful to specify a single parser-wide
502 >>> parser = argparse.ArgumentParser(argument_default=argparse.SUPPRESS)
503 >>> parser.add_argument('--foo')
504 >>> parser.add_argument('bar', nargs='?')
505 >>> parser.parse_args(['--foo', '1', 'BAR'])
507 >>> parser.parse_args([])
519 >>> parser = argparse.ArgumentParser(prog='PROG')
520 >>> parser.add_argument('-f', '--foo', help='old foo help')
521 >>> parser.add_argument('--foo', help='new foo help')
531 >>> parser = argparse.ArgumentParser(prog='PROG', conflict_handler='resolve')
532 >>> parser.add_argument('-f', '--foo', help='old foo help')
533 >>> parser.add_argument('--foo', help='new foo help')
534 >>> parser.print_help()
552 the parser's help message. For example, consider a file named
556 parser = argparse.ArgumentParser()
557 parser.add_argument('--foo', help='foo help')
558 args = parser.parse_args()
576 >>> parser = argparse.ArgumentParser(prog='PROG', add_help=False)
577 >>> parser.add_argument('--foo', help='foo help')
578 >>> parser.print_help()
590 >>> parser = argparse.ArgumentParser(prog='PROG', prefix_chars='+/')
591 >>> parser.print_help()
648 >>> parser.add_argument('-f', '--foo')
652 >>> parser.add_argument('bar')
658 >>> parser = argparse.ArgumentParser(prog='PROG')
659 >>> parser.add_argument('-f', '--foo')
660 >>> parser.add_argument('bar')
661 >>> parser.parse_args(['BAR'])
663 >>> parser.parse_args(['BAR', '--foo', 'FOO'])
665 >>> parser.parse_args(['--foo', 'FOO'])
682 >>> parser = argparse.ArgumentParser()
683 >>> parser.add_argument('--foo')
684 >>> parser.parse_args('--foo 1'.split())
691 >>> parser = argparse.ArgumentParser()
692 >>> parser.add_argument('--foo', action='store_const', const=42)
693 >>> parser.parse_args(['--foo'])
701 >>> parser = argparse.ArgumentParser()
702 >>> parser.add_argument('--foo', action='store_true')
703 >>> parser.add_argument('--bar', action='store_false')
704 >>> parser.add_argument('--baz', action='store_false')
705 >>> parser.parse_args('--foo --bar'.split())
712 >>> parser = argparse.ArgumentParser()
713 >>> parser.add_argument('--foo', action='append')
714 >>> parser.parse_args('--foo 1 --foo 2'.split())
723 >>> parser = argparse.ArgumentParser()
724 >>> parser.add_argument('--str', dest='types', action='append_const', const=str)
725 >>> parser.add_argument('--int', dest='types', action='append_const', const=int)
726 >>> parser.parse_args('--str --int'.split())
732 >>> parser = argparse.ArgumentParser()
733 >>> parser.add_argument('--verbose', '-v', action='count')
734 >>> parser.parse_args(['-vvv'])
738 current parser and then exits. By default a help action is automatically
739 added to the parser. See :class:`ArgumentParser` for details of how the
747 >>> parser = argparse.ArgumentParser(prog='PROG')
748 >>> parser.add_argument('--version', action='version', version='%(prog)s 2.0')
749 >>> parser.parse_args(['--version'])
764 ... def __call__(self, parser, namespace, values, option_string=None):
768 >>> parser = argparse.ArgumentParser()
769 >>> parser.add_argument('--foo', action=FooAction)
770 >>> parser.add_argument('bar', action=FooAction)
771 >>> args = parser.parse_args('1 --foo 2'.split())
790 >>> parser = argparse.ArgumentParser()
791 >>> parser.add_argument('--foo', nargs=2)
792 >>> parser.add_argument('bar', nargs=1)
793 >>> parser.parse_args('c --foo a b'.split())
806 >>> parser = argparse.ArgumentParser()
807 >>> parser.add_argument('--foo', nargs='?', const='c', default='d')
808 >>> parser.add_argument('bar', nargs='?', default='d')
809 >>> parser.parse_args(['XX', '--foo', 'YY'])
811 >>> parser.parse_args(['XX', '--foo'])
813 >>> parser.parse_args([])
819 >>> parser = argparse.ArgumentParser()
820 >>> parser.add_argument('infile', nargs='?', type=argparse.FileType('r'),
822 >>> parser.add_argument('outfile', nargs='?', type=argparse.FileType('w'),
824 >>> parser.parse_args(['input.txt', 'output.txt'])
827 >>> parser.parse_args([])
836 >>> parser = argparse.ArgumentParser()
837 >>> parser.add_argument('--foo', nargs='*')
838 >>> parser.add_argument('--bar', nargs='*')
839 >>> parser.add_argument('baz', nargs='*')
840 >>> parser.parse_args('a b --foo x y --bar 1 2'.split())
847 >>> parser = argparse.ArgumentParser(prog='PROG')
848 >>> parser.add_argument('foo', nargs='+')
849 >>> parser.parse_args(['a', 'b'])
851 >>> parser.parse_args([])
859 >>> parser = argparse.ArgumentParser(prog='PROG')
860 >>> parser.add_argument('--foo')
861 >>> parser.add_argument('command')
862 >>> parser.add_argument('args', nargs=argparse.REMAINDER)
863 >>> print parser.parse_args('--foo B cmd --arg1 XX ZZ'.split())
904 >>> parser = argparse.ArgumentParser()
905 >>> parser.add_argument('--foo', default=42)
906 >>> parser.parse_args(['--foo', '2'])
908 >>> parser.parse_args([])
911 If the ``default`` value is a string, the parser parses the value as if it
912 were a command-line argument. In particular, the parser applies any type_
914 :class:`Namespace` return value. Otherwise, the parser uses the value as is::
916 >>> parser = argparse.ArgumentParser()
917 >>> parser.add_argument('--length', default='10', type=int)
918 >>> parser.add_argument('--width', default=10.5, type=int)
919 >>> parser.parse_args()
925 >>> parser = argparse.ArgumentParser()
926 >>> parser.add_argument('foo', nargs='?', default=42)
927 >>> parser.parse_args(['a'])
929 >>> parser.parse_args([])
936 >>> parser = argparse.ArgumentParser()
937 >>> parser.add_argument('--foo', default=argparse.SUPPRESS)
938 >>> parser.parse_args([])
940 >>> parser.parse_args(['--foo', '1'])
954 >>> parser = argparse.ArgumentParser()
955 >>> parser.add_argument('foo', type=int)
956 >>> parser.add_argument('bar', type=file)
957 >>> parser.parse_args('2 temp.txt'.split())
968 >>> parser = argparse.ArgumentParser()
969 >>> parser.add_argument('bar', type=argparse.FileType('w'))
970 >>> parser.parse_args(['out.txt'])
984 >>> parser = argparse.ArgumentParser(prog='PROG')
985 >>> parser.add_argument('foo', type=perfect_square)
986 >>> parser.parse_args(['9'])
988 >>> parser.parse_args(['7'])
995 >>> parser = argparse.ArgumentParser(prog='PROG')
996 >>> parser.add_argument('foo', type=int, choices=xrange(5, 10))
997 >>> parser.parse_args(['7'])
999 >>> parser.parse_args(['11'])
1015 >>> parser = argparse.ArgumentParser(prog='game.py')
1016 >>> parser.add_argument('move', choices=['rock', 'paper', 'scissors'])
1017 >>> parser.parse_args(['rock'])
1019 >>> parser.parse_args(['fire'])
1028 >>> parser = argparse.ArgumentParser(prog='doors.py')
1029 >>> parser.add_argument('door', type=int, choices=range(1, 4))
1030 >>> print(parser.parse_args(['3']))
1032 >>> parser.parse_args(['4'])
1049 >>> parser = argparse.ArgumentParser()
1050 >>> parser.add_argument('--foo', required=True)
1051 >>> parser.parse_args(['--foo', 'BAR'])
1053 >>> parser.parse_args([])
1075 >>> parser = argparse.ArgumentParser(prog='frobble')
1076 >>> parser.add_argument('--foo', action='store_true',
1078 >>> parser.add_argument('bar', nargs='+',
1080 >>> parser.parse_args(['-h'])
1095 >>> parser = argparse.ArgumentParser(prog='frobble')
1096 >>> parser.add_argument('bar', nargs='?', type=int, default=42,
1098 >>> parser.print_help()
1110 >>> parser = argparse.ArgumentParser(prog='frobble')
1111 >>> parser.add_argument('--foo', help=argparse.SUPPRESS)
1112 >>> parser.print_help()
1131 >>> parser = argparse.ArgumentParser()
1132 >>> parser.add_argument('--foo')
1133 >>> parser.add_argument('bar')
1134 >>> parser.parse_args('X --foo Y'.split())
1136 >>> parser.print_help()
1148 >>> parser = argparse.ArgumentParser()
1149 >>> parser.add_argument('--foo', metavar='YYY')
1150 >>> parser.add_argument('bar', metavar='XXX')
1151 >>> parser.parse_args('X --foo Y'.split())
1153 >>> parser.print_help()
1171 >>> parser = argparse.ArgumentParser(prog='PROG')
1172 >>> parser.add_argument('-x', nargs=2)
1173 >>> parser.add_argument('--foo', nargs=2, metavar=('bar', 'baz'))
1174 >>> parser.print_help()
1193 >>> parser = argparse.ArgumentParser()
1194 >>> parser.add_argument('bar')
1195 >>> parser.parse_args(['XXX'])
1207 >>> parser = argparse.ArgumentParser()
1208 >>> parser.add_argument('-f', '--foo-bar', '--foo')
1209 >>> parser.add_argument('-x', '-y')
1210 >>> parser.parse_args('-f 1 -x 2'.split())
1212 >>> parser.parse_args('--foo 1 -y 2'.split())
1217 >>> parser = argparse.ArgumentParser()
1218 >>> parser.add_argument('--foo', dest='bar')
1219 >>> parser.parse_args('--foo XXX'.split())
1246 * ``parser`` - The ArgumentParser object which contains this action.
1287 >>> parser = argparse.ArgumentParser(prog='PROG')
1288 >>> parser.add_argument('-x')
1289 >>> parser.add_argument('--foo')
1290 >>> parser.parse_args(['-x', 'X'])
1292 >>> parser.parse_args(['--foo', 'FOO'])
1299 >>> parser.parse_args(['--foo=FOO'])
1305 >>> parser.parse_args(['-xX'])
1311 >>> parser = argparse.ArgumentParser(prog='PROG')
1312 >>> parser.add_argument('-x', action='store_true')
1313 >>> parser.add_argument('-y', action='store_true')
1314 >>> parser.add_argument('-z')
1315 >>> parser.parse_args(['-xyzZ'])
1327 >>> parser = argparse.ArgumentParser(prog='PROG')
1328 >>> parser.add_argument('--foo', type=int)
1329 >>> parser.add_argument('bar', nargs='?')
1332 >>> parser.parse_args(['--foo', 'spam'])
1337 >>> parser.parse_args(['--bar'])
1342 >>> parser.parse_args(['spam', 'badger'])
1356 there are no options in the parser that look like negative numbers::
1358 >>> parser = argparse.ArgumentParser(prog='PROG')
1359 >>> parser.add_argument('-x')
1360 >>> parser.add_argument('foo', nargs='?')
1363 >>> parser.parse_args(['-x', '-1'])
1367 >>> parser.parse_args(['-x', '-1', '-5'])
1370 >>> parser = argparse.ArgumentParser(prog='PROG')
1371 >>> parser.add_argument('-1', dest='one')
1372 >>> parser.add_argument('foo', nargs='?')
1375 >>> parser.parse_args(['-1', 'X'])
1379 >>> parser.parse_args(['-2'])
1384 >>> parser.parse_args(['-1', '-1'])
1393 >>> parser.parse_args(['--', '-f'])
1405 >>> parser = argparse.ArgumentParser(prog='PROG')
1406 >>> parser.add_argument('-bacon')
1407 >>> parser.add_argument('-badger')
1408 >>> parser.parse_args('-bac MMM'.split())
1410 >>> parser.parse_args('-bad WOOD'.split())
1412 >>> parser.parse_args('-ba BA'.split())
1427 >>> parser = argparse.ArgumentParser()
1428 >>> parser.add_argument(
1431 >>> parser.add_argument(
1434 >>> parser.parse_args(['1', '2', '3', '4'])
1436 >>> parser.parse_args(['1', '2', '3', '4', '--sum'])
1452 >>> parser = argparse.ArgumentParser()
1453 >>> parser.add_argument('--foo')
1454 >>> args = parser.parse_args(['--foo', 'BAR'])
1466 >>> parser = argparse.ArgumentParser()
1467 >>> parser.add_argument('--foo')
1468 >>> parser.parse_args(args=['--foo', 'BAR'], namespace=c)
1498 * title - title for the sub-parser group in help output; by default
1502 * description - description for the sub-parser group in help output, by
1509 * parser_class - class which will be used to create sub-parser instances, by
1510 default the class of the current parser (e.g. ArgumentParser)
1518 * help_ - help for sub-parser group in help output, by default ``None``
1525 >>> # create the top-level parser
1526 >>> parser = argparse.ArgumentParser(prog='PROG')
1527 >>> parser.add_argument('--foo', action='store_true', help='foo help')
1528 >>> subparsers = parser.add_subparsers(help='sub-command help')
1530 >>> # create the parser for the "a" command
1534 >>> # create the parser for the "b" command
1539 >>> parser.parse_args(['a', '12'])
1541 >>> parser.parse_args(['--foo', 'b', '--baz', 'Z'])
1545 attributes for the main parser and the subparser that was selected by the
1552 for that particular parser will be printed. The help message will not
1553 include parent parser or sibling parser messages. (A help message for each
1559 >>> parser.parse_args(['--help'])
1571 >>> parser.parse_args(['a', '--help'])
1580 >>> parser.parse_args(['b', '--help'])
1591 >>> parser = argparse.ArgumentParser()
1592 >>> subparsers = parser.add_subparsers(title='subcommands',
1597 >>> parser.parse_args(['-h'])
1621 >>> # create the top-level parser
1622 >>> parser = argparse.ArgumentParser()
1623 >>> subparsers = parser.add_subparsers()
1625 >>> # create the parser for the "foo" command
1631 >>> # create the parser for the "bar" command
1637 >>> args = parser.parse_args('foo 1 -x 2'.split())
1642 >>> args = parser.parse_args('bar XYZYX'.split())
1653 >>> parser = argparse.ArgumentParser()
1654 >>> subparsers = parser.add_subparsers(dest='subparser_name')
1659 >>> parser.parse_args(['2', 'frobble'])
1673 >>> parser = argparse.ArgumentParser()
1674 >>> parser.add_argument('--output', type=argparse.FileType('wb', 0))
1675 >>> parser.parse_args(['--output', 'out'])
1682 >>> parser = argparse.ArgumentParser()
1683 >>> parser.add_argument('infile', type=argparse.FileType('r'))
1684 >>> parser.parse_args(['-'])
1699 >>> parser = argparse.ArgumentParser(prog='PROG', add_help=False)
1700 >>> group = parser.add_argument_group('group')
1703 >>> parser.print_help()
1712 :class:`ArgumentParser`. When an argument is added to the group, the parser
1718 >>> parser = argparse.ArgumentParser(prog='PROG', add_help=False)
1719 >>> group1 = parser.add_argument_group('group1', 'group1 description')
1721 >>> group2 = parser.add_argument_group('group2', 'group2 description')
1723 >>> parser.print_help()
1749 >>> parser = argparse.ArgumentParser(prog='PROG')
1750 >>> group = parser.add_mutually_exclusive_group()
1753 >>> parser.parse_args(['--foo'])
1755 >>> parser.parse_args(['--bar'])
1757 >>> parser.parse_args(['--foo', '--bar'])
1765 >>> parser = argparse.ArgumentParser(prog='PROG')
1766 >>> group = parser.add_mutually_exclusive_group(required=True)
1769 >>> parser.parse_args([])
1778 Parser defaults
1789 >>> parser = argparse.ArgumentParser()
1790 >>> parser.add_argument('foo', type=int)
1791 >>> parser.set_defaults(bar=42, baz='badger')
1792 >>> parser.parse_args(['736'])
1795 Note that parser-level defaults always override argument-level defaults::
1797 >>> parser = argparse.ArgumentParser()
1798 >>> parser.add_argument('--foo', default='bar')
1799 >>> parser.set_defaults(foo='spam')
1800 >>> parser.parse_args([])
1803 Parser-level defaults can be particularly useful when working with multiple
1813 >>> parser = argparse.ArgumentParser()
1814 >>> parser.add_argument('--foo', default='badger')
1815 >>> parser.get_default('foo')
1866 >>> parser = argparse.ArgumentParser()
1867 >>> parser.add_argument('--foo', action='store_true')
1868 >>> parser.add_argument('bar')
1869 >>> parser.parse_known_args(['--foo', '--badger', 'BAR', 'spam'])
1874 :meth:`parse_known_args`. The parser may consume an option even if it's just
1941 * Replace ``(options, args) = parser.parse_args()`` with ``args =
1942 parser.parse_args()`` and add additional :meth:`ArgumentParser.add_argument`
1961 ``parser.add_argument('--version', action='version', version='<the version>')``.