dash

Data Apps & Dashboards for Python. No JavaScript Required.

MIT License

Downloads
3.6M
Stars
20.6K
Committers
161

Bot releases are visible (Hide)

dash - Dash v1.17.0

Published by Marc-Andre-Rivet almost 4 years ago

Dash and Dash-Renderer

Changed

  • #1442 Update from React 16.13.0 to 16.14.0

Fixed

  • #1434 Fix #1432 for Julia to import non-core component packages without possible errors.

Changed

  • #1448 Provide a hint in the callback error when the user forgot to make app.callback(...) a decorator.

Dash-Core-Components

Added

  • #871 Add Julia syntax highlighting support for dcc.Markdown

Fixed

  • #878
    • Fixed #751, a bug that causes dcc.Slider and dcc.RangerSlider tooltips to be visible even if the slider component isn't visible (e.g. overflow),

Updated

Dash-Table

Fixed

  • #841
    • Fix prop-types regression causing console errors in browser devtools
    • Fix syntax highlighting regression for Markdown cells
  • #842 Fix a regression introduced with #722 causing the tooltips to be misaligned with respect to their parent cell and incompletely addressed in #817

Added

  • #841 Add Julia syntax highlighting support for Markdown cells
  • #831 Add the tooltip_header prop and add nested prop use_with (with values: header, data, both) to the tooltip prop to configure header cell tooltips
dash - Dash v1.16.3

Published by Marc-Andre-Rivet about 4 years ago

Dash and Dash-Renderer

Fixed

  • #1426 Fix a regression caused by flask-compress==1.6.0 causing performance degradation on server requests
dash - Dash v1.16.2

Published by Marc-Andre-Rivet about 4 years ago

Dash and Dash-Renderer

Fixed

  • #1415 Fix a regression with some layouts callbacks involving dcc.Tabs, not yet loaded dash_table.DataTable and dcc.Graph to not be called
  • #1416 Make callback graph more robust for complex apps and some specific props (width in particular) that previously caused errors.
dash - Dash v1.16.1

Published by Marc-Andre-Rivet about 4 years ago

Dash and Dash-Renderer

Changed

  • #1376 Extends the getTransform logic in the renderer to handle persistenceTransforms 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 to Graph to support Plotly.prependTraces
    • refactored the existing extendTraces API to be a single mergeTraces API that can handle both prepend as well as extend.

Updated

dash - Dash v1.16.0

Published by Marc-Andre-Rivet about 4 years ago

Dash and Dash-Renderer

Added

  • #1371 You can now get CSP script-src hashes of all added inline scripts by calling app.csp_hashes() (both Dash internal inline scripts, and those added with app.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 triggered n_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

dash - Dash v1.15.0

Published by Marc-Andre-Rivet about 4 years ago

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 to dash-generate-components, optionally generates Julia version of components and corresponding Julia package

Changed

  • #1180 and #1375 Input, Output, and State in callback definitions don't need to be in lists. You still need to provide Output items first, then Input items, then State, 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 the Output 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 component
    • parent_className: Add CSS class for the outermost dcc.Loading parent div DOM node
    • parent_style: Add CSS style property for the outermost dcc.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 in parent_style) now allow CSS rules to be applied to the outermost dcc.Loading div, which is no longer covered by className 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 and page_count fields to accommodate larger numbers
dash - Dash v1.14.0

Published by Marc-Andre-Rivet about 4 years ago

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

  • #808Fix a regression introduced with #787 making it impossible to open markdown links in the current tab.
    • Adds a new markdown_options property that supports:
      • link_target nested prop with values _blank, _parent, _self, _top or an arbitrary string (default: _blank)
dash - Dash v1.13.4

Published by rpkyle over 4 years ago

Fixed

  • #1310 Fix a regression since 1.13.0 preventing more than one loading state from being shown at a time.
dash - Dash v1.13.3

Published by Marc-Andre-Rivet over 4 years ago

Dash-Table

Fixed

  • #798 Fix a bug where headers are not aligned with columns after an update #797
dash - Dash v1.13.2

Published by Marc-Andre-Rivet over 4 years ago

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
dash - Dash v1.13.1

Published by Marc-Andre-Rivet over 4 years ago

Dash-Core-Components

Updated

dash - Dash v1.13.0

Published by Marc-Andre-Rivet over 4 years ago

Dash and Dash-Renderer

Added

  • #1289 Supports DASH_PROXY env var to tell app.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). Supports triggered, inputs, inputs_list, states, and states_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 more pytest plugins, particularly pytest-flake8 and pytest-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

  • #785 Fix a bug where the table does not refresh correctly if a property was previously missing
  • #793
    • Fix a bug where headers aren't aligned with columns with fixed_rows #777
    • Fix a regression where headers don't scroll horizontally with fixed_rows #780
dash - Dash v1.12.0

Published by Marc-Andre-Rivet over 4 years ago

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 for app.clientside_callback. The app-wide default can also be changed with app=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 without suppress_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 their Output 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 an app.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 in dcc.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 adding Store 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 for row_index and column_id array of values
    • style_header_conditional: Add support for header_index and column_id array of values
    • style_filter_conditional: Add support for column_id array of values
    • style_cell_conditional: Add support for column_id array of values
    • style_data_conditional: Add new conditions state: '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 the row_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 and columns=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
dash - Dash v1.11.0

Published by Marc-Andre-Rivet over 4 years ago

Dash and Dash-Renderer

Added

  • #1103 Pattern-matching IDs and callbacks. Component IDs can be dictionaries, and callbacks can reference patterns of components, using three different wildcards: ALL, MATCH, and ALLSMALLER, available from dash.dependencies. This lets you create components on demand, and have callbacks respond to any and all of them. To help with this, dash.callback_context gets three new entries: outputs_list, inputs_list, and states_list, which contain all the ids, properties, and except for the outputs, the property values from all matched components.
  • #1103 dash.testing option --pause: after opening the dash app in a test, will invoke pdb for live debugging of both Javascript and Python. Use with a single test case like pytest -k cbwc001 --pause.

Changed

  • #1103 Multiple changes to the callback pipeline:
    • dash.callback_context.triggered now does NOT reflect any initial values, and DOES reflect EVERY value which has been changed either by activity in the app or as a result of a previous callback. That means that the initial call of a callback with no prerequisite callbacks will list nothing as triggering. For backward compatibility, we continue to provide a length-1 list for triggered, but its id and property are blank strings, and bool(triggered) is False.
    • A user interaction which returns the same property value as was previously present will not trigger the component to re-render, nor trigger callbacks using that property as an input.
    • Callback validation is now mostly done in the browser, rather than in Python. A few things - mostly type validation, like ensuring IDs are strings or dicts and properties are strings - are still done in Python, but most others, like ensuring outputs are unique, inputs and outputs don't overlap, and (if desired) that IDs are present in the layout, are done in the browser. This means you can define callbacks BEFORE the layout and still validate IDs to the layout; and while developing an app, most errors in callback definitions will not halt the app.

Fixed

  • #1103 Fixed multiple bugs with chained callbacks either not triggering, inconsistently triggering, or triggering multiple times. This includes: #635, #832, #1053, #1071, and #1084. Also fixed #1105: async components that aren't rendered by the page (for example in a background Tab) would block the app from executing callbacks.

Dash-Core-Components

Changed

  • #740 Keep components that are loading in the DOM, but not visible, as opposed to removing them entirely. This will ensure that the size of the component's container does not shrink or expand when the component goes into the loading state.

Fixed

  • #740 Fixed bug in which mapbox uirevision was not behaving when inside a dcc.Loading component
dash - Dash v1.10.0

Published by Marc-Andre-Rivet over 4 years ago

Dash and Dash-Renderer

Added

  • #1134 Allow dash.run_server() host and port parameters to be set with environment variables HOST & PORT, respectively

Changed

  • #1145 Update from React 16.8.6 to 16.13.0

Fixed

Dash-Core-Components

Changed

  • #766 Update from React 16.8.6 to 16.13.0
  • #768 Added title property to dcc.Link
  • #776 Update dcc.Link to set href as children if children not defined. Makes href a required prop as well.
  • #767 Updated dcc.Link to respond to click modifiers, and added a target prop.
  • #774 Fixed dcc.Location firing callbacks for wrong property.
  • 772 Modified dcc.Link to work with absolute paths if refresh=True.

Updated

Dash-Html-Components

Updated

  • Update generated props
  • Update generated R artifacts

Dash-Table

Changed

  • #713 Update from React 16.8.6 to 16.13.0
dash - Dash v1.9.0

Published by Marc-Andre-Rivet over 4 years ago

Dash and Dash-Renderer

Fixed

  • #1080 Handle case where dash fails to load when used inside an iframe with a sandbox attribute that only has allow-scripts

Dash-Core-Components

Changed

  • #743 Location component now emits an event on URL path update from Link component
  • #739 Async Slider and RangeSlider
  • #729 Handle case where dcc fails to load when used inside an iframe with a sandbox attribute that only has allow-scripts

Fixed

  • #730 Fixed bug in which input components with type number did not correctly update their values.
  • #731 Fixed bug where non-clearable dropdowns could still be cleared by typing backspace

Updated

dash - Dash v1.8.0

Published by Marc-Andre-Rivet almost 5 years ago

Dash and Dash-Renderer

Added

  • #1073 Two new functions to simplify usage handling URLs and pathnames: app.get_relative_path & app.trim_relative_path.
    These functions are particularly useful for apps deployed on Dash Enterprise where the apps served under a URL prefix (the app name) which is unlike apps served on localhost:8050.
    • app.get_relative_path returns a path with the config setting requests_pathname_prefix prefixed. Use app.get_relative_path anywhere you would provide a relative pathname, like dcc.Link(href=app.relative_path('/page-2')) or even as an alternative to app.get_asset_url with e.g. html.Img(src=app.get_relative_path('/assets/logo.png')).
    • app.trim_relative_path a path with requests_pathname_prefix and leading & trailing
      slashes stripped from it. Use this function in callbacks that deal with dcc.Location pathname
      routing.
      Example usage:
    app.layout = html.Div([
        dcc.Location(id='url'),
        html.Div(id='content')
    ])
    @app.callback(Output('content', 'children'), [Input('url', 'pathname')])
    def display_content(path):
        page_name = app.strip_relative_path(path)
        if not page_name:  # None or ''
            return html.Div([
                html.Img(src=app.get_relative_path('/assets/logo.png')),
                dcc.Link(href=app.get_relative_path('/page-1')),
                dcc.Link(href=app.get_relative_path('/page-2')),
            ])
        elif page_name == 'page-1':
            return chapters.page_1
        if page_name == "page-2":
            return chapters.page_2
    

Changed

  • #1035 Simplify our build process.
  • #1074 Error messages when providing an incorrect property to a component have been improved: they now specify the component type, library, version, and ID (if available).

Fixed

  • #1037 Fix no_update test to allow copies, such as those stored and retrieved from a cache.

Dash-Core-Components

Added

  • #711 Added support for dcc.Link (dccLink) and nested dcc.Markdown (dccMarkdown) react components inside of dcc.Markdown
  • #706
    • Added new responsive property that overrides the underlying Plotly.js graph responsiveness from Dash-land
    • Added responsiveness on graph parent element resize (previously only worked on window.resize)
    • Added new dash-graph--pending class to dcc.Graph, present while resizing, (re-)rendering, loading

Changed

  • #723 Changed npm package content to allow source code inclusion from other projects
  • #725 Improve async graph performance by parallelizing resource fetching instead of fetching sequentially
  • #720 highlight.js is now bundled into the package, and no longer sets the window.hljs variable. Similarly to how plotly.js is handled, it is overridden by a user-provided version if one exists.

Updated

Dash-Table

Added

  • #606 Add markdown support for table cells. Cells will be rendered as markdown if the column presentation is specified as markdown.
    • Add highlight.js for syntax highlighting. If window.hljs is specified, that will be used for highlighting instead.

Fixed

  • #670 Fix a bug where derived_filter_query_structure was not getting updated properly
  • #677 Fix a bug where the table fails to load when used inside an iframe with a sandbox attribute that only has allow-scripts
  • #665 Fix a bug in Firefox where the dropdown cells height is incorrect
dash - Dash v1.7.0

Published by Marc-Andre-Rivet almost 5 years ago

Dash and Dash-Renderer

Added

  • #967 Add support for defining
    clientside JavaScript callbacks via inline strings.
  • #1020 Allow visit_and_snapshot API in dash.testing.browser to stay on the page so you can run other checks.

Changed

  • #1026 Better error message when you forget to wrap multiple children in an array, and they get passed to other props.

Fixed

  • #1018 Fix the dash.testing stop API with process application runner in Python2. Use kill() instead of communicate() to avoid hanging.
  • #1027 Fix bug with renderer callback lock never resolving with non-rendered async component using the asyncDecorator

Dash-Core-Components

Updated

  • Upgraded plotly.js to 1.51.2 #708
    • Patch release 1.51.2 containing several bug fixes.

Changed

  • #695 Improvements to Slider and RangeSlider
    • Marks outside of the range specified by min and max are now omitted when the slider renders.
    • Padding is now dependent on the orientation (vertical or horizontal), and whether or not tooltips are always displayed.
    • The whitespace is now preserved for marks labels.

Added

  • #695 Added new property verticalHeight to Slider and RangeSlider, to allow the user to specify the height (in px) of vertical sliders. This defaults to 400.
dash - Dash v1.6.1

Published by Marc-Andre-Rivet almost 5 years ago

Dash

Fixed

  • #1006 Fix IE11 / ES5 compatibility and validation issues
  • #1006 Fix bug with renderer wrapper component TreeContainer to prevent useless re-renders
  • #1001
    • Fix and improve the clear_input() API in dash.testing, so it's more robust handling react input.
    • make the percy_snapshot() API more robust, and the timeout of wait_for_callbacks (if set to True) will not fail the snapshot execution, but logged as potential error.

Dash-Core-Components

Fixed

  • #696 Fix IE11 compatibility issues and ES5 compatibility and validation

Changed

  • #687 Use start_date, min_date_allowed, end_date, or max_date_allowed for the initial visible month if the value of the parameter initial_visible_month is not supplied.

Dash-Html-Components

Fixed

  • #143 Fix IE11 compatibility issues and ES5 compatibility and validation

Dash-Table

Fixed

  • #637 Fix multiple issues
    • Fix IE11 compatibility issues and add ES5 compatibility and validation
    • Fix a bug with loading_state being handled incorrectly, causing the table to steal focus
dash - Dash v.1.6.0

Published by Marc-Andre-Rivet almost 5 years ago

Dash

Fixed

  • #999 Fix fingerprint for component suites with metadata in version.
  • #983 Fix the assets loading issues when dashR application runner is handling with an app defined by string chunk.

Dash-Core-Components

Added

  • #692 Async DatePickerSingle, DatePickerRange, Dropdown, Markdown, Upload components