code: def view(
      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
  
imports: import asyncio
  from random import random
  from functools import partial
  from .dispatch import async_queue, subscribe, unsubscribe
label_desc: Use image node_id 1 for calling a global function with example usage: view(client, table_name, columns, group_by, split_by, aggregates, sort, filter, expressions) and returns: future