title: Mysterious fail within Python 2.7.5 argparse.add_argument() with custom formatter_class
body: <p>I'm trying to write a subclass of HelpFormatter to use with argparse. The formatter is easy; integrating it as a subclass isn't. I found a very helpful example at stackoverflow.com/questions/3853722/, in an answer from Anthon.</p>
  
  <p>Using Python 2.7.5 on Mac OS X 10.9.4. When I try to subclass HelpFormatter, I keep getting:</p>
  
  <pre><code>./testBlankLineHelpFormatter.py -q
  ******* LOADING MY CLASS
  Instantiating argparse.ArgumentParser
  Traceback (most recent call last):
    File "./testBlankLineHelpFormatter.py", line 15, in &lt;module&gt;
      formatter_class=BlankLineHelpFormatter
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/argparse.py", line 1600, in __init__
      help=_('show this help message and exit'))
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/argparse.py", line 1293, in add_argument
      raise ValueError("length of metavar tuple does not match nargs")
  ValueError: length of metavar tuple does not match nargs
  </code></pre>
  
  <p><em>*</em> Note that the error is while instantiating my subclass, when the standard class tries to add a "--help" item -- it never gets to any of my add_argument() calls. I trimmed my subclass down to just this, and it still fails:</p>
  
  <pre><code>class BlankLineHelpFormatter(argparse.HelpFormatter):
      """
  A formatter for argparse that just respects blank lines (as in, doesn't
  wrap across them).
  
  See also: http://bugs.python.org/issue12806
  
  """
  
      sys.stderr.write("******* LOADING MY CLASS\n")
  
      def __init__(self, *args, **kw):
          sys.stderr.write("******* IN MY INIT\n")
          super(BlankLineHelpFormatter, self).__init__(*args, **kw)
  </code></pre>
  
  <p><em>*</em> I'm running it with a driver I also trimmed way down, to this:</p>
  
  <pre><code>#!/usr/bin/python
  #
  from __future__ import print_function
  import argparse
  import BlankLineHelpFormatter
  
  print("Instantiating argparse.ArgumentParser")
  
  parser = argparse.ArgumentParser(
      description="""
  This work is licensed under a Creative Commons
  Attribution-Share Alike 3.0 Unported License. For further information on
  this license, look it up.
      """,
      formatter_class=BlankLineHelpFormatter
  )
  
  print("Adding --quiet\n")
  parser.add_argument(
      "--quiet", "-q",      action='store_true',
      help='Suppress most messages.')
  
  print("Instantiated, now trying parse_args")
  args = parser.parse_args()
  
  print("Back.")
  
  print("You might want to try '-h'...")
  
  sys.exit(0)
  </code></pre>
  
  <p>I looked at the argparse library source, and the problem doesn't make sense to me even in context. Is this a bug preventing subclassing HelpFormatter, or am I missing something in my tiny bit of remaining code?</p>
  
  <p>Many thanks for any help!</p>