hvplot 0.13.0a1__tar.gz → 0.13.0rc1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/PKG-INFO +20 -9
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_ext/backend_styling_options.py +1 -3
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_ext/plotting_options_table.py +23 -4
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_static/custom.css +5 -0
- hvplot-0.13.0rc1/doc/assets/combined_penguin.png +0 -0
- hvplot-0.13.0rc1/doc/assets/vscode_penguin.png +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/conf.py +73 -14
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/conftest.py +10 -18
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/developer_guide.md +75 -1
- hvplot-0.13.0rc1/doc/explanation/grouping_options.ipynb +448 -0
- hvplot-0.13.0rc1/doc/explanation/index.md +47 -0
- hvplot-0.13.0rc1/doc/explanation/plotting_backend_support.ipynb +126 -0
- hvplot-0.13.0rc1/doc/explanation/statistical_plot_types.ipynb +723 -0
- hvplot-0.13.0rc1/doc/explanation/wide_vs_long_data.ipynb +428 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/big-data/large_vectorfield_downsampled.ipynb +2 -2
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/categorical/category_heatmap.ipynb +2 -2
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/categorical/lollipop_plot.ipynb +2 -2
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/interactivity/app_bind.ipynb +2 -2
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/interactivity/app_rx.ipynb +2 -2
- hvplot-0.13.0rc1/doc/how_to/build_custom_layouts.ipynb +208 -0
- hvplot-0.13.0rc1/doc/how_to/choose_backend_for_saving_plots.md +32 -0
- hvplot-0.13.0rc1/doc/how_to/customize_underlying_figure.ipynb +197 -0
- hvplot-0.13.0rc1/doc/how_to/display_plots.ipynb +135 -0
- hvplot-0.13.0rc1/doc/how_to/explore_with_widgets.ipynb +165 -0
- hvplot-0.13.0rc1/doc/how_to/facet_into_grid.ipynb +163 -0
- hvplot-0.13.0rc1/doc/how_to/index.md +173 -0
- hvplot-0.13.0rc1/doc/how_to/layout_plots.ipynb +151 -0
- hvplot-0.13.0rc1/doc/how_to/load_switch_plotting_extensions.ipynb +130 -0
- hvplot-0.13.0rc1/doc/how_to/overlay_plots.ipynb +143 -0
- hvplot-0.13.0rc1/doc/how_to/plot_lines_with_markers.ipynb +91 -0
- hvplot-0.13.0rc1/doc/how_to/save_bokeh_plots.ipynb +210 -0
- hvplot-0.13.0rc1/doc/how_to/save_matplotlib_plots.ipynb +182 -0
- hvplot-0.13.0rc1/doc/how_to/save_plots_as_gif.ipynb +194 -0
- hvplot-0.13.0rc1/doc/how_to/split_into_subplots.ipynb +123 -0
- hvplot-0.13.0rc1/doc/how_to/style_plots_by_backend.ipynb +186 -0
- hvplot-0.13.0rc1/doc/how_to/use_ai_assistant.md +69 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/index.md +68 -15
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.bar.ipynb +6 -3
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.barh.ipynb +3 -3
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.bivariate.ipynb +2 -2
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.box.ipynb +2 -2
- hvplot-0.13.0rc1/doc/ref/api/manual/hvplot.hvPlot.explorer.ipynb +117 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.heatmap.ipynb +11 -5
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.kde.ipynb +2 -2
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.line.ipynb +7 -3
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.paths.ipynb +1 -1
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.points.ipynb +4 -4
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.violin.ipynb +2 -2
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api_compatibility/index.md +2 -1
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api_compatibility/pandas/Pandas_API.ipynb +9 -2
- hvplot-0.13.0rc1/doc/ref/api_compatibility/panel_widgets.ipynb +169 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/data_libraries.ipynb +3 -3
- hvplot-0.13.0rc1/doc/ref/index.md +72 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/plotting_extensions.ipynb +5 -1
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/plotting_options/axis.ipynb +83 -26
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/plotting_options/color_colormap.ipynb +14 -1
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/plotting_options/data.ipynb +16 -3
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/plotting_options/geographic.ipynb +4 -1
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/plotting_options/streaming.ipynb +1 -1
- hvplot-0.13.0rc1/doc/tutorials/explorer.ipynb +628 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/tutorials/getting_started.ipynb +19 -7
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/tutorials/index.md +11 -3
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/user_guide/Geographic_Data.ipynb +5 -2
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/user_guide/Interactive.ipynb +28 -13
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/user_guide/Large_Timeseries.ipynb +41 -16
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/user_guide/NetworkX.ipynb +14 -8
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/user_guide/Plotting.ipynb +8 -3
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/user_guide/Plotting_with_Matplotlib.ipynb +20 -7
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/user_guide/Plotting_with_Plotly.ipynb +8 -3
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/user_guide/Widgets.ipynb +14 -11
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/user_guide/index.md +8 -32
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/__init__.py +22 -23
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/_version.py +2 -2
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/backend_transforms.py +6 -9
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/converter.py +182 -152
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/cudf.py +21 -3
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/dask.py +25 -3
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/duckdb.py +18 -4
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/fugue.py +7 -8
- hvplot-0.13.0rc1/hvplot/ibis.py +37 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/intake.py +19 -4
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/interactive.py +12 -14
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/networkx.py +27 -25
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/pandas.py +18 -4
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/plotting/__init__.py +14 -7
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/plotting/andrews_curves.py +7 -6
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/plotting/core.py +55 -42
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/plotting/lag_plot.py +2 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/plotting/parallel_coordinates.py +6 -4
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/plotting/scatter_matrix.py +7 -7
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/polars.py +17 -4
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/sample_data.py +5 -5
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/sampledata.py +3 -2
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/streamz.py +21 -3
- hvplot-0.13.0a1/hvplot/tests/util.py → hvplot-0.13.0rc1/hvplot/tests/_data.py +47 -2
- hvplot-0.13.0rc1/hvplot/tests/_deps.py +34 -0
- hvplot-0.13.0rc1/hvplot/tests/_inventory.py +30 -0
- hvplot-0.13.0rc1/hvplot/tests/conftest.py +333 -0
- hvplot-0.13.0rc1/hvplot/tests/data_libraries/test_accessors.py +192 -0
- hvplot-0.13.0rc1/hvplot/tests/data_libraries/test_tabular_parity.py +317 -0
- hvplot-0.13.0rc1/hvplot/tests/kinds/__init__.py +0 -0
- hvplot-0.13.0rc1/hvplot/tests/kinds/test_all_kinds.py +213 -0
- hvplot-0.13.0rc1/hvplot/tests/kinds/test_area.py +89 -0
- hvplot-0.13.0rc1/hvplot/tests/kinds/test_bar.py +100 -0
- hvplot-0.13.0rc1/hvplot/tests/kinds/test_barh.py +39 -0
- hvplot-0.13.0rc1/hvplot/tests/kinds/test_bivariate.py +117 -0
- hvplot-0.13.0rc1/hvplot/tests/kinds/test_box.py +52 -0
- hvplot-0.13.0rc1/hvplot/tests/kinds/test_contour.py +62 -0
- hvplot-0.13.0rc1/hvplot/tests/kinds/test_contourf.py +53 -0
- hvplot-0.13.0rc1/hvplot/tests/kinds/test_dataset.py +33 -0
- hvplot-0.13.0rc1/hvplot/tests/kinds/test_density.py +59 -0
- hvplot-0.13.0rc1/hvplot/tests/kinds/test_errorbars.py +55 -0
- hvplot-0.13.0rc1/hvplot/tests/kinds/test_heatmap.py +88 -0
- hvplot-0.13.0rc1/hvplot/tests/kinds/test_hexbin.py +99 -0
- hvplot-0.13.0rc1/hvplot/tests/kinds/test_hist.py +116 -0
- hvplot-0.13.0rc1/hvplot/tests/kinds/test_image.py +71 -0
- hvplot-0.13.0rc1/hvplot/tests/kinds/test_kde.py +85 -0
- hvplot-0.13.0rc1/hvplot/tests/kinds/test_kinds_inventory.py +40 -0
- hvplot-0.13.0rc1/hvplot/tests/kinds/test_labels.py +159 -0
- hvplot-0.13.0rc1/hvplot/tests/kinds/test_line.py +44 -0
- hvplot-0.13.0rc1/hvplot/tests/kinds/test_ohlc.py +167 -0
- hvplot-0.13.0rc1/hvplot/tests/kinds/test_paths.py +84 -0
- hvplot-0.13.0rc1/hvplot/tests/kinds/test_points.py +238 -0
- hvplot-0.13.0rc1/hvplot/tests/kinds/test_polygons.py +133 -0
- hvplot-0.13.0rc1/hvplot/tests/kinds/test_quadmesh.py +65 -0
- hvplot-0.13.0rc1/hvplot/tests/kinds/test_rgb.py +128 -0
- hvplot-0.13.0rc1/hvplot/tests/kinds/test_scatter.py +179 -0
- hvplot-0.13.0rc1/hvplot/tests/kinds/test_step.py +38 -0
- hvplot-0.13.0rc1/hvplot/tests/kinds/test_table.py +27 -0
- hvplot-0.13.0rc1/hvplot/tests/kinds/test_trimesh.py +276 -0
- hvplot-0.13.0rc1/hvplot/tests/kinds/test_vectorfield.py +67 -0
- hvplot-0.13.0rc1/hvplot/tests/kinds/test_violin.py +56 -0
- hvplot-0.13.0rc1/hvplot/tests/options/__init__.py +0 -0
- hvplot-0.13.0rc1/hvplot/tests/options/test_axis.py +657 -0
- hvplot-0.13.0rc1/hvplot/tests/options/test_color.py +537 -0
- hvplot-0.13.0rc1/hvplot/tests/options/test_data.py +518 -0
- hvplot-0.13.0rc1/hvplot/tests/options/test_geographic.py +757 -0
- hvplot-0.13.0rc1/hvplot/tests/options/test_interactivity.py +336 -0
- hvplot-0.13.0rc1/hvplot/tests/options/test_legend.py +114 -0
- hvplot-0.13.0rc1/hvplot/tests/options/test_options_inventory.py +25 -0
- hvplot-0.13.0rc1/hvplot/tests/options/test_resampling.py +567 -0
- hvplot-0.13.0rc1/hvplot/tests/options/test_size_layout.py +270 -0
- hvplot-0.13.0rc1/hvplot/tests/options/test_streaming.py +74 -0
- hvplot-0.13.0rc1/hvplot/tests/options/test_style.py +100 -0
- hvplot-0.13.0rc1/hvplot/tests/plotting/__init__.py +0 -0
- hvplot-0.13.0rc1/hvplot/tests/plotting/test_core.py +73 -0
- hvplot-0.13.0rc1/hvplot/tests/plotting/test_lag_plot.py +40 -0
- hvplot-0.13.0rc1/hvplot/tests/plotting/test_networkx.py +382 -0
- hvplot-0.13.0a1/hvplot/tests/testplotting.py → hvplot-0.13.0rc1/hvplot/tests/plotting/test_pandas_backend.py +34 -29
- hvplot-0.13.0rc1/hvplot/tests/plotting/test_parallel_coordinates.py +78 -0
- hvplot-0.13.0rc1/hvplot/tests/plotting/test_scatter_matrix.py +172 -0
- hvplot-0.13.0a1/hvplot/tests/testbackend_transforms.py → hvplot-0.13.0rc1/hvplot/tests/test_backend_transforms.py +49 -28
- hvplot-0.13.0rc1/hvplot/tests/test_converter.py +384 -0
- hvplot-0.13.0a1/hvplot/tests/testdeprecations.py → hvplot-0.13.0rc1/hvplot/tests/test_deprecations.py +17 -21
- hvplot-0.13.0a1/hvplot/tests/testpatchsignature.py → hvplot-0.13.0rc1/hvplot/tests/test_docstrings.py +67 -12
- hvplot-0.13.0rc1/hvplot/tests/test_fugue.py +90 -0
- hvplot-0.13.0rc1/hvplot/tests/test_init.py +55 -0
- hvplot-0.13.0a1/hvplot/tests/testinteractive.py → hvplot-0.13.0rc1/hvplot/tests/test_interactive.py +149 -28
- hvplot-0.13.0rc1/hvplot/tests/test_sample_data.py +13 -0
- hvplot-0.13.0rc1/hvplot/tests/test_sampledata.py +33 -0
- hvplot-0.13.0rc1/hvplot/tests/test_testing_infrastructure.py +99 -0
- hvplot-0.13.0a1/hvplot/tests/testui.py → hvplot-0.13.0rc1/hvplot/tests/test_ui.py +93 -47
- hvplot-0.13.0rc1/hvplot/tests/test_util.py +832 -0
- hvplot-0.13.0rc1/hvplot/tests/test_utilities.py +160 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/ui.py +57 -27
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/util.py +33 -27
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/utilities.py +5 -3
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/xarray.py +30 -7
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/xugrid.py +17 -4
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/pyproject.toml +88 -11
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/scripts/conda/recipe/meta.yaml +1 -1
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/scripts/download_data.py +20 -0
- hvplot-0.13.0rc1/scripts/llms_config.py +118 -0
- hvplot-0.13.0a1/doc/ref/api/manual/hvplot.hvPlot.explorer.ipynb +0 -47
- hvplot-0.13.0a1/doc/ref/index.md +0 -17
- hvplot-0.13.0a1/doc/user_guide/Explorer.ipynb +0 -339
- hvplot-0.13.0a1/doc/user_guide/Introduction.ipynb +0 -222
- hvplot-0.13.0a1/doc/user_guide/Plotting_Extensions.ipynb +0 -252
- hvplot-0.13.0a1/doc/user_guide/Statistical_Plots.ipynb +0 -147
- hvplot-0.13.0a1/doc/user_guide/Subplots.ipynb +0 -147
- hvplot-0.13.0a1/doc/user_guide/Viewing.ipynb +0 -211
- hvplot-0.13.0a1/doc/user_guide/images/simple.svg +0 -59
- hvplot-0.13.0a1/hvplot/ibis.py +0 -25
- hvplot-0.13.0a1/hvplot/tests/conftest.py +0 -59
- hvplot-0.13.0a1/hvplot/tests/plotting/testcore.py +0 -95
- hvplot-0.13.0a1/hvplot/tests/plotting/testohlc.py +0 -93
- hvplot-0.13.0a1/hvplot/tests/plotting/testscattermatrix.py +0 -138
- hvplot-0.13.0a1/hvplot/tests/test_links.py +0 -99
- hvplot-0.13.0a1/hvplot/tests/testcharts.py +0 -742
- hvplot-0.13.0a1/hvplot/tests/testdocstring.py +0 -52
- hvplot-0.13.0a1/hvplot/tests/testfugue.py +0 -50
- hvplot-0.13.0a1/hvplot/tests/testgeo.py +0 -556
- hvplot-0.13.0a1/hvplot/tests/testgeowithoutgv.py +0 -211
- hvplot-0.13.0a1/hvplot/tests/testgridplots.py +0 -266
- hvplot-0.13.0a1/hvplot/tests/testhelp.py +0 -78
- hvplot-0.13.0a1/hvplot/tests/testibis.py +0 -30
- hvplot-0.13.0a1/hvplot/tests/testnetworkx.py +0 -33
- hvplot-0.13.0a1/hvplot/tests/testoperations.py +0 -431
- hvplot-0.13.0a1/hvplot/tests/testoptions.py +0 -566
- hvplot-0.13.0a1/hvplot/tests/testoverrides.py +0 -76
- hvplot-0.13.0a1/hvplot/tests/testpanel.py +0 -59
- hvplot-0.13.0a1/hvplot/tests/testpatch.py +0 -164
- hvplot-0.13.0a1/hvplot/tests/teststatplots.py +0 -24
- hvplot-0.13.0a1/hvplot/tests/teststreaming.py +0 -28
- hvplot-0.13.0a1/hvplot/tests/testtransforms.py +0 -71
- hvplot-0.13.0a1/hvplot/tests/testutil.py +0 -630
- hvplot-0.13.0a1/hvplot/tests/testxugrid.py +0 -344
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/.gitignore +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/LICENSE +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/README.md +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_static/favicon.ico +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_static/home/bokeh.gif +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_static/home/dask.gif +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_static/home/explorer.gif +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_static/home/geo.gif +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_static/home/geopandas.gif +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_static/home/interactive_hvplot.gif +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_static/home/interactive_pandas.gif +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_static/home/interactive_xarray.gif +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_static/home/large_data.gif +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_static/home/layout.png +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_static/home/matplotlib.png +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_static/home/networkx.gif +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_static/home/overlay.png +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_static/home/pandas.gif +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_static/home/plotly.gif +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_static/home/widgets.gif +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_static/home/xarray.gif +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_static/images/heat_and_trees.png +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_static/images/portfolio.png +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_static/logo.png +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_static/logo_horizontal.png +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_static/logo_horizontal.svg +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_static/logo_stacked.svg +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_static/patch_templates/sourcelink.html +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/about.md +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/assets/console.png +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/assets/console_server.gif +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/assets/diagram.png +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/assets/diagram.svg +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/assets/hvplot-wm.png +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/assets/streamz_demo.gif +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/annotations/horizontal_bar_with_labels.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/basic-charts/simple_area.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/basic-charts/simple_bar.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/basic-charts/simple_boxplot.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/basic-charts/simple_heatmap.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/basic-charts/simple_line.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/basic-charts/simple_scatter.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/basic-charts/simple_step.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/categorical/category_bar.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/categorical/grouped_bar.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/categorical/horizontal_bar.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/categorical/stacked_bar.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/categorical/strip_jitter.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/geospatial/datashade_map.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/geospatial/geopoints.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/geospatial/map_overlay.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/geospatial/paths_labels.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/geospatial/polygon_map.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/gridded/contour.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/gridded/contourf.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/gridded/image.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/gridded/quadmesh.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/gridded/rgb.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/gridded/rgb_satellite_imagery.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/gridded/vectorfield.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/interactivity/groupby_widget.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/multidimensional/andrews_curves.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/multidimensional/groupby.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/multidimensional/parallel_coordinates.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/multidimensional/scatter_matrix.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/multidimensional/scatter_multi.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/statistical/bar_with_error_bars.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/statistical/bivariate.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/statistical/boxplot.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/statistical/correlation_heatmap.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/statistical/density_plot.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/statistical/hexbin.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/statistical/histogram.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/statistical/horizontal_errorbars.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/statistical/violin.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/statistical/violin_scatter.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/time-series/area_time_series.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/time-series/dual_axis_timeseries.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/time-series/forecast_bands.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/time-series/lag_plot.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/time-series/multi_series_line.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/time-series/ohlc.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/time-series/step_time_series.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/time-series/time_series_bar.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/time-series/time_series_line.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/governance/project-docs/CONTRIBUTING.md +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/governance/project-docs/GOVERNANCE.md +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/governance/project-docs/LICENSE.md +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/governance/project-docs/MEMBERS.md +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/index.md +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.area.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.contour.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.contourf.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.dataset.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.density.md +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.errorbars.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.hexbin.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.hist.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.image.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.labels.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.ohlc.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.polygons.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.quadmesh.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.rgb.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.scatter.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.step.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.table.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.vectorfield.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.plotting.andrews_curves.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.plotting.lag_plot.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.plotting.parallel_coordinates.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.plotting.scatter_matrix.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api_compatibility/pandas/index.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/deprecations.md +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/installation.md +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/plotting_options/index.md +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/plotting_options/interactivity.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/plotting_options/legend.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/plotting_options/resampling.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/plotting_options/size_layout.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/plotting_options/styling.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/releases.md +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/roadmap.md +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/topics.html +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/tutorials/getting_started_pandas.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/user_guide/Gridded_Data.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/user_guide/Timeseries_Data.ipynb +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/data/crime.csv +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/datasets.yaml +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/tests/__init__.py +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/tests/data/README.md +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/tests/data/RGB-red.byte.tif +0 -0
- {hvplot-0.13.0a1/hvplot/tests/plotting → hvplot-0.13.0rc1/hvplot/tests/data_libraries}/__init__.py +0 -0
- /hvplot-0.13.0a1/hvplot/tests/plotting/testandrewscurves.py → /hvplot-0.13.0rc1/hvplot/tests/plotting/test_andrews_curves.py +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/scripts/conda/build.sh +0 -0
- {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/scripts/sync_git_tags.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
2
|
Name: hvplot
|
|
3
|
-
Version: 0.13.
|
|
3
|
+
Version: 0.13.0rc1
|
|
4
4
|
Summary: A high-level plotting API for the PyData ecosystem built on HoloViews.
|
|
5
5
|
Project-URL: Homepage, https://hvplot.holoviz.org
|
|
6
6
|
Project-URL: Source, http://github.com/holoviz/hvplot
|
|
@@ -15,14 +15,14 @@ Classifier: Intended Audience :: Science/Research
|
|
|
15
15
|
Classifier: License :: OSI Approved :: BSD License
|
|
16
16
|
Classifier: Natural Language :: English
|
|
17
17
|
Classifier: Operating System :: OS Independent
|
|
18
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
19
18
|
Classifier: Programming Language :: Python :: 3.11
|
|
20
19
|
Classifier: Programming Language :: Python :: 3.12
|
|
21
20
|
Classifier: Programming Language :: Python :: 3.13
|
|
22
21
|
Classifier: Programming Language :: Python :: 3.14
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.15
|
|
23
23
|
Classifier: Topic :: Scientific/Engineering
|
|
24
24
|
Classifier: Topic :: Software Development :: Libraries
|
|
25
|
-
Requires-Python: >=3.
|
|
25
|
+
Requires-Python: >=3.11
|
|
26
26
|
Requires-Dist: bokeh>=3.1
|
|
27
27
|
Requires-Dist: colorcet>=2
|
|
28
28
|
Requires-Dist: holoviews>=1.19.0
|
|
@@ -35,6 +35,7 @@ Provides-Extra: dev-extras
|
|
|
35
35
|
Requires-Dist: setuptools-scm>=6; extra == 'dev-extras'
|
|
36
36
|
Provides-Extra: doc
|
|
37
37
|
Requires-Dist: bokeh-sampledata>=2025.0; extra == 'doc'
|
|
38
|
+
Requires-Dist: bokeh>=3.10; extra == 'doc'
|
|
38
39
|
Requires-Dist: dask[dataframe]>=2021.3.0; extra == 'doc'
|
|
39
40
|
Requires-Dist: datashader>=0.6.5; extra == 'doc'
|
|
40
41
|
Requires-Dist: duckdb; extra == 'doc'
|
|
@@ -47,11 +48,13 @@ Requires-Dist: ipywidgets; extra == 'doc'
|
|
|
47
48
|
Requires-Dist: jinja2; extra == 'doc'
|
|
48
49
|
Requires-Dist: matplotlib; extra == 'doc'
|
|
49
50
|
Requires-Dist: nbsite>=0.9.0a12; extra == 'doc'
|
|
51
|
+
Requires-Dist: netcdf4; extra == 'doc'
|
|
50
52
|
Requires-Dist: networkx>=2.6.3; extra == 'doc'
|
|
51
53
|
Requires-Dist: notebook>=5.4; extra == 'doc'
|
|
52
54
|
Requires-Dist: numba>=0.51.0; extra == 'doc'
|
|
53
55
|
Requires-Dist: numpydoc; extra == 'doc'
|
|
54
56
|
Requires-Dist: pillow>=8.2.0; extra == 'doc'
|
|
57
|
+
Requires-Dist: playwright; extra == 'doc'
|
|
55
58
|
Requires-Dist: plotly; extra == 'doc'
|
|
56
59
|
Requires-Dist: polars; extra == 'doc'
|
|
57
60
|
Requires-Dist: pooch>=1.6.0; extra == 'doc'
|
|
@@ -59,11 +62,11 @@ Requires-Dist: s3fs>=2022.1.0; extra == 'doc'
|
|
|
59
62
|
Requires-Dist: scikit-image>=0.17.2; extra == 'doc'
|
|
60
63
|
Requires-Dist: scikit-learn>=1.4.0; extra == 'doc'
|
|
61
64
|
Requires-Dist: scipy>=1.5.3; extra == 'doc'
|
|
62
|
-
Requires-Dist: selenium>=3.141.0; extra == 'doc'
|
|
63
65
|
Requires-Dist: sphinxcontrib-mermaid; extra == 'doc'
|
|
64
66
|
Requires-Dist: sphinxext-rediraffe; extra == 'doc'
|
|
65
67
|
Requires-Dist: sqlglot; extra == 'doc'
|
|
66
68
|
Requires-Dist: xarray>=0.18.2; extra == 'doc'
|
|
69
|
+
Requires-Dist: xugrid>=0.15.0; extra == 'doc'
|
|
67
70
|
Requires-Dist: xyzservices>=2022.9.0; extra == 'doc'
|
|
68
71
|
Provides-Extra: examples
|
|
69
72
|
Requires-Dist: bokeh-sampledata>=2025.0; extra == 'examples'
|
|
@@ -78,10 +81,12 @@ Requires-Dist: ibis-framework[duckdb]; extra == 'examples'
|
|
|
78
81
|
Requires-Dist: ipywidgets; extra == 'examples'
|
|
79
82
|
Requires-Dist: jinja2; extra == 'examples'
|
|
80
83
|
Requires-Dist: matplotlib; extra == 'examples'
|
|
84
|
+
Requires-Dist: netcdf4; extra == 'examples'
|
|
81
85
|
Requires-Dist: networkx>=2.6.3; extra == 'examples'
|
|
82
86
|
Requires-Dist: notebook>=5.4; extra == 'examples'
|
|
83
87
|
Requires-Dist: numba>=0.51.0; extra == 'examples'
|
|
84
88
|
Requires-Dist: pillow>=8.2.0; extra == 'examples'
|
|
89
|
+
Requires-Dist: playwright; extra == 'examples'
|
|
85
90
|
Requires-Dist: plotly; extra == 'examples'
|
|
86
91
|
Requires-Dist: polars; extra == 'examples'
|
|
87
92
|
Requires-Dist: pooch>=1.6.0; extra == 'examples'
|
|
@@ -89,9 +94,9 @@ Requires-Dist: s3fs>=2022.1.0; extra == 'examples'
|
|
|
89
94
|
Requires-Dist: scikit-image>=0.17.2; extra == 'examples'
|
|
90
95
|
Requires-Dist: scikit-learn>=1.4.0; extra == 'examples'
|
|
91
96
|
Requires-Dist: scipy>=1.5.3; extra == 'examples'
|
|
92
|
-
Requires-Dist: selenium>=3.141.0; extra == 'examples'
|
|
93
97
|
Requires-Dist: sqlglot; extra == 'examples'
|
|
94
98
|
Requires-Dist: xarray>=0.18.2; extra == 'examples'
|
|
99
|
+
Requires-Dist: xugrid>=0.15.0; extra == 'examples'
|
|
95
100
|
Requires-Dist: xyzservices>=2022.9.0; extra == 'examples'
|
|
96
101
|
Provides-Extra: examples-tests
|
|
97
102
|
Requires-Dist: bokeh-sampledata>=2025.0; extra == 'examples-tests'
|
|
@@ -107,10 +112,12 @@ Requires-Dist: ipywidgets; extra == 'examples-tests'
|
|
|
107
112
|
Requires-Dist: jinja2; extra == 'examples-tests'
|
|
108
113
|
Requires-Dist: matplotlib; extra == 'examples-tests'
|
|
109
114
|
Requires-Dist: nbval; extra == 'examples-tests'
|
|
115
|
+
Requires-Dist: netcdf4; extra == 'examples-tests'
|
|
110
116
|
Requires-Dist: networkx>=2.6.3; extra == 'examples-tests'
|
|
111
117
|
Requires-Dist: notebook>=5.4; extra == 'examples-tests'
|
|
112
118
|
Requires-Dist: numba>=0.51.0; extra == 'examples-tests'
|
|
113
119
|
Requires-Dist: pillow>=8.2.0; extra == 'examples-tests'
|
|
120
|
+
Requires-Dist: playwright; extra == 'examples-tests'
|
|
114
121
|
Requires-Dist: plotly; extra == 'examples-tests'
|
|
115
122
|
Requires-Dist: polars; extra == 'examples-tests'
|
|
116
123
|
Requires-Dist: pooch>=1.6.0; extra == 'examples-tests'
|
|
@@ -119,9 +126,9 @@ Requires-Dist: s3fs>=2022.1.0; extra == 'examples-tests'
|
|
|
119
126
|
Requires-Dist: scikit-image>=0.17.2; extra == 'examples-tests'
|
|
120
127
|
Requires-Dist: scikit-learn>=1.4.0; extra == 'examples-tests'
|
|
121
128
|
Requires-Dist: scipy>=1.5.3; extra == 'examples-tests'
|
|
122
|
-
Requires-Dist: selenium>=3.141.0; extra == 'examples-tests'
|
|
123
129
|
Requires-Dist: sqlglot; extra == 'examples-tests'
|
|
124
130
|
Requires-Dist: xarray>=0.18.2; extra == 'examples-tests'
|
|
131
|
+
Requires-Dist: xugrid>=0.15.0; extra == 'examples-tests'
|
|
125
132
|
Requires-Dist: xyzservices>=2022.9.0; extra == 'examples-tests'
|
|
126
133
|
Provides-Extra: fugue-sql
|
|
127
134
|
Requires-Dist: fugue-sql-antlr>=0.2.4; extra == 'fugue-sql'
|
|
@@ -160,7 +167,6 @@ Requires-Dist: ipywidgets; extra == 'tests'
|
|
|
160
167
|
Requires-Dist: jinja2; extra == 'tests'
|
|
161
168
|
Requires-Dist: matplotlib; extra == 'tests'
|
|
162
169
|
Requires-Dist: numpydoc; extra == 'tests'
|
|
163
|
-
Requires-Dist: parameterized; extra == 'tests'
|
|
164
170
|
Requires-Dist: plotly; extra == 'tests'
|
|
165
171
|
Requires-Dist: polars; extra == 'tests'
|
|
166
172
|
Requires-Dist: pooch; extra == 'tests'
|
|
@@ -168,6 +174,9 @@ Requires-Dist: pre-commit; extra == 'tests'
|
|
|
168
174
|
Requires-Dist: psutil; extra == 'tests'
|
|
169
175
|
Requires-Dist: pytest; extra == 'tests'
|
|
170
176
|
Requires-Dist: pytest-cov; extra == 'tests'
|
|
177
|
+
Requires-Dist: pytest-randomly; extra == 'tests'
|
|
178
|
+
Requires-Dist: pytest-socket; extra == 'tests'
|
|
179
|
+
Requires-Dist: pytest-xdist; extra == 'tests'
|
|
171
180
|
Requires-Dist: ruff; extra == 'tests'
|
|
172
181
|
Requires-Dist: scipy; extra == 'tests'
|
|
173
182
|
Requires-Dist: spatialpandas; extra == 'tests'
|
|
@@ -180,13 +189,15 @@ Requires-Dist: dask[dataframe]; extra == 'tests-core'
|
|
|
180
189
|
Requires-Dist: ipywidgets; extra == 'tests-core'
|
|
181
190
|
Requires-Dist: matplotlib; extra == 'tests-core'
|
|
182
191
|
Requires-Dist: numpydoc; extra == 'tests-core'
|
|
183
|
-
Requires-Dist: parameterized; extra == 'tests-core'
|
|
184
192
|
Requires-Dist: plotly; extra == 'tests-core'
|
|
185
193
|
Requires-Dist: pooch; extra == 'tests-core'
|
|
186
194
|
Requires-Dist: pre-commit; extra == 'tests-core'
|
|
187
195
|
Requires-Dist: psutil; extra == 'tests-core'
|
|
188
196
|
Requires-Dist: pytest; extra == 'tests-core'
|
|
189
197
|
Requires-Dist: pytest-cov; extra == 'tests-core'
|
|
198
|
+
Requires-Dist: pytest-randomly; extra == 'tests-core'
|
|
199
|
+
Requires-Dist: pytest-socket; extra == 'tests-core'
|
|
200
|
+
Requires-Dist: pytest-xdist; extra == 'tests-core'
|
|
190
201
|
Requires-Dist: ruff; extra == 'tests-core'
|
|
191
202
|
Requires-Dist: scipy; extra == 'tests-core'
|
|
192
203
|
Requires-Dist: xarray; extra == 'tests-core'
|
|
@@ -1,12 +1,10 @@
|
|
|
1
|
+
import holoviews as hv
|
|
1
2
|
from docutils import nodes
|
|
2
3
|
from docutils.statemachine import StringList
|
|
3
4
|
from sphinx.util.docutils import SphinxDirective
|
|
4
5
|
|
|
5
|
-
import holoviews as hv
|
|
6
|
-
|
|
7
6
|
from hvplot.util import _get_backend_style_options
|
|
8
7
|
|
|
9
|
-
|
|
10
8
|
hv.extension('bokeh', 'matplotlib')
|
|
11
9
|
|
|
12
10
|
|
|
@@ -8,12 +8,20 @@ Usage:
|
|
|
8
8
|
"""
|
|
9
9
|
|
|
10
10
|
import sys
|
|
11
|
-
|
|
12
11
|
from textwrap import indent
|
|
13
12
|
|
|
14
|
-
from hvplot.util import _get_docstring_group_parameters
|
|
15
13
|
from sphinx.util.docutils import SphinxDirective
|
|
16
14
|
|
|
15
|
+
from hvplot.util import _get_docstring_group_parameters
|
|
16
|
+
|
|
17
|
+
# Deprecated options that have no definition section to link to
|
|
18
|
+
OPTIONS_WITHOUT_DEFINITION = {'hover_formatters'}
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def option_label(name):
|
|
22
|
+
"""Label of an option definition, e.g. 'xlim/ylim' -> 'option-xlim__ylim'."""
|
|
23
|
+
return 'option-' + name.replace('/', '__')
|
|
24
|
+
|
|
17
25
|
|
|
18
26
|
class PlottingOptionsTableDirective(SphinxDirective):
|
|
19
27
|
"""
|
|
@@ -29,16 +37,27 @@ class PlottingOptionsTableDirective(SphinxDirective):
|
|
|
29
37
|
# Get the key passed to the directive
|
|
30
38
|
options_group = self.arguments[0]
|
|
31
39
|
parameters = _get_docstring_group_parameters(options_group)
|
|
32
|
-
table_rst = [
|
|
40
|
+
table_rst = [
|
|
41
|
+
'.. list-table::',
|
|
42
|
+
' :header-rows: 1',
|
|
43
|
+
' :widths: 25 70',
|
|
44
|
+
' :class: plotting-options-table',
|
|
45
|
+
'',
|
|
46
|
+
]
|
|
33
47
|
table_rst.append(' * - ')
|
|
34
48
|
table_rst.append(' Parameters')
|
|
35
49
|
table_rst.append(' - ')
|
|
36
50
|
table_rst.append(' Description')
|
|
37
51
|
|
|
38
52
|
for param in parameters:
|
|
53
|
+
if param.name in OPTIONS_WITHOUT_DEFINITION:
|
|
54
|
+
name = f'**{param.name}**'
|
|
55
|
+
else:
|
|
56
|
+
# A role cannot be nested in **bold**, custom.css makes the link bold
|
|
57
|
+
name = f':ref:`{param.name} <{option_label(param.name)}>`'
|
|
39
58
|
desc = '\n'.join(param.desc)
|
|
40
59
|
table_rst.append(' * - ')
|
|
41
|
-
table_rst.append(f'
|
|
60
|
+
table_rst.append(f' {name} *({param.type})*')
|
|
42
61
|
table_rst.append(' - ')
|
|
43
62
|
table_rst.append(indent(desc, ' ' * 7))
|
|
44
63
|
|
|
Binary file
|
|
Binary file
|
|
@@ -5,22 +5,24 @@ import sys
|
|
|
5
5
|
sys.path.insert(0, os.path.abspath('_ext'))
|
|
6
6
|
|
|
7
7
|
import os
|
|
8
|
+
|
|
8
9
|
import param
|
|
9
10
|
import pydata_sphinx_theme
|
|
10
11
|
|
|
11
12
|
param.parameterized.docstring_signature = False
|
|
12
13
|
param.parameterized.docstring_describe_params = False
|
|
13
14
|
|
|
14
|
-
import
|
|
15
|
-
|
|
15
|
+
from nbsite.shared_conf import * # noqa: E402, F403
|
|
16
|
+
|
|
17
|
+
import hvplot # noqa: E402
|
|
16
18
|
|
|
17
19
|
project = 'hvPlot'
|
|
18
20
|
authors = 'HoloViz developers'
|
|
19
|
-
copyright_years['start_year'] = '2016' # noqa
|
|
20
|
-
copyright = copyright_fmt.format(**copyright_years) # noqa
|
|
21
|
+
copyright_years['start_year'] = '2016' # noqa: F405
|
|
22
|
+
copyright = copyright_fmt.format(**copyright_years) # noqa: F405
|
|
21
23
|
description = 'A high-level plotting API for the PyData ecosystem built on HoloViews'
|
|
22
24
|
|
|
23
|
-
version = release = base_version(hvplot.__version__) # noqa
|
|
25
|
+
version = release = base_version(hvplot.__version__) # noqa: F405
|
|
24
26
|
nbbuild_cell_timeout = 600
|
|
25
27
|
|
|
26
28
|
# Useful for SEO on a versioned site
|
|
@@ -28,13 +30,13 @@ html_baseurl = 'https://hvplot.holoviz.org/en/docs/latest/'
|
|
|
28
30
|
|
|
29
31
|
exclude_patterns = ['governance']
|
|
30
32
|
|
|
31
|
-
html_static_path += ['_static'] # noqa
|
|
33
|
+
html_static_path += ['_static'] # noqa: F405
|
|
32
34
|
|
|
33
35
|
if pydata_sphinx_theme.__version__ == '0.16.1':
|
|
34
36
|
# See https://github.com/pydata/pydata-sphinx-theme/issues/2088
|
|
35
|
-
templates_path.append('_static/patch_templates') # noqa
|
|
37
|
+
templates_path.append('_static/patch_templates') # noqa: F405
|
|
36
38
|
|
|
37
|
-
html_css_files += ['custom.css'] # noqa
|
|
39
|
+
html_css_files += ['custom.css'] # noqa: F405
|
|
38
40
|
|
|
39
41
|
html_js_files = [
|
|
40
42
|
'https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.4/require.min.js',
|
|
@@ -44,10 +46,12 @@ switcher_version = (
|
|
|
44
46
|
if any(pr in hvplot.__version__ for pr in ('a', 'b', 'rc', 'dev'))
|
|
45
47
|
else version
|
|
46
48
|
)
|
|
47
|
-
html_theme_options.update( # noqa
|
|
49
|
+
html_theme_options.update( # noqa: F405
|
|
48
50
|
{
|
|
49
51
|
'navbar_start': ['navbar-logo', 'version-switcher'],
|
|
50
52
|
'use_edit_page_button': True,
|
|
53
|
+
# Tutorials, User Guide, How-To, Gallery, Reference and Explanation inline
|
|
54
|
+
'header_links_before_dropdown': 7,
|
|
51
55
|
'github_url': 'https://github.com/holoviz/hvplot',
|
|
52
56
|
'icon_links': [
|
|
53
57
|
{
|
|
@@ -67,7 +71,6 @@ html_theme_options.update( # noqa
|
|
|
67
71
|
},
|
|
68
72
|
],
|
|
69
73
|
'pygments_dark_style': 'material',
|
|
70
|
-
'announcement': "hvPlot 0.12 has just been released! Checkout the <a href='https://blog.holoviz.org/posts/hvplot_release_0.12/'>blog post</a> and support hvPlot by giving it a 🌟 on <a href='https://github.com/holoviz/hvplot'>Github</a>.",
|
|
71
74
|
'switcher': {
|
|
72
75
|
'json_url': 'https://hvplot.holoviz.org/switcher.json',
|
|
73
76
|
'version_match': switcher_version,
|
|
@@ -83,7 +86,7 @@ html_theme = 'pydata_sphinx_theme'
|
|
|
83
86
|
html_logo = '_static/logo_horizontal.svg'
|
|
84
87
|
html_favicon = '_static/favicon.ico'
|
|
85
88
|
|
|
86
|
-
extensions += [ # noqa
|
|
89
|
+
extensions += [ # noqa: F405
|
|
87
90
|
'sphinx.ext.autosummary',
|
|
88
91
|
'nbsite.gallery',
|
|
89
92
|
'nbsite.analytics',
|
|
@@ -106,6 +109,40 @@ myst_enable_extensions = [
|
|
|
106
109
|
'html_image',
|
|
107
110
|
]
|
|
108
111
|
|
|
112
|
+
API_PLOT_METHODS = [
|
|
113
|
+
'hvPlot.area',
|
|
114
|
+
'hvPlot.bar',
|
|
115
|
+
'hvPlot.barh',
|
|
116
|
+
'hvPlot.bivariate',
|
|
117
|
+
'hvPlot.box',
|
|
118
|
+
'hvPlot.contour',
|
|
119
|
+
'hvPlot.contourf',
|
|
120
|
+
'hvPlot.density',
|
|
121
|
+
'hvPlot.errorbars',
|
|
122
|
+
'hvPlot.heatmap',
|
|
123
|
+
'hvPlot.hexbin',
|
|
124
|
+
'hvPlot.hist',
|
|
125
|
+
'hvPlot.image',
|
|
126
|
+
'hvPlot.kde',
|
|
127
|
+
'hvPlot.labels',
|
|
128
|
+
'hvPlot.line',
|
|
129
|
+
'hvPlot.ohlc',
|
|
130
|
+
'hvPlot.paths',
|
|
131
|
+
'hvPlot.points',
|
|
132
|
+
'hvPlot.polygons',
|
|
133
|
+
'hvPlot.quadmesh',
|
|
134
|
+
'hvPlot.rgb',
|
|
135
|
+
'hvPlot.scatter',
|
|
136
|
+
'hvPlot.step',
|
|
137
|
+
'hvPlot.table',
|
|
138
|
+
'hvPlot.vectorfield',
|
|
139
|
+
'hvPlot.violin',
|
|
140
|
+
'plotting.andrews_curves',
|
|
141
|
+
'plotting.lag_plot',
|
|
142
|
+
'plotting.parallel_coordinates',
|
|
143
|
+
'plotting.scatter_matrix',
|
|
144
|
+
]
|
|
145
|
+
|
|
109
146
|
nbsite_gallery_conf = {
|
|
110
147
|
'github_org': 'holoviz',
|
|
111
148
|
'github_project': 'hvplot',
|
|
@@ -121,6 +158,21 @@ nbsite_gallery_conf = {
|
|
|
121
158
|
'`HoloViz Examples website <https://examples.holoviz.org>`_.'
|
|
122
159
|
),
|
|
123
160
|
'sections': [
|
|
161
|
+
{
|
|
162
|
+
'path': 'api',
|
|
163
|
+
'title': 'API Reference',
|
|
164
|
+
'description': (
|
|
165
|
+
'One example per plotting method, linking to its API reference page.'
|
|
166
|
+
),
|
|
167
|
+
'items': [
|
|
168
|
+
{
|
|
169
|
+
'title': method.split('.')[-1],
|
|
170
|
+
# Relative URL so the link stays in the same docs version.
|
|
171
|
+
'url': f'../ref/api/manual/hvplot.{method}.html',
|
|
172
|
+
}
|
|
173
|
+
for method in API_PLOT_METHODS
|
|
174
|
+
],
|
|
175
|
+
},
|
|
124
176
|
{
|
|
125
177
|
'path': 'basic-charts',
|
|
126
178
|
'title': 'Basic Charts',
|
|
@@ -171,11 +223,18 @@ rediraffe_redirects = {
|
|
|
171
223
|
'user_guide/Customization': 'ref/plotting_options/index',
|
|
172
224
|
# Pandas API viz user guide moved to the reference
|
|
173
225
|
'user_guide/pandas_api': 'ref/api_compatibility/pandas/Pandas_API',
|
|
226
|
+
# User guides replaced by tutorials, how-to and explanation guides
|
|
227
|
+
'user_guide/Introduction': 'tutorials/getting_started',
|
|
228
|
+
'user_guide/Explorer': 'tutorials/explorer',
|
|
229
|
+
'user_guide/Plotting_Extensions': 'how_to/load_switch_plotting_extensions',
|
|
230
|
+
'user_guide/Viewing': 'how_to/display_plots',
|
|
231
|
+
'user_guide/Subplots': 'how_to/split_into_subplots',
|
|
232
|
+
'user_guide/Statistical_Plots': 'explanation/statistical_plot_types',
|
|
174
233
|
}
|
|
175
234
|
|
|
176
235
|
html_extra_path = ['topics.html']
|
|
177
236
|
|
|
178
|
-
html_context.update( # noqa
|
|
237
|
+
html_context.update( # noqa: F405
|
|
179
238
|
{
|
|
180
239
|
'last_release': f'v{release}',
|
|
181
240
|
'default_mode': 'light',
|
|
@@ -216,7 +275,7 @@ if os.getenv('HVPLOT_GALLERY') not in ('False', 'false', '0'):
|
|
|
216
275
|
'reference/tabular/lagplot': 'ref/api/manual/hvplot.plotting.lag_plot',
|
|
217
276
|
'reference/tabular/line': 'ref/api/manual/hvplot.hvPlot.line',
|
|
218
277
|
'reference/tabular/ohlc': 'ref/api/manual/hvplot.hvPlot.ohlc',
|
|
219
|
-
'reference/tabular/parallelcoordinates': 'ref/api/manual/hvplot.plotting.parallel_coordinates',
|
|
278
|
+
'reference/tabular/parallelcoordinates': 'ref/api/manual/hvplot.plotting.parallel_coordinates', # noqa: E501
|
|
220
279
|
'reference/tabular/scatter': 'ref/api/manual/hvplot.hvPlot.scatter',
|
|
221
280
|
'reference/tabular/scattermatrix': 'ref/api/manual/hvplot.plotting.scatter_matrix',
|
|
222
281
|
'reference/tabular/step': 'ref/api/manual/hvplot.hvPlot.step',
|
|
@@ -294,7 +353,7 @@ intersphinx_mapping = {
|
|
|
294
353
|
}
|
|
295
354
|
|
|
296
355
|
# To avoid this warning
|
|
297
|
-
# hvplot/ui.py:docstring of hvplot.ui.hvPlotExplorer:43: WARNING: autosummary: stub file not found 'hvplot.ui.hvPlotExplorer.hvplot'. Check your autosummary_generate setting.
|
|
356
|
+
# hvplot/ui.py:docstring of hvplot.ui.hvPlotExplorer:43: WARNING: autosummary: stub file not found 'hvplot.ui.hvPlotExplorer.hvplot'. Check your autosummary_generate setting. # noqa: E501
|
|
298
357
|
# See https://stackoverflow.com/a/73294408
|
|
299
358
|
numpydoc_class_members_toctree = False
|
|
300
359
|
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import os
|
|
2
|
-
|
|
3
2
|
from importlib.util import find_spec
|
|
4
3
|
|
|
5
4
|
import dask
|
|
6
|
-
|
|
7
5
|
from packaging.version import Version, parse
|
|
8
|
-
|
|
6
|
+
|
|
9
7
|
from hvplot.util import _PD_GE_3_0_0
|
|
10
8
|
|
|
11
9
|
# Examples that are slow to run and/or download large files.
|
|
@@ -36,7 +34,6 @@ if not find_spec('geoviews'): # geo examples
|
|
|
36
34
|
'ref/api/manual/hvplot.hvPlot.vectorfield.ipynb',
|
|
37
35
|
'ref/data_libraries.ipynb',
|
|
38
36
|
'ref/plotting_options/geographic.ipynb',
|
|
39
|
-
'user_guide/Explorer.ipynb',
|
|
40
37
|
'user_guide/Geographic_Data.ipynb',
|
|
41
38
|
'user_guide/Integrations.ipynb',
|
|
42
39
|
]
|
|
@@ -57,8 +54,8 @@ if _PD_GE_3_0_0:
|
|
|
57
54
|
collect_ignore_glob += ['ref/data_libraries.ipynb']
|
|
58
55
|
|
|
59
56
|
try:
|
|
60
|
-
import ibis
|
|
61
57
|
import duckdb
|
|
58
|
+
import ibis
|
|
62
59
|
|
|
63
60
|
# 'Ibis <= 10.8.0 is incompatible with DuckDB >= 1.4')
|
|
64
61
|
if parse(ibis.__version__) <= parse('10.8.0') and parse(duckdb.__version__) >= parse('1.4'):
|
|
@@ -66,28 +63,23 @@ try:
|
|
|
66
63
|
except ImportError:
|
|
67
64
|
pass
|
|
68
65
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
'user_guide/Viewing.ipynb',
|
|
76
|
-
'user_guide/NetworkX.ipynb',
|
|
77
|
-
]
|
|
78
|
-
finally:
|
|
79
|
-
webdriver_control.cleanup()
|
|
66
|
+
# Bokeh PNG export (hvplot.save) needs Playwright and a browser, which are only
|
|
67
|
+
# installed when building the docs, not when running the examples tests.
|
|
68
|
+
collect_ignore_glob += [
|
|
69
|
+
'how_to/save_bokeh_plots.ipynb',
|
|
70
|
+
'user_guide/NetworkX.ipynb',
|
|
71
|
+
]
|
|
80
72
|
|
|
81
73
|
pygraphviz = None
|
|
82
74
|
|
|
83
75
|
try:
|
|
84
|
-
import pygraphviz
|
|
76
|
+
import pygraphviz
|
|
85
77
|
except ImportError:
|
|
86
78
|
pass
|
|
87
79
|
|
|
88
80
|
pydot = None
|
|
89
81
|
try:
|
|
90
|
-
import pydot
|
|
82
|
+
import pydot
|
|
91
83
|
except ImportError:
|
|
92
84
|
pass
|
|
93
85
|
|
|
@@ -171,10 +171,14 @@ Unit tests can be run with the `test-unit` task:
|
|
|
171
171
|
pixi run test-unit
|
|
172
172
|
```
|
|
173
173
|
|
|
174
|
+
The tests run in parallel and in a random order. Slow tests are skipped unless you pass `--slow`, e.g. `pixi run test-unit --slow`.
|
|
175
|
+
|
|
176
|
+
Every plot returned by hvPlot during the tests is also rendered with the current plotting backend, as a configuration that HoloViews accepts can still fail when the plot is built. Pass `--no-render` for a faster run, e.g. `pixi run test-unit --no-render`.
|
|
177
|
+
|
|
174
178
|
:::{admonition} Advanced usage
|
|
175
179
|
:class: tip
|
|
176
180
|
|
|
177
|
-
The task is available in the following environments: `test-
|
|
181
|
+
The task is available in the following environments: `test-311`, `test-312`, `test-313`, `test-314`, and `test-core`. Where the first ones have the same environments except for different Python versions, and `test-core` (Python 3.15) only has a core set of dependencies.
|
|
178
182
|
|
|
179
183
|
You can run the task in a specific environment with the `-e` flag. For example, to run the `test-unit` task in the `test-313` environment, you can run:
|
|
180
184
|
|
|
@@ -195,6 +199,65 @@ pixi run -e test-core install
|
|
|
195
199
|
|
|
196
200
|
:::
|
|
197
201
|
|
|
202
|
+
#### Writing unit tests
|
|
203
|
+
|
|
204
|
+
Tests are plain pytest functions. Where a test goes:
|
|
205
|
+
|
|
206
|
+
| I'm testing... | Add the test to |
|
|
207
|
+
|---|---|
|
|
208
|
+
| a plot option, e.g. `xlabel` | `hvplot/tests/options/test_<group>.py`, the group being the option's section in the docs, e.g. `test_axis.py` |
|
|
209
|
+
| a kind or one of its options, e.g. `bins` of `hist` | `hvplot/tests/kinds/test_<kind>.py` |
|
|
210
|
+
| something only one data library does | the kind or option module, with the library in the test name, e.g. `test_hover_cols_all_geodataframe` |
|
|
211
|
+
| anything else | the module mirroring the source file, e.g. `test_util.py` for `hvplot/util.py` |
|
|
212
|
+
|
|
213
|
+
Name option tests `test_<option>` or `test_<option>_<detail>`: `test_options_inventory.py` and `test_kinds_inventory.py` fail when an option or a kind has no test, and tell you which test to add where. A new kind also runs in `kinds/test_all_kinds.py` with every data library and backend, its known failures go in the dicts at the top of that module.
|
|
214
|
+
|
|
215
|
+
A test of a backend-specific option, with a known failure on one backend:
|
|
216
|
+
|
|
217
|
+
```python
|
|
218
|
+
@pytest.mark.parametrize(
|
|
219
|
+
'backend',
|
|
220
|
+
[
|
|
221
|
+
'bokeh',
|
|
222
|
+
'matplotlib',
|
|
223
|
+
pytest.param(
|
|
224
|
+
'plotly',
|
|
225
|
+
marks=pytest.mark.xfail(
|
|
226
|
+
reason='HoloViews: plotly has no legend_position option',
|
|
227
|
+
raises=KeyError,
|
|
228
|
+
strict=False,
|
|
229
|
+
),
|
|
230
|
+
),
|
|
231
|
+
],
|
|
232
|
+
indirect=True,
|
|
233
|
+
)
|
|
234
|
+
def test_legend_position(hvplot_pandas, backend):
|
|
235
|
+
df = pd.DataFrame({'x': [1, 2], 'y': [3, 4], 'category': ['a', 'b']})
|
|
236
|
+
plot = df.hvplot.scatter('x', 'y', by='category', legend='left')
|
|
237
|
+
assert Store.lookup_options(backend, plot, 'plot').kwargs['legend_position'] == 'left'
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
The fixtures are in `hvplot/tests/conftest.py`:
|
|
241
|
+
|
|
242
|
+
- `hvplot_pandas` and `hvplot_xarray` add the `.hvplot` accessor. Don't `import hvplot.pandas` at the top of a test module, this is reported as an error.
|
|
243
|
+
- `backend` runs the test with Bokeh, Matplotlib and Plotly. Request it after the accessor fixtures.
|
|
244
|
+
- `tabular_lib` and `gridded_lib` run the test with each data library, converting pandas or Xarray data: `tabular_lib(df).hvplot.scatter(...)`.
|
|
245
|
+
- `block_import('geoviews')` makes a module look not installed.
|
|
246
|
+
|
|
247
|
+
The global state (HoloViews options, plotting backend, accessors) is restored after each test.
|
|
248
|
+
|
|
249
|
+
Data: write option and kind tests with pandas. Use `tabular_lib` or `gridded_lib` when asserting something that depends on the data library, and `@pandas_and_dask` from `hvplot/tests/_deps.py` when the test needs an index or the pandas API (Dask has its own code paths). If the option reads the data (a column name, a template, `hv.dim`, `'time.hour'`, a Datashader reduction...), also add a case to `CASES` in `data_libraries/test_tabular_parity.py`, which compares every tabular library with pandas. Tests can't access the internet, use `hvplot/tests/_data.py` or build the data in the test.
|
|
250
|
+
|
|
251
|
+
Marks:
|
|
252
|
+
|
|
253
|
+
- `@pytest.mark.slow` for tests taking more than about a second and all the tests running Datashader.
|
|
254
|
+
- `@pytest.mark.geo` for tests using GeoViews, `@requires('datashader')` from `_deps.py` for other optional dependencies.
|
|
255
|
+
- `@pytest.mark.xfail(reason='BUG: <description>')` for an hvPlot bug not fixed yet. It is strict, the test fails once the bug is fixed. When another library is at fault, name it in the reason (`'HoloViews: ...'`) and pass `strict=False`, as above.
|
|
256
|
+
- `render_xfail` is the same for a test that only fails when its plot is rendered.
|
|
257
|
+
- `lib_xfail('ibis', reason=...)` and `lib_render_xfail(...)` are the same for the test run with these libraries only. `lib_skip('duckdb', reason=...)` skips a library the test doesn't apply to.
|
|
258
|
+
|
|
259
|
+
To add a data library, follow the comment above `TABULAR_LIBS` in `hvplot/tests/_deps.py`.
|
|
260
|
+
|
|
198
261
|
### Example tests
|
|
199
262
|
|
|
200
263
|
hvPlot's documentation consists mainly of Jupyter Notebooks. The example tests execute all the notebooks and fail if an error is raised. Example tests are possible thanks to [nbval](https://nbval.readthedocs.io/) and can be found in the `doc/` folder.
|
|
@@ -223,6 +286,17 @@ As hvPlot uses notebooks for much of the documentation, this takes a little whil
|
|
|
223
286
|
|
|
224
287
|
A development version of hvPlot can be found [here](https://holoviz-dev.github.io/hvplot/). You can ask a maintainer if they want to make a dev release for your PR, but there is no guarantee they will say yes.
|
|
225
288
|
|
|
289
|
+
### Markdown docs and `llms.txt`
|
|
290
|
+
|
|
291
|
+
As part of `docs-build`, hvPlot also generates clean Markdown versions of its documentation together with an `llms.txt` index file that points AI assistants at the most relevant pages.
|
|
292
|
+
|
|
293
|
+
The build produces:
|
|
294
|
+
|
|
295
|
+
- `builtdocs/markdown/` - a Markdown rendering of the documentation
|
|
296
|
+
- `builtdocs/llms.txt` - an index of the most useful documentation pages for LLM-assisted development
|
|
297
|
+
|
|
298
|
+
See [How to Use hvPlot with an AI Assistant](how_to/use_ai_assistant.md) for how to consume these docs with an AI assistant.
|
|
299
|
+
|
|
226
300
|
### Link to hvPlot objects
|
|
227
301
|
|
|
228
302
|
```md
|