# `PerspectiveWidget` for JupyterLab Building on top of the API provided by `perspective.Table`, the `PerspectiveWidget` is a JupyterLab plugin that offers the entire functionality of Perspective within the Jupyter environment. It supports the same API semantics of ``, along with the additional data types supported by `perspective.Table`. `PerspectiveWidget` takes keyword arguments for the managed `View`: ```python from perspective.widget import PerspectiveWidget w = perspective.PerspectiveWidget( data, plugin="X Bar", aggregates={"datetime": "any"}, sort=[["date", "desc"]] ) ``` ## Creating a widget A widget is created through the `PerspectiveWidget` constructor, which takes as its first, required parameter a `perspective.Table`, a dataset, a schema, or `None`, which serves as a special value that tells the Widget to defer loading any data until later. In maintaining consistency with the Javascript API, Widgets cannot be created with empty dictionaries or lists — `None` should be used if the intention is to await data for loading later on. A widget can be constructed from a dataset: ```python from perspective.widget import PerspectiveWidget PerspectiveWidget(data, group_by=["date"]) ``` .. or a schema: ```python PerspectiveWidget({"a": int, "b": str}) ``` .. or an instance of a `perspective.Table`: ```python table = perspective.table(data) PerspectiveWidget(table) ``` ## Updating a widget `PerspectiveWidget` shares a similar API to the `` Custom Element, and has similar `save()` and `restore()` methods that serialize/deserialize UI state for the widget.