'Parse arguments and sign/verify.'

@classmethod
def run(cls, args=sys.argv[1:]):

    parser = argparse.ArgumentParser()
    parser.add_argument('--compact', action='store_true')
    subparsers = parser.add_subparsers()
    parser_sign = subparsers.add_parser('sign')
    parser_sign.set_defaults(func=cls.sign)
    parser_sign.add_argument('-k', '--key', type=argparse.FileType('rb'), required=True)
    parser_sign.add_argument('-a', '--alg', type=cls._alg_type, default=jwa.RS256)
    parser_sign.add_argument('-p', '--protect', action='append', type=cls._header_type)
    parser_verify = subparsers.add_parser('verify')
    parser_verify.set_defaults(func=cls.verify)
    parser_verify.add_argument('-k', '--key', type=argparse.FileType('rb'), required=False)
    parser_verify.add_argument('--kty', type=cls._kty_type, required=False)
    parsed = parser.parse_args(args)
    return parsed.func(parsed)
