def METHOD_NAME(
    client,
    table_name,
    columns=None,
    group_by=None,
    split_by=None,
    aggregates=None,
    sort=None,
    filter=None,
    expressions=None,
):
    """Create a new View by posting a message to the Perspective server
    implementation through `client`, returning a Future that will resolve to a
    `PerspectiveViewProxy` object whose API must be called with `await` or
    `yield`, or an Exception if the View creation failed.
    """
    name = str(random())
    config = {
        "columns": columns,
        "group_by": group_by,
        "split_by": split_by,
        "aggregates": aggregates,
        "sort": sort,
        "filter": filter,
        "expressions": expressions,
    }
    msg = {
        "cmd": "view",
        "view_name": name,
        "table_name": table_name,
        "config": config,
    }
    future = asyncio.Future()
    client.post(msg, future)
    return future