def parseArgsAndConfig()

in tools/gen-release-vote.py [0:0]


def parseArgsAndConfig():
    parser = argparse.ArgumentParser(description='Generates Release Candidate Vote Email')
    parser.add_argument('-v', '--verbose', help='verbose output', action='store_true')
    parser.add_argument('-n', '--dryrun', help='verbose output', action='store_true')
    parser.add_argument('-mc', '--mail-conf', help='YAML configuration file for mailer', metavar='YAML', type=argparse.FileType('r'), required=False)
    parser.add_argument('-s', '--subject', help='Component name for subject line', metavar='NAME')
    parser.add_argument('-i', '--signature', help='Signature line to conclude email', metavar='SIGNATURE')
    parser.add_argument('rc_conf', help='JSON configuration file for release candidate', metavar='release-config-file', type=argparse.FileType('r'))

    if argcomplete:
        argcomplete.autocomplete(parser)

    args = parser.parse_args()

    args.rcConfig = json.load(args.rc_conf)
    if not args.dryrun and 'mail_conf' in args and args.mail_conf is not None:
      args.mailConfig = yaml.load(args.mail_conf, Loader=yaml.FullLoader)
      if 'mail' not in args.mailConfig:
        print('Error: bad configuration, need "mail" properties.')
        return
      else:
        args.mailConfig = args.mailConfig['mail']
    else:
      args.mailConfig = None
    return args