api: Recommend migrating to argparse-based add_default_arguments().

This commit is contained in:
Eeshan Garg 2017-07-26 22:22:52 -02:30
parent c4876dddae
commit 38df8ef87b

View file

@ -30,6 +30,7 @@ import traceback
import sys import sys
import os import os
import optparse import optparse
import argparse
import platform import platform
import random import random
from distutils.version import LooseVersion from distutils.version import LooseVersion
@ -103,8 +104,64 @@ def _default_client():
# type: () -> str # type: () -> str
return "ZulipPython/" + __version__ return "ZulipPython/" + __version__
def add_default_arguments(parser):
# type: (argparse.ArgumentParser) -> argparse.ArgumentParser
group = parser.add_argument_group('Zulip API configuration')
group.add_argument('--site',
dest="zulip_site",
help="Zulip server URI",
default=None)
group.add_argument('--api-key',
dest="zulip_api_key",
action='store')
group.add_argument('--user',
dest='zulip_email',
help='Email address of the calling bot or user.')
group.add_argument('--config-file',
action='store',
dest="zulip_config_file",
help='''Location of an ini file containing the above
information. (default ~/.zuliprc)''')
group.add_argument('-v', '--verbose',
action='store_true',
help='Provide detailed output.')
group.add_argument('--client',
action='store',
default=None,
dest="zulip_client",
help=argparse.SUPPRESS)
group.add_argument('--insecure',
action='store_true',
dest='insecure',
help='''Do not verify the server certificate.
The https connection will not be secure.''')
group.add_argument('--cert-bundle',
action='store',
dest='cert_bundle',
help='''Specify a file containing either the
server certificate, or a set of trusted
CA certificates. This will be used to
verify the server's identity. All
certificates should be PEM encoded.''')
group.add_argument('--client-cert',
action='store',
dest='client_cert',
help='''Specify a file containing a client
certificate (not needed for most deployments).''')
group.add_argument('--client-cert-key',
action='store',
dest='client_cert_key',
help='''Specify a file containing the client
certificate's key (if it is in a separate
file).''')
return parser
def generate_option_group(parser, prefix=''): def generate_option_group(parser, prefix=''):
# type: (optparse.OptionParser, str) -> optparse.OptionGroup # type: (optparse.OptionParser, str) -> optparse.OptionGroup
logging.warning("""zulip.generate_option_group is based on optparse, which
is now deprecated. We recommend migrating to argparse and
using zulip.add_default_arguments instead.""")
group = optparse.OptionGroup(parser, 'Zulip API configuration') # type: ignore # https://github.com/python/typeshed/pull/1248 group = optparse.OptionGroup(parser, 'Zulip API configuration') # type: ignore # https://github.com/python/typeshed/pull/1248
group.add_option('--%ssite' % (prefix,), group.add_option('--%ssite' % (prefix,),
dest="zulip_site", dest="zulip_site",