diff --git a/.gitignore b/.gitignore index 2f8084c..dd1980f 100644 --- a/.gitignore +++ b/.gitignore @@ -63,14 +63,6 @@ node_modules/ bower_components/ __pycache__/ *.egg-info/ -etc/notebooks/* -!etc/notebooks/*_demo -!etc/notebooks/test/ -!etc/notebooks/system-test/ -!etc/notebooks/*_demo/* -!etc/notebooks/*_tutorial -!etc/notebooks/index.ipynb -!etc/notebooks/images/ etc/notebooks/*_demo/.dashboard_cache etc/notebooks/*_demo/.ipynb_checkpoints etc/jupyter_notebook_config.py diff --git a/README.md b/README.md index 07470be..23794b7 100644 --- a/README.md +++ b/README.md @@ -14,14 +14,6 @@ layouts. For a sample of what's possible with the dashboard layout extension, have a look at the [demo dashboard-notebooks](etc/notebooks) in this repository. -The extension can be used in combination with the incubating -[jupyter-incubator/dashboards_bundlers](https://github.com/jupyter-incubator/dashboards_bundlers) -and -[jupyter-incubator/dashboards_server](https://github.com/jupyter-incubator/dashboards_server) -projects. See the [Understanding the use -case](http://jupyter-dashboards-layout.readthedocs.io/en/latest/use-cases.html) -documentation page for more background information. - ## Installation Detailed installation instructions appear in the [Getting started diff --git a/docs/source/_static/dashboards_intro.png b/docs/source/_static/dashboards_intro.png index f225a74..1ff27a1 100644 Binary files a/docs/source/_static/dashboards_intro.png and b/docs/source/_static/dashboards_intro.png differ diff --git a/docs/source/index.rst b/docs/source/index.rst index 50fe59b..8c8b50c 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -8,8 +8,6 @@ The dashboards layout extension is an add-on for Jupyter Notebook. It lets you a For a sample of what's possible with the dashboard layout extension, have a look at the `demo dashboard-notebooks in the project repository `__. -The extension can be used in combination with the incubating `jupyter-incubator/dashboards_bundlers `__ and `jupyter-incubator/dashboards_server `__ projects. - .. toctree:: :maxdepth: 2 :caption: User Documentation diff --git a/etc/dashboards_intro.png b/etc/dashboards_intro.png deleted file mode 100644 index f225a74..0000000 Binary files a/etc/dashboards_intro.png and /dev/null differ diff --git a/etc/notebooks/README.md b/etc/notebooks/README.md new file mode 100644 index 0000000..2cc0580 --- /dev/null +++ b/etc/notebooks/README.md @@ -0,0 +1,32 @@ +# Jupyter Dashboards Demos + +The [dashboards layout extension](https://github.com/jupyter/dashboards) is an +add-on for Jupyter Notebook. It lets you arrange your notebook outputs (text, +plots, widgets, ...) in grid- or report-like layouts. It saves information +about your layouts in your notebook document. Other people with the extension +can open your notebook and view your layouts. + +The git repository for the project contains a handful of notebooks that you can +run and modify to learn how the dashboards extension works. After installing +the extension and learning the basics by reading the +[documentation](http://jupyter-dashboards-layout.readthedocs.io/en/latest/index.html), +do the following to get a copy of the example notebooks to run yourself. + +``` +# Get a copy of the project source and example notebooks +git clone https://github.com/jupyter/dashboards.git + +# Activate the virtualenv or conda environment containing your +# install of jupyter notebook and the extension. Then install +# the demo requirements. +pip install -r dashboards/requirements-demo.txt + +# Run the notebook server. +jupyter notebook --notebook-dir=./dashboards/etc/notebooks/ +``` + +The following demos are kept up-to-date as issues with dependencies are found and fixed. + +1. [Got Scotch?](got_scotch_demo/scotch_dashboard.ipynb) - show similarities + between scotch varieties +2. [Plotting demo](plotting_demo.ipynb) - shows how matplotlib, bokeh, and plotly work in a dashboard layout diff --git a/etc/notebooks/bokeh_demo/bokeh_demo.ipynb b/etc/notebooks/bokeh_demo/bokeh_demo.ipynb deleted file mode 100644 index c1e41a8..0000000 --- a/etc/notebooks/bokeh_demo/bokeh_demo.ipynb +++ /dev/null @@ -1,325 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "extensions": { - "jupyter_dashboards": { - "version": 1, - "views": { - "grid_default": { - "col": 0, - "height": 4, - "hidden": false, - "row": 0, - "width": 12 - }, - "report_default": { - "hidden": false - } - } - } - } - }, - "source": [ - "Bokeh Dashboard Demo\n", - "---------------------\n", - "\n", - "This demo shows off an interactive visualization using [Bokeh](http://bokeh.pydata.org) for plotting, and IPython interactors for widgets. It is nearly identical to the [demo notebook](https://github.com/bokeh/bokeh/blob/master/examples/plotting/notebook/interact_basic.ipynb) found in Bokeh's own repository." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "extensions": { - "jupyter_dashboards": { - "version": 1, - "views": { - "grid_default": { - "hidden": true - }, - "report_default": { - "hidden": false - } - } - } - } - }, - "source": [ - "The demo runs entirely inside the IPython notebook, with no Bokeh server required." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "extensions": { - "jupyter_dashboards": { - "version": 1, - "views": { - "grid_default": { - "hidden": true - }, - "report_default": { - "hidden": false - } - } - } - } - }, - "source": [ - "To run, click on, `Cell->Run All` in the top menu, then scroll to the bottom and move the sliders. You can change the intended layout by switching to the **dashboard layout** view, using either the **View** toolbar buttons or the **View > Layout Dashboard** menu item (a layout has already been set), and preview the results in the **view dashboard** view by using either the **View** toolbar buttons or the **View > View Dashboard** menu item. To see it as a running dashboard, click on, `File->Deploy As->Local Dashboard`." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true, - "extensions": { - "jupyter_dashboards": { - "version": 1, - "views": { - "grid_default": { - "hidden": true - }, - "report_default": { - "hidden": false - } - } - } - } - }, - "outputs": [], - "source": [ - "import bokeh\n", - "from bokeh.models import ColumnDataSource\n", - "from bokeh.plotting import figure, show, output_notebook\n", - "\n", - "import numpy as np" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true, - "extensions": { - "jupyter_dashboards": { - "version": 1, - "views": { - "grid_default": { - "hidden": true - }, - "report_default": { - "hidden": false - } - } - } - } - }, - "outputs": [], - "source": [ - "x = np.linspace(0, 2*np.pi, 2000)\n", - "y = np.sin(x)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "extensions": { - "jupyter_dashboards": { - "version": 1, - "views": { - "grid_default": { - "hidden": true - }, - "report_default": { - "hidden": false - } - } - } - } - }, - "source": [ - "Initialize bokeh and inline its JavaScript. If we don't specify inline, then the JS loads from a CDN and *Run All* doesn't work." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true, - "extensions": { - "jupyter_dashboards": { - "version": 1, - "views": { - "grid_default": { - "hidden": true - }, - "report_default": { - "hidden": false - } - } - } - } - }, - "outputs": [], - "source": [ - "output_notebook(bokeh.resources.INLINE)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true, - "extensions": { - "jupyter_dashboards": { - "version": 1, - "views": { - "grid_default": { - "hidden": true - }, - "report_default": { - "hidden": false - } - } - } - } - }, - "outputs": [], - "source": [ - "source = ColumnDataSource(data=dict(x=x, y=y))\n", - "\n", - "p = figure(title=\"simple line example\", plot_height=300, plot_width=600)\n", - "p.line('x', 'y', source=source, color=\"#2222aa\", line_width=3)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true, - "extensions": { - "jupyter_dashboards": { - "version": 1, - "views": { - "grid_default": { - "hidden": true - }, - "report_default": { - "hidden": false - } - } - } - } - }, - "outputs": [], - "source": [ - "def update(f, w=2, A=1, phi=0):\n", - " if f == \"sin\": func = np.sin\n", - " elif f == \"cos\": func = np.cos\n", - " elif f == \"tan\": func = np.tan\n", - " source.data['y'] = A * func(w * x + phi)\n", - " bokeh.io.push_notebook()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true, - "extensions": { - "jupyter_dashboards": { - "version": 1, - "views": { - "grid_default": { - "col": 0, - "height": 13, - "hidden": false, - "row": 4, - "width": 7 - }, - "report_default": { - "hidden": false - } - } - } - } - }, - "outputs": [], - "source": [ - "show(p, notebook_handle=True);" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true, - "extensions": { - "jupyter_dashboards": { - "version": 1, - "views": { - "grid_default": { - "col": 7, - "height": 13, - "hidden": false, - "row": 4, - "width": 5 - }, - "report_default": { - "hidden": false - } - } - } - } - }, - "outputs": [], - "source": [ - "from IPython.html.widgets import interact\n", - "_ = interact(update, f=[\"sin\", \"cos\", \"tan\"], w=(0,100), A=(1,10), phi=(0, 10, 0.1))" - ] - } - ], - "metadata": { - "extensions": { - "jupyter_dashboards": { - "activeView": "grid_default", - "version": 1, - "views": { - "grid_default": { - "cellMargin": 10, - "defaultCellHeight": 20, - "maxColumns": 12, - "name": "grid", - "type": "grid" - }, - "report_default": { - "name": "report", - "type": "report" - } - } - } - }, - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.5.3" - } - }, - "nbformat": 4, - "nbformat_minor": 1 -} diff --git a/etc/notebooks/community_sentiment_demo/community_sentiment_demo.ipynb b/etc/notebooks/declarativewidgets/community_sentiment_demo/community_sentiment_demo.ipynb similarity index 100% rename from etc/notebooks/community_sentiment_demo/community_sentiment_demo.ipynb rename to etc/notebooks/declarativewidgets/community_sentiment_demo/community_sentiment_demo.ipynb diff --git a/etc/notebooks/community_sentiment_demo/widgets/urth-timeline/bower.json b/etc/notebooks/declarativewidgets/community_sentiment_demo/widgets/urth-timeline/bower.json similarity index 100% rename from etc/notebooks/community_sentiment_demo/widgets/urth-timeline/bower.json rename to etc/notebooks/declarativewidgets/community_sentiment_demo/widgets/urth-timeline/bower.json diff --git a/etc/notebooks/community_sentiment_demo/widgets/urth-timeline/urth-timeline.html b/etc/notebooks/declarativewidgets/community_sentiment_demo/widgets/urth-timeline/urth-timeline.html similarity index 100% rename from etc/notebooks/community_sentiment_demo/widgets/urth-timeline/urth-timeline.html rename to etc/notebooks/declarativewidgets/community_sentiment_demo/widgets/urth-timeline/urth-timeline.html diff --git a/etc/notebooks/meetup_outreach_demo/meetup-outreach.ipynb b/etc/notebooks/declarativewidgets/meetup_outreach_demo/meetup-outreach.ipynb similarity index 100% rename from etc/notebooks/meetup_outreach_demo/meetup-outreach.ipynb rename to etc/notebooks/declarativewidgets/meetup_outreach_demo/meetup-outreach.ipynb diff --git a/etc/notebooks/meetup_outreach_demo/widgets/dynamic-list/bower.json b/etc/notebooks/declarativewidgets/meetup_outreach_demo/widgets/dynamic-list/bower.json similarity index 100% rename from etc/notebooks/meetup_outreach_demo/widgets/dynamic-list/bower.json rename to etc/notebooks/declarativewidgets/meetup_outreach_demo/widgets/dynamic-list/bower.json diff --git a/etc/notebooks/meetup_outreach_demo/widgets/dynamic-list/dynamic-list.html b/etc/notebooks/declarativewidgets/meetup_outreach_demo/widgets/dynamic-list/dynamic-list.html similarity index 100% rename from etc/notebooks/meetup_outreach_demo/widgets/dynamic-list/dynamic-list.html rename to etc/notebooks/declarativewidgets/meetup_outreach_demo/widgets/dynamic-list/dynamic-list.html diff --git a/etc/notebooks/meetup_outreach_demo/widgets/upcoming-meetups/bower.json b/etc/notebooks/declarativewidgets/meetup_outreach_demo/widgets/upcoming-meetups/bower.json similarity index 100% rename from etc/notebooks/meetup_outreach_demo/widgets/upcoming-meetups/bower.json rename to etc/notebooks/declarativewidgets/meetup_outreach_demo/widgets/upcoming-meetups/bower.json diff --git a/etc/notebooks/meetup_outreach_demo/widgets/upcoming-meetups/upcoming-meetups.html b/etc/notebooks/declarativewidgets/meetup_outreach_demo/widgets/upcoming-meetups/upcoming-meetups.html similarity index 100% rename from etc/notebooks/meetup_outreach_demo/widgets/upcoming-meetups/upcoming-meetups.html rename to etc/notebooks/declarativewidgets/meetup_outreach_demo/widgets/upcoming-meetups/upcoming-meetups.html diff --git a/etc/notebooks/resizable_widgets_tutorial/resizable_widgets.ipynb b/etc/notebooks/declarativewidgets/resizable_widgets_tutorial/resizable_widgets.ipynb similarity index 100% rename from etc/notebooks/resizable_widgets_tutorial/resizable_widgets.ipynb rename to etc/notebooks/declarativewidgets/resizable_widgets_tutorial/resizable_widgets.ipynb diff --git a/etc/notebooks/sentiment_boilerplate_demo/sentiment_boilerplate_demo.ipynb b/etc/notebooks/declarativewidgets/sentiment_boilerplate_demo/sentiment_boilerplate_demo.ipynb similarity index 100% rename from etc/notebooks/sentiment_boilerplate_demo/sentiment_boilerplate_demo.ipynb rename to etc/notebooks/declarativewidgets/sentiment_boilerplate_demo/sentiment_boilerplate_demo.ipynb diff --git a/etc/notebooks/sentiment_boilerplate_demo/widgets/urth-timeline/bower.json b/etc/notebooks/declarativewidgets/sentiment_boilerplate_demo/widgets/urth-timeline/bower.json similarity index 100% rename from etc/notebooks/sentiment_boilerplate_demo/widgets/urth-timeline/bower.json rename to etc/notebooks/declarativewidgets/sentiment_boilerplate_demo/widgets/urth-timeline/bower.json diff --git a/etc/notebooks/sentiment_boilerplate_demo/widgets/urth-timeline/urth-timeline.html b/etc/notebooks/declarativewidgets/sentiment_boilerplate_demo/widgets/urth-timeline/urth-timeline.html similarity index 100% rename from etc/notebooks/sentiment_boilerplate_demo/widgets/urth-timeline/urth-timeline.html rename to etc/notebooks/declarativewidgets/sentiment_boilerplate_demo/widgets/urth-timeline/urth-timeline.html diff --git a/etc/notebooks/stream_demo/meetup-streaming.ipynb b/etc/notebooks/declarativewidgets/stream_demo/meetup-streaming.ipynb similarity index 100% rename from etc/notebooks/stream_demo/meetup-streaming.ipynb rename to etc/notebooks/declarativewidgets/stream_demo/meetup-streaming.ipynb diff --git a/etc/notebooks/taxi_demo/datasets/fares.csv b/etc/notebooks/declarativewidgets/taxi_demo/datasets/fares.csv similarity index 100% rename from etc/notebooks/taxi_demo/datasets/fares.csv rename to etc/notebooks/declarativewidgets/taxi_demo/datasets/fares.csv diff --git a/etc/notebooks/taxi_demo/datasets/trips_1.csv b/etc/notebooks/declarativewidgets/taxi_demo/datasets/trips_1.csv similarity index 100% rename from etc/notebooks/taxi_demo/datasets/trips_1.csv rename to etc/notebooks/declarativewidgets/taxi_demo/datasets/trips_1.csv diff --git a/etc/notebooks/taxi_demo/datasets/trips_2.csv b/etc/notebooks/declarativewidgets/taxi_demo/datasets/trips_2.csv similarity index 100% rename from etc/notebooks/taxi_demo/datasets/trips_2.csv rename to etc/notebooks/declarativewidgets/taxi_demo/datasets/trips_2.csv diff --git a/etc/notebooks/taxi_demo/datasets/trips_3.csv b/etc/notebooks/declarativewidgets/taxi_demo/datasets/trips_3.csv similarity index 100% rename from etc/notebooks/taxi_demo/datasets/trips_3.csv rename to etc/notebooks/declarativewidgets/taxi_demo/datasets/trips_3.csv diff --git a/etc/notebooks/taxi_demo/taxi_dashboard.ipynb b/etc/notebooks/declarativewidgets/taxi_demo/taxi_dashboard.ipynb similarity index 100% rename from etc/notebooks/taxi_demo/taxi_dashboard.ipynb rename to etc/notebooks/declarativewidgets/taxi_demo/taxi_dashboard.ipynb diff --git a/etc/notebooks/got_scotch_demo/scotch_dashboard.ipynb b/etc/notebooks/got_scotch_demo/scotch_dashboard.ipynb index 0399600..45eb221 100644 --- a/etc/notebooks/got_scotch_demo/scotch_dashboard.ipynb +++ b/etc/notebooks/got_scotch_demo/scotch_dashboard.ipynb @@ -719,7 +719,7 @@ "outputs": [], "source": [ "def get_similar(name, n, top=True):\n", - " a = sim_df[name].order(ascending=False)\n", + " a = sim_df[name].sort_values(ascending=False)\n", " a.name = 'Similarity'\n", " df = pd.DataFrame(a) #.join(features_df).iloc[start:end]\n", " return df.head(n) if top else df.tail(n)" @@ -811,7 +811,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true, "extensions": { "jupyter_dashboards": { "version": 1, @@ -1054,7 +1053,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.5.3" + "version": "3.6.2" } }, "nbformat": 4, diff --git a/etc/notebooks/images/dashboard-abstraction.png b/etc/notebooks/images/dashboard-abstraction.png deleted file mode 100644 index a206110..0000000 Binary files a/etc/notebooks/images/dashboard-abstraction.png and /dev/null differ diff --git a/etc/notebooks/index.ipynb b/etc/notebooks/index.ipynb deleted file mode 100644 index 5f2b091..0000000 --- a/etc/notebooks/index.ipynb +++ /dev/null @@ -1,137 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "extensions": { - "jupyter_dashboards": { - "version": 1, - "views": { - "grid_default": { - "col": 2, - "height": 4, - "hidden": false, - "row": 0, - "width": 9 - }, - "report_default": { - "hidden": false - } - } - } - } - }, - "source": [ - "# Dynamic Dashboards Quick Start Guide\n", - "\n", - "[Dynamic Dashboards](https://github.com/jupyter/dashboards) allow us to quickly create a functional application with minimal effort using a notebook. The notebook cell outputs become the components of the dashboard and can be moved, resized, and hidden as desired. Other technologies, both server- and client-side, can be used to enhance the Dashboard experience. This notebook will give you a quick overview of how to use Dynamic Dashboards. For more detailed information, see the [wiki](https://github.com/jupyter/dashboards/wiki).\n", - "\n", - "## Creating a Dashboard\n", - "\n", - "The Dynamic Dashboard extension uses Jupyter Notebook cell output areas as the dashboard content, so any text, image, widget, etc. can be included in a dashboard. \n", - "\n", - "Once your notebook contains the desired dashboard components, you are ready to create the dashboard. To switch from the default notebook view to the dashboard layout view, use either the **Dashboard View** toolbar buttons or the **View > Dashboard Layout > [layout]** menu items. The dashboard layout view allows you to rearrange, resize, and hide cells. See the next section for details on available layouts.\n", - "\n", - "Once you have laid out your dashboard, you may preview it by using either the **Dashboard View** toolbar buttons or the **View > Dashboard Preview** menu item. This will show you what the dashboard will look like when deployed.\n", - "\n", - "To return to the Notebook, use either the **Dashboard View** toolbar buttons or the **View > Notebook** menu item.\n", - "\n", - "As a final step, you can download or deploy your dashboard. These depend on other components from the Jupyter ecosystem. See the [wiki](https://github.com/jupyter/dashboards/wiki) for details.\n", - "\n", - "### Dashboard Layouts\n", - "\n", - "Currently there are 2 types of dashboard layout: **Grid** and **Report**. The type of layout can be selected using the **Dashboard View** toolbar buttons or the **View > Dashboard Layout > [layout]** menu items.\n", - "\n", - "**Grid** layout allows you to specify a row, column, width, and height for each cell. Cells can be arranged anywhere in 2D space. This uses the [Gridstack](http://troolee.github.io/gridstack.js/) library to perform the layout. Each cell can be hidden from view, and hidden cells will be displayed below the grid layout. This layout is a fixed size.\n", - "\n", - "**Report** layout is more restricted and simply lays out the cells top-to-bottom in notebook order. The code is hidden, and cells can also be hidden. Hidden cells are collapsed and displayed inline. This layout's height is determined by cell output and can change dynamically as the user interacts with cell outputs.\n", - "\n", - "## Examples\n", - "\n", - "The Dynamic Dashboards repository contains several example notebooks that you can run and modify to learn how dashboards might suit your needs.\n", - "\n", - "\n", - "\n", - "### Basic Dashboards\n", - "\n", - "1. [Got Scotch?](got_scotch_demo/scotch_dashboard.ipynb) - uses IPyWidgets 5.1+ to show similarities between scotch varieties\n", - "\n", - "### Widgets\n", - "\n", - "The dashboard extensions works well with the [Declarative Widgets](https://github.com/jupyter-incubator/declarativewidgets) project and other [Polymer](https://www.polymer-project.org/1.0/) elements:\n", - "\n", - "1. [NYC Taxi Trips & Fares](taxi_demo/taxi_dashboard.ipynb) - visualizes a sampling of New York City taxi trips and fares\n", - "2. [Community Sentiment](community_sentiment_demo/community_sentiment_demo.ipynb) - describes the sentiment of an open source project on GitHub\n", - "3. [Got Scotch? (with declarative widgets)](got_scotch_demo/scotch_dashboard_declarative.ipynb) - is similar to Got Scotch with ipywidgets, but uses Declarative Widgets instead.\n", - "\n", - "Of course, it also works with other widget packages like ipywidgets (see Scotch demo above), Bokeh, plot.ly, etc.\n", - "\n", - "1. [Bokeh demo](bokeh_demo/bokeh_demo.ipynb) - shows some Bokeh widgets in a dashboard layout \n", - "\n", - "### Boilerplates\n", - "\n", - "Boilerplates are notebooks that allow you to quickly adapt a pre-built dashboard to your own needs. These boilerplates require minimal code changes to work with your own data and use cases.\n", - "\n", - "1. [Sentiment Boilerplate](sentiment_boilerplate_demo/sentiment_boilerplate_demo.ipynb) - displays and aggregates metrics about sentiment in a dashboard\n", - "\n", - "### Apache Spark\n", - "\n", - "Using technologies like Apache Spark, we can incorporate Big Data analysis into our Dashboards. In particular, we can make use of Spark Streaming to dynamically update dashboard content as new data is received.\n", - "\n", - "1. [Meetup Streaming](stream_demo/meetup-streaming.ipynb) - example of Spark Streaming in a notebook/dashboard\n", - "2. [Meetup Outreach](meetup_outreach_demo/meetup-outreach.ipynb) - real-world application of a streaming dashboard\n", - "\n", - "### Development\n", - "\n", - "In addition to the demo notebooks above, we have provided these notebooks to cover aspects of the development process.\n", - "\n", - "1. [Resizable Widgets](resizable_widgets_tutorial/resizable_widgets.ipynb) - demonstrates how to implement a Polymer element that sizes itself to fit in a dashboard cell\n", - "2. [Tests](test) - these cover various dashboard features and are useful for developers of the dashboard extension itself" - ] - } - ], - "metadata": { - "extensions": { - "jupyter_dashboards": { - "activeView": "grid_default", - "version": 1, - "views": { - "grid_default": { - "cellMargin": 10, - "defaultCellHeight": 20, - "maxColumns": 12, - "name": "grid", - "type": "grid" - }, - "report_default": { - "name": "report", - "type": "report" - } - } - } - }, - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.5.1" - }, - "widgets": { - "state": {}, - "version": "1.1.2" - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/etc/notebooks/plotting_demo.ipynb b/etc/notebooks/plotting_demo.ipynb new file mode 100644 index 0000000..54ed388 --- /dev/null +++ b/etc/notebooks/plotting_demo.ipynb @@ -0,0 +1,586 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "extensions": { + "jupyter_dashboards": { + "version": 1, + "views": { + "grid_default": { + "col": 0, + "height": 2, + "hidden": false, + "row": 0, + "width": 12 + }, + "report_default": { + "hidden": false + } + } + } + } + }, + "source": [ + "# Plotting Demo" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "extensions": { + "jupyter_dashboards": { + "version": 1, + "views": { + "grid_default": { + "hidden": true + }, + "report_default": { + "hidden": false + } + } + } + } + }, + "source": [ + "This notebook demonstrates the use of matplotlib, bokeh, and plotly in a dashboard grid layout.\n", + "\n", + "To run, click on, *Cell->Run All* in the top menu. Then click *View -> Dashboard Preview* to view the plots in a grid layout. Click *View -> Dashboard Layout -> Dashboard Layout - Grid* to see how each plot behaves during layout design." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "extensions": { + "jupyter_dashboards": { + "version": 1, + "views": { + "grid_default": { + "col": 0, + "height": 14, + "hidden": false, + "row": 16, + "width": 4 + }, + "report_default": { + "hidden": false + } + } + } + } + }, + "source": [ + "## matplotlib" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true, + "extensions": { + "jupyter_dashboards": { + "version": 1, + "views": { + "grid_default": { + "hidden": true + }, + "report_default": { + "hidden": false + } + } + } + } + }, + "outputs": [], + "source": [ + "%matplotlib notebook" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true, + "extensions": { + "jupyter_dashboards": { + "version": 1, + "views": { + "grid_default": { + "col": 0, + "height": 4, + "hidden": true, + "row": 37, + "width": null + }, + "report_default": { + "hidden": false + } + } + } + } + }, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "import numpy as np" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true, + "extensions": { + "jupyter_dashboards": { + "version": 1, + "views": { + "grid_default": { + "col": 0, + "height": 4, + "hidden": true, + "row": 37, + "width": null + }, + "report_default": { + "hidden": false + } + } + } + } + }, + "outputs": [], + "source": [ + "x = np.linspace(0, 2*np.pi, 2000)\n", + "y = np.sin(x)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "extensions": { + "jupyter_dashboards": { + "version": 1, + "views": { + "grid_default": { + "col": 4, + "height": 15, + "hidden": false, + "row": 16, + "width": 8 + }, + "report_default": { + "hidden": false + } + } + } + } + }, + "outputs": [], + "source": [ + "fig, ax = plt.subplots(figsize=(5,3.5))\n", + "fig.suptitle('matplotlib example', y=1.0)\n", + "ax.plot(x, y)\n", + "plt.tight_layout()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "extensions": { + "jupyter_dashboards": { + "version": 1, + "views": { + "grid_default": { + "col": 0, + "height": 18, + "hidden": false, + "row": 30, + "width": 4 + }, + "report_default": { + "hidden": false + } + } + } + } + }, + "source": [ + "## Bokeh" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true, + "extensions": { + "jupyter_dashboards": { + "version": 1, + "views": { + "grid_default": { + "col": 0, + "height": 4, + "hidden": true, + "row": 37, + "width": null + }, + "report_default": { + "hidden": false + } + } + } + } + }, + "outputs": [], + "source": [ + "import bokeh\n", + "from bokeh.models import ColumnDataSource\n", + "from bokeh.plotting import figure, show, output_notebook" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "extensions": { + "jupyter_dashboards": { + "version": 1, + "views": { + "grid_default": { + "hidden": true + }, + "report_default": { + "hidden": false + } + } + } + } + }, + "source": [ + "*Note: Use inline mode so Bokeh loads properly in deployed dashboards.*" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "extensions": { + "jupyter_dashboards": { + "version": 1, + "views": { + "grid_default": { + "hidden": true + }, + "report_default": { + "hidden": false + } + } + } + } + }, + "outputs": [], + "source": [ + "output_notebook(bokeh.resources.INLINE)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "extensions": { + "jupyter_dashboards": { + "version": 1, + "views": { + "grid_default": { + "hidden": true + }, + "report_default": { + "hidden": false + } + } + } + } + }, + "outputs": [], + "source": [ + "source = ColumnDataSource(data=dict(x=x, y=y))\n", + "\n", + "p = figure(title=\"Bokeh example\", plot_height=300, plot_width=600)\n", + "p.line('x', 'y', source=source, color=\"#2222aa\", line_width=3)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true, + "extensions": { + "jupyter_dashboards": { + "version": 1, + "views": { + "grid_default": { + "col": 0, + "height": 4, + "hidden": true, + "row": 37, + "width": null + }, + "report_default": { + "hidden": false + } + } + } + } + }, + "outputs": [], + "source": [ + "def update(f, w=2, A=1, phi=0):\n", + " if f == \"sin\": func = np.sin\n", + " elif f == \"cos\": func = np.cos\n", + " elif f == \"tan\": func = np.tan\n", + " source.data['y'] = A * func(w * x + phi)\n", + " bokeh.io.push_notebook()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "extensions": { + "jupyter_dashboards": { + "version": 1, + "views": { + "grid_default": { + "col": 4, + "height": 13, + "hidden": false, + "row": 31, + "width": 8 + }, + "report_default": { + "hidden": false + } + } + } + } + }, + "outputs": [], + "source": [ + "show(p, notebook_handle=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "extensions": { + "jupyter_dashboards": { + "version": 1, + "views": { + "grid_default": { + "col": 4, + "height": 5, + "hidden": false, + "row": 44, + "width": 8 + }, + "report_default": { + "hidden": false + } + } + } + } + }, + "outputs": [], + "source": [ + "from ipywidgets import interact\n", + "_ = interact(update, f=[\"sin\", \"cos\", \"tan\"], w=(0,100), A=(1,10), phi=(0, 10, 0.1))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "extensions": { + "jupyter_dashboards": { + "version": 1, + "views": { + "grid_default": { + "col": 0, + "height": 14, + "hidden": false, + "row": 2, + "width": 4 + }, + "report_default": { + "hidden": false + } + } + } + } + }, + "source": [ + "## plotly" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true, + "extensions": { + "jupyter_dashboards": { + "version": 1, + "views": { + "grid_default": { + "hidden": true + }, + "report_default": {} + } + } + } + }, + "outputs": [], + "source": [ + "import plotly.offline as py\n", + "import plotly.graph_objs as go" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "extensions": { + "jupyter_dashboards": { + "version": 1, + "views": { + "grid_default": { + "col": 0, + "height": 4, + "hidden": true, + "row": 34, + "width": 4 + }, + "report_default": {} + } + } + } + }, + "outputs": [], + "source": [ + "py.init_notebook_mode(connected=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "extensions": { + "jupyter_dashboards": { + "version": 1, + "views": { + "grid_default": { + "col": 4, + "height": 14, + "hidden": false, + "row": 2, + "width": 8 + }, + "report_default": { + "hidden": false + } + } + } + } + }, + "outputs": [], + "source": [ + "trace0 = go.Scatter(x=x, y=y)\n", + "data = go.Data([trace0])\n", + "margin = go.Margin(l=10, r=10, t=50, b=50)\n", + "layout = go.Layout(title='plotly example', width=600, height=400, margin=margin)\n", + "py.iplot(go.Figure(data=data, layout=layout))" + ] + } + ], + "metadata": { + "extensions": { + "jupyter_dashboards": { + "activeView": "grid_default", + "version": 1, + "views": { + "grid_default": { + "cellMargin": 10, + "defaultCellHeight": 20, + "layoutStrategy": "packed", + "maxColumns": 12, + "name": "grid", + "type": "grid" + }, + "report_default": { + "name": "report", + "type": "report" + } + } + } + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.2" + }, + "widgets": { + "state": { + "0438d82ccbd54063861ced1010c33204": { + "views": [] + }, + "38c640e0fd3b4e728f41be141cce2b0b": { + "views": [] + }, + "599a920204e047bc97b5827f8f75fecd": { + "views": [] + }, + "713b58c94f5d460eb7ef2c617111f91e": { + "views": [] + }, + "b753519274834cc3b899d899d9b19c68": { + "views": [] + }, + "c8ea29fd949a4b52a45f392559ca889c": { + "views": [] + }, + "d45ef231790548c88b3b8052cf8e6535": { + "views": [ + { + "cell_index": 15 + } + ] + }, + "e38b17ebcb1e4312919a62fbd06e54f5": { + "views": [] + }, + "e97da481bbb44d7985b42b8e2e6612d8": { + "views": [] + }, + "fc9e9e4d83fb474bac7cb676e5b6b345": { + "views": [] + } + }, + "version": "1.1.2" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/etc/notebooks/system-test/Basic.ipynb b/etc/notebooks/test/system-test/Basic.ipynb similarity index 94% rename from etc/notebooks/system-test/Basic.ipynb rename to etc/notebooks/test/system-test/Basic.ipynb index 22c5674..e24e189 100644 --- a/etc/notebooks/system-test/Basic.ipynb +++ b/etc/notebooks/test/system-test/Basic.ipynb @@ -22,7 +22,7 @@ } }, "source": [ - "#Markdown Cell\n", + "# Markdown Cell\n", "This test will look for the header above in layout view and dashboard view." ] } @@ -62,7 +62,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.5.1" + "version": "3.6.2" }, "widgets": { "state": {}, @@ -70,5 +70,5 @@ } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/etc/notebooks/test/test_busy_indicator.ipynb b/etc/notebooks/test/test_busy_indicator.ipynb index c4ad489..cf40094 100644 --- a/etc/notebooks/test/test_busy_indicator.ipynb +++ b/etc/notebooks/test/test_busy_indicator.ipynb @@ -29,7 +29,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": { "collapsed": true, "extensions": { @@ -58,9 +58,8 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": { - "collapsed": false, "extensions": { "jupyter_dashboards": { "version": 1, @@ -79,20 +78,7 @@ } } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "5 ...\n", - "4 ...\n", - "3 ...\n", - "2 ...\n", - "1 ...\n", - "GONE!\n" - ] - } - ], + "outputs": [], "source": [ "for i in range(5,0,-1):\n", " print(i, '...', flush=True)\n", @@ -837,7 +823,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.5.1" + "version": "3.6.2" }, "widgets": { "state": {}, @@ -845,5 +831,5 @@ } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/etc/notebooks/test/test_clear_output.ipynb b/etc/notebooks/test/test_clear_output.ipynb index bd6df4f..9893323 100644 --- a/etc/notebooks/test/test_clear_output.ipynb +++ b/etc/notebooks/test/test_clear_output.ipynb @@ -29,7 +29,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false, "extensions": { "jupyter_dashboards": { "version": 1, @@ -53,7 +52,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false, "extensions": { "jupyter_dashboards": { "version": 1, @@ -71,15 +69,16 @@ "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", - "from ipywidgets import *\n", - "import numpy as np" + "import numpy as np\n", + "\n", + "from ipywidgets import interact\n", + "from ipykernel.pylab.backend_inline import flush_figures" ] }, { "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false, "extensions": { "jupyter_dashboards": { "version": 1, @@ -107,30 +106,9 @@ " fig, ax = plt.subplots()\n", " x = np.random.randn(points)\n", " y = np.random.randn(points)\n", - " ax.scatter(x, y)" + " ax.scatter(x, y)\n", + " flush_figures()" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true, - "extensions": { - "jupyter_dashboards": { - "version": 1, - "views": { - "grid_default": { - "hidden": true - }, - "report_default": { - "hidden": false - } - } - } - } - }, - "outputs": [], - "source": [] } ], "metadata": { @@ -170,7 +148,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.5.1" + "version": "3.6.2" }, "widgets": { "state": {}, @@ -178,5 +156,5 @@ } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/etc/notebooks/test/test_html_javascript.ipynb b/etc/notebooks/test/test_html_javascript.ipynb index 3ab36d7..b720560 100644 --- a/etc/notebooks/test/test_html_javascript.ipynb +++ b/etc/notebooks/test/test_html_javascript.ipynb @@ -31,7 +31,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false, "extensions": { "jupyter_dashboards": { "version": 1, @@ -60,7 +59,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false, "extensions": { "jupyter_dashboards": { "version": 1, @@ -87,7 +85,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false, "extensions": { "jupyter_dashboards": { "version": 1, @@ -108,24 +105,6 @@ "var cells = document.getElementsByClassName('rendered_html')\n", "cells[0].style.backgroundColor = 'red';" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true, - "extensions": { - "jupyter_dashboards": { - "version": 1, - "views": { - "grid_default": {}, - "report_default": {} - } - } - } - }, - "outputs": [], - "source": [] } ], "metadata": { @@ -164,7 +143,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.5.1" + "version": "3.6.2" }, "widgets": { "state": {}, @@ -172,5 +151,5 @@ } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/etc/notebooks/test/test_layout.ipynb b/etc/notebooks/test/test_layout.ipynb index dfddeef..f1b50d8 100644 --- a/etc/notebooks/test/test_layout.ipynb +++ b/etc/notebooks/test/test_layout.ipynb @@ -33,7 +33,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false, "extensions": { "jupyter_dashboards": { "version": 1, @@ -84,7 +83,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false, "extensions": { "jupyter_dashboards": { "version": 1, @@ -117,7 +115,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false, "extensions": { "jupyter_dashboards": { "version": 1, @@ -167,7 +164,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false, "extensions": { "jupyter_dashboards": { "version": 1, @@ -197,7 +193,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false, "extensions": { "jupyter_dashboards": { "version": 1, @@ -222,7 +217,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false, "extensions": { "jupyter_dashboards": { "version": 1, @@ -273,28 +267,6 @@ "\n", "The widget to the left should update as you interact with it." ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true, - "extensions": { - "jupyter_dashboards": { - "version": 1, - "views": { - "grid_default": { - "hidden": true - }, - "report_default": { - "hidden": false - } - } - } - } - }, - "outputs": [], - "source": [] } ], "metadata": { @@ -333,7 +305,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.5.1" + "version": "3.6.2" }, "widgets": { "state": {}, @@ -341,5 +313,5 @@ } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/etc/notebooks/test/test_layout_basic.ipynb b/etc/notebooks/test/test_layout_basic.ipynb index b896ca2..edb89b4 100644 --- a/etc/notebooks/test/test_layout_basic.ipynb +++ b/etc/notebooks/test/test_layout_basic.ipynb @@ -78,7 +78,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false, "extensions": { "jupyter_dashboards": { "version": 1, @@ -99,14 +98,13 @@ }, "outputs": [], "source": [ - "Image('https://pbs.twimg.com/profile_images/351495785/urth_caffe.png_400x400.jpg')" + "Image('http://blog.jupyter.org/content/images/2015/02/jupyter-sq-text.png')" ] }, { "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false, "extensions": { "jupyter_dashboards": { "version": 1, @@ -132,7 +130,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false, "extensions": { "jupyter_dashboards": { "version": 1, @@ -188,28 +185,6 @@ "\n", "The widgets to the left should update as you interact with any of them." ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true, - "extensions": { - "jupyter_dashboards": { - "version": 1, - "views": { - "grid_default": { - "hidden": true - }, - "report_default": { - "hidden": false - } - } - } - } - }, - "outputs": [], - "source": [] } ], "metadata": { @@ -248,7 +223,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.5.1" + "version": "3.6.2" }, "widgets": { "state": {}, @@ -256,5 +231,5 @@ } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/etc/notebooks/test/test_markdown.ipynb b/etc/notebooks/test/test_markdown.ipynb index 6ec6c76..46bc0c6 100644 --- a/etc/notebooks/test/test_markdown.ipynb +++ b/etc/notebooks/test/test_markdown.ipynb @@ -79,7 +79,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false, "extensions": { "jupyter_dashboards": { "version": 1, @@ -141,7 +140,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.5.1" + "version": "3.6.2" }, "widgets": { "state": {}, @@ -149,5 +148,5 @@ } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/etc/notebooks/test/test_no_layout.ipynb b/etc/notebooks/test/test_no_layout.ipynb index 3df95cf..93de5fe 100644 --- a/etc/notebooks/test/test_no_layout.ipynb +++ b/etc/notebooks/test/test_no_layout.ipynb @@ -45,9 +45,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "sns.stripplot(x=\"day\", y=\"total_bill\", hue=\"time\", data=tips)" @@ -70,7 +68,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.5.1" + "version": "3.6.2" }, "widgets": { "state": {}, @@ -78,5 +76,5 @@ } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/etc/notebooks/test/test_widget_overlap.ipynb b/etc/notebooks/test/test_widget_overlap.ipynb index 1807665..cf587f8 100644 --- a/etc/notebooks/test/test_widget_overlap.ipynb +++ b/etc/notebooks/test/test_widget_overlap.ipynb @@ -31,7 +31,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false, "extensions": { "jupyter_dashboards": { "version": 1, @@ -58,7 +57,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false, "extensions": { "jupyter_dashboards": { "version": 1, @@ -122,7 +120,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.5.1" + "version": "3.6.2" }, "widgets": { "state": {}, @@ -130,5 +128,5 @@ } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/system-test/dashboard-buttons-test.js b/system-test/dashboard-buttons-test.js index a38bb9c..4c81d3c 100644 --- a/system-test/dashboard-buttons-test.js +++ b/system-test/dashboard-buttons-test.js @@ -7,7 +7,7 @@ var boilerplate = new Boilerplate(); * Tests clicking through the dashboard buttons in the notebook toolbar. */ describe('Dashboard View Buttons', function() { - boilerplate.setup(this.title, '/notebooks/system-test/Basic.ipynb'); + boilerplate.setup(this.title, '/notebooks/test/system-test/Basic.ipynb'); var dashboard = boilerplate.dashboard; it('clicking layout view should switch to layout view', function(done) { diff --git a/system-test/dashboard-menu-test.js b/system-test/dashboard-menu-test.js index b796907..b9e1a0f 100644 --- a/system-test/dashboard-menu-test.js +++ b/system-test/dashboard-menu-test.js @@ -7,7 +7,7 @@ var boilerplate = new Boilerplate(); * Tests clicking through the dashboard buttons in the View menu. */ describe('Dashboard View Menu Buttons', function() { - boilerplate.setup(this.title, '/notebooks/system-test/Basic.ipynb'); + boilerplate.setup(this.title, '/notebooks/test/system-test/Basic.ipynb'); var dashboard = boilerplate.dashboard; it('clicking "Layout Dashboard" should switch to layout view', function(done) { dashboard.clickLayoutViewMenuButton();