docs: def _parse_args():
      """Parse and return command line arguments."""
      parser = argparse.ArgumentParser(
          description=__doc__,
          formatter_class=_CliFormatter)
      parser.add_argument('-v', '--verbose', action='store_true',
                          help='Enable verbose output.')
  
      fb_group = parser.add_argument_group('FogBugz arguments')
      fb_group.add_argument(
          '-u', '--url', help=(
              'URL for bugzscout requests to be sent. Should be something '
              'like .../scoutSubmit.asp.'))
      fb_group.add_argument(
          '--user', help='User to designate when submitting via bugzscout.')
      fb_group.add_argument(
          '--project', help='Fogbugz project to file cases under.')
      fb_group.add_argument(
          '--area', help='Fogbugz area to file cases under.')
  
      error_group = parser.add_argument_group('error arguments')
      error_group.add_argument('-e', '--extra',
                               help='Extra data to send with error.')
      error_group.add_argument('--default-message',
                               help='Set default message if case is new.')
      error_group.add_argument('description',
                               help=('Description of error. Will be matched '
                                     'against existing cases.'))
  
      parser.set_defaults(**_defaults())
  
      return parser.parse_args()