Releases: plotly/dash
Releases · plotly/dash
Dash v1.16.1
Dash and Dash-Renderer
Changed
- #1376 Extends the
getTransform
logic in the renderer to handlepersistenceTransforms
for both nested and non-nested persisted props. This was used to to fix dcc#700 in conjunction with dcc#854 by using persistenceTransforms to strip the time part of the datetime so that datepickers can persist when defined in callbacks.
Fixed
- #1408 Fixes a bug where the callback graph layout would reset whenever a callback fired, losing user-initiated layout changes (#1402) or creating a new force layout (#1401)
Dash-Core-Components
Fixed
- #854 Used
persistenceTransforms
to strip the time part of the datetime in the persited props of DatePickerSingle (date) and DatePickerRange (end_date, start_date), fixing dcc#700.
Added
- #850 Add property
prependData
toGraph
to supportPlotly.prependTraces
- refactored the existing
extendTraces
API to be a singlemergeTraces
API that can handle bothprepend
as well asextend
.
- refactored the existing
Updated
Dash v1.16.0
Dash and Dash-Renderer
Added
- #1371 You can now get CSP
script-src
hashes of all added inline scripts by callingapp.csp_hashes()
(both Dash internal inline scripts, and those added withapp.clientside_callback
) .
Changed
- #1385 Closes #1350 and fixes a previously undefined callback behavior when multiple elements are stacked on top of one another and their
n_clicks
props are used as inputs of the same callback. The callback will now trigger once with all the triggeredn_clicks
props changes. - #1179 New and improved callback graph in the debug menu. Now based on Cytoscape for much more interactivity, plus callback profiling including number of calls, fine-grained time information, bytes sent and received, and more. You can even add custom timing information on the server with
callback_context.record_timing(name, seconds)
Fixed
- #1384 Fixed a bug introduced by #1180 breaking use of
prevent_initial_call
as a positional arg in callback definitions
Dash-Core-Components
Updated
- #858
- Upgraded Plotly.js to 1.55.1
- Patch release 1.55.1
- Feature release of Plotly.js 1.55.0 which:
- Introduce "period"
ticklabelmode
on cartesian date axes #4993, #5055, #5060, #5065, #5088, #5089 - Add new formatting options for weeks and quarters #5026
- Add
source
attribute toimage
traces for fast rendering #5075 - Add
zsmooth
attribute for discreteheatmapgl
traces #4953 - Add horizontal and vertical markers for arrow charts #5010
- Add touch support to
rangeslider
#5025
- Introduce "period"
Dash v1.15.0
Dash and Dash Renderer
Added
- #1355 Removed redundant log message and consolidated logger initialization. You can now control the log level - for example suppress informational messages from Dash with
app.logger.setLevel(logging.WARNING)
. - #1253, #1377 Added experimental
--jl-prefix
option todash-generate-components
, optionally generates Julia version of components and corresponding Julia package
Changed
- #1180 and #1375
Input
,Output
, andState
in callback definitions don't need to be in lists. You still need to provideOutput
items first, thenInput
items, thenState
, and the list form is still supported. In particular, if you want to return a single output item wrapped in a length-1 list, you should still wrap theOutput
in a list. This can be useful for procedurally-generated callbacks. - #1368 Updated pytest to v6.0.1. To avoid deprecation warnings, this also updated pytest-sugar to 0.9.4 and pytest-mock to 3.2.0. The pytest-mock update only effects python >= 3.0. Pytest-mock remains pinned at 2.0.0 for python == 2.7.
Dash Core Components
Added
- #851 Add support for Dash.jl Julia built components
- #840 Add styling properties to
dcc.Loading
componentparent_className
: Add CSS class for the outermostdcc.Loading
parent div DOM nodeparent_style
: Add CSS style property for the outermostdcc.Loading
parent div DOM node- provides a workaround for the previous behaviour the of
className
property, which changed in #740.parent_className
(or inline styles inparent_style
) now allow CSS rules to be applied to the outermostdcc.Loading
div, which is no longer covered byclassName
on loading completion as of Dash Core Components>= 1.9.1
(Dash>= 1.11.0
).
Dash HTML Components
Added
- #165 Add support for Dash.jl Julia component generation.
Dash Table
Added
- #820 Add support for Dash.jl Julia built components
Fixed
- #817 Fix a regression introduced with #722 causing the tooltips to be misaligned with respect to their parent cell
- #818 Fix a regression causing copy/paste not to work when selecting a range of cells with Shift + mouse click
- #819 Fix pagination
page_current
andpage_count
fields to accommodate larger numbers
Dash v1.14.0
Dash and Dash-Renderer
Added
- #1343 Add
title
parameter to set the
document title. This is the recommended alternative to setting app.title or overriding
the index HTML. - #1315 Add
update_title
parameter to set or disable the "Updating...." document title during updates. Closes #856 and #732
Dash-Core-Components
Dash-Table
Added
Dash v1.13.4
Fixed
- #1310 Fix a regression since 1.13.0 preventing more than one loading state from being shown at a time.
Dash v1.13.3
Dash v1.13.2
Dash and Dash-Renderer
Fixed
- #1305
- Fix regression that causes crash when
FLASK_ENV
is modified during app execution - Fix regression that caused tests using
_wait_for_callbacks
to fail
- Fix regression that causes crash when
Dash v1.13.1
Dash v1.13.0
Dash and Dash-Renderer
Added
- #1289 Supports
DASH_PROXY
env var to tellapp.run_server
to report the correct URL to view your app, when it's being proxied. Throws an error if the proxy is incompatible with the host and port you've given the server. - #1240 Adds
callback_context
to clientside callbacks (e.g.dash_clientside.callback_context.triggered
). Supportstriggered
,inputs
,inputs_list
,states
, andstates_list
, all of which closely resemble their serverside cousins.
Changed
- #1237 Closes #920: Converts hot reload fetch failures into a server status indicator showing whether the latest fetch succeeded or failed. Callback fetch failures still appear as errors but have a clearer message.
- #1254 Modifies the callback chain implementation and improves performance for apps with a lot of components
Fixed
- #1255 Hard hot reload targets only the current window, not the top - so if your app is in an iframe you will only reload the app
- #1249 Fixes #919 so
dash.testing
is compatible with morepytest
plugins, particularlypytest-flake8
andpytest-black
. - #1248 Fixes #1245, so you can use prop persistence with components that have dict IDs, ie for pattern-matching callbacks.
- #1185 Sort asset directories, same as we sort files inside those directories. This way if you need your assets loaded in a certain order, you can add prefixes to subdirectory names and enforce that order.
- #1288 Closes #1285: Debug=True should work in the main module.
Dash-Table
Added
- #787 Add
cell_selectable
property to allow/disallow cell selection
Changed
- #787
- Clicking on a link in a Markdown cell now requires a single click instead of two
- Links in Markdown cells now open a new tab (target="_blank")
Fixed
Dash v1.12.0
Dash and Dash-Renderer
Added
- #1228 Adds control over firing callbacks on page (or layout chunk) load. Individual callbacks can have their initial calls disabled in their definition
@app.callback(..., prevent_initial_call=True)
and similar forapp.clientside_callback
. The app-wide default can also be changed withapp=Dash(prevent_initial_callbacks=True)
, then individual callbacks may disable this behavior. - #1201 New attribute
app.validation_layout
allows you to create a multi-page app withoutsuppress_callback_exceptions=True
or layout function tricks. Set this to a component layout containing the superset of all IDs on all pages in your app. - #1078 Permit usage of arbitrary file extensions for assets within component libraries
Fixed
- #1224 Fixes #1223, a very specific situation in which initial callbacks will not fire.
- #1220 Fixes #1216, a set of related issues about pattern-matching callbacks with
ALL
wildcards in theirOutput
which would fail if no components matched the pattern. - #1212 Fixes #1200 - prior to Dash 1.11, if none of the inputs to a callback were on the page, it was not an error. This was, and is now again, treated as though the callback raised PreventUpdate. The one exception to this is with pattern-matching callbacks, when every Input uses a multi-value wildcard (ALL or ALLSMALLER), and every Output is on the page. In that case the callback fires as usual.
- #1201 Fixes #1193 - prior to Dash 1.11, you could use
flask.has_request_context() == False
inside anapp.layout
function to provide a special layout containing all IDs for validation purposes in a multi-page app. Dash 1.11 broke this when we moved most of this validation into the renderer. This change makes it work again.
Dash-Core-Components
Changed
- #793 Added title key (i.e. HTML
title
attribute) to option dicts indcc.Dropdown
options[]
list property.
Fixed
- #792 Improved the robustness of
dcc.Store
components, fixing #456 whereby persistent storage could become corrupted, and fixing lifecycle issues that prevented addingStore
components to the page after initial loading. - #790 Fixed bug where the dcc.Dropdown dropdown was hidden by the dash_table.DataTable fixed rows and columns.
Updated
- #800
- Upgraded plotly.js to 1.54.1
- Feature release of Plotly.js 1.54.0 which:
- Introduces new drag modes "drawline", "drawrect", "drawcircle", "drawopenpath", "drawclosedpath", adds optional modebar buttons for drawing & removing new shapes inside cartesian subplots, adds newshape and activeshape attributes to layout, and adds editable and fillrule attributes to layout.shapes#4775
- Add angle and allowoverlap attributes to marker of scattermapbox traces#4575, #4794
- Also contains various other fixes
Dash-Table
Added
- #729 Improve conditional styling
style_data_conditional
: Add support forrow_index
andcolumn_id
array of valuesstyle_header_conditional
: Add support forheader_index
andcolumn_id
array of valuesstyle_filter_conditional
: Add support forcolumn_id
array of valuesstyle_cell_conditional
: Add support forcolumn_id
array of valuesstyle_data_conditional
: Add new conditionsstate: 'active'|'selected'
to customize selected and active cell styles
Fixed
- #722 Fix a bug where row height is misaligned when using fixed_columns and/or fixed_rows
- #728 Fix copy/paste on readonly cells
- #724 Fix
active_cell
docstring: clarify optional nature of therow_id
nested prop - #732 Fix a bug where opening a dropdown scrolled the table down its last row
- #731 Fix a bug where
data=None
andcolumns=None
caused the table to throw an error - #766 Sanitize table
id
for stylesheet injection (fixes usage with Pattern-Matching callbacks)
Changed
- #758 Improve error message for invalid filter queries