diff -r 9ea84f006892 Lib/argparse.py --- a/Lib/argparse.py Wed May 01 15:15:50 2013 +0200 +++ b/Lib/argparse.py Fri Jul 26 12:44:21 2013 -0700 @@ -530,7 +530,8 @@ def _format_action_invocation(self, action): if not action.option_strings: default = self._get_default_metavar_for_positional(action) - metavar, = self._metavar_formatter(action, default)(1) + metavar = self._metavar_formatter(action, default)(1) + metavar = '|'.join(metavar) return metavar else: diff -r 9ea84f006892 Lib/test/test_argparse.py --- a/Lib/test/test_argparse.py Wed May 01 15:15:50 2013 +0200 +++ b/Lib/test/test_argparse.py Fri Jul 26 12:44:21 2013 -0700 @@ -3859,6 +3859,32 @@ ''' version = '' +class TestHelpPositionalTupleMetavar(HelpTestCase): + """Test specifying metavar of a positional as a tuple""" + + parser_signature = Sig(prog='PROG') + argument_signatures = [ + Sig('w', help='w', nargs='+', metavar=('W1', 'W2')), + Sig('x', help='x', nargs='*', metavar=('X1', 'X2')), + Sig('y', help='y', nargs=3, metavar=('Y1', 'Y2', 'Y3')), + Sig('z', help='z', nargs='?', metavar=('Z1', )), + ] + argument_group_signatures = [] + usage = '''\ + usage: PROG [-h] W1 [W2 ...] [X1 [X2 ...]] Y1 Y2 Y3 [Z1] + ''' + help = usage + '''\ + + positional arguments: + W1|W2 w + X1|X2 x + Y1|Y2|Y3 y + Z1 z + + optional arguments: + -h, --help show this help message and exit + ''' + version = '' class TestHelpRawText(HelpTestCase): """Test the RawTextHelpFormatter"""