All notable changes to this project will be documented in this file.
- Set
allow_duplicate=True
for the default logging configurations for theLogTransform
, thereby fixing #280.
- Add
useCapture
property toEventListener
andKeyboard
components, thereby fixing #255.
- Update dependencies, including
Flask-caching
, thereby fixing #296.
- Fixed bug in
Keyboard
component where the keydown event would fire twice.
- Fixed bug in
BlockingCallbackTransform
component where the callback would never get invoked again, if an (uncaught) exception was raised during execution. Contributed by lcornelatti.
- Re-introduce
Keyboard
component (due to many user requests)
- Publishing to npm added to CICD pipeline. Fixes #284
- Dependencies updated
- Dynamic prefixing is now applied recursively
- Inline JS functions created using
assign
are now re-used if the code is identical
- Relax
more-itertools
constraint down to>=8.0.0
- Relax other package constraints
- Upgrade
dev
dependencies (js
&py
) - Upgrade
dash-extensions
dependencies
- Added
SerializationTransform
andDataclassTransform
- Dependencies updated
- The
Ticker
component has been removed. With the underlying component no longer being maintained, its dependency version requirement had fallen behind
- Fix of bug that caused
ServersideOutputTransform
not to be applied when return type wastuple
- The
OperatorTransform
has been removed, as similar functionality has been implemented in the core Dash library as part of the Dash 2.9 release
- The syntax of the
ServersideOutputTransform
has been changed. Instead of usingServersideOutput
in place of theOutput
, one must now wrap return values inServerside
objects - The
MultiplexerTransform
has been changed to simply set a flag to enable multiplexing, which has been included as part of the Dash 2.9 release (with the default being disabled) - Add support for embedding of blueprints in function layouts
- Add
DashBlueprint
support for args/kwargs. Fixes #250 - Remove
WebSocket
event handlers prior to close. Fixes #160
- Add support for embedding of blueprints in function layouts
- Mitigation of #241 attempted. Race condition hard to reproduce, validity of fix is uncertain
- Addressed bugs #245 + #242
- Fixed bug #243
- Bump dependencies
- Fixed bug in html table generator
- Performance improvement of
BlockingCallbackTransform
- Bump a number of npm packages to address security issues
- Bump
dash-mantine-components
to 0.11.0, and update code accordingly (to mitigate introduced breaking changes)
- Bump a number of npm packages to address security issues
- Change callback context of
BlockingCallbackTransform
callbacks to reflect the original trigger - Add
priority
keyword argument for callbacks that makes it possible to select which callbacks take precedence, when multiple callbacks target the same output simultaneously using theMultiplexerTransform
- Add support for the unittest syntax introduced with Dash 2.6
- Bump dependencies to
dash>=2.7.0
(including a compatibility fix) andFlask-Caching==2.0.1
- Reimplementation of the
BeforeAfter
component by @AnnMarieW adding new features and improved mobile compatibility. NB: This is a breaking change, please consult the docs for an example using the new syntax - Improved support for the new
callback(background=True, ...)
syntax adding support for theset_progress
keyword - Added syntax sugar for Celery task registration for use with the
CeleryManager
object - Added explicit raise of
NotImplementedError
for the (deprecated)long_callback
syntax
- Added
OperatorTransform
and the associatedOperator
class
- Fixed bug in
MultiPlexerTransform
occurring when used together withPrefixIdTransform
- Fixed bug #178 occurring when using
ServersideOutput
asState
- Bump
Dash
to version >=2.5.0, and added pages import inenrich
module
- Drop spurious
Burger
references as reported in #188 - Update to
flask-caching==2.0.0
, with theFileSystemStore
code changed accordingly. Should fix #181 - Add extra attribute check to address issue in #185
- Updated various dependencies
- Added support for flexible callback signatures
- Added info on pypi (has been missing after poetry migration)
- Added
CycleBreakerInput
component, which is to be used instead of thebreak_cycle
keyword in 0.1.1 - Fixed introduced bug when mixing imports from
dash
anddash_extensions.enrich
- Added
CycleBreaker
component, strategy contributed by @TomaszRewak - Added
CycleBreakerTransform
transform
- Add location path name in
WebSocket
component default url by @0x0ACB - Improve
BlockingCallbackTransform
adding a final callback invocation blocking ends by @TomaszRewak - Bug when a single output of list type was used with
LogTransform
andBlockingCallbackTransform
fixed by @TomaszRewak - Bug where an attempt was made to write to read-only properties in
hijack
utility function fixed by @RafaelWO - Remap of callback bindings in
DashProxy
post init to enable callback registration via thebefore_first_request
hook (need for compatibility with the latestpages
implementation) - Updated various dependencies to address security vulnerabilities
- Added tests for the main parts of the code
- Added LGTM analysis for the main parts of the code
- Added a new, interactive documentation page
- Most of the
dataiku
module has been dropped. The dropped parts were only relevant for old Dataiku versions - The
enrich
module has been refactored, with theDashBluePrint
andCallbackBlueprint
being introduced as part of the refactor - Added
escape
functionality toPrefixIdTransform
, default to escape ids starting with "a-" (used for anchors) - A few changes/update to the
fix_page_load_anchor_issue
function
- The
multipage
module. Please use thepages
plugin instead (available in dash-labs) - The
websockets
module. Please refer to the new, interactive documentation for updated examples - The
examples
package. Please refer to the new, interactive documentation for updated examples - The
Burger
component. Please look atdash-mantine-components
for an alternative - The
Download
component. It was migrated todash-core-components
a some time ago, but has been kept around for backwards compatibility - The
Keyboard
component. TheEventListener
component can do the same, but is more general - The
Monitor
component. Now that Dash has introduced (limited) support for circular callbacks, it has become irrelevant - Most of the readme. Please refer to the new, interactive documentation for updated examples
- Some stability improvements of
LogTransform
.
- Added
LogTransform
, which enables the callbacklog
keyword.
- Added
BlockingCallbackTransform
, which enables the callbackblocking
keyword.
- Added
DashEventSource
component.
- Added
EventListener
component.
- Added support in the
enrich
module for Dash 2.0 style callbacks that don't use the app object.
- Changed loading of js chunks so that a chunk is only loaded when actually needed.
- Added all
dash
elements toenrich
module (e.g.html
anddcc
) to enable drop-in replacement.
- Added
jsbeautifier
package as install dependency. - Updates code and example to Dash 2.0 syntax.
- Added
Purify
component to enable rendering of (sanitized) html.
- The
Mermaid
components now supports dynamic rendering (the component was rewritten completely from scratch). - Changed
Mermaid
,Lottie
, andBurger
components to use async loading. As a result, the size of the maindash-extensions
bundle was reduced from > 1 MB to < 50 kB (!).
- Added
Mermaid
component. - Added
DeferScript
component.
- Fixed
State
missing inenrich
import.
- Added
arg_check
keyword argument toServersideOutput
andServersideOutputTransform
components. If set to false, the function arguments are not considered when updating the cache.
- Bugfix in
assign
functionality when multiple functions are assigned. - Bugfix in
NoOutputTransform
addressing an issue seen with multiple workers.
- A new
assign
function to thejavascript
module to enable writing inline JavaScript functions.
- Relaxed
WebSocket
proptype validation.
- Support for Redis in
ServersideOutputTransform
via a newRedisStore
component (experimental). - New
keyup
,n_keyups
, andkeys_pressed
props toKeyboard
component. - Support for the
ALL
wildcard inMultiplexerTransform
, and MATCH/ALLSMALLER now raises an appropriate error. - New proxy_wrapper feature (useful for e.g. the
Loading
component) inMultiplexerTransform
. - Support for client side callback transforms in
DashProxy
. - Client side callback support in
MultiplexerTransform
,PrefixIdTransform
, andNoOutputTransform
. - Automated modification of the
target
property of theTooltip
component inPrefixIdTransform
.
- Bugfix in
MultiplexerTransform
whenproxy_location='inplace'
.
- Bugfix in
ServersideOutput
when usingdash.no_update
.
- Bugfixes in
MultiplexerTransform
, both of dcc.Loading and of proxies firing unintentionally on load. - Reintroduced the
TriggerTransform
based on community feedback. - Security fixes of underlying npm packages.
- A new
MultiplexerTransform
that makes it possible to target an output multiple times. - A new
BeforeAfter
component to show before/after images.
- Updated
Burger
component; added new properties, added new example, slight changes to interface. - Updated
multipage_app.py
example; removed dependency on burger menu, removed burger helper function inmultipage.py
. - Added a
hijack
function to theDashProxy
object. It can be used to inject app state into other app objects, typically used in frameworks such as dataiku 9.0 where theDash
object is constructed outside of the user code context.
- Removed the
GroupTransform
(not really necessary with the newMultiplexerTransform
). - Removed the
TriggerTransform
.
- Added a new function in the
dataiku
module.
- Added support for dict IDs in the
Monitor
component thanks to Yook74.
- Added
dataiku
module (to ease integration of Dash apps in dataiku).
- Bugfix in
Burger
thanks to JonThom.
- Bugfix in
NoOutputTransform
.
- Renaming of
websocket.py
towebsockets.py
to address a Windows compatibility issue.
- Added
WebSocket
component andwebsocket.py
file with websocket utils. - Added
Ticker
component.
- Bug fix related to callback grouping with multiple inputs.
- Added
Burger
component andmultipage
module.
- Change name of
DashTransformer
toDashProxy
. - Added support for mixing of dash.depencency components (i.e. Input, Output, ...) and enriched components.
- Added wild card support for the
group
keyword, requested by gedemagt
- A new
javascript
module has been added. It holds helper functions/classes related to the python/javascript interface. - Added support for kwargs (output, input, state) in callbacks jfftonsic.
- Added
Monitor
component. Intended use cases include bi-directional component property synchronization.
- The speed of Lottie animations can now be adjusted dynamically.
- Memoize keyword can now be a function. If it is, the data is transformed by the function before memoization.
- The module for transpiling Python code to javascript has been moved to a separate package, dash-transcrypt.
- A new module for transpiling Python code to javascript.
- A new n_keydowns props to the Keyboard component to make it possible to capture all keyboard events.
- A few bug fixes.
- A new
enrich
module has been added. It exposes the functionality of previous callback blueprints (and more!) through a drop in replacement of (enriched) Dash components. - Added folder of example code.
- Major refactoring of callback functionality. It has now been moved to the new
enrich
module.
- Keyboard component.
- PropType validation for Download component fixed.
- CallbackCache class.