title: Python argparse AssertionError
body: <p>I just started using argparse module. I wrote the following reduced snippet to demonstrate an issue I'm having.</p>
  
  <pre><code>from argparse import ArgumentParser
  
  if __name__ == '__main__':
      parser = ArgumentParser('Test argparse. This string needs to be relatively long to trigger the issue.')
      parser.add_argument('-f', '--fin', help='a', required = True)
      parser.add_argument('-o', '--out ', help='b', required = True)
      parser.add_argument('-t', '--trans', help='c', required = True)
  
      args = parser.parse_args()
      print(repr(vars(args)))
  </code></pre>
  
  <p><code>AssertionError</code> will be produced when script is run with argument <strong>-h</strong></p>
  
  <pre><code>Traceback (most recent call last):
    File "arg.py", line 10, in &lt;module&gt;
      args = parser.parse_args()
    File "C:\Users\user\AppData\Local\Continuum\Anaconda\envs\py3k\lib\argparse.py", line 1707, in parse_args
      args, argv = self.parse_known_args(args, namespace)
    File "C:\Users\user\AppData\Local\Continuum\Anaconda\envs\py3k\lib\argparse.py", line 1739, in parse_known_args
      namespace, args = self._parse_known_args(args, namespace)
    File "C:\Users\user\AppData\Local\Continuum\Anaconda\envs\py3k\lib\argparse.py", line 1945, in _parse_known_args
      start_index = consume_optional(start_index)
    File "C:\Users\user\AppData\Local\Continuum\Anaconda\envs\py3k\lib\argparse.py", line 1885, in consume_optional
      take_action(action, args, option_string)
    File "C:\Users\user\AppData\Local\Continuum\Anaconda\envs\py3k\lib\argparse.py", line 1813, in take_action
      action(self, namespace, argument_values, option_string)
    File "C:\Users\user\AppData\Local\Continuum\Anaconda\envs\py3k\lib\argparse.py", line 1017, in __call__
      parser.print_help()
    File "C:\Users\user\AppData\Local\Continuum\Anaconda\envs\py3k\lib\argparse.py", line 2341, in print_help
      self._print_message(self.format_help(), file)
    File "C:\Users\user\AppData\Local\Continuum\Anaconda\envs\py3k\lib\argparse.py", line 2325, in format_help
      return formatter.format_help()
    File "C:\Users\user\AppData\Local\Continuum\Anaconda\envs\py3k\lib\argparse.py", line 278, in format_help
      help = self._root_section.format_help()
    File "C:\Users\user\AppData\Local\Continuum\Anaconda\envs\py3k\lib\argparse.py", line 208, in format_help
      func(*args)
    File "C:\Users\user\AppData\Local\Continuum\Anaconda\envs\py3k\lib\argparse.py", line 329, in _format_usage
      assert ' '.join(opt_parts) == opt_usage
  AssertionError
  </code></pre>
  
  <p>Reducing the length of the description string passed to <strong>ArgumentParser</strong> makes it work correctly. <s>Removing one of the arguments will also help.</s></p>
  
  <p>Am I doing something wrong here? My environment is:</p>
  
  <blockquote>
    <p>Python 3.3.5 |Anaconda 1.9.2 (64-bit)| (default, Mar 10 2014,
    11:25:04) [MSC v.1600 64 bit (AMD64)] on win32</p>
  </blockquote>