Releases: rickymagner/quickboard
v0.4.1
Update the organization owning repo for setup.cfg.
v0.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
dashdependency to 2.16.1 along with some other packages, which include various bug fixes, etc. In particular, we no longer depend onjupyter_dash, since that has been merged into the maindashpackage. Themodeis now set instart_appusingjupyter_modeand works uniformly across Jupyter or from the command line. - Code has been significantly refactored to turn every visible Quickboard object into a
dash.htmlobject instance. This means developers can now extend generated dashboard functionality to the full extent thatdashallows (e.g. editstylefields, 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.callbackmechanism is used in favor ofapp.callbackto allow for more flexibleappcreation parameters, like setting the theme of the app from thestart_appmethod.
New Features
- Checklist plugins now (by default) add All/None toggle buttons, which can select/deselect all items in list.
- The
bodyfields inPlotPanels andDataPanels 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_widthvariable. (E.g.sidebar_width="300px"). Panelobjects (template for all visible objects other than plugins) now haveupdate_border_sizemethods 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_appmethod has been replaced withget_app_serverwhich takes a quickboard object and returns a WSGI server object associated with your app that can be used for deployment e.g. withgunicorn. - 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.Toastused for plugin rendering. - A bug involving no tabs wouldn't render properly and is now fixed.
- Fix bug where no
sidebar_pluginsprovided for first tab wouldn't render.
v0.3.3
Some changes include:
- Added
PlotInputSliderandPlotInputRangeSliderplugins 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.
v0.3.2
A few minor changes were made, including:
headeris an optional input in objects where this was previously required. The default is the empty string (no header).ContentGrids previously usedentitiesto describe the list of main content they hold. This has been renamed tocontent_listto match the convention forQuickboardandBaseTabobjects.- The
start_appfunction now accepts anapp_titleinput to allow for custom tab names when running your app. - The documentation has been updated to reflect these changes.
v0.3.1
This release includes a refactor of how ControlPlugins 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_appmethod 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.gunicornin deployment. There is also better access at other inputs for Dash's server starting method.
v0.3.0
This release features a few bigger changes to usage, including
DataManagerclass added to better handle how data is loaded and used in individual components. It is now recommended to use DataFrames loaded in memory directly asdata_sources forDynamicPanelobjects likePlotPanels. 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.DataManagers allow the user of scatter plots inside aPlotPanelas 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_appcommand to preview small prototypes of single tabs or singleDynamicPanels. This greatly extends the functionality of Quickboard to include one-off data investigations. - The Component Gallery has been added which demonstrates some of these new features with one of Plotly's builtin datasets.
DataFilterSliderhas been split into two plugins depending on whether the user wants a Slider or a RangeSlider.
v0.2.1
A few small changes to go along with the last refactor removing html_id inputs, including:
- Removed
control_typeinput fromControlPlugins since they are no longer necessary. - Removed distinguishing header size for plot vs sidebar plugin headers.
- Updated docs to reflect these changes.
v0.2.0
Major changes to usage include:
- Refactored how callbacks are handled for plugins eliminating the need to input
html_id's in constructors, as well asparent_id's. These are now automatically handled by Dash. - Updated the beginner example in the docs to reflect this change.
- Removed the
fig_postprocessmethod forPlotPanel's since theplotterinput can be sufficiently customized to perform the same function
v0.1.2
Minor release relaxing the versions required to install. In particular, allows for using Python 3.7 (e.g. in Terra notebooks).
v0.1.1
Made a few small changes, including:
- Updated the README to use full links so the page still renders elsewhere, e.g. on PyPI;
- Added automation for releasing package to PyPI (and TestPyPI);
- Added
hostinput forstart_appto make more container-friendly.