class_docstr: :class`~perspective.PerspectiveWidget` allows for Perspective to be used
  in the form of a Jupyter IPython widget.
  
  Using `perspective.Table`, you can create a widget that extends the full
  functionality of `perspective-viewer`.  Changes on the viewer can be
  programatically set on the :class`~perspective.PerspectiveWidget` instance,
  and state is maintained across page refreshes.
  
  Examples:
      >>> from perspective import Table, PerspectiveWidget
      >>> data = {
      ...     "a": [1, 2, 3],
      ...     "b": [
      ...         "2019/07/11 7:30PM",
      ...         "2019/07/11 8:30PM",
      ...         "2019/07/11 9:30PM"
      ...     ]
      ... }
      >>> tbl = Table(data, index="a")
      >>> widget = PerspectiveWidget(
      ...     tbl,
      ...     group_by=["a"],
      ...     sort=[["b", "desc"]],
      ...     filter=[["a", ">", 1]]
      ... )
      >>> widget.sort
      [["b", "desc"]]
      >>> widget.sort.append(["a", "asc"])
      >>> widget.sort
      [["b", "desc"], ["a", "asc"]]
      >>> widget.update({"a": [4, 5]}) # Browser UI updates
docstr: Delete the Widget's data and clears its internal state. If running in
  client mode, sends the `delete()` command to the browser. Otherwise
  calls `delete` on the underlying viewer.
  
  Args:
      delete_table (`bool`): whether the underlying `Table` will be
          deleted. Defaults to True.
docstr_tok: ["Delete","the","Widget","'s","data","and","clears","its","internal","state",".","If","running","in","client","mode",",","sends","the","`","delete","(",")","`","command","to","the","browser",".","Otherwise","calls","`","delete","`","on","the","underlying","viewer",".","Args",":","delete_table","(","`","bool","`",")",":","whether","the","underlying","`","Table","`","will","be","deleted",".","Defaults","to","True","."]
code: def delete(self, delete_table=True):
      """Delete the Widget's data and clears its internal state. If running in
      client mode, sends the `delete()` command to the browser. Otherwise
      calls `delete` on the underlying viewer.
  
      Args:
          delete_table (`bool`): whether the underlying `Table` will be
              deleted. Defaults to True.
      """
      if self.client is False:
          super(PerspectiveWidget, self).delete(delete_table)
      self.post({"cmd": "delete"})
  
      # Close the underlying comm and remove widget from the front-end
      self.close()
  
imports: import base64
  import jinja2
  import json
  import os
  from datetime import date, datetime
  from functools import partial
  import numpy
  import pandas
  from ipywidgets import DOMWidget
  from traitlets import Unicode, observe
  from ..core._version import __version__
  from ..core.data import deconstruct_pandas
  from ..core.exception import PerspectiveError
  from ..libpsp import is_libpsp
  from ..viewer import PerspectiveViewer
label_desc: Use image node_id 6 for calling the PerspectiveWidget obj's underlying member method code with example usage: obj.delete(delete_table) without return types