def METHOD_NAME():
    usage = '''
    Encodes or decodes JSON Web Tokens based on input.
    %(prog)s [options] <command> [options] input
    Decoding examples:
    %(prog)s --key=secret decode json.web.token
    %(prog)s decode --no-verify json.web.token
    Encoding requires the key option and takes space separated key/value pairs
    separated by equals (=) as input. Examples:
    %(prog)s --key=secret encode iss=me exp=1302049071
    %(prog)s --key=secret encode foo=bar exp=+10
    The exp key is special and can take an offset to current Unix time.
    '''
    arg_parser = argparse.ArgumentParser(
        prog='pyjwt',
        usage=usage
    )
    arg_parser.add_argument(
        '-v', '--version',
        action='version',
        version='%(prog)s ' + __version__
    )
    arg_parser.add_argument(
        '--key',
        dest='key',
        metavar='KEY',
        default=None,
        help='set the secret key to sign with'
    )
    arg_parser.add_argument(
        '--alg',
        dest='algorithm',
        metavar='ALG',
        default='HS256',
        help='set crypto algorithm to sign with. default=HS256'
    )
    subparsers = arg_parser.add_subparsers(
        title='PyJWT subcommands',
        description='valid subcommands',
        help='additional help'
    )
    # Encode subcommand
    encode_parser = subparsers.add_parser('encode', help='use to encode a supplied payload')
    payload_help = """Payload to encode. Must be a space separated list of key/value
    pairs separated by equals (=) sign."""
    encode_parser.add_argument('payload', nargs='+', help=payload_help)
    encode_parser.set_defaults(func=encode_payload)
    # Decode subcommand
    decode_parser = subparsers.add_parser('decode', help='use to decode a supplied JSON web token')
    decode_parser.add_argument(
        'token',
        help='JSON web token to decode.',
        nargs='?')
    decode_parser.add_argument(
        '-n', '--no-verify',
        action='store_false',
        dest='verify',
        default=True,
        help='ignore signature and claims verification on decode'
    )
    decode_parser.set_defaults(func=decode_payload)
    return arg_parser