class_docstr: A :class:`~perspective.View` object represents a specific transform
  (pivot, filter, sort, etc) configuration on an underlying
  :class:`~perspective.Table`.  :class:`~perspective.View` objects
  cannot be directly instantiated - they must be derived from an existing
  :class:`~perspective.Table` via the :func:`~perspective.Table.view()`
  method.
  
  :class:`~perspective.View` instances receive all updates from the
  :class:`~perspective.Table` from which they are derived, and can be
  serialized (via ``to_*`` methods) or trigger a callback when it is updated.
  :class:`~perspective.View` objects will remain in memory and actively
  process updates until :obj:`~perspective.View.delete()` method is called.
class_docstr_tok: ["A",":","class",":","`","~perspective.View","`","object","represents","a","specific","transform","(","pivot",",","filter",",","sort",",","etc",")","configuration","on","an","underlying",":","class",":","`","~perspective.Table","`",".",":","class",":","`","~perspective.View","`","objects","can","not","be","directly","instantiated","-","they","must","be","derived","from","an","existing",":","class",":","`","~perspective.Table","`","via","the",":","func",":","`","~perspective.Table.view","(",")","`","method",".",":","class",":","`","~perspective.View","`","instances","receive","all","updates","from","the",":","class",":","`","~perspective.Table","`","from","which","they","are","derived",",","and","can","be","serialized","(","via","``","to_","*","``","methods",")","or","trigger","a","callback","when","it","is","updated",".",":","class",":","`","~perspective.View","`","objects","will","remain","in","memory","and","actively","process","updates","until",":","obj",":","`","~perspective.View.delete","(",")","`","method","is","called","."]
docstr: Set a callback to be run when the :func:`perspective.View.delete()`
  method is called on this :class:`~perspective.View`.
  
  Args:
      callback (:obj:`callable`): A callback to run after
          :func:`perspective.View.delete()` method has been called.
  
  Examples:
      >>> def deleter():
      >>>     print("Delete called!")
      >>> view.on_delete(deleter)
      >>> view.delete()
      >>> Delete called!
docstr_tok: ["Set","a","callback","to","be","run","when","the",":","func",":","`","perspective.View.delete","(",")","`","method","is","called","on","this",":","class",":","`","~perspective.View","`",".","Args",":","callback","(",":","obj",":","`","callable","`",")",":","A","callback","to","run","after",":","func",":","`","perspective.View.delete","(",")","`","method","has","been","called",".","Examples",":",">",">",">","def","deleter","(",")",":",">",">",">","print","(","``","Delete","called","!","''",")",">",">",">","view.on_delete","(","deleter",")",">",">",">","view.delete","(",")",">",">",">","Delete","called","!"]
code: def on_delete(self, callback):
      """Set a callback to be run when the :func:`perspective.View.delete()`
      method is called on this :class:`~perspective.View`.
  
      Args:
          callback (:obj:`callable`): A callback to run after
              :func:`perspective.View.delete()` method has been called.
  
      Examples:
          >>> def deleter():
          >>>     print("Delete called!")
          >>> view.on_delete(deleter)
          >>> view.delete()
          >>> Delete called!
      """
      if not callable(callback):
          return ValueError(
              "on_delete callback must be a callable function!"
          )
      self._delete_callbacks.add_callback(callback)
  
imports: import pandas
  import json
  import datetime
  from functools import partial, wraps
  from random import random
  from .view_config import ViewConfig
  from ._data_formatter import to_format, _parse_format_options
  from ._constants import COLUMN_SEPARATOR_STRING
  from ._utils import _str_to_pythontype
  from ._callback_cache import _PerspectiveCallBackCache
  from ._date_validator import _PerspectiveDateValidator
  from .libpsppy import make_view_unit, make_view_zero, make_view_one, make_view_two, to_arrow_unit, to_arrow_zero, to_arrow_one, to_arrow_two, to_csv_unit, to_csv_zero, to_csv_one, to_csv_two, get_row_delta_unit, get_row_delta_zero, get_row_delta_one, get_row_delta_two, scalar_to_py
label_desc: Use image node_id 17 for calling the View obj's underlying member method code with example usage: obj.on_delete(callback) and returns: ValueError