docs: def _table_cell(args, cell_body):
    """Implements the BigQuery table magic subcommand used to operate on tables
  
     The supported syntax is:
     %%bq tables <command> <args>
  
    Commands:
      {list, create, delete, describe, view}
  
    Args:
      args: the optional arguments following '%%bq tables command'.
      cell_body: optional contents of the cell interpreted as SQL, YAML or JSON.
    Returns:
      The HTML rendering for the table of datasets.
    """
    if args['command'] == 'list':
      filter_ = args['filter'] if args['filter'] else '*'
      if args['dataset']:
        if args['project'] is None:
          datasets = [bigquery.Dataset(args['dataset'])]
        else:
          context = google.datalab.Context(args['project'],
                                           google.datalab.Context.default().credentials)
          datasets = [bigquery.Dataset(args['dataset'], context)]
      else:
        default_context = google.datalab.Context.default()
        context = google.datalab.Context(default_context.project_id, default_context.credentials)
        if args['project']:
          context.set_project_id(args['project'])
        datasets = bigquery.Datasets(context)
  
      tables = []
      for dataset in datasets:
        tables.extend([table.full_name
                       for table in dataset if fnmatch.fnmatch(table.full_name, filter_)])
  
      return _render_list(tables)
  
    elif args['command'] == 'create':
      if cell_body is None:
        print('Failed to create %s: no schema specified' % args['name'])
      else:
        try:
          record = google.datalab.utils.commands.parse_config(
              cell_body, google.datalab.utils.commands.notebook_environment(), as_dict=False)
          jsonschema.validate(record, BigQuerySchema.TABLE_SCHEMA_SCHEMA)
          schema = bigquery.Schema(record['schema'])
          bigquery.Table(args['name']).create(schema=schema, overwrite=args['overwrite'])
        except Exception as e:
          print('Failed to create table %s: %s' % (args['name'], e))
  
    elif args['command'] == 'describe':
      name = args['name']
      table = _get_table(name)
      if not table:
        raise Exception('Could not find table %s' % name)
  
      html = _repr_html_table_schema(table.schema)
      return IPython.core.display.HTML(html)
  
    elif args['command'] == 'delete':
      try:
        bigquery.Table(args['name']).delete()
      except Exception as e:
        print('Failed to delete table %s: %s' % (args['name'], e))
  
    elif args['command'] == 'view':
      name = args['name']
      table = _get_table(name)
      if not table:
        raise Exception('Could not find table %s' % name)
      return table