đź“Ł Dash 0.39.0 released

Changelogs

dash v0.39.0
dash-renderer v0.20.0
dash-core-components v0.44.0
dash-html-components v0.14.0
dash-table v3.6.0

Highlights

Lots of new features in this new release!

  • Allow multiple outputs from a single callback. #436
  • Support for custom javascript hooks to modify callback payloads and responses. #367
  • Modify the flask response with custom cookies or headers, using dash.callback_context.response . #623
  • Loading states API #267
  • Upgraded plotly.js to 1.45.0 #470
  • Formatting for numbers in dash-table #189

In Depth

Loading States
Multiple Outputs
DataTable Number Formatting

More updates in Dash Club - Dispatch #4: đź“Ł Dash Club - Dispatch #4 - Latest Dash Developments

14 Likes

Multiple Output !!!
:unicorn::kangaroo::rainbow::tropical_fish::butterfly::mushroom::gift::tada::bomb::boom::notes::hearts::key::radioactive::wc:

8 Likes

I just upgraded to 0.39 (from 0.38rc1) and I’m getting an exception when the site tries to load:


Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 2309, in __call__
    return self.wsgi_app(environ, start_response)
  File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 2295, in wsgi_app
    response = self.handle_exception(e)
  File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1741, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/local/lib/python3.7/site-packages/flask/_compat.py", line 35, in reraise
    raise value
  File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 2292, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1815, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1718, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/local/lib/python3.7/site-packages/flask/_compat.py", line 35, in reraise
    raise value
  File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1813, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1799, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/usr/local/lib/python3.7/site-packages/dash/dash.py", line 570, in index
    pl=plural
dash.exceptions.InvalidIndexException: Missing element new DashRenderer in index.

These are the package versions:

dash==0.39.0
dash-core-components==0.44.0
dash-dangerously-set-inner-html==0.0.2
dash-daq==0.1.4
dash-html-components==0.14.0
dash-renderer==0.20.0
dash-table==3.6.0
grasia-dash-components==0.3.4
1 Like

Figured out the issue, in case others run into it as well:
Looks like the default app_index string was modified to now include {%renderer%} in the section. Since I was manually setting the index string in my application, the change in the default string was not reflected in my overridden index string therefore causing the exception of “Missing element”.

5 Likes

3 posts were split to a new topic: Issues with table in Dash 0.39.0

Awesome ! Thanks for the multiple outputs and the loading component!! It will be very hepful !! Very Good, great work ! :grinning:

Thanks zoohair - just hit the same issue. To make things a bit more explicit, the default app.index_string is now:

<!DOCTYPE html>
<html>
    <head>
        {%metas%}
        <title>{%title%}</title>
        {%favicon%}
        {%css%}
    </head>
    <body>
        {%app_entry%}
        <footer>
            {%config%}
            {%scripts%}
            {%renderer%}
        </footer>
    </body>
</html>
3 Likes

These are great new features (multi output, loading component)! Dash is awesome!

1 Like

is there a fixed schedule to update the conda-forge ?
conda-forge/dash-feedstock/blob/master/recipe/meta.yaml

thanks @zoohair . You solve my problem.
In my case. I have customed Dash class and override interpolate_index

I should lock the version of Dash now. Thanks again.

Hi Rob,

Is app.index_string necessary to add a favicon? I’m including a favicon.ico in my assets folder at root, but nothing is showing up in my web browser tab, although the default plotly icon is removed.

Alex

Hi @alexrjohnson,

No doubt you’ve already figured it out by now - sorry for taking so long to see this. But for me, our favicons disappeared at some point when we moved to a new version of Dash. To fix it, we ended up with what’s shown below. I’m afraid I can’t remember many more details about it anymore. The below works with dash v39 (excuse some of my application specific code included in the snippet below):

app = dash.Dash(__name__, static_folder='static')
app.config.suppress_callback_exceptions = True

html_head_title = get_config().get('frontend', 'html_head_title', fallback='TRM Dashboard')
stylesheet_href = get_config().get('frontend', 'stylesheet_href', fallback='/assets/dashboard_prod.css')

app.index_string = f'''
<!DOCTYPE html>
<html>
    <head>
        {{%metas%}}
        <title>{html_head_title}</title>
        <link rel="icon" type="image/png" href="/static/favicon.png">
        <link rel="stylesheet" href="{stylesheet_href}">
    </head>
    <body>
        {{%app_entry%}}
        <footer>
            {{%config%}}
            {{%scripts%}}
            {{%renderer%}}
        </footer>
    </body>
</html>
'''

Cheers,
Rob