Quickboard

Latest version: v0.4.0

Safety actively analyzes 681812 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 2

0.4.0

This release includes a major refactor of the codebase, bug fixes, new features, and higher dependency versions which come with their own bug fixes. The key highlights are provided below.

Major Changes
- Bumped `dash` dependency to 2.16.1 along with some other packages, which include various bug fixes, etc. In particular, we no longer depend on `jupyter_dash`, since that has been merged into the main `dash` package. The `mode` is now set in `start_app` using `jupyter_mode` and works uniformly across Jupyter or from the command line.
- Code has been significantly refactored to turn every visible Quickboard object into a `dash.html` object instance. This means developers can now extend generated dashboard functionality to the full extent that `dash` allows (e.g. edit `style` fields, etc. directly).
- Some tests have been added to check for bugs before releases.
- Documentation updates across all classes, as well as the tutorial and main README.
- The `dash.callback` mechanism is used in favor of `app.callback` to allow for more flexible `app` creation parameters, like setting the theme of the app from the `start_app` method.

New Features
- Checklist plugins now (by default) add All/None toggle buttons, which can select/deselect all items in list.
- The `body` fields in `PlotPanel`s and `DataPanel`s will now render markdown from strings provided for more customizable description/documentation of the data in panels.
- Each tab can now customize the width of the sidebar using the `sidebar_width` variable. (E.g. `sidebar_width="300px"`).
- `Panel` objects (template for all visible objects other than plugins) now have `update_border_size` methods to toggle the border size (or set to 0 for no border). Most objects now default to no border, but can be added back using this method on the object or subobjects.
- The `deploy_app` method has been replaced with `get_app_server` which takes a quickboard object and returns a WSGI server object associated with your app that can be used for deployment e.g. with `gunicorn`.
- Dropdown menu plugins have been added that work the same as the radio button plugins.

Bug Fixes
- Having no tabs with sidebar wouldn't properly render previously, and should now be fixed.
- Fix header field in `dbc.Toast` used for plugin rendering.
- A bug involving no tabs wouldn't render properly and is now fixed.
- Fix bug where no `sidebar_plugins` provided for first tab wouldn't render.

0.3.3

Some changes include:

- Added `PlotInputSlider` and `PlotInputRangeSlider` plugins which allow you to update plots based on value(s) on a sliding scale. More formal documentation coming in the future.
- Bumped up dependencies to avoid a bug in an older version of Dash/JupyterDash.

0.3.2

A few minor changes were made, including:
* `header` is an optional input in objects where this was previously required. The default is the empty string (no header).
* `ContentGrid`s previously used `entities` to describe the list of main content they hold. This has been renamed to `content_list` to match the convention for `Quickboard` and `BaseTab` objects.
* The `start_app` function now accepts an `app_title` input to allow for custom tab names when running your app.
* The documentation has been updated to reflect these changes.

0.3.1

This release includes a refactor of how `ControlPlugin`s are handled behind the scenes to be compatible with a stateless deployment. In particular:

* Apps can now be run in a production environment with multiple instances. Previously, callbacks were handled by modifying objects in place, causing inconsistent behavior when multiple instances existed on the same server. Now stateful information is stored properly on a per-instance basis.
* A `deploy_app` method was added to make it easier to deploy apps in production. When run, the global variable server is declared, which can be referenced by e.g. `gunicorn` in deployment. There is also better access at other inputs for Dash's server starting method.

0.3.0

This release features a few bigger changes to usage, including

* `DataManager` class added to better handle how data is loaded and used in individual components. It is now recommended to use DataFrames loaded in memory directly as `data_source`s for `DynamicPanel` objects like `PlotPanel`s. This adds a lot of flexibility in using different subsets of a single DataFrame as data sources for multiple objects, as well as minimizing reads from disk.
* `DataManager`s allow the user of scatter plots inside a `PlotPanel` as a valid data source, taking advantage of Dash's interactive plotting functionality. See the documentation for details on usage.
* Smaller components can now be used in the `start_app` command to preview small prototypes of single tabs or single `DynamicPanel`s. This greatly extends the functionality of Quickboard to include one-off data investigations.
* The [Component Gallery](https://github.com/broadinstitute/quickboard/blob/main/docs/component_gallery.md) has been added which demonstrates some of these new features with one of Plotly's builtin datasets.
* `DataFilterSlider` has been split into two plugins depending on whether the user wants a Slider or a RangeSlider.

0.2.1

A few small changes to go along with the last refactor removing `html_id` inputs, including:
* Removed `control_type` input from `ControlPlugin`s since they are no longer necessary.
* Removed distinguishing header size for plot vs sidebar plugin headers.
* Updated docs to reflect these changes.

Page 1 of 2

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.