interact Module#
interact
Module#
Interact with functions using widgets.
The interact Pane implemented in this module mirrors ipywidgets.interact in its API and implementation. Large parts of the code were copied directly from ipywidgets:
Copyright (c) Jupyter Development Team and PyViz Development Team. Distributed under the terms of the Modified BSD License.
- class panel.interact.interactive(object, params={}, **kwargs)[source]#
Bases:
Pane
Parameters inherited from:
panel.viewable.Layoutable
: align, aspect_ratio, css_classes, design, height, min_width, min_height, max_width, max_height, styles, stylesheets, tags, width, width_policy, height_policy, sizing_mode, visiblepanel.viewable.Viewable
: loadingpanel.pane.base.PaneBase
: margin, objectdefault_layout
= param.ClassSelector(allow_refs=False, class_=<class āpanel.layout.base.Panelā>, default=<class āpanel.layout.base.Columnā>, label=āDefault layoutā, nested_refs=False, rx=<param.reactive.reactive_ops object at 0x130e3f150>)Defines the layout the model(s) returned by the pane will be placed in.
manual_update
= param.Boolean(allow_refs=False, default=False, label=āManual updateā, nested_refs=False, rx=<param.reactive.reactive_ops object at 0x130a44190>)Whether to update manually by clicking on button.
manual_name
= param.String(allow_refs=False, default=āRun Interactā, label=āManual nameā, nested_refs=False, rx=<param.reactive.reactive_ops object at 0x1311c3110>)_pane
= param.ClassSelector(allow_None=True, allow_refs=False, class_=<class āpanel.viewable.Viewableā>, label=ā paneā, nested_refs=False, rx=<param.reactive.reactive_ops object at 0x13072a910>)- classmethod applies(object)[source]#
Returns boolean or float indicating whether the Pane can render the object.
If the priority of the pane is set to None, this method may also be used to define a float priority depending on the object being rendered.
- clone(object: Any | None = None, **params) T [source]#
Makes a copy of the Pane sharing the same parameters.
Arguments#
object: Optional new object to render params: Keyword arguments override the parameters on the clone.
Returns#
Cloned Pane object
- controls(parameters: list[str] = [], jslink: bool = True, **kwargs) BasePanel [source]#
Creates a set of widgets which allow manipulating the parameters on this instance. By default all parameters which support linking are exposed, but an explicit list of parameters can be provided.
Arguments#
- parameters: list(str)
An explicit list of parameters to return controls for.
- jslink: bool
Whether to use jslinks instead of Python based links. This does not allow using all types of parameters.
- kwargs: dict
Additional kwargs to pass to the Param pane(s) used to generate the controls widgets.
Returns#
A layout of the controls
- embed(max_states: int = 1000, max_opts: int = 3, json: bool = False, json_prefix: str = '', save_path: str = './', load_path: str | None = None, progress: bool = False, states={}) None [source]#
Renders a static version of a panel in a notebook by evaluating the set of states defined by the widgets in the model. Note this will only work well for simple apps with a relatively small state space.
Arguments#
- max_states: int
The maximum number of states to embed
- max_opts: int
The maximum number of states for a single widget
- json: boolean (default=True)
Whether to export the data to json files
- json_prefix: str (default=āā)
Prefix for JSON filename
- save_path: str (default=ā./ā)
The path to save json files to
- load_path: str (default=None)
The path or URL the json files will be loaded from.
- progress: boolean (default=False)
Whether to report progress
- states: dict (default={})
A dictionary specifying the widget values to embed for each widget
- find_abbreviations(kwargs)[source]#
Find the abbreviations for the given function and kwargs. Return (name, abbrev, default) tuples.
- classmethod get_pane_type(obj: Any, **kwargs) type[PaneBase] [source]#
Returns the applicable Pane type given an object by resolving the precedence of all types whose applies method declares that the object is supported.
Arguments#
obj (object): The object type to return a Pane type for
Returns#
The applicable Pane type with the highest precedence.
- get_root(doc: Document | None = None, comm: Comm | None = None, preprocess: bool = True) Model [source]#
Returns the root model and applies pre-processing hooks
Arguments#
- doc: bokeh.document.Document
Optional Bokeh document the bokeh model will be attached to.
- comm: pyviz_comms.Comm
Optional pyviz_comms when working in notebook
- preprocess: bool (default=True)
Whether to run preprocessing hooks
Returns#
Returns the bokeh model corresponding to this panel object
- jscallback(args: dict[str, Any] = {}, **callbacks: str) Callback [source]#
Allows defining a JS callback to be triggered when a property changes on the source object. The keyword arguments define the properties that trigger a callback and the JS code that gets executed.
Arguments#
- args: dict
A mapping of objects to make available to the JS callback
- callbacks: dict
A mapping between properties on the source model and the code to execute when that property changes
Returns#
- callback: Callback
The Callback which can be used to disable the callback.
- jslink(target: JSLinkTarget, code: dict[str, str] = None, args: dict | None = None, bidirectional: bool = False, **links: str) Link [source]#
Links properties on the this Reactive object to those on the target Reactive object in JS code.
Supports two modes, either specify a mapping between the source and target model properties as keywords or provide a dictionary of JS code snippets which maps from the source parameter to a JS code snippet which is executed when the property changes.
Arguments#
- target: panel.viewable.Viewable | bokeh.model.Model | holoviews.core.dimension.Dimensioned
The target to link the value to.
- code: dict
Custom code which will be executed when the widget value changes.
- args: dict
A mapping of objects to make available to the JS callback
- bidirectional: boolean
Whether to link source and target bi-directionally
- links: dict
A mapping between properties on the source model and the target model property to link it to.
Returns#
- link: GenericLink
The GenericLink which can be used unlink the widget and the target model.
- link(target: Parameterized, callbacks: dict[str, str | Callable] | None = None, bidirectional: bool = False, **links: str) Watcher [source]#
Links the parameters on this Reactive object to attributes on the target Parameterized object.
Supports two modes, either specify a mapping between the source and target object parameters as keywords or provide a dictionary of callbacks which maps from the source parameter to a callback which is triggered when the parameter changes.
Arguments#
- target: param.Parameterized
The target object of the link.
- callbacks: dict | None
Maps from a parameter in the source object to a callback.
- bidirectional: bool
Whether to link source and target bi-directionally
- links: dict
Maps between parameters on this object to the parameters on the supplied object.
- save(filename: str | PathLike | IO, title: str | None = None, resources: Resources | None = None, template: str | Template | None = None, template_variables: dict[str, Any] = {}, embed: bool = False, max_states: int = 1000, max_opts: int = 3, embed_json: bool = False, json_prefix: str = '', save_path: str = './', load_path: str | None = None, progress: bool = True, embed_states: dict[Any, Any] = {}, as_png: bool | None = None, **kwargs) None [source]#
Saves Panel objects to file.
Arguments#
- filename: str or file-like object
Filename to save the plot to
- title: string
Optional title for the plot
- resources: bokeh resources
One of the valid bokeh.resources (e.g. CDN or INLINE)
- template:
passed to underlying io.save
- template_variables:
passed to underlying io.save
- embed: bool
Whether the state space should be embedded in the saved file.
- max_states: int
The maximum number of states to embed
- max_opts: int
The maximum number of states for a single widget
- embed_json: boolean (default=True)
Whether to export the data to json files
- json_prefix: str (default=āā)
Prefix for the auto-generated json directory
- save_path: str (default=ā./ā)
The path to save json files to
- load_path: str (default=None)
The path or URL the json files will be loaded from.
- progress: boolean (default=True)
Whether to report progress
- embed_states: dict (default={})
A dictionary specifying the widget values to embed for each widget
- as_png: boolean (default=None)
To save as a .png. If None save_png will be true if filename is string and ends with png.
- select(selector: type | Callable[[Viewable], bool] | None = None) list[Viewable] [source]#
Iterates over the Viewable and any potential children in the applying the Selector.
Arguments#
- selector: type or callable or None
The selector allows selecting a subset of Viewables by declaring a type or callable function to filter by.
Returns#
viewables: list(Viewable)
- servable(title: str | None = None, location: bool | 'Location' = True, area: str = 'main', target: str | None = None) ServableMixin [source]#
Serves the object or adds it to the configured pn.state.template if in a panel serve context, writes to the DOM if in a pyodide context and returns the Panel object to allow it to display itself in a notebook context.
Arguments#
- titlestr
A string title to give the Document (if served as an app)
- locationboolean or panel.io.location.Location
Whether to create a Location component to observe and set the URL location.
- area: str (deprecated)
The area of a template to add the component too. Only has an effect if pn.config.template has been set.
- target: str
Target area to write to. If a template has been configured on pn.config.template this refers to the target area in the template while in pyodide this refers to the ID of the DOM node to write to.
Returns#
The Panel object itself
- server_doc(doc: Document | None = None, title: str | None = None, location: bool | 'Location' = True) Document [source]#
Returns a serveable bokeh Document with the panel attached
Arguments#
- docbokeh.Document (optional)
The bokeh Document to attach the panel to as a root, defaults to bokeh.io.curdoc()
- titlestr
A string title to give the Document
- locationboolean or panel.io.location.Location
Whether to create a Location component to observe and set the URL location.
Returns#
- docbokeh.Document
The bokeh document the panel was attached to
- show(title: str | None = None, port: int = 0, address: str | None = None, websocket_origin: str | None = None, threaded: bool = False, verbose: bool = True, open: bool = True, location: bool | 'Location' = True, **kwargs) StoppableThread' | 'Server [source]#
Starts a Bokeh server and displays the Viewable in a new tab.
Arguments#
- titlestr | None
A string title to give the Document (if served as an app)
- port: int (optional, default=0)
Allows specifying a specific port
- addressstr
The address the server should listen on for HTTP requests.
- websocket_origin: str or list(str) (optional)
A list of hosts that can connect to the websocket. This is typically required when embedding a server app in an external web site. If None, ālocalhostā is used.
- threaded: boolean (optional, default=False)
Whether to launch the Server on a separate thread, allowing interactive use.
- verbose: boolean (optional, default=True)
Whether to print the address and port
- openboolean (optional, default=True)
Whether to open the server in a new browser tab
- locationboolean or panel.io.location.Location
Whether to create a Location component to observe and set the URL location.
Returns#
- server: bokeh.server.Server or panel.io.server.StoppableThread
Returns the Bokeh server instance or the thread the server was launched on (if threaded=True)