- Fix missing indentation for generated metadata.json #600
- Fix missing component prop docstring error #598
- Moved
__repr__
to base component instead of being generated. #492 - Raise exception when same input & output are used in a callback #605
- Added components libraries js/css distribution to hot reload watch. #603
- Fixed collections.abc deprecation warning for python 3.8 #563
- Added core libraries as version locked dependencies #565
- Bumped dash-table version from 3.3.0 to 3.4.0
- Bumped dash-renderer version from 0.17.0 to 0.18.0
- Bumped dash-core-components version from 0.43.0 to 0.43.1
- Removed support for
Event
system. Use event properties instead, for example then_clicks
property instead of theclick
event, see #531 for details.dash_renderer
MUST be upgraded to >=0.17.0 together with this, and it is recommended to updatedash_core_components
to >=0.43.0 anddash_html_components
to >=0.14.0. #550
- Asset blueprint takes routes prefix into it's static path. #547
- Asset url path no longer strip routes from requests. #547
- Remove print statement from PreventUpdate error handler. #548
- Removed ComponentRegistry dist cache #524
assets_folder
argument now default to 'assets' #547- The assets folder is now always relative to the given root path of
name
argument, the default of__main__
will get thecwd
. #547 - No longer coerce the name argument from the server if the server argument is provided. #547
- Fix typo in some exception names #522
- Always skip
dynamic
resources from index resources collection. #518
- Experimental
--r-prefix
option todash-generate-components
, optionally generates R version of components and corresponding R package. #483
--ignore
option todash-generate-components
, default to^_
. #490
- Added specific Dash exception types to replace generic exceptions (InvalidIndexException, DependencyException, ResourceException) #487
- Fix typo in missing events/inputs error message #485
- Muted dash related missing props docstring from extract-meta warnings #484
- Support for .map file extension and dynamic (on demand) loading #478
- Fix
_imports_.py
indentation generation. #473
- Combined
extract-meta
and python component files generation in a cli #451
- Hot reload from the browser #362
- Silence routes logging with
dev_tools_silence_routes_logging
.
- Added component namespaces registry, collect the resources needed by component library when they are imported instead of crawling the layout. #444
- Component generation now uses the same prop name black list in all supported Python versions. Closes #361. #450
Dash.registered_paths
changed to acollections.defaultdict(set)
, was appending the same package paths on every index. #443
- Replace windows endline when generating the components classes docstring #431
- The
Component.traverse()
andComponent.traverse_with_paths()
methods now work correctly for components withchildren
of typetuple
(before, this only worked forlist
s). #430
- Fix http-equiv typo #418
- Moved
add_url
function definition out ofDash.__init__
#377
- Missing favicon package_data from setup.py #407
- Default favicon for dash apps. #406
- Bust the cache of the assets favicon.
- Remove the first and last blank lines from the HTML index string. #403
- Added support for serving dev bundles from the components suite, enable with
app.run_server(dev_tools_serve_dev_bundles=True)
#369
- Use HTML5 syntax for the meta tag #350
- Added
Cache-Control
headers to files served byDash.serve_component_suites
. #387 - Added time modified query string to collected components suites resources.
- Added
InvalidResourceError
. #393 - Added a flask errorhandler to catch
InvalidResourceError
fromserve_component_suites
and return a 404.
- Fix
get_asset_url
with a differentassets_url_path
. #374
- Set
url_base_pathname
toNone
inDash.__init__
. Fix #364
- Prefix assets files with
requests_pathname_prefix
. #351
Dash.get_asset_url
will give the prefixed url for the asset file.
- Only create the assets blueprint once for app that provide the same flask instance to multiple dash instance. #343
- Fix bug in
_validate_layout
which would not let a user setapp.layout
to be a function that returns a layout (fixes #334). #336
- Added
assets_ignore
init keyword, regex filter for the assets files. #318
- Ensure CSS/JS external resources are loaded before the assets. #335
- Take configs values from init or environ variables (Prefixed with
DASH_
). #322
- Take
requests_pathname_prefix
config when creating scripts tags. requests/routes_pathname_prefix
must starts and end with/
.requests_pathname_prefix
must ends withroutes_pathname_prefix
. If you supplied bothrequests
androutes
pathname before this update, make surerequests_pathname_prefix
ends with the same value asroutes_pathname_prefix
.url_base_pathname
set bothrequests/routes
pathname, cannot supply it with eitherrequests
orroutes
pathname prefixes.
- Disallow duplicate component ids in the initial layout. #320
- Fixed bug in 0.23.1 where importing Dash components with no props would result in an error. (Fixes #321).
- Fixed bug in 0.23.1 where importing components with arguments that are python keywords could cause an error. In particular, this fixes
dash-html-components
while using Python 3.7.
- Add a modified time query string to the assets included in the index in order to bust the cache. #319
- Add ie-compat meta tag to the index by default. #316
- Add
external_script
andexternal_css
keywords to dash__init__
. #305 - Dash components are now generated at build-time and then imported rather than generated when a module is imported. This should reduce the time it takes to import Dash component libraries, and makes Dash compatible with IDEs.
- Raise a more informative error if a non JSON serializable value is returned from a callback #273
- Assets files & index customization #286
- Raise an error if there is no layout present when the server is running #294
aria-*
anddata-*
attributes are now supported in all dash html components. (#40)- These new keywords can be added using a dictionary expansion, e.g.
html.Div(id="my-div", **{"data-toggle": "toggled", "aria-toggled": "true"})
- #207 Dash now supports React components that use Flow.
To support Flow,
component_loader
now has the following behavior to create docstrings as determined in discussion in #187: 1. If a Dash component hasPropTypes
-generated typing, the docstring uses thePropTypes
, regardless of whether the component also has Flow types (current behavior). 2. Otherwise if a Dash component has Flow types but notPropTypes
, the docstring now uses the objects generated byreact-docgen
from the Flow types.
exceptions.PreventUpdate
can be raised inside a callback to elegantly prevent the callback from updating the app. See https://community.plot.ly/t/improving-handling-of-aborted-callbacks/7536/2 for context and #190 for the PR.
- Many pylint style fixes. See #163, #164, #165, #166, #167, #168, #169, #172, #173, #181, #185, #186, #193
- New integration test framework #184
- Submodules are now imported into the
dash
namespace for better IDE completion #174
- 🔒 CSRF protection measures were removed as CSRF style attacks are not relevant
to Dash apps. Dash's API uses
POST
requests with content typeapplication/json
which are not susceptible to unwanted requests from 3rd party sites. See plotly#141 for more. - 🔒 Setting
app.server.secret_key
is no longer required since CSRF protection was removed. Settingapp.server.secret_key
was difficult to document and a very common source of confusion, so it's great that users won't get bitten by this anymore 🎉
app.config
is now adict
instead of a class. You can set config variables withapp.config['suppress_callback_exceptions'] = True
now. The previous class-based syntax (e.g.app.config.suppress_callback_exceptions
) has been maintained for backwards compatibility
- 0.18.2 introduced a bug that removed the ability for dash to serve the app on
any route besides
/
. This has been fixed. - 0.18.0 introduced a bug with the new config variables when used in a multi-app setting. These variables would be shared across apps. This issue has been fixed. Originally reported in https://community.plot.ly/t/flask-endpoint-error/5691/7
- The config setting
supress_callback_exceptions
has been renamed tosuppress_callback_exceptions
. Previously,suppress
was spelled wrong. The original config variable is kept for backwards compatibility.
The prerelease for 0.18.3
- 🔧 Added an
endpoint
to each of the URLs to allow for multiple routes (plotly#70)
- 🐛 If
app.layout
was supplied a function, then it used to be called excessively. Now it is called just once on startup and just once on page load. plotly#128
- 🔒 Removes the
/static/
folder and endpoint that is implicitly initialized by flask. This is too implicit for my comfort level: I worry that users will not be aware that their files in theirstatic
folder are accessible - ⚡️ Removes all API calls to the Plotly API (https://api.plot.ly/), the authentication endpoints and decorators, and the associated
filename
,sharing
andapp_url
arguments. This was never documented or officially supported and authentication has been moved to thedash-auth
package - ✏️ Sorts the prop names in the exception messages (#107)
- 🔧 Add two new
config
variables:routes_pathname_prefix
andrequests_pathname_prefix
to provide more flexibility for API routing when Dash apps are run behind proxy servers.routes_pathname_prefix
is a prefix applied to the backend routes andrequests_pathname_prefix
prefixed in requests made by Dash's front-end.dash-renderer==0.8.0rc3
uses these endpoints. - 🔧 Added id to KeyError exception in components (#112)
- ✏️ Fix a typo in an exception
- 🔧 Replaced all illegal characters in environment variable
##🔧 Maintenance
- 📝 Update README.md
- ✅ Fix CircleCI tests. Note that the
dash-renderer
contains the bulk of the integration tests. - 💄 Flake8 fixes and tests (fixes #99 )
- ✨ Added this CHANGELOG.md
✨ This is the initial open-source release of Dash