Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initial go at next version, improve maintainability #19

Merged
merged 50 commits into from
Sep 14, 2019

Conversation

ceball
Copy link
Contributor

@ceball ceball commented Jun 10, 2019

Added some basic missing features, and cleaned up some internals.

New features

Internal changes

Make nbsmoke a bit more maintainable by separating out the various parts, adding a few docstrings, and improving test coverage.

Some ipython magic handling has probably changed (should be an improvement/more consistent behavior).

This work is over a year old. I think the need to lint check notebooks that involve a lot of magics has gone away since this work was originally done. However, the changes here still bring some benefits (e.g. the modularization will also allow functionality to be removed easily).

Details:

  • Separated out parts into modules:

    • the original/basic functionality (checking notebooks run without errors)

    • "verifying" (copied from datashader, which was copied from bokeh?)

    • lint/flake checking (using pyflakes)

    • magics handling for flakes

  • Improve lint/magics debugging by storing various intermediate files.

  • Simplify lint checking of magics, making behavior more consistent.

  • Replaced custom/hacky magics parsing with stuff from ipython itself (fixes Replace custom magics parsing with something from ipython itself #8)

  • MAGICS_TO_IGNORE and SIMPLE_MAGICS: separated cell and line magics (internal change to support more magics) - fixes Lint checking: Separate magics skip list into cell and line #23

  • Improved unit test coverage (think all code is now covered except "verify").

Still to do this PR:

Future work:

  • Figure out how to measure test coverage in a way that doesn't miss out module-level lines (module-level definitions, imports, etc are all missed because apparently they happen before coverage collection begins; I suspect this is something to do with my not knowing how pytest plugins work) Self tests: how to get accurate coverage report? #26

  • Find datashader/bokeh "verify nb" unit tests and copy them in here? (verify nb stuff is copied from datashader, which appears to be from bokeh originally...I think the original plan was to replace datashader/bokeh "verify nb" with nbsmoke...) nb "verify" functionality is not tested #28

…ding some docstrings, and improving test coverage.

Some ipython magic handling has probably changed (should be an improvement/more consistent behavior).
@jbednar jbednar requested a review from jsignell June 10, 2019 14:40
Copy link

@jbednar jbednar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@julia, I'll leave it up to you whether to include the magics processing; if it's not needed for our current websites I'm inclined to omit it due to the various disclaimers it has). Also, verify.py mentions being copied from "datashader's examples/nb", but I can't find any file or directory like that, nor any VerifyNb references, in datashader. Maybe that's long gone?

@ceball
Copy link
Contributor Author

ceball commented Jun 10, 2019

Yes, I'm also very happy for decisions to come from @jsignell. Here's my recollection/opinion for background...

We must have removed the "verify nb" code from datashader after the work for this pr was originally done, and hence that comment is out of date (in this pr, verify has just been broken out to its own file; the code is already present in current nbsmoke). I think the original source for datashader's verify was bokeh (I was not the author of any of it, and did not add it to datashader - it's likely I just wanted to remove it from datashader and have it "in one place"...of course in doing that I just ended up adding it in yet another place ;) ).

As for the magics processing for flake checking, I'd probably keep it all to start with (assuming it works!). Once there's no more hv opts magic in pyviz notebooks, then I'd happily delete the hv magics file. (Or if already at that stage, it could be deleted now.)

The rest of the magics processing contains at least some things that are useful for flake checking notebooks in general. E.g. %time f() gets flake checked as f(). So maybe decide which bits are useful, then aim later to replace (parts of) their implementation with what is available from jupyter/ipython (e.g. surely parsing can come from them...)?

@jbednar
Copy link

jbednar commented Jun 10, 2019

Sounds good. The hv magics should all be gone already, but if we missed some, then not having support for them would be a good way to find any that are left so we can fix them!

@ceball
Copy link
Contributor Author

ceball commented Jun 11, 2019

Ok, makes sense to remove the hv magics handling in this PR then (I'll do that).

@ceball
Copy link
Contributor Author

ceball commented Jun 11, 2019

A note about the notebook flake checking in general. To give an idea of the kinds of things it finds, see e.g.
holoviz/holoviews#3550, holoviz/holoviews#2690, holoviz/holoviews#2439, holoviz/holoviews#2091.

If notebook flake checking doesn't produce false positives and is quick to run (I think both should be true...), I'd be in favor of enabling it for projects. As part of this pr I'll run flake checking over all the pyviz projects and report the results back here.

@jbednar
Copy link

jbednar commented Jun 11, 2019

Sounds great, thanks!

@jsignell
Copy link
Contributor

I think this is all a good plan and will make it easier to maintain nbsmoke. I just wrote a sphinx time magic stripper the other day... So @ceball if you have the time to take out the holoviews magics stuff that'd be great. Let me know when you are done.

@jsignell
Copy link
Contributor

Re Python 2, I don't think it is very important at all to have nbsmoke work for it.

@jbednar
Copy link

jbednar commented Jun 11, 2019

Re Python 2, I don't think it is very important at all to have nbsmoke work for it.

Right; we can just run smoke tests under py3; no problem.

@ceball
Copy link
Contributor Author

ceball commented Jun 12, 2019

I have not yet removed hv magics handling, but I've run this PR's nbsmoke over all pyviz projects (I think I got them all!). I'll re-run after removing hv magics handling, but a few questions have come up:

  • nbsmoke could easily support ipython's display() (i.e. using display without importing). Should it? (My vote: it should complain. But maybe I'd feel different if I were a heavy notebook user...)

  • A few pyviz notebooks use some ipython aliases, e.g. ls ./output, rm -r ./vicksburg_south. I think we agreed not to use those as they are confusing (e.g. ls is ok on win, but ls -l is not because ls actually maps to dir...). What do you think?

  • hvplot relies on import side effects, so there are apparently unused imports in hvplot examples. I'm opposed to imports with side effects, but I also think they are a good idea for hvplot :) What should nbsmoke do? Allow a whitelist of acceptable unused imports to be supplied? Or should the imports be explained with a #noqa comment? Any better idea?

  • I noticed a complaint about a __future__ import not being at the start of the file. I'm surprised to see a __future__ import in an example notebook, and I guess it could be avoided in the example here, but nbsmoke could be changed to handle __future__ imports better.

  • I also noticed that one or more pyviz notebook has "#noqa". I thought we weren't going to use that? Or if using, maybe it should say why, e.g. #noqa: imported for you to use in your solution?)


Output follows...

(Note: the timings are unlikely to be realistic for your hardware; they were run in the background on a win/32bit/2GB/1GHz atom laptop, which was primarily showing kids tv ;)

pyviz

(nbsdev) D:\code\pyviz\pyviz>pytest -v --nbsmoke-lint --nbsmoke-lint-debug examples
=============================================================== test session starts ================================================================
platform win32 -- Python 3.6.8, pytest-4.4.1, py-1.8.0, pluggy-0.9.0 -- d:\venvs\nbsdev\scripts\python.exe
cachedir: .pytest_cache
rootdir: D:\code\pyviz\pyviz, inifile: tox.ini
plugins: cov-2.7.1, nbsmoke-0.2.7.post3+gc839325.dirty
collected 26 items / 78 skipped

examples/topics/index.ipynb::D:\code\pyviz\pyviz\examples\topics\index.ipynb PASSED                                                           [  3%]
examples/topics/nyc_taxi.ipynb::D:\code\pyviz\pyviz\examples\topics\nyc_taxi.ipynb PASSED                                                     [  7%]
examples/tutorial/00_Setup.ipynb::D:\code\pyviz\pyviz\examples\tutorial\00_Setup.ipynb PASSED                                                 [ 11%]
examples/tutorial/01_Workflow_Introduction.ipynb::D:\code\pyviz\pyviz\examples\tutorial\01_Workflow_Introduction.ipynb PASSED                 [ 15%]
examples/tutorial/02_Annotating_Data.ipynb::D:\code\pyviz\pyviz\examples\tutorial\02_Annotating_Data.ipynb PASSED                             [ 19%]
examples/tutorial/03_Customizing_Visual_Appearance.ipynb::D:\code\pyviz\pyviz\examples\tutorial\03_Customizing_Visual_Appearance.ipynb PASSED [ 23%]
examples/tutorial/04_Working_with_Tabular_Data.ipynb::D:\code\pyviz\pyviz\examples\tutorial\04_Working_with_Tabular_Data.ipynb PASSED         [ 26%]
examples/tutorial/05_Working_with_Gridded_Data.ipynb::D:\code\pyviz\pyviz\examples\tutorial\05_Working_with_Gridded_Data.ipynb PASSED         [ 30%]
examples/tutorial/06_Network_Graphs.ipynb::D:\code\pyviz\pyviz\examples\tutorial\06_Network_Graphs.ipynb PASSED                               [ 34%]
examples/tutorial/07_Geographic_Data.ipynb::D:\code\pyviz\pyviz\examples\tutorial\07_Geographic_Data.ipynb PASSED                             [ 38%]
examples/tutorial/08_Custom_Interactivity.ipynb::D:\code\pyviz\pyviz\examples\tutorial\08_Custom_Interactivity.ipynb PASSED                   [ 42%]
examples/tutorial/09_Operations_and_Pipelines.ipynb::D:\code\pyviz\pyviz\examples\tutorial\09_Operations_and_Pipelines.ipynb PASSED           [ 46%]
examples/tutorial/10_Working_with_Large_Datasets.ipynb::D:\code\pyviz\pyviz\examples\tutorial\10_Working_with_Large_Datasets.ipynb PASSED     [ 50%]
examples/tutorial/11_Streaming_Data.ipynb::D:\code\pyviz\pyviz\examples\tutorial\11_Streaming_Data.ipynb PASSED                               [ 53%]
examples/tutorial/12_Parameters_and_Widgets.ipynb::D:\code\pyviz\pyviz\examples\tutorial\12_Parameters_and_Widgets.ipynb PASSED               [ 57%]
examples/tutorial/13_Deploying_Bokeh_Apps.ipynb::D:\code\pyviz\pyviz\examples\tutorial\13_Deploying_Bokeh_Apps.ipynb PASSED                   [ 61%]
examples/tutorial/A1_Exploration_with_Containers.ipynb::D:\code\pyviz\pyviz\examples\tutorial\A1_Exploration_with_Containers.ipynb PASSED     [ 65%]
examples/tutorial/A2_Dashboard_Workflow.ipynb::D:\code\pyviz\pyviz\examples\tutorial\A2_Dashboard_Workflow.ipynb PASSED                       [ 69%]
examples/tutorial/index.ipynb::D:\code\pyviz\pyviz\examples\tutorial\index.ipynb PASSED                                                       [ 73%]
examples/tutorial/scipy18.ipynb::D:\code\pyviz\pyviz\examples\tutorial\scipy18.ipynb PASSED                                                   [ 76%]
examples/tutorial/strata_ny18.ipynb::D:\code\pyviz\pyviz\examples\tutorial\strata_ny18.ipynb PASSED                                           [ 80%]
examples/tutorial/exercises/Exercise-1-making-data-visualizable.ipynb::D:\code\pyviz\pyviz\examples\tutorial\exercises\Exercise-1-making-data-visualizable.ipynb PASSED [ 84%]
examples/tutorial/exercises/Exercise-2-datasets-and-collections-of-data.ipynb::D:\code\pyviz\pyviz\examples\tutorial\exercises\Exercise-2-datasets-and-collections-of-data.ipynb PASSED [ 88%]
examples/tutorial/exercises/Exercise-3-networks-and-geoviews.ipynb::D:\code\pyviz\pyviz\examples\tutorial\exercises\Exercise-3-networks-and-geoviews.ipynb PASSED [ 92%]
examples/tutorial/exercises/Exercise-4-dynamic-interactions.ipynb::D:\code\pyviz\pyviz\examples\tutorial\exercises\Exercise-4-dynamic-interactions.ipynb PASSED [ 96%]
examples/tutorial/exercises/Exercise-5-exporting-and-deploying-apps.ipynb::D:\code\pyviz\pyviz\examples\tutorial\exercises\Exercise-5-exporting-and-deploying-apps.ipynb PASSED [100%]

====================================================== 26 passed, 78 skipped in 60.23 seconds ======================================================

geoviews

(nbsdev) D:\code\ioam\geoviews2>pytest -v --nbsmoke-lint --nbsmoke-lint-debug examples
=============================================================== test session starts ================================================================
platform win32 -- Python 3.6.8, pytest-4.4.1, py-1.8.0, pluggy-0.9.0 -- d:\venvs\nbsdev\scripts\python.exe
cachedir: .pytest_cache
rootdir: D:\code\ioam\geoviews2, inifile: tox.ini
plugins: cov-2.7.1, nbsmoke-0.2.7.post3+gc839325.dirty
collected 35 items / 70 skipped

examples/Homepage.ipynb::D:\code\ioam\geoviews2\examples\Homepage.ipynb PASSED                                                                [  2%]
examples/gallery/bokeh/airport_graph.ipynb::D:\code\ioam\geoviews2\examples\gallery\bokeh\airport_graph.ipynb PASSED                          [  5%]
examples/gallery/bokeh/brexit_choropleth.ipynb::D:\code\ioam\geoviews2\examples\gallery\bokeh\brexit_choropleth.ipynb PASSED                  [  8%]
examples/gallery/bokeh/city_populations_2050.ipynb::D:\code\ioam\geoviews2\examples\gallery\bokeh\city_populations_2050.ipynb FAILED          [ 11%]
examples/gallery/bokeh/filled_contours.ipynb::D:\code\ioam\geoviews2\examples\gallery\bokeh\filled_contours.ipynb FAILED                      [ 14%]
examples/gallery/bokeh/great_circle.ipynb::D:\code\ioam\geoviews2\examples\gallery\bokeh\great_circle.ipynb PASSED                            [ 17%]
examples/gallery/bokeh/katrina_track.ipynb::D:\code\ioam\geoviews2\examples\gallery\bokeh\katrina_track.ipynb PASSED                          [ 20%]
examples/gallery/bokeh/new_york_boroughs.ipynb::D:\code\ioam\geoviews2\examples\gallery\bokeh\new_york_boroughs.ipynb PASSED                  [ 22%]
examples/gallery/bokeh/orthographic_vectorfield.ipynb::D:\code\ioam\geoviews2\examples\gallery\bokeh\orthographic_vectorfield.ipynb PASSED    [ 25%]
examples/gallery/bokeh/tile_sources.ipynb::D:\code\ioam\geoviews2\examples\gallery\bokeh\tile_sources.ipynb PASSED                            [ 28%]
examples/gallery/bokeh/trimesh_uk.ipynb::D:\code\ioam\geoviews2\examples\gallery\bokeh\trimesh_uk.ipynb PASSED                                [ 31%]
examples/gallery/bokeh/vectorfield_example.ipynb::D:\code\ioam\geoviews2\examples\gallery\bokeh\vectorfield_example.ipynb PASSED              [ 34%]
examples/gallery/bokeh/world_population.ipynb::D:\code\ioam\geoviews2\examples\gallery\bokeh\world_population.ipynb PASSED                    [ 37%]
examples/gallery/bokeh/xarray_image.ipynb::D:\code\ioam\geoviews2\examples\gallery\bokeh\xarray_image.ipynb PASSED                            [ 40%]
examples/gallery/bokeh/xarray_quadmesh.ipynb::D:\code\ioam\geoviews2\examples\gallery\bokeh\xarray_quadmesh.ipynb PASSED                      [ 42%]
examples/gallery/matplotlib/airport_graph.ipynb::D:\code\ioam\geoviews2\examples\gallery\matplotlib\airport_graph.ipynb PASSED                [ 45%]
examples/gallery/matplotlib/brexit_choropleth.ipynb::D:\code\ioam\geoviews2\examples\gallery\matplotlib\brexit_choropleth.ipynb PASSED        [ 48%]
examples/gallery/matplotlib/city_population.ipynb::D:\code\ioam\geoviews2\examples\gallery\matplotlib\city_population.ipynb PASSED            [ 51%]
examples/gallery/matplotlib/filled_contours.ipynb::D:\code\ioam\geoviews2\examples\gallery\matplotlib\filled_contours.ipynb PASSED            [ 54%]
examples/gallery/matplotlib/great_circle.ipynb::D:\code\ioam\geoviews2\examples\gallery\matplotlib\great_circle.ipynb PASSED                  [ 57%]
examples/gallery/matplotlib/katrina_track.ipynb::D:\code\ioam\geoviews2\examples\gallery\matplotlib\katrina_track.ipynb PASSED                [ 60%]
examples/gallery/matplotlib/new_york_boroughs.ipynb::D:\code\ioam\geoviews2\examples\gallery\matplotlib\new_york_boroughs.ipynb PASSED        [ 62%]
examples/gallery/matplotlib/orthographic_vectorfield.ipynb::D:\code\ioam\geoviews2\examples\gallery\matplotlib\orthographic_vectorfield.ipynb PASSED [ 65%]
examples/gallery/matplotlib/tile_sources.ipynb::D:\code\ioam\geoviews2\examples\gallery\matplotlib\tile_sources.ipynb PASSED                  [ 68%]
examples/gallery/matplotlib/trimesh_uk.ipynb::D:\code\ioam\geoviews2\examples\gallery\matplotlib\trimesh_uk.ipynb PASSED                      [ 71%]
examples/gallery/matplotlib/vectorfield_example.ipynb::D:\code\ioam\geoviews2\examples\gallery\matplotlib\vectorfield_example.ipynb PASSED    [ 74%]
examples/gallery/matplotlib/world_population.ipynb::D:\code\ioam\geoviews2\examples\gallery\matplotlib\world_population.ipynb PASSED          [ 77%]
examples/gallery/matplotlib/xarray_image.ipynb::D:\code\ioam\geoviews2\examples\gallery\matplotlib\xarray_image.ipynb PASSED                  [ 80%]
examples/gallery/matplotlib/xarray_quadmesh.ipynb::D:\code\ioam\geoviews2\examples\gallery\matplotlib\xarray_quadmesh.ipynb PASSED            [ 82%]
examples/user_guide/Geometries.ipynb::D:\code\ioam\geoviews2\examples\user_guide\Geometries.ipynb FAILED                                      [ 85%]
examples/user_guide/Gridded_Datasets_I.ipynb::D:\code\ioam\geoviews2\examples\user_guide\Gridded_Datasets_I.ipynb PASSED                      [ 88%]
examples/user_guide/Gridded_Datasets_II.ipynb::D:\code\ioam\geoviews2\examples\user_guide\Gridded_Datasets_II.ipynb PASSED                    [ 91%]
examples/user_guide/Projections.ipynb::D:\code\ioam\geoviews2\examples\user_guide\Projections.ipynb PASSED                                    [ 94%]
examples/user_guide/Resampling_Grids.ipynb::D:\code\ioam\geoviews2\examples\user_guide\Resampling_Grids.ipynb PASSED                          [ 97%]
examples/user_guide/Working_with_Bokeh.ipynb::D:\code\ioam\geoviews2\examples\user_guide\Working_with_Bokeh.ipynb PASSED                      [100%]

===================================================================== FAILURES =====================================================================
___________________________________________________________________ test session ___________________________________________________________________
D:\code\ioam\geoviews2\examples\gallery\bokeh\city_populations_2050.ipynb
** line 18 col 0: 'geoviews.dim' imported but unused
To see python source that was checked by pyflakes: D:\code\ioam\geoviews2\examples\gallery\bokeh\city_populations_2050.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\ioam\geoviews2\examples\gallery\bokeh\city_populations_2050.nbsmoke-debug-premagicprocess.py
___________________________________________________________________ test session ___________________________________________________________________
D:\code\ioam\geoviews2\examples\gallery\bokeh\filled_contours.ipynb
** line 15 col 0: 'holoviews as hv' imported but unused
To see python source that was checked by pyflakes: D:\code\ioam\geoviews2\examples\gallery\bokeh\filled_contours.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\ioam\geoviews2\examples\gallery\bokeh\filled_contours.nbsmoke-debug-premagicprocess.py
___________________________________________________________________ test session ___________________________________________________________________
D:\code\ioam\geoviews2\examples\user_guide\Geometries.ipynb
** line 16 col 0: 'numpy as np' imported but unused
To see python source that was checked by pyflakes: D:\code\ioam\geoviews2\examples\user_guide\Geometries.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\ioam\geoviews2\examples\user_guide\Geometries.nbsmoke-debug-premagicprocess.py
================================================= 3 failed, 32 passed, 70 skipped in 49.11 seconds =================================================

holoviews

(nbsdev) D:\code\ioam\holoviews2>pytest -v --nbsmoke-lint --nbsmoke-lint-debug examples
=============================================================== test session starts ================================================================
platform win32 -- Python 3.6.8, pytest-4.4.1, py-1.8.0, pluggy-0.9.0 -- d:\venvs\nbsdev\scripts\python.exe
cachedir: .pytest_cache
rootdir: D:\code\ioam\holoviews2
plugins: cov-2.7.1, nbsmoke-0.2.7.post3+gc839325.dirty
collected 263 items

examples/gallery/demos/bokeh/area_chart.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\bokeh\area_chart.ipynb PASSED                   [  0%]
examples/gallery/demos/bokeh/autompg_histogram.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\bokeh\autompg_histogram.ipynb PASSED     [  0%]
examples/gallery/demos/bokeh/autompg_violins.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\bokeh\autompg_violins.ipynb PASSED         [  1%]
examples/gallery/demos/bokeh/bachelors_degrees_by_gender.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\bokeh\bachelors_degrees_by_gender.ipynb PASSED [  1%]
examples/gallery/demos/bokeh/bars_economic.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\bokeh\bars_economic.ipynb PASSED             [  1%]
examples/gallery/demos/bokeh/box_draw_roi_editor.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\bokeh\box_draw_roi_editor.ipynb PASSED [  2%]
examples/gallery/demos/bokeh/boxplot_chart.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\bokeh\boxplot_chart.ipynb PASSED             [  2%]
examples/gallery/demos/bokeh/choropleth_data_link.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\bokeh\choropleth_data_link.ipynb PASSED [  3%]
examples/gallery/demos/bokeh/directed_airline_routes.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\bokeh\directed_airline_routes.ipynb PASSED [  3%]
examples/gallery/demos/bokeh/dot_example.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\bokeh\dot_example.ipynb PASSED                 [  3%]
examples/gallery/demos/bokeh/dragon_curve.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\bokeh\dragon_curve.ipynb PASSED               [  4%]
examples/gallery/demos/bokeh/dropdown_economic.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\bokeh\dropdown_economic.ipynb PASSED     [  4%]
examples/gallery/demos/bokeh/emoji_tsne.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\bokeh\emoji_tsne.ipynb PASSED                   [  4%]
examples/gallery/demos/bokeh/energy_sankey.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\bokeh\energy_sankey.ipynb PASSED             [  5%]
examples/gallery/demos/bokeh/hextile_movie_ratings.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\bokeh\hextile_movie_ratings.ipynb PASSED [  5%]
examples/gallery/demos/bokeh/histogram_example.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\bokeh\histogram_example.ipynb PASSED     [  6%]
examples/gallery/demos/bokeh/image_range_tool.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\bokeh\image_range_tool.ipynb PASSED       [  6%]
examples/gallery/demos/bokeh/iris_density_grid.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\bokeh\iris_density_grid.ipynb PASSED     [  6%]
examples/gallery/demos/bokeh/iris_example.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\bokeh\iris_example.ipynb PASSED               [  7%]
examples/gallery/demos/bokeh/iris_grouped_grid.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\bokeh\iris_grouped_grid.ipynb PASSED     [  7%]
examples/gallery/demos/bokeh/iris_splom_example.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\bokeh\iris_splom_example.ipynb PASSED   [  7%]
examples/gallery/demos/bokeh/irregular_quadmesh.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\bokeh\irregular_quadmesh.ipynb PASSED   [  8%]
examples/gallery/demos/bokeh/legend_example.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\bokeh\legend_example.ipynb PASSED           [  8%]
examples/gallery/demos/bokeh/lesmis_example.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\bokeh\lesmis_example.ipynb PASSED           [  9%]
examples/gallery/demos/bokeh/lorenz_attractor_example.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\bokeh\lorenz_attractor_example.ipynb PASSED [  9%]
examples/gallery/demos/bokeh/mandelbrot_section.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\bokeh\mandelbrot_section.ipynb PASSED   [  9%]
examples/gallery/demos/bokeh/measles_example.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\bokeh\measles_example.ipynb PASSED         [ 10%]
examples/gallery/demos/bokeh/network_graph.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\bokeh\network_graph.ipynb PASSED             [ 10%]
examples/gallery/demos/bokeh/nyc_airport_connections.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\bokeh\nyc_airport_connections.ipynb PASSED [ 11%]
examples/gallery/demos/bokeh/nyc_radial_heatmap.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\bokeh\nyc_radial_heatmap.ipynb PASSED   [ 11%]
examples/gallery/demos/bokeh/point_draw_triangulate.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\bokeh\point_draw_triangulate.ipynb PASSED [ 11%]
examples/gallery/demos/bokeh/quiver_demo.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\bokeh\quiver_demo.ipynb PASSED                 [ 12%]
examples/gallery/demos/bokeh/route_chord.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\bokeh\route_chord.ipynb PASSED                 [ 12%]
examples/gallery/demos/bokeh/scatter_economic.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\bokeh\scatter_economic.ipynb PASSED       [ 12%]
examples/gallery/demos/bokeh/square_limit.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\bokeh\square_limit.ipynb PASSED               [ 13%]
examples/gallery/demos/bokeh/step_chart.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\bokeh\step_chart.ipynb PASSED                   [ 13%]
examples/gallery/demos/bokeh/stocks_example.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\bokeh\stocks_example.ipynb PASSED           [ 14%]
examples/gallery/demos/bokeh/texas_choropleth_example.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\bokeh\texas_choropleth_example.ipynb PASSED [ 14%]
examples/gallery/demos/bokeh/timeseries_range_tool.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\bokeh\timeseries_range_tool.ipynb PASSED [ 14%]
examples/gallery/demos/bokeh/topographic_hillshading.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\bokeh\topographic_hillshading.ipynb PASSED [ 15%]
examples/gallery/demos/bokeh/us_unemployment.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\bokeh\us_unemployment.ipynb PASSED         [ 15%]
examples/gallery/demos/bokeh/verhulst_mandelbrot.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\bokeh\verhulst_mandelbrot.ipynb PASSED [ 15%]
examples/gallery/demos/matplotlib/area_chart.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\matplotlib\area_chart.ipynb PASSED         [ 16%]
examples/gallery/demos/matplotlib/autompg_histogram.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\matplotlib\autompg_histogram.ipynb PASSED [ 16%]
examples/gallery/demos/matplotlib/autompg_violins.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\matplotlib\autompg_violins.ipynb PASSED [ 17%]
examples/gallery/demos/matplotlib/bachelors_degrees_by_gender.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\matplotlib\bachelors_degrees_by_gender.ipynb PASSED [ 17%]
examples/gallery/demos/matplotlib/bars_economic.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\matplotlib\bars_economic.ipynb PASSED   [ 17%]
examples/gallery/demos/matplotlib/boxplot_chart.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\matplotlib\boxplot_chart.ipynb PASSED   [ 18%]
examples/gallery/demos/matplotlib/directed_airline_routes.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\matplotlib\directed_airline_routes.ipynb PASSED [ 18%]
examples/gallery/demos/matplotlib/dragon_curve.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\matplotlib\dragon_curve.ipynb PASSED     [ 19%]
examples/gallery/demos/matplotlib/dropdown_economic.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\matplotlib\dropdown_economic.ipynb PASSED [ 19%]
examples/gallery/demos/matplotlib/energy_sankey.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\matplotlib\energy_sankey.ipynb PASSED   [ 19%]
examples/gallery/demos/matplotlib/hextile_movie_ratings.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\matplotlib\hextile_movie_ratings.ipynb PASSED [ 20%]
examples/gallery/demos/matplotlib/histogram_example.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\matplotlib\histogram_example.ipynb PASSED [ 20%]
examples/gallery/demos/matplotlib/iris_density_grid.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\matplotlib\iris_density_grid.ipynb PASSED [ 20%]
examples/gallery/demos/matplotlib/iris_example.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\matplotlib\iris_example.ipynb PASSED     [ 21%]
examples/gallery/demos/matplotlib/iris_grouped_grid.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\matplotlib\iris_grouped_grid.ipynb PASSED [ 21%]
examples/gallery/demos/matplotlib/iris_splom_example.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\matplotlib\iris_splom_example.ipynb PASSED [ 22%]
examples/gallery/demos/matplotlib/irregular_quadmesh.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\matplotlib\irregular_quadmesh.ipynb PASSED [ 22%]
examples/gallery/demos/matplotlib/legend_example.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\matplotlib\legend_example.ipynb PASSED [ 22%]
examples/gallery/demos/matplotlib/lorenz_attractor_example.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\matplotlib\lorenz_attractor_example.ipynb PASSED [ 23%]
examples/gallery/demos/matplotlib/mandelbrot_section.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\matplotlib\mandelbrot_section.ipynb PASSED [ 23%]
examples/gallery/demos/matplotlib/measles_example.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\matplotlib\measles_example.ipynb PASSED [ 23%]
examples/gallery/demos/matplotlib/network_graph.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\matplotlib\network_graph.ipynb PASSED   [ 24%]
examples/gallery/demos/matplotlib/nyc_airport_connections.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\matplotlib\nyc_airport_connections.ipynb PASSED [ 24%]
examples/gallery/demos/matplotlib/nyc_radial_heatmap.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\matplotlib\nyc_radial_heatmap.ipynb PASSED [ 25%]
examples/gallery/demos/matplotlib/polar_scatter_demo.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\matplotlib\polar_scatter_demo.ipynb PASSED [ 25%]
examples/gallery/demos/matplotlib/quiver_demo.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\matplotlib\quiver_demo.ipynb PASSED       [ 25%]
examples/gallery/demos/matplotlib/route_chord.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\matplotlib\route_chord.ipynb PASSED       [ 26%]
examples/gallery/demos/matplotlib/scatter_economic.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\matplotlib\scatter_economic.ipynb PASSED [ 26%]
examples/gallery/demos/matplotlib/square_limit.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\matplotlib\square_limit.ipynb PASSED     [ 26%]
examples/gallery/demos/matplotlib/step_chart.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\matplotlib\step_chart.ipynb PASSED         [ 27%]
examples/gallery/demos/matplotlib/stocks_example.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\matplotlib\stocks_example.ipynb PASSED [ 27%]
examples/gallery/demos/matplotlib/surface_3d.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\matplotlib\surface_3d.ipynb PASSED         [ 28%]
examples/gallery/demos/matplotlib/texas_choropleth_example.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\matplotlib\texas_choropleth_example.ipynb PASSED [ 28%]
examples/gallery/demos/matplotlib/topographic_hillshading.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\matplotlib\topographic_hillshading.ipynb PASSED [ 28%]
examples/gallery/demos/matplotlib/trisurf3d_demo.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\matplotlib\trisurf3d_demo.ipynb PASSED [ 29%]
examples/gallery/demos/matplotlib/us_unemployment.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\matplotlib\us_unemployment.ipynb PASSED [ 29%]
examples/gallery/demos/matplotlib/verhulst_mandelbrot.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\matplotlib\verhulst_mandelbrot.ipynb PASSED [ 30%]
examples/gallery/demos/plotly/surface_3d.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\plotly\surface_3d.ipynb PASSED                 [ 30%]
examples/gallery/demos/plotly/trisurf3d_demo.ipynb::D:\code\ioam\holoviews2\examples\gallery\demos\plotly\trisurf3d_demo.ipynb PASSED         [ 30%]
examples/getting_started/1-Introduction.ipynb::D:\code\ioam\holoviews2\examples\getting_started\1-Introduction.ipynb PASSED                   [ 31%]
examples/getting_started/2-Customization.ipynb::D:\code\ioam\holoviews2\examples\getting_started\2-Customization.ipynb PASSED                 [ 31%]
examples/getting_started/3-Tabular_Datasets.ipynb::D:\code\ioam\holoviews2\examples\getting_started\3-Tabular_Datasets.ipynb PASSED           [ 31%]
examples/getting_started/4-Gridded_Datasets.ipynb::D:\code\ioam\holoviews2\examples\getting_started\4-Gridded_Datasets.ipynb PASSED           [ 32%]
examples/getting_started/5-Live_Data.ipynb::D:\code\ioam\holoviews2\examples\getting_started\5-Live_Data.ipynb PASSED                         [ 32%]
examples/reference/containers/bokeh/DynamicMap.ipynb::D:\code\ioam\holoviews2\examples\reference\containers\bokeh\DynamicMap.ipynb PASSED     [ 33%]
examples/reference/containers/bokeh/GridSpace.ipynb::D:\code\ioam\holoviews2\examples\reference\containers\bokeh\GridSpace.ipynb PASSED       [ 33%]
examples/reference/containers/bokeh/HoloMap.ipynb::D:\code\ioam\holoviews2\examples\reference\containers\bokeh\HoloMap.ipynb PASSED           [ 33%]
examples/reference/containers/bokeh/Layout.ipynb::D:\code\ioam\holoviews2\examples\reference\containers\bokeh\Layout.ipynb PASSED             [ 34%]
examples/reference/containers/bokeh/NdLayout.ipynb::D:\code\ioam\holoviews2\examples\reference\containers\bokeh\NdLayout.ipynb PASSED         [ 34%]
examples/reference/containers/bokeh/NdOverlay.ipynb::D:\code\ioam\holoviews2\examples\reference\containers\bokeh\NdOverlay.ipynb PASSED       [ 34%]
examples/reference/containers/bokeh/Overlay.ipynb::D:\code\ioam\holoviews2\examples\reference\containers\bokeh\Overlay.ipynb PASSED           [ 35%]
examples/reference/containers/matplotlib/DynamicMap.ipynb::D:\code\ioam\holoviews2\examples\reference\containers\matplotlib\DynamicMap.ipynb PASSED [ 35%]
examples/reference/containers/matplotlib/GridSpace.ipynb::D:\code\ioam\holoviews2\examples\reference\containers\matplotlib\GridSpace.ipynb PASSED [ 36%]
examples/reference/containers/matplotlib/HoloMap.ipynb::D:\code\ioam\holoviews2\examples\reference\containers\matplotlib\HoloMap.ipynb PASSED [ 36%]
examples/reference/containers/matplotlib/Layout.ipynb::D:\code\ioam\holoviews2\examples\reference\containers\matplotlib\Layout.ipynb PASSED   [ 36%]
examples/reference/containers/matplotlib/NdLayout.ipynb::D:\code\ioam\holoviews2\examples\reference\containers\matplotlib\NdLayout.ipynb PASSED [ 37%]
examples/reference/containers/matplotlib/NdOverlay.ipynb::D:\code\ioam\holoviews2\examples\reference\containers\matplotlib\NdOverlay.ipynb PASSED [ 37%]
examples/reference/containers/matplotlib/Overlay.ipynb::D:\code\ioam\holoviews2\examples\reference\containers\matplotlib\Overlay.ipynb PASSED [ 38%]
examples/reference/containers/plotly/DynamicMap.ipynb::D:\code\ioam\holoviews2\examples\reference\containers\plotly\DynamicMap.ipynb PASSED   [ 38%]
examples/reference/containers/plotly/GridSpace.ipynb::D:\code\ioam\holoviews2\examples\reference\containers\plotly\GridSpace.ipynb PASSED     [ 38%]
examples/reference/containers/plotly/HoloMap.ipynb::D:\code\ioam\holoviews2\examples\reference\containers\plotly\HoloMap.ipynb PASSED         [ 39%]
examples/reference/containers/plotly/Layout.ipynb::D:\code\ioam\holoviews2\examples\reference\containers\plotly\Layout.ipynb PASSED           [ 39%]
examples/reference/containers/plotly/NdLayout.ipynb::D:\code\ioam\holoviews2\examples\reference\containers\plotly\NdLayout.ipynb PASSED       [ 39%]
examples/reference/containers/plotly/NdOverlay.ipynb::D:\code\ioam\holoviews2\examples\reference\containers\plotly\NdOverlay.ipynb PASSED     [ 40%]
examples/reference/containers/plotly/Overlay.ipynb::D:\code\ioam\holoviews2\examples\reference\containers\plotly\Overlay.ipynb PASSED         [ 40%]
examples/reference/elements/bokeh/Area.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\bokeh\Area.ipynb PASSED                     [ 41%]
examples/reference/elements/bokeh/Arrow.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\bokeh\Arrow.ipynb PASSED                   [ 41%]
examples/reference/elements/bokeh/Bars.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\bokeh\Bars.ipynb PASSED                     [ 41%]
examples/reference/elements/bokeh/Bivariate.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\bokeh\Bivariate.ipynb PASSED           [ 42%]
examples/reference/elements/bokeh/Bounds.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\bokeh\Bounds.ipynb PASSED                 [ 42%]
examples/reference/elements/bokeh/Box.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\bokeh\Box.ipynb PASSED                       [ 42%]
examples/reference/elements/bokeh/BoxWhisker.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\bokeh\BoxWhisker.ipynb PASSED         [ 43%]
examples/reference/elements/bokeh/Chord.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\bokeh\Chord.ipynb PASSED                   [ 43%]
examples/reference/elements/bokeh/Contours.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\bokeh\Contours.ipynb PASSED             [ 44%]
examples/reference/elements/bokeh/Curve.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\bokeh\Curve.ipynb PASSED                   [ 44%]
examples/reference/elements/bokeh/Distribution.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\bokeh\Distribution.ipynb PASSED     [ 44%]
examples/reference/elements/bokeh/Div.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\bokeh\Div.ipynb PASSED                       [ 45%]
examples/reference/elements/bokeh/Ellipse.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\bokeh\Ellipse.ipynb PASSED               [ 45%]
examples/reference/elements/bokeh/ErrorBars.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\bokeh\ErrorBars.ipynb PASSED           [ 46%]
examples/reference/elements/bokeh/Graph.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\bokeh\Graph.ipynb PASSED                   [ 46%]
examples/reference/elements/bokeh/HLine.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\bokeh\HLine.ipynb PASSED                   [ 46%]
examples/reference/elements/bokeh/HSV.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\bokeh\HSV.ipynb PASSED                       [ 47%]
examples/reference/elements/bokeh/HeatMap.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\bokeh\HeatMap.ipynb PASSED               [ 47%]
examples/reference/elements/bokeh/HexTiles.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\bokeh\HexTiles.ipynb PASSED             [ 47%]
examples/reference/elements/bokeh/Histogram.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\bokeh\Histogram.ipynb PASSED           [ 48%]
examples/reference/elements/bokeh/Image.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\bokeh\Image.ipynb PASSED                   [ 48%]
examples/reference/elements/bokeh/ItemTable.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\bokeh\ItemTable.ipynb PASSED           [ 49%]
examples/reference/elements/bokeh/Labels.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\bokeh\Labels.ipynb PASSED                 [ 49%]
examples/reference/elements/bokeh/Path.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\bokeh\Path.ipynb PASSED                     [ 49%]
examples/reference/elements/bokeh/Points.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\bokeh\Points.ipynb PASSED                 [ 50%]
examples/reference/elements/bokeh/Polygons.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\bokeh\Polygons.ipynb PASSED             [ 50%]
examples/reference/elements/bokeh/QuadMesh.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\bokeh\QuadMesh.ipynb PASSED             [ 50%]
examples/reference/elements/bokeh/RGB.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\bokeh\RGB.ipynb PASSED                       [ 51%]
examples/reference/elements/bokeh/RadialHeatMap.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\bokeh\RadialHeatMap.ipynb PASSED   [ 51%]
examples/reference/elements/bokeh/Raster.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\bokeh\Raster.ipynb PASSED                 [ 52%]
examples/reference/elements/bokeh/Sankey.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\bokeh\Sankey.ipynb PASSED                 [ 52%]
examples/reference/elements/bokeh/Scatter.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\bokeh\Scatter.ipynb PASSED               [ 52%]
examples/reference/elements/bokeh/Spikes.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\bokeh\Spikes.ipynb PASSED                 [ 53%]
examples/reference/elements/bokeh/Spline.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\bokeh\Spline.ipynb PASSED                 [ 53%]
examples/reference/elements/bokeh/Spread.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\bokeh\Spread.ipynb PASSED                 [ 53%]
examples/reference/elements/bokeh/Table.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\bokeh\Table.ipynb PASSED                   [ 54%]
examples/reference/elements/bokeh/Text.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\bokeh\Text.ipynb PASSED                     [ 54%]
examples/reference/elements/bokeh/Tiles.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\bokeh\Tiles.ipynb PASSED                   [ 55%]
examples/reference/elements/bokeh/TriMesh.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\bokeh\TriMesh.ipynb PASSED               [ 55%]
examples/reference/elements/bokeh/VLine.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\bokeh\VLine.ipynb PASSED                   [ 55%]
examples/reference/elements/bokeh/VectorField.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\bokeh\VectorField.ipynb PASSED       [ 56%]
examples/reference/elements/bokeh/Violin.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\bokeh\Violin.ipynb PASSED                 [ 56%]
examples/reference/elements/matplotlib/Area.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\matplotlib\Area.ipynb PASSED           [ 57%]
examples/reference/elements/matplotlib/Arrow.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\matplotlib\Arrow.ipynb PASSED         [ 57%]
examples/reference/elements/matplotlib/Bars.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\matplotlib\Bars.ipynb PASSED           [ 57%]
examples/reference/elements/matplotlib/Bivariate.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\matplotlib\Bivariate.ipynb PASSED [ 58%]
examples/reference/elements/matplotlib/Bounds.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\matplotlib\Bounds.ipynb PASSED       [ 58%]
examples/reference/elements/matplotlib/Box.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\matplotlib\Box.ipynb PASSED             [ 58%]
examples/reference/elements/matplotlib/BoxWhisker.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\matplotlib\BoxWhisker.ipynb PASSED [ 59%]
examples/reference/elements/matplotlib/Chord.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\matplotlib\Chord.ipynb PASSED         [ 59%]
examples/reference/elements/matplotlib/Contours.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\matplotlib\Contours.ipynb PASSED   [ 60%]
examples/reference/elements/matplotlib/Curve.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\matplotlib\Curve.ipynb PASSED         [ 60%]
examples/reference/elements/matplotlib/Distribution.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\matplotlib\Distribution.ipynb PASSED [ 60%]
examples/reference/elements/matplotlib/Ellipse.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\matplotlib\Ellipse.ipynb PASSED     [ 61%]
examples/reference/elements/matplotlib/ErrorBars.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\matplotlib\ErrorBars.ipynb PASSED [ 61%]
examples/reference/elements/matplotlib/Graph.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\matplotlib\Graph.ipynb PASSED         [ 61%]
examples/reference/elements/matplotlib/HLine.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\matplotlib\HLine.ipynb PASSED         [ 62%]
examples/reference/elements/matplotlib/HSV.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\matplotlib\HSV.ipynb PASSED             [ 62%]
examples/reference/elements/matplotlib/HeatMap.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\matplotlib\HeatMap.ipynb PASSED     [ 63%]
examples/reference/elements/matplotlib/HexTiles.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\matplotlib\HexTiles.ipynb PASSED   [ 63%]
examples/reference/elements/matplotlib/Histogram.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\matplotlib\Histogram.ipynb PASSED [ 63%]
examples/reference/elements/matplotlib/Image.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\matplotlib\Image.ipynb PASSED         [ 64%]
examples/reference/elements/matplotlib/ItemTable.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\matplotlib\ItemTable.ipynb PASSED [ 64%]
examples/reference/elements/matplotlib/Labels.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\matplotlib\Labels.ipynb PASSED       [ 65%]
examples/reference/elements/matplotlib/Path.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\matplotlib\Path.ipynb PASSED           [ 65%]
examples/reference/elements/matplotlib/Path3D.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\matplotlib\Path3D.ipynb PASSED       [ 65%]
examples/reference/elements/matplotlib/Points.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\matplotlib\Points.ipynb PASSED       [ 66%]
examples/reference/elements/matplotlib/Polygons.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\matplotlib\Polygons.ipynb PASSED   [ 66%]
examples/reference/elements/matplotlib/QuadMesh.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\matplotlib\QuadMesh.ipynb PASSED   [ 66%]
examples/reference/elements/matplotlib/RGB.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\matplotlib\RGB.ipynb PASSED             [ 67%]
examples/reference/elements/matplotlib/RadialHeatMap.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\matplotlib\RadialHeatMap.ipynb PASSED [ 67%]
examples/reference/elements/matplotlib/Raster.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\matplotlib\Raster.ipynb PASSED       [ 68%]
examples/reference/elements/matplotlib/Sankey.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\matplotlib\Sankey.ipynb PASSED       [ 68%]
examples/reference/elements/matplotlib/Scatter.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\matplotlib\Scatter.ipynb PASSED     [ 68%]
examples/reference/elements/matplotlib/Scatter3D.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\matplotlib\Scatter3D.ipynb PASSED [ 69%]
examples/reference/elements/matplotlib/Spikes.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\matplotlib\Spikes.ipynb PASSED       [ 69%]
examples/reference/elements/matplotlib/Spline.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\matplotlib\Spline.ipynb PASSED       [ 69%]
examples/reference/elements/matplotlib/Spread.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\matplotlib\Spread.ipynb PASSED       [ 70%]
examples/reference/elements/matplotlib/Surface.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\matplotlib\Surface.ipynb PASSED     [ 70%]
examples/reference/elements/matplotlib/Table.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\matplotlib\Table.ipynb PASSED         [ 71%]
examples/reference/elements/matplotlib/Text.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\matplotlib\Text.ipynb PASSED           [ 71%]
examples/reference/elements/matplotlib/TriMesh.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\matplotlib\TriMesh.ipynb PASSED     [ 71%]
examples/reference/elements/matplotlib/TriSurface.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\matplotlib\TriSurface.ipynb PASSED [ 72%]
examples/reference/elements/matplotlib/VLine.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\matplotlib\VLine.ipynb PASSED         [ 72%]
examples/reference/elements/matplotlib/VectorField.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\matplotlib\VectorField.ipynb PASSED [ 73%]
examples/reference/elements/matplotlib/Violin.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\matplotlib\Violin.ipynb PASSED       [ 73%]
examples/reference/elements/plotly/Area.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\plotly\Area.ipynb PASSED                   [ 73%]
examples/reference/elements/plotly/BoxWhiskers.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\plotly\BoxWhiskers.ipynb PASSED     [ 74%]
examples/reference/elements/plotly/Curve.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\plotly\Curve.ipynb PASSED                 [ 74%]
examples/reference/elements/plotly/Distribution.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\plotly\Distribution.ipynb PASSED   [ 74%]
examples/reference/elements/plotly/ErrorBars.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\plotly\ErrorBars.ipynb PASSED         [ 75%]
examples/reference/elements/plotly/HeatMap.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\plotly\HeatMap.ipynb PASSED             [ 75%]
examples/reference/elements/plotly/Image.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\plotly\Image.ipynb PASSED                 [ 76%]
examples/reference/elements/plotly/ItemTable.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\plotly\ItemTable.ipynb PASSED         [ 76%]
examples/reference/elements/plotly/Path3D.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\plotly\Path3D.ipynb PASSED               [ 76%]
examples/reference/elements/plotly/Points.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\plotly\Points.ipynb PASSED               [ 77%]
examples/reference/elements/plotly/Raster.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\plotly\Raster.ipynb PASSED               [ 77%]
examples/reference/elements/plotly/Scatter.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\plotly\Scatter.ipynb PASSED             [ 77%]
examples/reference/elements/plotly/Scatter3D.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\plotly\Scatter3D.ipynb PASSED         [ 78%]
examples/reference/elements/plotly/Spread.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\plotly\Spread.ipynb PASSED               [ 78%]
examples/reference/elements/plotly/Surface.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\plotly\Surface.ipynb PASSED             [ 79%]
examples/reference/elements/plotly/Table.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\plotly\Table.ipynb PASSED                 [ 79%]
examples/reference/elements/plotly/TriSurface.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\plotly\TriSurface.ipynb PASSED       [ 79%]
examples/reference/elements/plotly/Violin.ipynb::D:\code\ioam\holoviews2\examples\reference\elements\plotly\Violin.ipynb PASSED               [ 80%]
examples/reference/features/bokeh/table_hooks_example.ipynb::D:\code\ioam\holoviews2\examples\reference\features\bokeh\table_hooks_example.ipynb PASSED [ 80%]
examples/reference/streams/bokeh/Bounds.ipynb::D:\code\ioam\holoviews2\examples\reference\streams\bokeh\Bounds.ipynb PASSED                   [ 80%]
examples/reference/streams/bokeh/BoundsX.ipynb::D:\code\ioam\holoviews2\examples\reference\streams\bokeh\BoundsX.ipynb PASSED                 [ 81%]
examples/reference/streams/bokeh/BoundsY.ipynb::D:\code\ioam\holoviews2\examples\reference\streams\bokeh\BoundsY.ipynb PASSED                 [ 81%]
examples/reference/streams/bokeh/BoxEdit.ipynb::D:\code\ioam\holoviews2\examples\reference\streams\bokeh\BoxEdit.ipynb PASSED                 [ 82%]
examples/reference/streams/bokeh/FreehandDraw.ipynb::D:\code\ioam\holoviews2\examples\reference\streams\bokeh\FreehandDraw.ipynb PASSED       [ 82%]
examples/reference/streams/bokeh/PointDraw.ipynb::D:\code\ioam\holoviews2\examples\reference\streams\bokeh\PointDraw.ipynb PASSED             [ 82%]
examples/reference/streams/bokeh/PointerX.ipynb::D:\code\ioam\holoviews2\examples\reference\streams\bokeh\PointerX.ipynb PASSED               [ 83%]
examples/reference/streams/bokeh/PointerXY.ipynb::D:\code\ioam\holoviews2\examples\reference\streams\bokeh\PointerXY.ipynb PASSED             [ 83%]
examples/reference/streams/bokeh/PolyDraw.ipynb::D:\code\ioam\holoviews2\examples\reference\streams\bokeh\PolyDraw.ipynb PASSED               [ 84%]
examples/reference/streams/bokeh/PolyEdit.ipynb::D:\code\ioam\holoviews2\examples\reference\streams\bokeh\PolyEdit.ipynb PASSED               [ 84%]
examples/reference/streams/bokeh/RangeXY.ipynb::D:\code\ioam\holoviews2\examples\reference\streams\bokeh\RangeXY.ipynb PASSED                 [ 84%]
examples/reference/streams/bokeh/Selection1D.ipynb::D:\code\ioam\holoviews2\examples\reference\streams\bokeh\Selection1D.ipynb PASSED         [ 85%]
examples/reference/streams/bokeh/Selection1D_paired.ipynb::D:\code\ioam\holoviews2\examples\reference\streams\bokeh\Selection1D_paired.ipynb PASSED [ 85%]
examples/reference/streams/bokeh/Selection1D_points.ipynb::D:\code\ioam\holoviews2\examples\reference\streams\bokeh\Selection1D_points.ipynb PASSED [ 85%]
examples/reference/streams/bokeh/Selection1D_tap.ipynb::D:\code\ioam\holoviews2\examples\reference\streams\bokeh\Selection1D_tap.ipynb PASSED [ 86%]
examples/reference/streams/bokeh/Tap.ipynb::D:\code\ioam\holoviews2\examples\reference\streams\bokeh\Tap.ipynb PASSED                         [ 86%]
examples/topics/geometry/lsystems.ipynb::D:\code\ioam\holoviews2\examples\topics\geometry\lsystems.ipynb PASSED                               [ 87%]
examples/topics/geometry/square_limit.ipynb::D:\code\ioam\holoviews2\examples\topics\geometry\square_limit.ipynb PASSED                       [ 87%]
examples/topics/simulation/boids.ipynb::D:\code\ioam\holoviews2\examples\topics\simulation\boids.ipynb PASSED                                 [ 87%]
examples/topics/simulation/hipster_dynamics.ipynb::D:\code\ioam\holoviews2\examples\topics\simulation\hipster_dynamics.ipynb PASSED           [ 88%]
examples/topics/simulation/sri_model.ipynb::D:\code\ioam\holoviews2\examples\topics\simulation\sri_model.ipynb PASSED                         [ 88%]
examples/user_guide/01-Annotating_Data.ipynb::D:\code\ioam\holoviews2\examples\user_guide\01-Annotating_Data.ipynb PASSED                     [ 88%]
examples/user_guide/02-Composing_Elements.ipynb::D:\code\ioam\holoviews2\examples\user_guide\02-Composing_Elements.ipynb PASSED               [ 89%]
examples/user_guide/03-Applying_Customizations.ipynb::D:\code\ioam\holoviews2\examples\user_guide\03-Applying_Customizations.ipynb PASSED     [ 89%]
examples/user_guide/04-Style_Mapping.ipynb::D:\code\ioam\holoviews2\examples\user_guide\04-Style_Mapping.ipynb PASSED                         [ 90%]
examples/user_guide/05-Dimensioned_Containers.ipynb::D:\code\ioam\holoviews2\examples\user_guide\05-Dimensioned_Containers.ipynb PASSED       [ 90%]
examples/user_guide/06-Building_Composite_Objects.ipynb::D:\code\ioam\holoviews2\examples\user_guide\06-Building_Composite_Objects.ipynb PASSED [ 90%]
examples/user_guide/07-Live_Data.ipynb::D:\code\ioam\holoviews2\examples\user_guide\07-Live_Data.ipynb PASSED                                 [ 91%]
examples/user_guide/08-Tabular_Datasets.ipynb::D:\code\ioam\holoviews2\examples\user_guide\08-Tabular_Datasets.ipynb PASSED                   [ 91%]
examples/user_guide/09-Gridded_Datasets.ipynb::D:\code\ioam\holoviews2\examples\user_guide\09-Gridded_Datasets.ipynb PASSED                   [ 92%]
examples/user_guide/10-Indexing_and_Selecting_Data.ipynb::D:\code\ioam\holoviews2\examples\user_guide\10-Indexing_and_Selecting_Data.ipynb PASSED [ 92%]
examples/user_guide/11-Transforming_Elements.ipynb::D:\code\ioam\holoviews2\examples\user_guide\11-Transforming_Elements.ipynb PASSED         [ 92%]
examples/user_guide/12-Responding_to_Events.ipynb::D:\code\ioam\holoviews2\examples\user_guide\12-Responding_to_Events.ipynb PASSED           [ 93%]
examples/user_guide/13-Custom_Interactivity.ipynb::D:\code\ioam\holoviews2\examples\user_guide\13-Custom_Interactivity.ipynb PASSED           [ 93%]
examples/user_guide/14-Data_Pipelines.ipynb::D:\code\ioam\holoviews2\examples\user_guide\14-Data_Pipelines.ipynb PASSED                       [ 93%]
examples/user_guide/15-Large_Data.ipynb::D:\code\ioam\holoviews2\examples\user_guide\15-Large_Data.ipynb PASSED                               [ 94%]
examples/user_guide/16-Streaming_Data.ipynb::D:\code\ioam\holoviews2\examples\user_guide\16-Streaming_Data.ipynb PASSED                       [ 94%]
examples/user_guide/17-Dashboards.ipynb::D:\code\ioam\holoviews2\examples\user_guide\17-Dashboards.ipynb PASSED                               [ 95%]
examples/user_guide/Colormaps.ipynb::D:\code\ioam\holoviews2\examples\user_guide\Colormaps.ipynb PASSED                                       [ 95%]
examples/user_guide/Continuous_Coordinates.ipynb::D:\code\ioam\holoviews2\examples\user_guide\Continuous_Coordinates.ipynb PASSED             [ 95%]
examples/user_guide/Customizing_Plots.ipynb::D:\code\ioam\holoviews2\examples\user_guide\Customizing_Plots.ipynb PASSED                       [ 96%]
examples/user_guide/Deploying_Bokeh_Apps.ipynb::D:\code\ioam\holoviews2\examples\user_guide\Deploying_Bokeh_Apps.ipynb FAILED                 [ 96%]
examples/user_guide/Exporting_and_Archiving.ipynb::D:\code\ioam\holoviews2\examples\user_guide\Exporting_and_Archiving.ipynb PASSED           [ 96%]
examples/user_guide/Geometry_Data.ipynb::D:\code\ioam\holoviews2\examples\user_guide\Geometry_Data.ipynb PASSED                               [ 97%]
examples/user_guide/Installing_and_Configuring.ipynb::D:\code\ioam\holoviews2\examples\user_guide\Installing_and_Configuring.ipynb PASSED     [ 97%]
examples/user_guide/Linking_Plots.ipynb::D:\code\ioam\holoviews2\examples\user_guide\Linking_Plots.ipynb PASSED                               [ 98%]
examples/user_guide/Network_Graphs.ipynb::D:\code\ioam\holoviews2\examples\user_guide\Network_Graphs.ipynb PASSED                             [ 98%]
examples/user_guide/Notebook_Magics.ipynb::D:\code\ioam\holoviews2\examples\user_guide\Notebook_Magics.ipynb PASSED                           [ 98%]
examples/user_guide/Plots_and_Renderers.ipynb::D:\code\ioam\holoviews2\examples\user_guide\Plots_and_Renderers.ipynb PASSED                   [ 99%]
examples/user_guide/Plotting_with_Bokeh.ipynb::D:\code\ioam\holoviews2\examples\user_guide\Plotting_with_Bokeh.ipynb PASSED                   [ 99%]
examples/user_guide/Plotting_with_Matplotlib.ipynb::D:\code\ioam\holoviews2\examples\user_guide\Plotting_with_Matplotlib.ipynb PASSED         [100%]

===================================================================== FAILURES =====================================================================
___________________________________________________________________ test session ___________________________________________________________________
D:\code\ioam\holoviews2\examples\user_guide\Deploying_Bokeh_Apps.ipynb
** line 117 col 27: undefined name 'layout'
** line 151 col 9: undefined name 'layout'
** line 164 col 26: undefined name 'layout'
** line 325 col 0: 'bokeh.io.curdoc' imported but unused
To see python source that was checked by pyflakes: D:\code\ioam\holoviews2\examples\user_guide\Deploying_Bokeh_Apps.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\ioam\holoviews2\examples\user_guide\Deploying_Bokeh_Apps.nbsmoke-debug-premagicprocess.py
====================================================== 1 failed, 262 passed in 229.45 seconds ======================================================

datashader

(nbsdev) D:\code\pyviz\datashader>pytest -v --nbsmoke-lint --nbsmoke-lint-debug examples
=============================================================== test session starts ================================================================
platform win32 -- Python 3.6.8, pytest-4.4.1, py-1.8.0, pluggy-0.9.0 -- d:\venvs\nbsdev\scripts\python.exe
cachedir: .pytest_cache
rootdir: D:\code\pyviz\datashader, inifile: tox.ini
plugins: cov-2.7.1, nbsmoke-0.2.7.post3+gc839325.dirty
collected 20 items / 102 skipped

examples/FAQ.ipynb::D:\code\pyviz\datashader\examples\FAQ.ipynb PASSED                                                                        [  5%]
examples/dashboard.ipynb::D:\code\pyviz\datashader\examples\dashboard.ipynb PASSED                                                            [ 10%]
examples/index.ipynb::D:\code\pyviz\datashader\examples\index.ipynb PASSED                                                                    [ 15%]
examples/streaming-aggregation.ipynb::D:\code\pyviz\datashader\examples\streaming-aggregation.ipynb PASSED                                    [ 20%]
examples/tiling.ipynb::D:\code\pyviz\datashader\examples\tiling.ipynb PASSED                                                                  [ 25%]
examples/getting_started/1_Introduction.ipynb::D:\code\pyviz\datashader\examples\getting_started\1_Introduction.ipynb PASSED                  [ 30%]
examples/getting_started/2_Pipeline.ipynb::D:\code\pyviz\datashader\examples\getting_started\2_Pipeline.ipynb PASSED                          [ 35%]
examples/getting_started/3_Interactivity.ipynb::D:\code\pyviz\datashader\examples\getting_started\3_Interactivity.ipynb PASSED                [ 40%]
examples/getting_started/index.ipynb::D:\code\pyviz\datashader\examples\getting_started\index.ipynb PASSED                                    [ 45%]
examples/user_guide/10_Performance.ipynb::D:\code\pyviz\datashader\examples\user_guide\10_Performance.ipynb PASSED                            [ 50%]
examples/user_guide/1_Plotting_Pitfalls.ipynb::D:\code\pyviz\datashader\examples\user_guide\1_Plotting_Pitfalls.ipynb PASSED                  [ 55%]
examples/user_guide/2_Points.ipynb::D:\code\pyviz\datashader\examples\user_guide\2_Points.ipynb PASSED                                        [ 60%]
examples/user_guide/3_Timeseries.ipynb::D:\code\pyviz\datashader\examples\user_guide\3_Timeseries.ipynb PASSED                                [ 65%]
examples/user_guide/4_Trajectories.ipynb::D:\code\pyviz\datashader\examples\user_guide\4_Trajectories.ipynb PASSED                            [ 70%]
examples/user_guide/5_Rasters.ipynb::D:\code\pyviz\datashader\examples\user_guide\5_Rasters.ipynb PASSED                                      [ 75%]
examples/user_guide/6_Trimesh.ipynb::D:\code\pyviz\datashader\examples\user_guide\6_Trimesh.ipynb PASSED                                      [ 80%]
examples/user_guide/7_Networks.ipynb::D:\code\pyviz\datashader\examples\user_guide\7_Networks.ipynb PASSED                                    [ 85%]
examples/user_guide/8_Geography.ipynb::D:\code\pyviz\datashader\examples\user_guide\8_Geography.ipynb PASSED                                  [ 90%]
examples/user_guide/9_Extending.ipynb::D:\code\pyviz\datashader\examples\user_guide\9_Extending.ipynb PASSED                                  [ 95%]
examples/user_guide/index.ipynb::D:\code\pyviz\datashader\examples\user_guide\index.ipynb PASSED                                              [100%]

===================================================== 20 passed, 102 skipped in 75.68 seconds ======================================================

panel

(nbsdev) D:\code\pyviz\panel>pytest -v --nbsmoke-lint --nbsmoke-lint-debug examples
=============================================================== test session starts ================================================================
platform win32 -- Python 3.6.8, pytest-4.4.1, py-1.8.0, pluggy-0.9.0 -- d:\venvs\nbsdev\scripts\python.exe
cachedir: .pytest_cache
rootdir: D:\code\pyviz\panel, inifile: tox.ini
plugins: cov-2.7.1, nbsmoke-0.2.7.post3+gc839325.dirty
collected 90 items / 186 skipped

examples/gallery/apis/stocks_altair.ipynb::D:\code\pyviz\panel\examples\gallery\apis\stocks_altair.ipynb PASSED                               [  1%]
examples/gallery/apis/stocks_hvplot.ipynb::D:\code\pyviz\panel\examples\gallery\apis\stocks_hvplot.ipynb FAILED                               [  2%]
examples/gallery/apis/stocks_mpl.ipynb::D:\code\pyviz\panel\examples\gallery\apis\stocks_mpl.ipynb PASSED                                     [  3%]
examples/gallery/apis/stocks_plotly.ipynb::D:\code\pyviz\panel\examples\gallery\apis\stocks_plotly.ipynb FAILED                               [  4%]
examples/gallery/demos/clifford.ipynb::D:\code\pyviz\panel\examples\gallery\demos\clifford.ipynb PASSED                                       [  5%]
examples/gallery/demos/gapminder.ipynb::D:\code\pyviz\panel\examples\gallery\demos\gapminder.ipynb PASSED                                     [  6%]
examples/gallery/demos/glaciers.ipynb::D:\code\pyviz\panel\examples\gallery\demos\glaciers.ipynb PASSED                                       [  7%]
examples/gallery/demos/nyc_taxi.ipynb::D:\code\pyviz\panel\examples\gallery\demos\nyc_taxi.ipynb PASSED                                       [  8%]
examples/gallery/dynamic/dynamic_plot_layout.ipynb::D:\code\pyviz\panel\examples\gallery\dynamic\dynamic_plot_layout.ipynb PASSED             [ 10%]
examples/gallery/dynamic/dynamic_ui.ipynb::D:\code\pyviz\panel\examples\gallery\dynamic\dynamic_ui.ipynb PASSED                               [ 11%]
examples/gallery/dynamic/dynamic_widget_values.ipynb::D:\code\pyviz\panel\examples\gallery\dynamic\dynamic_widget_values.ipynb PASSED         [ 12%]
examples/gallery/external/DataTable.ipynb::D:\code\pyviz\panel\examples\gallery\external\DataTable.ipynb PASSED                               [ 13%]
examples/gallery/external/deck.gl.ipynb::D:\code\pyviz\panel\examples\gallery\external\deck.gl.ipynb PASSED                                   [ 14%]
examples/gallery/layout/distribution_tabs.ipynb::D:\code\pyviz\panel\examples\gallery\layout\distribution_tabs.ipynb FAILED                   [ 15%]
examples/gallery/layout/plot_with_columns.ipynb::D:\code\pyviz\panel\examples\gallery\layout\plot_with_columns.ipynb FAILED                   [ 16%]
examples/gallery/links/bokeh_property_editor.ipynb::D:\code\pyviz\panel\examples\gallery\links\bokeh_property_editor.ipynb PASSED             [ 17%]
examples/gallery/links/holoviews_glyph_link.ipynb::D:\code\pyviz\panel\examples\gallery\links\holoviews_glyph_link.ipynb PASSED               [ 18%]
examples/gallery/links/plotly_link.ipynb::D:\code\pyviz\panel\examples\gallery\links\plotly_link.ipynb FAILED                                 [ 20%]
examples/gallery/links/vega_heatmap_link.ipynb::D:\code\pyviz\panel\examples\gallery\links\vega_heatmap_link.ipynb PASSED                     [ 21%]
examples/gallery/param/action_button.ipynb::D:\code\pyviz\panel\examples\gallery\param\action_button.ipynb PASSED                             [ 22%]
examples/gallery/param/param_subobjects.ipynb::D:\code\pyviz\panel\examples\gallery\param\param_subobjects.ipynb PASSED                       [ 23%]
examples/gallery/param/reactive_plots.ipynb::D:\code\pyviz\panel\examples\gallery\param\reactive_plots.ipynb FAILED                           [ 24%]
examples/gallery/param/reactive_tables.ipynb::D:\code\pyviz\panel\examples\gallery\param\reactive_tables.ipynb FAILED                         [ 25%]
examples/gallery/simple/altair_choropleth.ipynb::D:\code\pyviz\panel\examples\gallery\simple\altair_choropleth.ipynb PASSED                   [ 26%]
examples/gallery/simple/clifford_interact.ipynb::D:\code\pyviz\panel\examples\gallery\simple\clifford_interact.ipynb PASSED                   [ 27%]
examples/gallery/simple/iris_kmeans.ipynb::D:\code\pyviz\panel\examples\gallery\simple\iris_kmeans.ipynb FAILED                               [ 28%]
examples/gallery/simple/temperature_distribution.ipynb::D:\code\pyviz\panel\examples\gallery\simple\temperature_distribution.ipynb FAILED     [ 30%]
examples/getting_started/Introduction.ipynb::D:\code\pyviz\panel\examples\getting_started\Introduction.ipynb FAILED                           [ 31%]
examples/reference/layouts/Column.ipynb::D:\code\pyviz\panel\examples\reference\layouts\Column.ipynb PASSED                                   [ 32%]
examples/reference/layouts/GridSpec.ipynb::D:\code\pyviz\panel\examples\reference\layouts\GridSpec.ipynb FAILED                               [ 33%]
examples/reference/layouts/Row.ipynb::D:\code\pyviz\panel\examples\reference\layouts\Row.ipynb PASSED                                         [ 34%]
examples/reference/layouts/Tabs.ipynb::D:\code\pyviz\panel\examples\reference\layouts\Tabs.ipynb PASSED                                       [ 35%]
examples/reference/layouts/WidgetBox.ipynb::D:\code\pyviz\panel\examples\reference\layouts\WidgetBox.ipynb PASSED                             [ 36%]
examples/reference/panes/Ace.ipynb::D:\code\pyviz\panel\examples\reference\panes\Ace.ipynb PASSED                                             [ 37%]
examples/reference/panes/Bokeh.ipynb::D:\code\pyviz\panel\examples\reference\panes\Bokeh.ipynb PASSED                                         [ 38%]
examples/reference/panes/GIF.ipynb::D:\code\pyviz\panel\examples\reference\panes\GIF.ipynb PASSED                                             [ 40%]
examples/reference/panes/HTML.ipynb::D:\code\pyviz\panel\examples\reference\panes\HTML.ipynb PASSED                                           [ 41%]
examples/reference/panes/HoloViews.ipynb::D:\code\pyviz\panel\examples\reference\panes\HoloViews.ipynb FAILED                                 [ 42%]
examples/reference/panes/JPG.ipynb::D:\code\pyviz\panel\examples\reference\panes\JPG.ipynb PASSED                                             [ 43%]
examples/reference/panes/LaTeX.ipynb::D:\code\pyviz\panel\examples\reference\panes\LaTeX.ipynb PASSED                                         [ 44%]
examples/reference/panes/Markdown.ipynb::D:\code\pyviz\panel\examples\reference\panes\Markdown.ipynb PASSED                                   [ 45%]
examples/reference/panes/Matplotlib.ipynb::D:\code\pyviz\panel\examples\reference\panes\Matplotlib.ipynb PASSED                               [ 46%]
examples/reference/panes/PNG.ipynb::D:\code\pyviz\panel\examples\reference\panes\PNG.ipynb PASSED                                             [ 47%]
examples/reference/panes/Plotly.ipynb::D:\code\pyviz\panel\examples\reference\panes\Plotly.ipynb PASSED                                       [ 48%]
examples/reference/panes/SVG.ipynb::D:\code\pyviz\panel\examples\reference\panes\SVG.ipynb PASSED                                             [ 50%]
examples/reference/panes/Str.ipynb::D:\code\pyviz\panel\examples\reference\panes\Str.ipynb PASSED                                             [ 51%]
examples/reference/panes/VTK.ipynb::D:\code\pyviz\panel\examples\reference\panes\VTK.ipynb PASSED                                             [ 52%]
examples/reference/panes/Vega.ipynb::D:\code\pyviz\panel\examples\reference\panes\Vega.ipynb PASSED                                           [ 53%]
examples/reference/widgets/Audio.ipynb::D:\code\pyviz\panel\examples\reference\widgets\Audio.ipynb PASSED                                     [ 54%]
examples/reference/widgets/AutocompleteInput.ipynb::D:\code\pyviz\panel\examples\reference\widgets\AutocompleteInput.ipynb PASSED             [ 55%]
examples/reference/widgets/Button.ipynb::D:\code\pyviz\panel\examples\reference\widgets\Button.ipynb PASSED                                   [ 56%]
examples/reference/widgets/CheckBoxGroup.ipynb::D:\code\pyviz\panel\examples\reference\widgets\CheckBoxGroup.ipynb PASSED                     [ 57%]
examples/reference/widgets/CheckButtonGroup.ipynb::D:\code\pyviz\panel\examples\reference\widgets\CheckButtonGroup.ipynb PASSED               [ 58%]
examples/reference/widgets/Checkbox.ipynb::D:\code\pyviz\panel\examples\reference\widgets\Checkbox.ipynb PASSED                               [ 60%]
examples/reference/widgets/ColorPicker.ipynb::D:\code\pyviz\panel\examples\reference\widgets\ColorPicker.ipynb PASSED                         [ 61%]
examples/reference/widgets/CrossSelector.ipynb::D:\code\pyviz\panel\examples\reference\widgets\CrossSelector.ipynb PASSED                     [ 62%]
examples/reference/widgets/DatePicker.ipynb::D:\code\pyviz\panel\examples\reference\widgets\DatePicker.ipynb PASSED                           [ 63%]
examples/reference/widgets/DateRangeSlider.ipynb::D:\code\pyviz\panel\examples\reference\widgets\DateRangeSlider.ipynb PASSED                 [ 64%]
examples/reference/widgets/DateSlider.ipynb::D:\code\pyviz\panel\examples\reference\widgets\DateSlider.ipynb PASSED                           [ 65%]
examples/reference/widgets/DatetimeInput.ipynb::D:\code\pyviz\panel\examples\reference\widgets\DatetimeInput.ipynb PASSED                     [ 66%]
examples/reference/widgets/DiscretePlayer.ipynb::D:\code\pyviz\panel\examples\reference\widgets\DiscretePlayer.ipynb PASSED                   [ 67%]
examples/reference/widgets/DiscreteSlider.ipynb::D:\code\pyviz\panel\examples\reference\widgets\DiscreteSlider.ipynb PASSED                   [ 68%]
examples/reference/widgets/FileInput.ipynb::D:\code\pyviz\panel\examples\reference\widgets\FileInput.ipynb PASSED                             [ 70%]
examples/reference/widgets/FloatSlider.ipynb::D:\code\pyviz\panel\examples\reference\widgets\FloatSlider.ipynb PASSED                         [ 71%]
examples/reference/widgets/IntRangeSlider.ipynb::D:\code\pyviz\panel\examples\reference\widgets\IntRangeSlider.ipynb PASSED                   [ 72%]
examples/reference/widgets/IntSlider.ipynb::D:\code\pyviz\panel\examples\reference\widgets\IntSlider.ipynb PASSED                             [ 73%]
examples/reference/widgets/LiteralInput.ipynb::D:\code\pyviz\panel\examples\reference\widgets\LiteralInput.ipynb PASSED                       [ 74%]
examples/reference/widgets/MultiSelect.ipynb::D:\code\pyviz\panel\examples\reference\widgets\MultiSelect.ipynb PASSED                         [ 75%]
examples/reference/widgets/Player.ipynb::D:\code\pyviz\panel\examples\reference\widgets\Player.ipynb PASSED                                   [ 76%]
examples/reference/widgets/RadioBoxGroup.ipynb::D:\code\pyviz\panel\examples\reference\widgets\RadioBoxGroup.ipynb PASSED                     [ 77%]
examples/reference/widgets/RadioButtonGroup.ipynb::D:\code\pyviz\panel\examples\reference\widgets\RadioButtonGroup.ipynb PASSED               [ 78%]
examples/reference/widgets/RangeSlider.ipynb::D:\code\pyviz\panel\examples\reference\widgets\RangeSlider.ipynb PASSED                         [ 80%]
examples/reference/widgets/Select.ipynb::D:\code\pyviz\panel\examples\reference\widgets\Select.ipynb PASSED                                   [ 81%]
examples/reference/widgets/Spinner.ipynb::D:\code\pyviz\panel\examples\reference\widgets\Spinner.ipynb PASSED                                 [ 82%]
examples/reference/widgets/StaticText.ipynb::D:\code\pyviz\panel\examples\reference\widgets\StaticText.ipynb PASSED                           [ 83%]
examples/reference/widgets/TextInput.ipynb::D:\code\pyviz\panel\examples\reference\widgets\TextInput.ipynb PASSED                             [ 84%]
examples/reference/widgets/Toggle.ipynb::D:\code\pyviz\panel\examples\reference\widgets\Toggle.ipynb PASSED                                   [ 85%]
examples/reference/widgets/VideoStream.ipynb::D:\code\pyviz\panel\examples\reference\widgets\VideoStream.ipynb PASSED                         [ 86%]
examples/user_guide/APIs.ipynb::D:\code\pyviz\panel\examples\user_guide\APIs.ipynb FAILED                                                     [ 87%]
examples/user_guide/Components.ipynb::D:\code\pyviz\panel\examples\user_guide\Components.ipynb FAILED                                         [ 88%]
examples/user_guide/Customization.ipynb::D:\code\pyviz\panel\examples\user_guide\Customization.ipynb PASSED                                   [ 90%]
examples/user_guide/Deploy_and_Export.ipynb::D:\code\pyviz\panel\examples\user_guide\Deploy_and_Export.ipynb FAILED                           [ 91%]
examples/user_guide/Django_Apps.ipynb::D:\code\pyviz\panel\examples\user_guide\Django_Apps.ipynb PASSED                                       [ 92%]
examples/user_guide/Interact.ipynb::D:\code\pyviz\panel\examples\user_guide\Interact.ipynb FAILED                                             [ 93%]
examples/user_guide/Links.ipynb::D:\code\pyviz\panel\examples\user_guide\Links.ipynb FAILED                                                   [ 94%]
examples/user_guide/Overview.ipynb::D:\code\pyviz\panel\examples\user_guide\Overview.ipynb PASSED                                             [ 95%]
examples/user_guide/Param.ipynb::D:\code\pyviz\panel\examples\user_guide\Param.ipynb PASSED                                                   [ 96%]
examples/user_guide/Pipelines.ipynb::D:\code\pyviz\panel\examples\user_guide\Pipelines.ipynb FAILED                                           [ 97%]
examples/user_guide/Templates.ipynb::D:\code\pyviz\panel\examples\user_guide\Templates.ipynb PASSED                                           [ 98%]
examples/user_guide/Widgets.ipynb::D:\code\pyviz\panel\examples\user_guide\Widgets.ipynb FAILED                                               [100%]

===================================================================== FAILURES =====================================================================
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\panel\examples\gallery\apis\stocks_hvplot.ipynb
** line 16 col 0: 'hvplot.pandas' imported but unused
To see python source that was checked by pyflakes: D:\code\pyviz\panel\examples\gallery\apis\stocks_hvplot.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\panel\examples\gallery\apis\stocks_hvplot.nbsmoke-debug-premagicprocess.py
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\panel\examples\gallery\apis\stocks_plotly.ipynb
** line 16 col 0: 'plotly.plotly as py' imported but unused
To see python source that was checked by pyflakes: D:\code\pyviz\panel\examples\gallery\apis\stocks_plotly.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\panel\examples\gallery\apis\stocks_plotly.nbsmoke-debug-premagicprocess.py
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\panel\examples\gallery\layout\distribution_tabs.ipynb
** line 16 col 0: 'pandas as pd' imported but unused
To see python source that was checked by pyflakes: D:\code\pyviz\panel\examples\gallery\layout\distribution_tabs.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\panel\examples\gallery\layout\distribution_tabs.nbsmoke-debug-premagicprocess.py
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\panel\examples\gallery\layout\plot_with_columns.ipynb
** line 15 col 0: 'hvplot.pandas' imported but unused
To see python source that was checked by pyflakes: D:\code\pyviz\panel\examples\gallery\layout\plot_with_columns.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\panel\examples\gallery\layout\plot_with_columns.nbsmoke-debug-premagicprocess.py
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\panel\examples\gallery\links\plotly_link.ipynb
** line 25 col 0: redefinition of unused 'np' from line 14
To see python source that was checked by pyflakes: D:\code\pyviz\panel\examples\gallery\links\plotly_link.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\panel\examples\gallery\links\plotly_link.nbsmoke-debug-premagicprocess.py
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\panel\examples\gallery\param\reactive_plots.ipynb
** line 16 col 0: 'hvplot.pandas' imported but unused
** line 19 col 0: 'pandas as pd' imported but unused
To see python source that was checked by pyflakes: D:\code\pyviz\panel\examples\gallery\param\reactive_plots.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\panel\examples\gallery\param\reactive_plots.nbsmoke-debug-premagicprocess.py
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\panel\examples\gallery\param\reactive_tables.ipynb
** line 16 col 0: 'pandas as pd' imported but unused
To see python source that was checked by pyflakes: D:\code\pyviz\panel\examples\gallery\param\reactive_tables.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\panel\examples\gallery\param\reactive_tables.nbsmoke-debug-premagicprocess.py
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\panel\examples\gallery\simple\iris_kmeans.ipynb
** line 14 col 0: 'numpy as np' imported but unused
** line 16 col 0: 'hvplot.pandas' imported but unused
To see python source that was checked by pyflakes: D:\code\pyviz\panel\examples\gallery\simple\iris_kmeans.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\panel\examples\gallery\simple\iris_kmeans.nbsmoke-debug-premagicprocess.py
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\panel\examples\gallery\simple\temperature_distribution.ipynb
** line 14 col 0: 'hvplot.pandas' imported but unused
To see python source that was checked by pyflakes: D:\code\pyviz\panel\examples\gallery\simple\temperature_distribution.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\panel\examples\gallery\simple\temperature_distribution.nbsmoke-debug-premagicprocess.py
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\panel\examples\getting_started\Introduction.ipynb
** line 170 col 0: redefinition of unused 'hvplot' from line 168
To see python source that was checked by pyflakes: D:\code\pyviz\panel\examples\getting_started\Introduction.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\panel\examples\getting_started\Introduction.nbsmoke-debug-premagicprocess.py
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\panel\examples\reference\layouts\GridSpec.ipynb
** line 80 col 0: 'numpy as np' imported but unused
To see python source that was checked by pyflakes: D:\code\pyviz\panel\examples\reference\layouts\GridSpec.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\panel\examples\reference\layouts\GridSpec.nbsmoke-debug-premagicprocess.py
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\panel\examples\reference\panes\HoloViews.ipynb
** line 65 col 0: 'hvplot.pandas' imported but unused
To see python source that was checked by pyflakes: D:\code\pyviz\panel\examples\reference\panes\HoloViews.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\panel\examples\reference\panes\HoloViews.nbsmoke-debug-premagicprocess.py
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\panel\examples\user_guide\APIs.ipynb
** line 25 col 0: 'hvplot.pandas' imported but unused
To see python source that was checked by pyflakes: D:\code\pyviz\panel\examples\user_guide\APIs.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\panel\examples\user_guide\APIs.nbsmoke-debug-premagicprocess.py
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\panel\examples\user_guide\Components.ipynb
** line 202 col 0: 'numpy as np' imported but unused
To see python source that was checked by pyflakes: D:\code\pyviz\panel\examples\user_guide\Components.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\panel\examples\user_guide\Components.nbsmoke-debug-premagicprocess.py
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\panel\examples\user_guide\Deploy_and_Export.ipynb
** line 78 col 4: undefined name 'display'
To see python source that was checked by pyflakes: D:\code\pyviz\panel\examples\user_guide\Deploy_and_Export.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\panel\examples\user_guide\Deploy_and_Export.nbsmoke-debug-premagicprocess.py
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\panel\examples\user_guide\Interact.ipynb
** line 20 col 0: 'panel.interact.interactive' imported but unused
** line 20 col 0: 'panel.interact.interact_manual' imported but unused
To see python source that was checked by pyflakes: D:\code\pyviz\panel\examples\user_guide\Interact.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\panel\examples\user_guide\Interact.nbsmoke-debug-premagicprocess.py
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\panel\examples\user_guide\Links.ipynb
** line 26 col 0: 'param' imported but unused
To see python source that was checked by pyflakes: D:\code\pyviz\panel\examples\user_guide\Links.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\panel\examples\user_guide\Links.nbsmoke-debug-premagicprocess.py
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\panel\examples\user_guide\Pipelines.ipynb
** line 16 col 0: 'holoviews as hv' imported but unused
To see python source that was checked by pyflakes: D:\code\pyviz\panel\examples\user_guide\Pipelines.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\panel\examples\user_guide\Pipelines.nbsmoke-debug-premagicprocess.py
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\panel\examples\user_guide\Widgets.ipynb
** line 52 col 0: from __future__ imports must occur at the beginning of the file
To see python source that was checked by pyflakes: D:\code\pyviz\panel\examples\user_guide\Widgets.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\panel\examples\user_guide\Widgets.nbsmoke-debug-premagicprocess.py
================================================================= warnings summary =================================================================
examples/reference/panes/LaTeX.ipynb::D:\code\pyviz\panel\examples\reference\panes\LaTeX.ipynb
examples/reference/panes/LaTeX.ipynb::D:\code\pyviz\panel\examples\reference\panes\LaTeX.ipynb
examples/reference/panes/LaTeX.ipynb::D:\code\pyviz\panel\examples\reference\panes\LaTeX.ipynb
  <input>:1: DeprecationWarning: invalid escape sequence \(

examples/reference/panes/LaTeX.ipynb::D:\code\pyviz\panel\examples\reference\panes\LaTeX.ipynb
examples/reference/panes/LaTeX.ipynb::D:\code\pyviz\panel\examples\reference\panes\LaTeX.ipynb
examples/reference/panes/LaTeX.ipynb::D:\code\pyviz\panel\examples\reference\panes\LaTeX.ipynb
examples/reference/panes/LaTeX.ipynb::D:\code\pyviz\panel\examples\reference\panes\LaTeX.ipynb
examples/reference/panes/LaTeX.ipynb::D:\code\pyviz\panel\examples\reference\panes\LaTeX.ipynb
examples/reference/panes/LaTeX.ipynb::D:\code\pyviz\panel\examples\reference\panes\LaTeX.ipynb
  <input>:1: DeprecationWarning: invalid escape sequence \s

examples/reference/panes/LaTeX.ipynb::D:\code\pyviz\panel\examples\reference\panes\LaTeX.ipynb
  D:\code\pyviz\panel\examples\reference\panes\LaTeX.ipynb:36: DeprecationWarning: invalid escape sequence \(
    ]

examples/reference/panes/LaTeX.ipynb::D:\code\pyviz\panel\examples\reference\panes\LaTeX.ipynb
  D:\code\pyviz\panel\examples\reference\panes\LaTeX.ipynb:46: DeprecationWarning: invalid escape sequence \s
    "latex"

examples/reference/panes/LaTeX.ipynb::D:\code\pyviz\panel\examples\reference\panes\LaTeX.ipynb
  D:\code\pyviz\panel\examples\reference\panes\LaTeX.ipynb:54: DeprecationWarning: invalid escape sequence \s
    ]

-- Docs: https://docs.pytest.org/en/latest/warnings.html
========================================= 19 failed, 71 passed, 186 skipped, 12 warnings in 132.97 seconds =========================================

hvplot

(nbsdev) D:\code\pyviz\hvplot>pytest -v --nbsmoke-lint --nbsmoke-lint-debug examples
=============================================================== test session starts ================================================================
platform win32 -- Python 3.6.8, pytest-4.4.1, py-1.8.0, pluggy-0.9.0 -- d:\venvs\nbsdev\scripts\python.exe
cachedir: .pytest_cache
rootdir: D:\code\pyviz\hvplot, inifile: tox.ini
plugins: cov-2.7.1, nbsmoke-0.2.7.post3+gc839325.dirty
collected 11 items / 22 skipped

examples/homepage.ipynb::D:\code\pyviz\hvplot\examples\homepage.ipynb FAILED                                                                  [  9%]
examples/user_guide/Customization.ipynb::D:\code\pyviz\hvplot\examples\user_guide\Customization.ipynb PASSED                                  [ 18%]
examples/user_guide/Geographic_Data.ipynb::D:\code\pyviz\hvplot\examples\user_guide\Geographic_Data.ipynb FAILED                              [ 27%]
examples/user_guide/Gridded_Data.ipynb::D:\code\pyviz\hvplot\examples\user_guide\Gridded_Data.ipynb FAILED                                    [ 36%]
examples/user_guide/Introduction.ipynb::D:\code\pyviz\hvplot\examples\user_guide\Introduction.ipynb FAILED                                    [ 45%]
examples/user_guide/NetworkX.ipynb::D:\code\pyviz\hvplot\examples\user_guide\NetworkX.ipynb FAILED                                            [ 54%]
examples/user_guide/Plotting.ipynb::D:\code\pyviz\hvplot\examples\user_guide\Plotting.ipynb FAILED                                            [ 63%]
examples/user_guide/Statistical_Plots.ipynb::D:\code\pyviz\hvplot\examples\user_guide\Statistical_Plots.ipynb PASSED                          [ 72%]
examples/user_guide/Streaming.ipynb::D:\code\pyviz\hvplot\examples\user_guide\Streaming.ipynb FAILED                                          [ 81%]
examples/user_guide/Subplots.ipynb::D:\code\pyviz\hvplot\examples\user_guide\Subplots.ipynb FAILED                                            [ 90%]
examples/user_guide/Viewing.ipynb::D:\code\pyviz\hvplot\examples\user_guide\Viewing.ipynb FAILED                                              [100%]

===================================================================== FAILURES =====================================================================
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\hvplot\examples\homepage.ipynb
** line 82 col 0: 'hvplot.xarray' imported but unused
To see python source that was checked by pyflakes: D:\code\pyviz\hvplot\examples\homepage.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\hvplot\examples\homepage.nbsmoke-debug-premagicprocess.py
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\hvplot\examples\user_guide\Geographic_Data.ipynb
** line 16 col 0: 'hvplot.xarray' imported but unused
To see python source that was checked by pyflakes: D:\code\pyviz\hvplot\examples\user_guide\Geographic_Data.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\hvplot\examples\user_guide\Geographic_Data.nbsmoke-debug-premagicprocess.py
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\hvplot\examples\user_guide\Gridded_Data.ipynb
** line 18 col 0: 'numpy as np' imported but unused
** line 20 col 0: 'hvplot.xarray' imported but unused
To see python source that was checked by pyflakes: D:\code\pyviz\hvplot\examples\user_guide\Gridded_Data.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\hvplot\examples\user_guide\Gridded_Data.nbsmoke-debug-premagicprocess.py
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\hvplot\examples\user_guide\Introduction.ipynb
** line 58 col 0: 'hvplot.pandas' imported but unused
To see python source that was checked by pyflakes: D:\code\pyviz\hvplot\examples\user_guide\Introduction.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\hvplot\examples\user_guide\Introduction.nbsmoke-debug-premagicprocess.py
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\hvplot\examples\user_guide\NetworkX.ipynb
** line 18 col 0: 'numpy as np' imported but unused
** line 443 col 0: 'matplotlib.pyplot as plt' imported but unused
** line 524 col 4: redefinition of unused 'pygraphviz' from line 275
** line 524 col 4: 'pygraphviz' imported but unused
** line 529 col 8: redefinition of unused 'pydot' from line 279
** line 529 col 8: 'pydot' imported but unused
To see python source that was checked by pyflakes: D:\code\pyviz\hvplot\examples\user_guide\NetworkX.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\hvplot\examples\user_guide\NetworkX.nbsmoke-debug-premagicprocess.py
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\hvplot\examples\user_guide\Plotting.ipynb
** line 16 col 0: 'intake' imported but unused
** line 19 col 0: 'hvplot.dask' imported but unused
To see python source that was checked by pyflakes: D:\code\pyviz\hvplot\examples\user_guide\Plotting.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\hvplot\examples\user_guide\Plotting.nbsmoke-debug-premagicprocess.py
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\hvplot\examples\user_guide\Streaming.ipynb
** line 22 col 0: 'hvplot.streamz' imported but unused
To see python source that was checked by pyflakes: D:\code\pyviz\hvplot\examples\user_guide\Streaming.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\hvplot\examples\user_guide\Streaming.nbsmoke-debug-premagicprocess.py
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\hvplot\examples\user_guide\Subplots.ipynb
** line 18 col 0: 'numpy as np' imported but unused
** line 21 col 0: 'hvplot.xarray' imported but unused
To see python source that was checked by pyflakes: D:\code\pyviz\hvplot\examples\user_guide\Subplots.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\hvplot\examples\user_guide\Subplots.nbsmoke-debug-premagicprocess.py
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\hvplot\examples\user_guide\Viewing.ipynb
** line 42 col 9: undefined name 'display'
To see python source that was checked by pyflakes: D:\code\pyviz\hvplot\examples\user_guide\Viewing.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\hvplot\examples\user_guide\Viewing.nbsmoke-debug-premagicprocess.py
================================================= 9 failed, 2 passed, 22 skipped in 20.89 seconds ==================================================

colorcet

(nbsdev) D:\code\pyviz\colorcet2>pytest -v --nbsmoke-lint --nbsmoke-lint-debug examples
=============================================================== test session starts ================================================================
platform win32 -- Python 3.6.8, pytest-4.4.1, py-1.8.0, pluggy-0.9.0 -- d:\venvs\nbsdev\scripts\python.exe
cachedir: .pytest_cache
rootdir: D:\code\pyviz\colorcet2, inifile: tox.ini
plugins: cov-2.7.1, nbsmoke-0.2.7.post3+gc839325.dirty
collected 4 items

examples/index.ipynb::D:\code\pyviz\colorcet2\examples\index.ipynb PASSED                                                                     [ 25%]
examples/user_guide/Categorical.ipynb::D:\code\pyviz\colorcet2\examples\user_guide\Categorical.ipynb PASSED                                   [ 50%]
examples/user_guide/Continuous.ipynb::D:\code\pyviz\colorcet2\examples\user_guide\Continuous.ipynb PASSED                                     [ 75%]
examples/user_guide/index.ipynb::D:\code\pyviz\colorcet2\examples\user_guide\index.ipynb PASSED                                               [100%]

============================================================= 4 passed in 3.34 seconds =============================================================

param

(nbsdev) D:\code\pyviz\param>pytest -v --nbsmoke-lint --nbsmoke-lint-debug examples
=============================================================== test session starts ================================================================
platform win32 -- Python 3.6.8, pytest-4.4.1, py-1.8.0, pluggy-0.9.0 -- d:\venvs\nbsdev\scripts\python.exe
cachedir: .pytest_cache
rootdir: D:\code\pyviz\param
plugins: cov-2.7.1, nbsmoke-0.2.7.post3+gc839325.dirty
collected 2 items

examples/About.ipynb::D:\code\pyviz\param\examples\About.ipynb PASSED                                                                         [ 50%]
examples/index.ipynb::D:\code\pyviz\param\examples\index.ipynb PASSED                                                                         [100%]

============================================================= 2 passed in 1.09 seconds =============================================================

examples

(nbsdev) D:\code\pyviz\examples>pytest -v --nbsmoke-lint --nbsmoke-lint-debug .
=============================================================== test session starts ================================================================
platform win32 -- Python 3.6.8, pytest-4.4.1, py-1.8.0, pluggy-0.9.0 -- d:\venvs\nbsdev\scripts\python.exe
cachedir: .pytest_cache
rootdir: D:\code\pyviz\examples, inifile: tox.ini
plugins: cov-2.7.1, nbsmoke-0.2.7.post3+gc839325.dirty
collected 21 items / 45 skipped

attractors/attractors.ipynb::D:\code\pyviz\examples\attractors\attractors.ipynb PASSED                                                        [  4%]
attractors/clifford.ipynb::D:\code\pyviz\examples\attractors\clifford.ipynb PASSED                                                            [  9%]
bay_trimesh/bay_trimesh.ipynb::D:\code\pyviz\examples\bay_trimesh\bay_trimesh.ipynb PASSED                                                    [ 14%]
census/census.ipynb::D:\code\pyviz\examples\census\census.ipynb PASSED                                                                        [ 19%]
gapminders/gapminders.ipynb::D:\code\pyviz\examples\gapminders\gapminders.ipynb FAILED                                                        [ 23%]
gerrymandering/gerrymandering.ipynb::D:\code\pyviz\examples\gerrymandering\gerrymandering.ipynb PASSED                                        [ 28%]
glaciers/glaciers.ipynb::D:\code\pyviz\examples\glaciers\glaciers.ipynb FAILED                                                                [ 33%]
landsat/landsat.ipynb::D:\code\pyviz\examples\landsat\landsat.ipynb PASSED                                                                    [ 38%]
lsystems/lsystems.ipynb::D:\code\pyviz\examples\lsystems\lsystems.ipynb PASSED                                                                [ 42%]
network_packets/network_packets.ipynb::D:\code\pyviz\examples\network_packets\network_packets.ipynb PASSED                                    [ 47%]
nyc_taxi/dashboard.ipynb::D:\code\pyviz\examples\nyc_taxi\dashboard.ipynb FAILED                                                              [ 52%]
nyc_taxi/nyc_taxi-nongeo.ipynb::D:\code\pyviz\examples\nyc_taxi\nyc_taxi-nongeo.ipynb FAILED                                                  [ 57%]
nyc_taxi/nyc_taxi.ipynb::D:\code\pyviz\examples\nyc_taxi\nyc_taxi.ipynb PASSED                                                                [ 61%]
opensky/opensky.ipynb::D:\code\pyviz\examples\opensky\opensky.ipynb FAILED                                                                    [ 66%]
osm/osm-1billion.ipynb::D:\code\pyviz\examples\osm\osm-1billion.ipynb PASSED                                                                  [ 71%]
osm/osm-3billion.ipynb::D:\code\pyviz\examples\osm\osm-3billion.ipynb PASSED                                                                  [ 76%]
simulation/boids.ipynb::D:\code\pyviz\examples\simulation\boids.ipynb PASSED                                                                  [ 80%]
simulation/hipster_dynamics.ipynb::D:\code\pyviz\examples\simulation\hipster_dynamics.ipynb PASSED                                            [ 85%]
simulation/sri_model.ipynb::D:\code\pyviz\examples\simulation\sri_model.ipynb PASSED                                                          [ 90%]
square_limit/square_limit.ipynb::D:\code\pyviz\examples\square_limit\square_limit.ipynb PASSED                                                [ 95%]
uk_researchers/uk_researchers.ipynb::D:\code\pyviz\examples\uk_researchers\uk_researchers.ipynb PASSED                                        [100%]

===================================================================== FAILURES =====================================================================
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\examples\gapminders\gapminders.ipynb
** line 26 col 0: 'hvplot.pandas' imported but unused
To see python source that was checked by pyflakes: D:\code\pyviz\examples\gapminders\gapminders.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\examples\gapminders\gapminders.nbsmoke-debug-premagicprocess.py
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\examples\glaciers\glaciers.ipynb
** line 30 col 0: 'os' imported but unused
** line 30 col 0: 'bokeh' imported but unused
** line 34 col 0: 'holoviews.util.Dynamic' imported but unused
To see python source that was checked by pyflakes: D:\code\pyviz\examples\glaciers\glaciers.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\examples\glaciers\glaciers.nbsmoke-debug-premagicprocess.py
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\examples\nyc_taxi\dashboard.ipynb
** line 28 col 0: 'holoviews.streams.RangeXY' imported but unused
To see python source that was checked by pyflakes: D:\code\pyviz\examples\nyc_taxi\dashboard.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\examples\nyc_taxi\dashboard.nbsmoke-debug-premagicprocess.py
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\examples\nyc_taxi\nyc_taxi-nongeo.ipynb
** line 19 col 0: 'pandas as pd' imported but unused
To see python source that was checked by pyflakes: D:\code\pyviz\examples\nyc_taxi\nyc_taxi-nongeo.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\examples\nyc_taxi\nyc_taxi-nongeo.nbsmoke-debug-premagicprocess.py
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\examples\opensky\opensky.ipynb
** line 72 col 0: 'holoviews.element.tiles.StamenTerrain' imported but unused
To see python source that was checked by pyflakes: D:\code\pyviz\examples\opensky\opensky.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\examples\opensky\opensky.nbsmoke-debug-premagicprocess.py

earthml

(nbsdev) D:\code\pyviz\earthml>pytest -v --nbsmoke-lint --nbsmoke-lint-debug examples
=============================================================== test session starts ================================================================
platform win32 -- Python 3.6.8, pytest-4.4.1, py-1.8.0, pluggy-0.9.0 -- d:\venvs\nbsdev\scripts\python.exe
cachedir: .pytest_cache
rootdir: D:\code\pyviz\earthml, inifile: tox.ini
plugins: cov-2.7.1, nbsmoke-0.2.7.post3+gc839325.dirty
collected 13 items / 26 skipped

examples/ai18.ipynb::D:\code\pyviz\earthml\examples\ai18.ipynb PASSED                                                                         [  7%]
examples/topics/Carbon_Flux.ipynb::D:\code\pyviz\earthml\examples\topics\Carbon_Flux.ipynb FAILED                                             [ 15%]
examples/topics/Heat_and_Trees.ipynb::D:\code\pyviz\earthml\examples\topics\Heat_and_Trees.ipynb FAILED                                       [ 23%]
examples/topics/Image_Classification.ipynb::D:\code\pyviz\earthml\examples\topics\Image_Classification.ipynb PASSED                           [ 30%]
examples/topics/Landsat_Spectral_Clustering.ipynb::D:\code\pyviz\earthml\examples\topics\Landsat_Spectral_Clustering.ipynb FAILED             [ 38%]
examples/topics/Seattle_Lidar.ipynb::D:\code\pyviz\earthml\examples\topics\Seattle_Lidar.ipynb FAILED                                         [ 46%]
examples/topics/Walker_Lake.ipynb::D:\code\pyviz\earthml\examples\topics\Walker_Lake.ipynb FAILED                                             [ 53%]
examples/tutorial/01_Data_Ingestion.ipynb::D:\code\pyviz\earthml\examples\tutorial\01_Data_Ingestion.ipynb FAILED                             [ 61%]
examples/tutorial/02_Introduction_to_Visualization.ipynb::D:\code\pyviz\earthml\examples\tutorial\02_Introduction_to_Visualization.ipynb FAILED [ 69%]
examples/tutorial/03_Alignment_and_Preprocessing.ipynb::D:\code\pyviz\earthml\examples\tutorial\03_Alignment_and_Preprocessing.ipynb FAILED   [ 76%]
examples/tutorial/04_Machine_Learning.ipynb::D:\code\pyviz\earthml\examples\tutorial\04_Machine_Learning.ipynb FAILED                         [ 84%]
examples/tutorial/05_Data_Visualization.ipynb::D:\code\pyviz\earthml\examples\tutorial\05_Data_Visualization.ipynb PASSED                     [ 92%]
examples/tutorial/index.ipynb::D:\code\pyviz\earthml\examples\tutorial\index.ipynb PASSED                                                     [100%]

===================================================================== FAILURES =====================================================================
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\earthml\examples\topics\Carbon_Flux.ipynb
** line 33 col 0: 'hvplot.pandas' imported but unused
To see python source that was checked by pyflakes: D:\code\pyviz\earthml\examples\topics\Carbon_Flux.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\earthml\examples\topics\Carbon_Flux.nbsmoke-debug-premagicprocess.py
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\earthml\examples\topics\Heat_and_Trees.ipynb
** line 33 col 0: 'hvplot.pandas' imported but unused
To see python source that was checked by pyflakes: D:\code\pyviz\earthml\examples\topics\Heat_and_Trees.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\earthml\examples\topics\Heat_and_Trees.nbsmoke-debug-premagicprocess.py
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\earthml\examples\topics\Landsat_Spectral_Clustering.ipynb
** line 21 col 0: 'rasterio' imported but unused
** line 22 col 0: 'numpy as np' imported but unused
** line 23 col 0: 'xarray as xr' imported but unused
To see python source that was checked by pyflakes: D:\code\pyviz\earthml\examples\topics\Landsat_Spectral_Clustering.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\earthml\examples\topics\Landsat_Spectral_Clustering.nbsmoke-debug-premagicprocess.py
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\earthml\examples\topics\Seattle_Lidar.ipynb
** line 165 col 0: 'holoviews.operation.datashader.datashade' imported but unused
** line 204 col 0: undefined name 'display'
** line 210 col 0: undefined name 'display'
** line 216 col 0: undefined name 'display'
To see python source that was checked by pyflakes: D:\code\pyviz\earthml\examples\topics\Seattle_Lidar.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\earthml\examples\topics\Seattle_Lidar.nbsmoke-debug-premagicprocess.py
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\earthml\examples\topics\Walker_Lake.ipynb
** line 22 col 0: 'xarray as xr' imported but unused
** line 26 col 0: 'datashader as ds' imported but unused
** line 28 col 0: 'pandas as pd' imported but unused
** line 29 col 0: 'glob' imported but unused
** line 32 col 0: 'holoviews.operation.datashader.regrid' imported but unused
** line 32 col 0: 'holoviews.operation.datashader.shade' imported but unused
To see python source that was checked by pyflakes: D:\code\pyviz\earthml\examples\topics\Walker_Lake.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\earthml\examples\topics\Walker_Lake.nbsmoke-debug-premagicprocess.py
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\earthml\examples\tutorial\01_Data_Ingestion.ipynb
** line 186 col 0: 'hvplot.intake' imported but unused
To see python source that was checked by pyflakes: D:\code\pyviz\earthml\examples\tutorial\01_Data_Ingestion.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\earthml\examples\tutorial\01_Data_Ingestion.nbsmoke-debug-premagicprocess.py
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\earthml\examples\tutorial\02_Introduction_to_Visualization.ipynb
** line 121 col 0: 'hvplot.xarray' imported but unused
To see python source that was checked by pyflakes: D:\code\pyviz\earthml\examples\tutorial\02_Introduction_to_Visualization.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\earthml\examples\tutorial\02_Introduction_to_Visualization.nbsmoke-debug-premagicprocess.py
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\earthml\examples\tutorial\03_Alignment_and_Preprocessing.ipynb
** line 29 col 0: 'hvplot.xarray' imported but unused
To see python source that was checked by pyflakes: D:\code\pyviz\earthml\examples\tutorial\03_Alignment_and_Preprocessing.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\earthml\examples\tutorial\03_Alignment_and_Preprocessing.nbsmoke-debug-premagicprocess.py
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\earthml\examples\tutorial\04_Machine_Learning.ipynb
** line 20 col 0: 'xarray as xr' imported but unused
** line 24 col 0: 'cartopy.crs as ccrs' imported but unused
** line 27 col 0: 'hvplot.xarray' imported but unused
To see python source that was checked by pyflakes: D:\code\pyviz\earthml\examples\tutorial\04_Machine_Learning.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\earthml\examples\tutorial\04_Machine_Learning.nbsmoke-debug-premagicprocess.py
================================================= 9 failed, 4 passed, 26 skipped in 29.01 seconds ==================================================

earthsim

(nbsdev) D:\code\pyviz\earthsim>pytest -v --nbsmoke-lint --nbsmoke-lint-debug examples
=============================================================== test session starts ================================================================
platform win32 -- Python 3.6.8, pytest-4.4.1, py-1.8.0, pluggy-0.9.0 -- d:\venvs\nbsdev\scripts\python.exe
cachedir: .pytest_cache
rootdir: D:\code\pyviz\earthsim, inifile: tox.ini
plugins: cov-2.7.1, nbsmoke-0.2.7.post3+gc839325.dirty
collected 12 items / 1 skipped / 11 selected

examples/topics/GSSHA_Parameter_Sweep.ipynb::D:\code\pyviz\earthsim\examples\topics\GSSHA_Parameter_Sweep.ipynb PASSED                        [  8%]
examples/topics/GSSHA_Workflow.ipynb::D:\code\pyviz\earthsim\examples\topics\GSSHA_Workflow.ipynb FAILED                                      [ 16%]
examples/topics/GrabCut.ipynb::D:\code\pyviz\earthsim\examples\topics\GrabCut.ipynb FAILED                                                    [ 25%]
examples/topics/batched_example/GSSHA_Workflow_Batched_Example1.ipynb::D:\code\pyviz\earthsim\examples\topics\batched_example\GSSHA_Workflow_Batched_Example1.ipynb FAILED [ 33%]
examples/topics/batched_example/GSSHA_Workflow_Batched_Example2.ipynb::D:\code\pyviz\earthsim\examples\topics\batched_example\GSSHA_Workflow_Batched_Example2.ipynb FAILED [ 41%]
examples/topics/batched_example/Rain_Intensity_Sweep_Example.ipynb::D:\code\pyviz\earthsim\examples\topics\batched_example\Rain_Intensity_Sweep_Example.ipynb FAILED [ 50%]
examples/user_guide/Analyzing_Meshes.ipynb::D:\code\pyviz\earthsim\examples\user_guide\Analyzing_Meshes.ipynb PASSED                          [ 58%]
examples/user_guide/Annotators.ipynb::D:\code\pyviz\earthsim\examples\user_guide\Annotators.ipynb FAILED                                      [ 66%]
examples/user_guide/Drawing_Tools.ipynb::D:\code\pyviz\earthsim\examples\user_guide\Drawing_Tools.ipynb FAILED                                [ 75%]
examples/user_guide/Generating_Meshes.ipynb::D:\code\pyviz\earthsim\examples\user_guide\Generating_Meshes.ipynb PASSED                        [ 83%]
examples/user_guide/Visualizing_Meshes.ipynb::D:\code\pyviz\earthsim\examples\user_guide\Visualizing_Meshes.ipynb PASSED                      [ 91%]
examples/user_guide/WMTS_Example.ipynb::D:\code\pyviz\earthsim\examples\user_guide\WMTS_Example.ipynb PASSED                                  [100%]

===================================================================== FAILURES =====================================================================
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\earthsim\examples\topics\GSSHA_Workflow.ipynb
** line 29 col 0: 'datetime.datetime' imported but unused
** line 32 col 0: 'shutil' imported but unused
** line 34 col 0: 'param' imported but unused
** line 45 col 0: 'earthsim.gssha.download_data' imported but unused
** line 46 col 0: 'holoviews.streams.CDSStream' imported but unused
** line 47 col 0: 'holoviews.operation.datashader.shade' imported but unused
To see python source that was checked by pyflakes: D:\code\pyviz\earthsim\examples\topics\GSSHA_Workflow.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\earthsim\examples\topics\GSSHA_Workflow.nbsmoke-debug-premagicprocess.py
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\earthsim\examples\topics\GrabCut.ipynb
** line 16 col 0: 'xarray as xr' imported but unused
** line 19 col 0: 'cartopy.crs as ccrs' imported but unused
** line 20 col 0: 'earthsim.annotators.PolyExporter' imported but unused
To see python source that was checked by pyflakes: D:\code\pyviz\earthsim\examples\topics\GrabCut.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\earthsim\examples\topics\GrabCut.nbsmoke-debug-premagicprocess.py
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\earthsim\examples\topics\batched_example\GSSHA_Workflow_Batched_Example1.ipynb
** Error - see captured stderr, below.
To see python source that was checked by pyflakes: D:\code\pyviz\earthsim\examples\topics\batched_example\GSSHA_Workflow_Batched_Example1.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\earthsim\examples\topics\batched_example\GSSHA_Workflow_Batched_Example1.nbsmoke-debug-premagicprocess.py
--------------------------------------------------------------- Captured stderr call ---------------------------------------------------------------
D:\code\pyviz\earthsim\examples\topics\batched_example\GSSHA_Workflow_Batched_Example1.ipynb:77:8: invalid syntax
rm -r ./vicksburg_south/
       ^
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\earthsim\examples\topics\batched_example\GSSHA_Workflow_Batched_Example2.ipynb
** Error - see captured stderr, below.
To see python source that was checked by pyflakes: D:\code\pyviz\earthsim\examples\topics\batched_example\GSSHA_Workflow_Batched_Example2.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\earthsim\examples\topics\batched_example\GSSHA_Workflow_Batched_Example2.nbsmoke-debug-premagicprocess.py
--------------------------------------------------------------- Captured stderr call ---------------------------------------------------------------
D:\code\pyviz\earthsim\examples\topics\batched_example\GSSHA_Workflow_Batched_Example2.ipynb:64:8: invalid syntax
rm -r ./vicksburg_south/
       ^
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\earthsim\examples\topics\batched_example\Rain_Intensity_Sweep_Example.ipynb
** Error - see captured stderr, below.
To see python source that was checked by pyflakes: D:\code\pyviz\earthsim\examples\topics\batched_example\Rain_Intensity_Sweep_Example.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\earthsim\examples\topics\batched_example\Rain_Intensity_Sweep_Example.nbsmoke-debug-premagicprocess.py
--------------------------------------------------------------- Captured stderr call ---------------------------------------------------------------
D:\code\pyviz\earthsim\examples\topics\batched_example\Rain_Intensity_Sweep_Example.ipynb:148:5: invalid syntax
ls ./output
    ^
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\earthsim\examples\user_guide\Annotators.ipynb
** line 14 col 0: 'panel as pn' imported but unused
To see python source that was checked by pyflakes: D:\code\pyviz\earthsim\examples\user_guide\Annotators.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\earthsim\examples\user_guide\Annotators.nbsmoke-debug-premagicprocess.py
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\earthsim\examples\user_guide\Drawing_Tools.ipynb
** line 24 col 0: 'cartopy.crs as ccrs' imported but unused
** line 64 col 4: undefined name 'display'
To see python source that was checked by pyflakes: D:\code\pyviz\earthsim\examples\user_guide\Drawing_Tools.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\earthsim\examples\user_guide\Drawing_Tools.nbsmoke-debug-premagicprocess.py
================================================================= warnings summary =================================================================
examples/topics/GSSHA_Workflow.ipynb::D:\code\pyviz\earthsim\examples\topics\GSSHA_Workflow.ipynb
examples/topics/GSSHA_Workflow.ipynb::D:\code\pyviz\earthsim\examples\topics\GSSHA_Workflow.ipynb
examples/topics/GSSHA_Workflow.ipynb::D:\code\pyviz\earthsim\examples\topics\GSSHA_Workflow.ipynb
examples/topics/batched_example/GSSHA_Workflow_Batched_Example1.ipynb::D:\code\pyviz\earthsim\examples\topics\batched_example\GSSHA_Workflow_Batched_Example1.ipynb
examples/topics/batched_example/GSSHA_Workflow_Batched_Example1.ipynb::D:\code\pyviz\earthsim\examples\topics\batched_example\GSSHA_Workflow_Batched_Example1.ipynb
examples/topics/batched_example/GSSHA_Workflow_Batched_Example1.ipynb::D:\code\pyviz\earthsim\examples\topics\batched_example\GSSHA_Workflow_Batched_Example1.ipynb
examples/topics/batched_example/GSSHA_Workflow_Batched_Example2.ipynb::D:\code\pyviz\earthsim\examples\topics\batched_example\GSSHA_Workflow_Batched_Example2.ipynb
examples/topics/batched_example/GSSHA_Workflow_Batched_Example2.ipynb::D:\code\pyviz\earthsim\examples\topics\batched_example\GSSHA_Workflow_Batched_Example2.ipynb
examples/topics/batched_example/GSSHA_Workflow_Batched_Example2.ipynb::D:\code\pyviz\earthsim\examples\topics\batched_example\GSSHA_Workflow_Batched_Example2.ipynb
  <input>:12: DeprecationWarning: invalid escape sequence \d

examples/topics/GSSHA_Workflow.ipynb::D:\code\pyviz\earthsim\examples\topics\GSSHA_Workflow.ipynb
  D:\code\pyviz\earthsim\examples\topics\GSSHA_Workflow.ipynb:194: DeprecationWarning: invalid escape sequence \d
    ]

-- Docs: https://docs.pytest.org/en/latest/warnings.html
=========================================== 7 failed, 5 passed, 1 skipped, 10 warnings in 16.81 seconds ============================================

@jbednar
Copy link

jbednar commented Jun 12, 2019

I have not yet removed hv magics handling, but I've run this PR's nbsmoke over all pyviz projects (I think I got them all!). I'll re-run after removing hv magics handling, but a few questions have come up:

nbsmoke could easily support ipython's display() (i.e. using display without importing). Should it? (My vote: it should complain. But maybe I'd feel different if I were a heavy notebook user...)

Thanks for this! I personally really hate display() being in the namespace automatically, and I think people should import it. So I think nbsmoke should keep complaining about it, particularly so that notebook code can be used in non-notebook contexts (e.g. panel serve) or at least make it more clear that it can't be. It's easy to miss a call to display().

A few pyviz notebooks use some ipython aliases, e.g. ls ./output, rm -r ./vicksburg_south. I think we agreed not to use those as they are confusing (e.g. ls is ok on win, but ls -l is not because ls actually maps to dir...). What do you think?

We agreed not to use them, but haven't removed all examples of them. We'll need to make a PR in each case.

hvplot relies on import side effects, so there are apparently unused imports in hvplot examples. I'm opposed to imports with side effects, but I also think they are a good idea for hvplot :) What should nbsmoke do? Allow a whitelist of acceptable unused imports to be supplied? Or should the imports be explained with a #noqa comment? Any better idea?

Good question. If it's straightforward to add a user-extensible whitelist of unused (sideffecty) imports (presumably as globs hvplot.* or regexes hvplot[.].*), then that sounds cleaner than adding #noqa all over the place. But I do think it's important to check for unused imports, as we seem to leave them all over the place and they are confusing for users who will wonder what their purpose is. So if it has to be #noqa, I think it's worth it to get checking enabled.

I noticed a complaint about a __future__ import not being at the start of the file. I'm surprised to see a __future__ import in an example notebook, and I guess it could be avoided in the example here, but nbsmoke could be changed to handle __future__ imports better.

It seems like using __future__ is an error there? Maybe the start of a notebook cell is defined as "the start of a file", but in any case such usage won't work if the file is exported to a Python script, so I think we should simply avoid using __future__ in this way.

I also noticed that one or more pyviz notebook has "#noqa". I thought we weren't going to use that? Or if using, maybe it should say why, e.g. #noqa: imported for you to use in your solution?)

For an exercise, sure; that wording sounds good. In general, I think we should try not to have #noqa whenever possible, but I don't see how we will always avoid it.

examples/reference/panes/LaTeX.ipynb::
examples/topics/batched_example/GSSHA_Workflow_Batched_Example2

Any idea if these issues are real ("invalid escape sequence")?

@jsignell
Copy link
Contributor

Chris, thanks so much for running it on all those projects! It is abundantly clear which ones have linting enabled in CI and which don't...

For display I think making people import it is a good idea. I know I was very confused the first time I saw a reference to it in a notebook and couldn't find the import.

Yep I agree. I actually think #noqa with an explanation for hvplot imports isn't such a terrible idea. It makes it clear what is going on and these are all examples so they should be explicit.

I've been seeing the escape sequence warning cropping up in various places, but hadn't looked into it yet.

@ceball
Copy link
Contributor Author

ceball commented Jun 13, 2019

About the invalid escape sequence warnings: their appearance is probably down to whatever warning filter is used by pytest, but it's not an nbsmoke or a pytest thing:

>type esc.py
"\z"

>python esc.py

>set PYTHONWARNINGS=default

>python esc.py
esc.py:1: DeprecationWarning: invalid escape sequence \z
  "\z"

>type esc2.py
r"\z"

>python esc2.py

>python --version
Python 3.6.8

Changed in version 3.6: Unrecognized escape sequences produce a DeprecationWarning. In some future version of Python they will be a SyntaxError.

https://docs.python.org/3/reference/lexical_analysis.html

@jbednar
Copy link

jbednar commented Jun 13, 2019

Ok, sounds like those warnings are real and we should be adding escape characters to the strings in those notebooks. Thanks.

I'm happy with either the whitelist or the #noqa approach for hvplot; I'll leave that up to you two.

@ceball
Copy link
Contributor Author

ceball commented Jun 13, 2019

I've fixed the flake checking under python 2 for the benefit of charities etc that can't afford to upgrade from python 2. Still got the appveyor/windows tests to fix (I'm using windows locally, so surprised they don't just pass..). Also still got the conda tests to fix (I can't run conda locally - laptop too slow :( - but I should be able to figure it out from the travis logs later).

ceball added 7 commits June 17, 2019 17:32
…ests all fail. See how py2 is getting on now...
…ally sure which packages I should be installing to provide the imports required by nbsmoke).
  * Support for flakes to ignore.
  * Support for magics blacklist.
  * Separated cell and line magics.
  * Increased number of builtin magics that will be ignored.
  * Support for capture, script magics (mainly as demo).
@ceball ceball changed the title Make nbsmoke a bit more maintainable WIP: Initial go at next version, improve maintainability Sep 1, 2019
@ceball
Copy link
Contributor Author

ceball commented Sep 1, 2019

I guess the appveyor tests have been lost in one of the pyviz renames? :( Although I am developing on win, the appveyor tests were failing when I last worked on this PR.

@ceball
Copy link
Contributor Author

ceball commented Sep 1, 2019

Running again over some of our projects (nbsmoke's been run before on some of them in the past, but maybe not for a bit recently)...

geoviews

holoviz/geoviews#356

holoviews

holoviz/holoviews#3940

datashader

(nbsdev) D:\code\pyviz\datashader>pytest -v --nbsmoke-lint --nbsmoke-lint-debug examples
=============================================================== test session starts ================================================================
platform win32 -- Python 3.6.8, pytest-4.4.1, py-1.8.0, pluggy-0.9.0 -- d:\venvs\nbsdev\scripts\python.exe
cachedir: .pytest_cache
rootdir: D:\code\pyviz\datashader, inifile: tox.ini
plugins: cov-2.7.1, nbsmoke-0.2.8.post44+gbdfd485
collected 20 items / 102 skipped

examples/FAQ.ipynb::D:\code\pyviz\datashader\examples\FAQ.ipynb PASSED                                                                        [  5%]
examples/dashboard.ipynb::D:\code\pyviz\datashader\examples\dashboard.ipynb PASSED                                                            [ 10%]
examples/index.ipynb::D:\code\pyviz\datashader\examples\index.ipynb PASSED                                                                    [ 15%]
examples/streaming-aggregation.ipynb::D:\code\pyviz\datashader\examples\streaming-aggregation.ipynb PASSED                                    [ 20%]
examples/tiling.ipynb::D:\code\pyviz\datashader\examples\tiling.ipynb PASSED                                                                  [ 25%]
examples/getting_started/1_Introduction.ipynb::D:\code\pyviz\datashader\examples\getting_started\1_Introduction.ipynb PASSED                  [ 30%]
examples/getting_started/2_Pipeline.ipynb::D:\code\pyviz\datashader\examples\getting_started\2_Pipeline.ipynb PASSED                          [ 35%]
examples/getting_started/3_Interactivity.ipynb::D:\code\pyviz\datashader\examples\getting_started\3_Interactivity.ipynb PASSED                [ 40%]
examples/getting_started/index.ipynb::D:\code\pyviz\datashader\examples\getting_started\index.ipynb PASSED                                    [ 45%]
examples/user_guide/10_Performance.ipynb::D:\code\pyviz\datashader\examples\user_guide\10_Performance.ipynb PASSED                            [ 50%]
examples/user_guide/1_Plotting_Pitfalls.ipynb::D:\code\pyviz\datashader\examples\user_guide\1_Plotting_Pitfalls.ipynb PASSED                  [ 55%]
examples/user_guide/2_Points.ipynb::D:\code\pyviz\datashader\examples\user_guide\2_Points.ipynb PASSED                                        [ 60%]
examples/user_guide/3_Timeseries.ipynb::D:\code\pyviz\datashader\examples\user_guide\3_Timeseries.ipynb PASSED                                [ 65%]
examples/user_guide/4_Trajectories.ipynb::D:\code\pyviz\datashader\examples\user_guide\4_Trajectories.ipynb PASSED                            [ 70%]
examples/user_guide/5_Rasters.ipynb::D:\code\pyviz\datashader\examples\user_guide\5_Rasters.ipynb PASSED                                      [ 75%]
examples/user_guide/6_Trimesh.ipynb::D:\code\pyviz\datashader\examples\user_guide\6_Trimesh.ipynb PASSED                                      [ 80%]
examples/user_guide/7_Networks.ipynb::D:\code\pyviz\datashader\examples\user_guide\7_Networks.ipynb PASSED                                    [ 85%]
examples/user_guide/8_Geography.ipynb::D:\code\pyviz\datashader\examples\user_guide\8_Geography.ipynb PASSED                                  [ 90%]
examples/user_guide/9_Extending.ipynb::D:\code\pyviz\datashader\examples\user_guide\9_Extending.ipynb PASSED                                  [ 95%]
examples/user_guide/index.ipynb::D:\code\pyviz\datashader\examples\user_guide\index.ipynb PASSED                                              [100%]

===================================================== 20 passed, 102 skipped in 63.86 seconds ======================================================

hvplot

Without ignoring any flakes:

(nbsdev) D:\code\pyviz\hvplot>pytest -v --nbsmoke-lint --nbsmoke-lint-debug examples
=============================================================== test session starts ================================================================
platform win32 -- Python 3.6.8, pytest-4.4.1, py-1.8.0, pluggy-0.9.0 -- d:\venvs\nbsdev\scripts\python.exe
cachedir: .pytest_cache
rootdir: D:\code\pyviz\hvplot, inifile: tox.ini
plugins: cov-2.7.1, nbsmoke-0.2.8.post44+gbdfd485
collected 11 items / 22 skipped

examples/homepage.ipynb::D:\code\pyviz\hvplot\examples\homepage.ipynb FAILED                                                                  [  9%]
examples/user_guide/Customization.ipynb::D:\code\pyviz\hvplot\examples\user_guide\Customization.ipynb PASSED                                  [ 18%]
examples/user_guide/Geographic_Data.ipynb::D:\code\pyviz\hvplot\examples\user_guide\Geographic_Data.ipynb FAILED                              [ 27%]
examples/user_guide/Gridded_Data.ipynb::D:\code\pyviz\hvplot\examples\user_guide\Gridded_Data.ipynb FAILED                                    [ 36%]
examples/user_guide/Introduction.ipynb::D:\code\pyviz\hvplot\examples\user_guide\Introduction.ipynb FAILED                                    [ 45%]
examples/user_guide/NetworkX.ipynb::D:\code\pyviz\hvplot\examples\user_guide\NetworkX.ipynb FAILED                                            [ 54%]
examples/user_guide/Plotting.ipynb::D:\code\pyviz\hvplot\examples\user_guide\Plotting.ipynb FAILED                                            [ 63%]
examples/user_guide/Statistical_Plots.ipynb::D:\code\pyviz\hvplot\examples\user_guide\Statistical_Plots.ipynb PASSED                          [ 72%]
examples/user_guide/Streaming.ipynb::D:\code\pyviz\hvplot\examples\user_guide\Streaming.ipynb FAILED                                          [ 81%]
examples/user_guide/Subplots.ipynb::D:\code\pyviz\hvplot\examples\user_guide\Subplots.ipynb FAILED                                            [ 90%]
examples/user_guide/Viewing.ipynb::D:\code\pyviz\hvplot\examples\user_guide\Viewing.ipynb FAILED                                              [100%]

===================================================================== FAILURES =====================================================================
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\hvplot\examples\homepage.ipynb
** line 82 col 0: 'hvplot.xarray' imported but unused
To see python source that was checked by pyflakes: D:\code\pyviz\hvplot\examples\homepage.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\hvplot\examples\homepage.nbsmoke-debug-premagicprocess.py
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\hvplot\examples\user_guide\Geographic_Data.ipynb
** line 16 col 0: 'hvplot.xarray' imported but unused
To see python source that was checked by pyflakes: D:\code\pyviz\hvplot\examples\user_guide\Geographic_Data.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\hvplot\examples\user_guide\Geographic_Data.nbsmoke-debug-premagicprocess.py
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\hvplot\examples\user_guide\Gridded_Data.ipynb
** line 18 col 0: 'numpy as np' imported but unused
** line 20 col 0: 'hvplot.xarray' imported but unused
To see python source that was checked by pyflakes: D:\code\pyviz\hvplot\examples\user_guide\Gridded_Data.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\hvplot\examples\user_guide\Gridded_Data.nbsmoke-debug-premagicprocess.py
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\hvplot\examples\user_guide\Introduction.ipynb
** line 58 col 0: 'hvplot.pandas' imported but unused
To see python source that was checked by pyflakes: D:\code\pyviz\hvplot\examples\user_guide\Introduction.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\hvplot\examples\user_guide\Introduction.nbsmoke-debug-premagicprocess.py
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\hvplot\examples\user_guide\NetworkX.ipynb
** line 18 col 0: 'numpy as np' imported but unused
** line 443 col 0: 'matplotlib.pyplot as plt' imported but unused
** line 524 col 4: redefinition of unused 'pygraphviz' from line 275
** line 524 col 4: 'pygraphviz' imported but unused
** line 529 col 8: redefinition of unused 'pydot' from line 279
** line 529 col 8: 'pydot' imported but unused
To see python source that was checked by pyflakes: D:\code\pyviz\hvplot\examples\user_guide\NetworkX.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\hvplot\examples\user_guide\NetworkX.nbsmoke-debug-premagicprocess.py
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\hvplot\examples\user_guide\Plotting.ipynb
** line 16 col 0: 'intake' imported but unused
** line 19 col 0: 'hvplot.dask' imported but unused
To see python source that was checked by pyflakes: D:\code\pyviz\hvplot\examples\user_guide\Plotting.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\hvplot\examples\user_guide\Plotting.nbsmoke-debug-premagicprocess.py
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\hvplot\examples\user_guide\Streaming.ipynb
** line 22 col 0: 'hvplot.streamz' imported but unused
To see python source that was checked by pyflakes: D:\code\pyviz\hvplot\examples\user_guide\Streaming.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\hvplot\examples\user_guide\Streaming.nbsmoke-debug-premagicprocess.py
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\hvplot\examples\user_guide\Subplots.ipynb
** line 18 col 0: 'numpy as np' imported but unused
** line 21 col 0: 'hvplot.xarray' imported but unused
To see python source that was checked by pyflakes: D:\code\pyviz\hvplot\examples\user_guide\Subplots.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\hvplot\examples\user_guide\Subplots.nbsmoke-debug-premagicprocess.py
___________________________________________________________________ test session ___________________________________________________________________
D:\code\pyviz\hvplot\examples\user_guide\Viewing.ipynb
** line 42 col 9: undefined name 'display'
To see python source that was checked by pyflakes: D:\code\pyviz\hvplot\examples\user_guide\Viewing.nbsmoke-debug-postmagicprocess.py
To see python source before magics were handled by nbsmoke: D:\code\pyviz\hvplot\examples\user_guide\Viewing.nbsmoke-debug-premagicprocess.py
================================================= 9 failed, 2 passed, 22 skipped in 20.17 seconds ==================================================

Ignore deliberate side effect imports:

diff --git a/tox.ini b/tox.ini
index 8ab9e46..25834a4 100644
--- a/tox.ini
+++ b/tox.ini
@@ -73,7 +73,8 @@ norecursedirs = doc .git dist build _build .ipynb_checkpoints
 #                   .*gallery/bokeh/xarray_gridded\.ipynb$
 #                   .*gallery/.*/xarray_image\.ipynb$
 #                   .*gallery/.*/xarray_quadmesh\.ipynb$
-
+nbsmoke_flakes_to_ignore = .*hvplot\..* imported but unused.*
+
 [flake8]
 include = *.py
 # run_tests.py is generated by conda build, which appears to have a

See holoviz/hvplot#298 for output.

  • Decide default behavior for nbsmoke with display()
  • I didn't look at the NetworkX example (can't view/run notebooks at the moment)

holoviz

(nbsdev) D:\code\pyviz\pyviz>pytest -v --nbsmoke-lint --nbsmoke-lint-debug examples
=============================================================== test session starts ================================================================
platform win32 -- Python 3.6.8, pytest-4.4.1, py-1.8.0, pluggy-0.9.0 -- d:\venvs\nbsdev\scripts\python.exe
cachedir: .pytest_cache
rootdir: D:\code\pyviz\pyviz, inifile: tox.ini
plugins: cov-2.7.1, nbsmoke-0.2.8.post44+gbdfd485
collected 16 items / 82 skipped

examples/talks/Overview.ipynb::D:\code\pyviz\pyviz\examples\talks\Overview.ipynb PASSED                                                       [  6%]
examples/tutorial/00_Setup.ipynb::D:\code\pyviz\pyviz\examples\tutorial\00_Setup.ipynb PASSED                                                 [ 12%]
examples/tutorial/01_Overview.ipynb::D:\code\pyviz\pyviz\examples\tutorial\01_Overview.ipynb PASSED                                           [ 18%]
examples/tutorial/02_Building_Panels.ipynb::D:\code\pyviz\pyviz\examples\tutorial\02_Building_Panels.ipynb PASSED                             [ 25%]
examples/tutorial/03_Interlinked_Panels.ipynb::D:\code\pyviz\pyviz\examples\tutorial\03_Interlinked_Panels.ipynb PASSED                       [ 31%]
examples/tutorial/04_Basic_Plotting.ipynb::D:\code\pyviz\pyviz\examples\tutorial\04_Basic_Plotting.ipynb PASSED                               [ 37%]
examples/tutorial/05_Composing_Plots.ipynb::D:\code\pyviz\pyviz\examples\tutorial\05_Composing_Plots.ipynb PASSED                             [ 43%]
examples/tutorial/06_Interlinked_Plots.ipynb::D:\code\pyviz\pyviz\examples\tutorial\06_Interlinked_Plots.ipynb PASSED                         [ 50%]
examples/tutorial/07_Large_Data.ipynb::D:\code\pyviz\pyviz\examples\tutorial\07_Large_Data.ipynb PASSED                                       [ 56%]
examples/tutorial/08_Advanced_Dashboards.ipynb::D:\code\pyviz\pyviz\examples\tutorial\08_Advanced_Dashboards.ipynb PASSED                     [ 62%]
examples/tutorial/index.ipynb::D:\code\pyviz\pyviz\examples\tutorial\index.ipynb PASSED                                                       [ 68%]
examples/tutorial/scipy18.ipynb::D:\code\pyviz\pyviz\examples\tutorial\scipy18.ipynb PASSED                                                   [ 75%]
examples/tutorial/strata_ny18.ipynb::D:\code\pyviz\pyviz\examples\tutorial\strata_ny18.ipynb PASSED                                           [ 81%]
examples/tutorial/exercises/Advanced_Dashboarding.ipynb::D:\code\pyviz\pyviz\examples\tutorial\exercises\Advanced_Dashboarding.ipynb PASSED   [ 87%]
examples/tutorial/exercises/Building_a_Dashboard.ipynb::D:\code\pyviz\pyviz\examples\tutorial\exercises\Building_a_Dashboard.ipynb PASSED     [ 93%]
examples/tutorial/exercises/Plotting.ipynb::D:\code\pyviz\pyviz\examples\tutorial\exercises\Plotting.ipynb PASSED                             [100%]

================================================================= warnings summary =================================================================
examples/tutorial/exercises/Building_a_Dashboard.ipynb::D:\code\pyviz\pyviz\examples\tutorial\exercises\Building_a_Dashboard.ipynb
examples/tutorial/exercises/Building_a_Dashboard.ipynb::D:\code\pyviz\pyviz\examples\tutorial\exercises\Building_a_Dashboard.ipynb
examples/tutorial/exercises/Building_a_Dashboard.ipynb::D:\code\pyviz\pyviz\examples\tutorial\exercises\Building_a_Dashboard.ipynb
  <input>:1: DeprecationWarning: invalid escape sequence \d

examples/tutorial/exercises/Building_a_Dashboard.ipynb::D:\code\pyviz\pyviz\examples\tutorial\exercises\Building_a_Dashboard.ipynb
  D:\code\pyviz\pyviz\examples\tutorial\exercises\Building_a_Dashboard.ipynb:74: DeprecationWarning: invalid escape sequence \d
    "## Define a panel component containing the logo\n",

-- Docs: https://docs.pytest.org/en/latest/warnings.html
================================================ 16 passed, 82 skipped, 4 warnings in 51.89 seconds ================================================

panel

$ git diff tox.ini
diff --git a/tox.ini b/tox.ini
index 80ed03b..898cd32 100644
--- a/tox.ini
+++ b/tox.ini
@@ -56,6 +56,7 @@ norecursedirs = doc .git dist build _build .ipynb_checkpoints
 nbsmoke_skip_run = ^.*VTK\.ipynb$
                    ^.*Components\.ipynb$
                    ^.*Vega\.ipynb$
+nbsmoke_flakes_to_ignore = .*hvplot\..* imported but unused.*

 [flake8]
 include = *.py

See holoviz/panel#631 for output

  • Need to open the others in a notebook viewer to decide about them/see if any improvement to nbsmoke required.

examples / pyviz etc

TODO

@jsignell
Copy link
Contributor

jsignell commented Sep 3, 2019

I guess the appveyor tests have been lost in one of the pyviz renames? :( Although I am developing on win, the appveyor tests were failing when I last worked on this PR.

Hmm yeah I can look into that. I'm a little surprised they are failing since you are the only one who's been making changes...

@ceball
Copy link
Contributor Author

ceball commented Sep 3, 2019

I remember I was also surprised to find appveyor was failing for this PR since I was developing on windows, but it was definitely failing.

I recall now I could not immediately figure out why it was failing. That's part of the reason this PR stalled before. Maybe I should get it in before you restore appveyor? :)

@jsignell
Copy link
Contributor

jsignell commented Sep 3, 2019

That is fine by me :) We don't need it to run on windows.

@ceball ceball changed the title WIP: Initial go at next version, improve maintainability Initial go at next version, improve maintainability Sep 7, 2019
@ceball
Copy link
Contributor Author

ceball commented Sep 7, 2019

@jsignell I'm sure I'd like to improve the code, but it would also be good to start trying to use this version before another couple of years go by ;) So I'll happily fix or clarify stuff in response to any comments you make, but otherwise I'm done with this PR.

Copy link
Contributor

@jsignell jsignell left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks good to me although I haven't read it too closely. Thanks @ceball for working on this!

Copy link
Contributor

@jsignell jsignell left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok I did end up with a few comments in the end :)

with io.open(self.name,encoding='utf8') as nbfile:
nb = nbformat.read(nbfile, as_version=4)

magics_thing = magics.Thing(
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think proper names would help in general with debugging, but it seems like you are moving towards that :)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I don't know how to name it because I don't know what it is. The problem is that it's all grown organically as there was no plan about what I wanted out of nbsmoke in the first place, I didn't know pytest, etc, so it was just a case of typing until it worked :)

# TODO: suddenly had to make some fns into a class to support blacklists; should rework.
class Thing(object):

I've renamed magics thing to magics processor, but that's really just cosmetic.

It can definitely be reorganized. If we're still using it in a year's time, I'll be prepared to fix it ;)

_user_flakes_to_ignore = _user_flakes_to_ignore.splitlines()
for pattern in set(flakes_to_ignore) | set(_user_flakes_to_ignore):
flake_result['messages'] = [msg for msg in flake_result['messages'] if not re.search(pattern, msg)]
###
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there meant to be a comment here?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It marks the end of a comment block (good old commented chunk instead of a function...). Have clarified.

debug=self.config.option.nbsmoke_lint_debug
filenames = []

self._write_debug_file(debug, ipy, self.name, "pre", filenames)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It might make sense to have this be a context manager rather than calling it all over the place.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

True. It's just twice though, and didn't change in this PR (you're seeing code that's moved from the original single file into its own one, I think).

raise NBLintError(msg)

@staticmethod
def _write_debug_file(debug, py, name, what, filenames):
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should what be message?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed


* return more info for use by caller

* support "noqa" in ipynb (of questionable value...)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe add a note about hvplot?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

noqa support and this note predates the current PR, and was originally added (a couple of years ago now?) for a project that had a module imported for its side effects (unrelated to hvplot).

I've updated and clarified.

(What's added in this PR is support for ignoring flakes by regex, without requiring noqa at the flake itself.)

@@ -40,15 +40,26 @@ def read(fname):

install_requires=[
'pytest >=3.1.1',
########## lint stuff
'pyflakes',
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this really needed - aren't we vendoring it in at this point?

Copy link
Contributor Author

@ceball ceball Sep 11, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, it's needed - there's more to pyflakes than the _pyflakes file you see in nbsmoke...like all the rules etc! :)

We only modify one pyflakes file, to return more info from flake checking and to support noqa (which pyflakes doesn't support - we could use another linter that does, but I don't think we even run another linter on any of our code, let alone notebooks...).

@ceball
Copy link
Contributor Author

ceball commented Sep 11, 2019

@jsignell, thanks for taking the time to review! Can't have been pleasant ;)

Let me know if I missed anything.

@ceball ceball merged commit 7202ac3 into master Sep 14, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants