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.
Files changed (343) hide show
  1. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/PKG-INFO +20 -9
  2. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_ext/backend_styling_options.py +1 -3
  3. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_ext/plotting_options_table.py +23 -4
  4. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_static/custom.css +5 -0
  5. hvplot-0.13.0rc1/doc/assets/combined_penguin.png +0 -0
  6. hvplot-0.13.0rc1/doc/assets/vscode_penguin.png +0 -0
  7. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/conf.py +73 -14
  8. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/conftest.py +10 -18
  9. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/developer_guide.md +75 -1
  10. hvplot-0.13.0rc1/doc/explanation/grouping_options.ipynb +448 -0
  11. hvplot-0.13.0rc1/doc/explanation/index.md +47 -0
  12. hvplot-0.13.0rc1/doc/explanation/plotting_backend_support.ipynb +126 -0
  13. hvplot-0.13.0rc1/doc/explanation/statistical_plot_types.ipynb +723 -0
  14. hvplot-0.13.0rc1/doc/explanation/wide_vs_long_data.ipynb +428 -0
  15. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/big-data/large_vectorfield_downsampled.ipynb +2 -2
  16. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/categorical/category_heatmap.ipynb +2 -2
  17. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/categorical/lollipop_plot.ipynb +2 -2
  18. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/interactivity/app_bind.ipynb +2 -2
  19. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/interactivity/app_rx.ipynb +2 -2
  20. hvplot-0.13.0rc1/doc/how_to/build_custom_layouts.ipynb +208 -0
  21. hvplot-0.13.0rc1/doc/how_to/choose_backend_for_saving_plots.md +32 -0
  22. hvplot-0.13.0rc1/doc/how_to/customize_underlying_figure.ipynb +197 -0
  23. hvplot-0.13.0rc1/doc/how_to/display_plots.ipynb +135 -0
  24. hvplot-0.13.0rc1/doc/how_to/explore_with_widgets.ipynb +165 -0
  25. hvplot-0.13.0rc1/doc/how_to/facet_into_grid.ipynb +163 -0
  26. hvplot-0.13.0rc1/doc/how_to/index.md +173 -0
  27. hvplot-0.13.0rc1/doc/how_to/layout_plots.ipynb +151 -0
  28. hvplot-0.13.0rc1/doc/how_to/load_switch_plotting_extensions.ipynb +130 -0
  29. hvplot-0.13.0rc1/doc/how_to/overlay_plots.ipynb +143 -0
  30. hvplot-0.13.0rc1/doc/how_to/plot_lines_with_markers.ipynb +91 -0
  31. hvplot-0.13.0rc1/doc/how_to/save_bokeh_plots.ipynb +210 -0
  32. hvplot-0.13.0rc1/doc/how_to/save_matplotlib_plots.ipynb +182 -0
  33. hvplot-0.13.0rc1/doc/how_to/save_plots_as_gif.ipynb +194 -0
  34. hvplot-0.13.0rc1/doc/how_to/split_into_subplots.ipynb +123 -0
  35. hvplot-0.13.0rc1/doc/how_to/style_plots_by_backend.ipynb +186 -0
  36. hvplot-0.13.0rc1/doc/how_to/use_ai_assistant.md +69 -0
  37. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/index.md +68 -15
  38. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.bar.ipynb +6 -3
  39. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.barh.ipynb +3 -3
  40. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.bivariate.ipynb +2 -2
  41. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.box.ipynb +2 -2
  42. hvplot-0.13.0rc1/doc/ref/api/manual/hvplot.hvPlot.explorer.ipynb +117 -0
  43. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.heatmap.ipynb +11 -5
  44. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.kde.ipynb +2 -2
  45. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.line.ipynb +7 -3
  46. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.paths.ipynb +1 -1
  47. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.points.ipynb +4 -4
  48. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.violin.ipynb +2 -2
  49. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api_compatibility/index.md +2 -1
  50. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api_compatibility/pandas/Pandas_API.ipynb +9 -2
  51. hvplot-0.13.0rc1/doc/ref/api_compatibility/panel_widgets.ipynb +169 -0
  52. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/data_libraries.ipynb +3 -3
  53. hvplot-0.13.0rc1/doc/ref/index.md +72 -0
  54. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/plotting_extensions.ipynb +5 -1
  55. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/plotting_options/axis.ipynb +83 -26
  56. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/plotting_options/color_colormap.ipynb +14 -1
  57. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/plotting_options/data.ipynb +16 -3
  58. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/plotting_options/geographic.ipynb +4 -1
  59. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/plotting_options/streaming.ipynb +1 -1
  60. hvplot-0.13.0rc1/doc/tutorials/explorer.ipynb +628 -0
  61. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/tutorials/getting_started.ipynb +19 -7
  62. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/tutorials/index.md +11 -3
  63. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/user_guide/Geographic_Data.ipynb +5 -2
  64. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/user_guide/Interactive.ipynb +28 -13
  65. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/user_guide/Large_Timeseries.ipynb +41 -16
  66. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/user_guide/NetworkX.ipynb +14 -8
  67. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/user_guide/Plotting.ipynb +8 -3
  68. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/user_guide/Plotting_with_Matplotlib.ipynb +20 -7
  69. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/user_guide/Plotting_with_Plotly.ipynb +8 -3
  70. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/user_guide/Widgets.ipynb +14 -11
  71. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/user_guide/index.md +8 -32
  72. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/__init__.py +22 -23
  73. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/_version.py +2 -2
  74. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/backend_transforms.py +6 -9
  75. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/converter.py +182 -152
  76. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/cudf.py +21 -3
  77. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/dask.py +25 -3
  78. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/duckdb.py +18 -4
  79. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/fugue.py +7 -8
  80. hvplot-0.13.0rc1/hvplot/ibis.py +37 -0
  81. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/intake.py +19 -4
  82. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/interactive.py +12 -14
  83. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/networkx.py +27 -25
  84. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/pandas.py +18 -4
  85. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/plotting/__init__.py +14 -7
  86. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/plotting/andrews_curves.py +7 -6
  87. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/plotting/core.py +55 -42
  88. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/plotting/lag_plot.py +2 -0
  89. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/plotting/parallel_coordinates.py +6 -4
  90. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/plotting/scatter_matrix.py +7 -7
  91. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/polars.py +17 -4
  92. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/sample_data.py +5 -5
  93. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/sampledata.py +3 -2
  94. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/streamz.py +21 -3
  95. hvplot-0.13.0a1/hvplot/tests/util.py → hvplot-0.13.0rc1/hvplot/tests/_data.py +47 -2
  96. hvplot-0.13.0rc1/hvplot/tests/_deps.py +34 -0
  97. hvplot-0.13.0rc1/hvplot/tests/_inventory.py +30 -0
  98. hvplot-0.13.0rc1/hvplot/tests/conftest.py +333 -0
  99. hvplot-0.13.0rc1/hvplot/tests/data_libraries/test_accessors.py +192 -0
  100. hvplot-0.13.0rc1/hvplot/tests/data_libraries/test_tabular_parity.py +317 -0
  101. hvplot-0.13.0rc1/hvplot/tests/kinds/__init__.py +0 -0
  102. hvplot-0.13.0rc1/hvplot/tests/kinds/test_all_kinds.py +213 -0
  103. hvplot-0.13.0rc1/hvplot/tests/kinds/test_area.py +89 -0
  104. hvplot-0.13.0rc1/hvplot/tests/kinds/test_bar.py +100 -0
  105. hvplot-0.13.0rc1/hvplot/tests/kinds/test_barh.py +39 -0
  106. hvplot-0.13.0rc1/hvplot/tests/kinds/test_bivariate.py +117 -0
  107. hvplot-0.13.0rc1/hvplot/tests/kinds/test_box.py +52 -0
  108. hvplot-0.13.0rc1/hvplot/tests/kinds/test_contour.py +62 -0
  109. hvplot-0.13.0rc1/hvplot/tests/kinds/test_contourf.py +53 -0
  110. hvplot-0.13.0rc1/hvplot/tests/kinds/test_dataset.py +33 -0
  111. hvplot-0.13.0rc1/hvplot/tests/kinds/test_density.py +59 -0
  112. hvplot-0.13.0rc1/hvplot/tests/kinds/test_errorbars.py +55 -0
  113. hvplot-0.13.0rc1/hvplot/tests/kinds/test_heatmap.py +88 -0
  114. hvplot-0.13.0rc1/hvplot/tests/kinds/test_hexbin.py +99 -0
  115. hvplot-0.13.0rc1/hvplot/tests/kinds/test_hist.py +116 -0
  116. hvplot-0.13.0rc1/hvplot/tests/kinds/test_image.py +71 -0
  117. hvplot-0.13.0rc1/hvplot/tests/kinds/test_kde.py +85 -0
  118. hvplot-0.13.0rc1/hvplot/tests/kinds/test_kinds_inventory.py +40 -0
  119. hvplot-0.13.0rc1/hvplot/tests/kinds/test_labels.py +159 -0
  120. hvplot-0.13.0rc1/hvplot/tests/kinds/test_line.py +44 -0
  121. hvplot-0.13.0rc1/hvplot/tests/kinds/test_ohlc.py +167 -0
  122. hvplot-0.13.0rc1/hvplot/tests/kinds/test_paths.py +84 -0
  123. hvplot-0.13.0rc1/hvplot/tests/kinds/test_points.py +238 -0
  124. hvplot-0.13.0rc1/hvplot/tests/kinds/test_polygons.py +133 -0
  125. hvplot-0.13.0rc1/hvplot/tests/kinds/test_quadmesh.py +65 -0
  126. hvplot-0.13.0rc1/hvplot/tests/kinds/test_rgb.py +128 -0
  127. hvplot-0.13.0rc1/hvplot/tests/kinds/test_scatter.py +179 -0
  128. hvplot-0.13.0rc1/hvplot/tests/kinds/test_step.py +38 -0
  129. hvplot-0.13.0rc1/hvplot/tests/kinds/test_table.py +27 -0
  130. hvplot-0.13.0rc1/hvplot/tests/kinds/test_trimesh.py +276 -0
  131. hvplot-0.13.0rc1/hvplot/tests/kinds/test_vectorfield.py +67 -0
  132. hvplot-0.13.0rc1/hvplot/tests/kinds/test_violin.py +56 -0
  133. hvplot-0.13.0rc1/hvplot/tests/options/__init__.py +0 -0
  134. hvplot-0.13.0rc1/hvplot/tests/options/test_axis.py +657 -0
  135. hvplot-0.13.0rc1/hvplot/tests/options/test_color.py +537 -0
  136. hvplot-0.13.0rc1/hvplot/tests/options/test_data.py +518 -0
  137. hvplot-0.13.0rc1/hvplot/tests/options/test_geographic.py +757 -0
  138. hvplot-0.13.0rc1/hvplot/tests/options/test_interactivity.py +336 -0
  139. hvplot-0.13.0rc1/hvplot/tests/options/test_legend.py +114 -0
  140. hvplot-0.13.0rc1/hvplot/tests/options/test_options_inventory.py +25 -0
  141. hvplot-0.13.0rc1/hvplot/tests/options/test_resampling.py +567 -0
  142. hvplot-0.13.0rc1/hvplot/tests/options/test_size_layout.py +270 -0
  143. hvplot-0.13.0rc1/hvplot/tests/options/test_streaming.py +74 -0
  144. hvplot-0.13.0rc1/hvplot/tests/options/test_style.py +100 -0
  145. hvplot-0.13.0rc1/hvplot/tests/plotting/__init__.py +0 -0
  146. hvplot-0.13.0rc1/hvplot/tests/plotting/test_core.py +73 -0
  147. hvplot-0.13.0rc1/hvplot/tests/plotting/test_lag_plot.py +40 -0
  148. hvplot-0.13.0rc1/hvplot/tests/plotting/test_networkx.py +382 -0
  149. hvplot-0.13.0a1/hvplot/tests/testplotting.py → hvplot-0.13.0rc1/hvplot/tests/plotting/test_pandas_backend.py +34 -29
  150. hvplot-0.13.0rc1/hvplot/tests/plotting/test_parallel_coordinates.py +78 -0
  151. hvplot-0.13.0rc1/hvplot/tests/plotting/test_scatter_matrix.py +172 -0
  152. hvplot-0.13.0a1/hvplot/tests/testbackend_transforms.py → hvplot-0.13.0rc1/hvplot/tests/test_backend_transforms.py +49 -28
  153. hvplot-0.13.0rc1/hvplot/tests/test_converter.py +384 -0
  154. hvplot-0.13.0a1/hvplot/tests/testdeprecations.py → hvplot-0.13.0rc1/hvplot/tests/test_deprecations.py +17 -21
  155. hvplot-0.13.0a1/hvplot/tests/testpatchsignature.py → hvplot-0.13.0rc1/hvplot/tests/test_docstrings.py +67 -12
  156. hvplot-0.13.0rc1/hvplot/tests/test_fugue.py +90 -0
  157. hvplot-0.13.0rc1/hvplot/tests/test_init.py +55 -0
  158. hvplot-0.13.0a1/hvplot/tests/testinteractive.py → hvplot-0.13.0rc1/hvplot/tests/test_interactive.py +149 -28
  159. hvplot-0.13.0rc1/hvplot/tests/test_sample_data.py +13 -0
  160. hvplot-0.13.0rc1/hvplot/tests/test_sampledata.py +33 -0
  161. hvplot-0.13.0rc1/hvplot/tests/test_testing_infrastructure.py +99 -0
  162. hvplot-0.13.0a1/hvplot/tests/testui.py → hvplot-0.13.0rc1/hvplot/tests/test_ui.py +93 -47
  163. hvplot-0.13.0rc1/hvplot/tests/test_util.py +832 -0
  164. hvplot-0.13.0rc1/hvplot/tests/test_utilities.py +160 -0
  165. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/ui.py +57 -27
  166. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/util.py +33 -27
  167. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/utilities.py +5 -3
  168. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/xarray.py +30 -7
  169. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/xugrid.py +17 -4
  170. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/pyproject.toml +88 -11
  171. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/scripts/conda/recipe/meta.yaml +1 -1
  172. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/scripts/download_data.py +20 -0
  173. hvplot-0.13.0rc1/scripts/llms_config.py +118 -0
  174. hvplot-0.13.0a1/doc/ref/api/manual/hvplot.hvPlot.explorer.ipynb +0 -47
  175. hvplot-0.13.0a1/doc/ref/index.md +0 -17
  176. hvplot-0.13.0a1/doc/user_guide/Explorer.ipynb +0 -339
  177. hvplot-0.13.0a1/doc/user_guide/Introduction.ipynb +0 -222
  178. hvplot-0.13.0a1/doc/user_guide/Plotting_Extensions.ipynb +0 -252
  179. hvplot-0.13.0a1/doc/user_guide/Statistical_Plots.ipynb +0 -147
  180. hvplot-0.13.0a1/doc/user_guide/Subplots.ipynb +0 -147
  181. hvplot-0.13.0a1/doc/user_guide/Viewing.ipynb +0 -211
  182. hvplot-0.13.0a1/doc/user_guide/images/simple.svg +0 -59
  183. hvplot-0.13.0a1/hvplot/ibis.py +0 -25
  184. hvplot-0.13.0a1/hvplot/tests/conftest.py +0 -59
  185. hvplot-0.13.0a1/hvplot/tests/plotting/testcore.py +0 -95
  186. hvplot-0.13.0a1/hvplot/tests/plotting/testohlc.py +0 -93
  187. hvplot-0.13.0a1/hvplot/tests/plotting/testscattermatrix.py +0 -138
  188. hvplot-0.13.0a1/hvplot/tests/test_links.py +0 -99
  189. hvplot-0.13.0a1/hvplot/tests/testcharts.py +0 -742
  190. hvplot-0.13.0a1/hvplot/tests/testdocstring.py +0 -52
  191. hvplot-0.13.0a1/hvplot/tests/testfugue.py +0 -50
  192. hvplot-0.13.0a1/hvplot/tests/testgeo.py +0 -556
  193. hvplot-0.13.0a1/hvplot/tests/testgeowithoutgv.py +0 -211
  194. hvplot-0.13.0a1/hvplot/tests/testgridplots.py +0 -266
  195. hvplot-0.13.0a1/hvplot/tests/testhelp.py +0 -78
  196. hvplot-0.13.0a1/hvplot/tests/testibis.py +0 -30
  197. hvplot-0.13.0a1/hvplot/tests/testnetworkx.py +0 -33
  198. hvplot-0.13.0a1/hvplot/tests/testoperations.py +0 -431
  199. hvplot-0.13.0a1/hvplot/tests/testoptions.py +0 -566
  200. hvplot-0.13.0a1/hvplot/tests/testoverrides.py +0 -76
  201. hvplot-0.13.0a1/hvplot/tests/testpanel.py +0 -59
  202. hvplot-0.13.0a1/hvplot/tests/testpatch.py +0 -164
  203. hvplot-0.13.0a1/hvplot/tests/teststatplots.py +0 -24
  204. hvplot-0.13.0a1/hvplot/tests/teststreaming.py +0 -28
  205. hvplot-0.13.0a1/hvplot/tests/testtransforms.py +0 -71
  206. hvplot-0.13.0a1/hvplot/tests/testutil.py +0 -630
  207. hvplot-0.13.0a1/hvplot/tests/testxugrid.py +0 -344
  208. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/.gitignore +0 -0
  209. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/LICENSE +0 -0
  210. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/README.md +0 -0
  211. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_static/favicon.ico +0 -0
  212. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_static/home/bokeh.gif +0 -0
  213. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_static/home/dask.gif +0 -0
  214. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_static/home/explorer.gif +0 -0
  215. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_static/home/geo.gif +0 -0
  216. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_static/home/geopandas.gif +0 -0
  217. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_static/home/interactive_hvplot.gif +0 -0
  218. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_static/home/interactive_pandas.gif +0 -0
  219. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_static/home/interactive_xarray.gif +0 -0
  220. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_static/home/large_data.gif +0 -0
  221. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_static/home/layout.png +0 -0
  222. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_static/home/matplotlib.png +0 -0
  223. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_static/home/networkx.gif +0 -0
  224. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_static/home/overlay.png +0 -0
  225. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_static/home/pandas.gif +0 -0
  226. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_static/home/plotly.gif +0 -0
  227. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_static/home/widgets.gif +0 -0
  228. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_static/home/xarray.gif +0 -0
  229. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_static/images/heat_and_trees.png +0 -0
  230. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_static/images/portfolio.png +0 -0
  231. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_static/logo.png +0 -0
  232. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_static/logo_horizontal.png +0 -0
  233. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_static/logo_horizontal.svg +0 -0
  234. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_static/logo_stacked.svg +0 -0
  235. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/_static/patch_templates/sourcelink.html +0 -0
  236. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/about.md +0 -0
  237. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/assets/console.png +0 -0
  238. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/assets/console_server.gif +0 -0
  239. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/assets/diagram.png +0 -0
  240. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/assets/diagram.svg +0 -0
  241. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/assets/hvplot-wm.png +0 -0
  242. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/assets/streamz_demo.gif +0 -0
  243. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/annotations/horizontal_bar_with_labels.ipynb +0 -0
  244. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/basic-charts/simple_area.ipynb +0 -0
  245. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/basic-charts/simple_bar.ipynb +0 -0
  246. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/basic-charts/simple_boxplot.ipynb +0 -0
  247. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/basic-charts/simple_heatmap.ipynb +0 -0
  248. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/basic-charts/simple_line.ipynb +0 -0
  249. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/basic-charts/simple_scatter.ipynb +0 -0
  250. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/basic-charts/simple_step.ipynb +0 -0
  251. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/categorical/category_bar.ipynb +0 -0
  252. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/categorical/grouped_bar.ipynb +0 -0
  253. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/categorical/horizontal_bar.ipynb +0 -0
  254. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/categorical/stacked_bar.ipynb +0 -0
  255. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/categorical/strip_jitter.ipynb +0 -0
  256. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/geospatial/datashade_map.ipynb +0 -0
  257. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/geospatial/geopoints.ipynb +0 -0
  258. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/geospatial/map_overlay.ipynb +0 -0
  259. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/geospatial/paths_labels.ipynb +0 -0
  260. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/geospatial/polygon_map.ipynb +0 -0
  261. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/gridded/contour.ipynb +0 -0
  262. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/gridded/contourf.ipynb +0 -0
  263. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/gridded/image.ipynb +0 -0
  264. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/gridded/quadmesh.ipynb +0 -0
  265. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/gridded/rgb.ipynb +0 -0
  266. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/gridded/rgb_satellite_imagery.ipynb +0 -0
  267. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/gridded/vectorfield.ipynb +0 -0
  268. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/interactivity/groupby_widget.ipynb +0 -0
  269. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/multidimensional/andrews_curves.ipynb +0 -0
  270. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/multidimensional/groupby.ipynb +0 -0
  271. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/multidimensional/parallel_coordinates.ipynb +0 -0
  272. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/multidimensional/scatter_matrix.ipynb +0 -0
  273. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/multidimensional/scatter_multi.ipynb +0 -0
  274. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/statistical/bar_with_error_bars.ipynb +0 -0
  275. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/statistical/bivariate.ipynb +0 -0
  276. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/statistical/boxplot.ipynb +0 -0
  277. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/statistical/correlation_heatmap.ipynb +0 -0
  278. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/statistical/density_plot.ipynb +0 -0
  279. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/statistical/hexbin.ipynb +0 -0
  280. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/statistical/histogram.ipynb +0 -0
  281. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/statistical/horizontal_errorbars.ipynb +0 -0
  282. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/statistical/violin.ipynb +0 -0
  283. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/statistical/violin_scatter.ipynb +0 -0
  284. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/time-series/area_time_series.ipynb +0 -0
  285. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/time-series/dual_axis_timeseries.ipynb +0 -0
  286. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/time-series/forecast_bands.ipynb +0 -0
  287. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/time-series/lag_plot.ipynb +0 -0
  288. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/time-series/multi_series_line.ipynb +0 -0
  289. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/time-series/ohlc.ipynb +0 -0
  290. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/time-series/step_time_series.ipynb +0 -0
  291. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/time-series/time_series_bar.ipynb +0 -0
  292. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/gallery/time-series/time_series_line.ipynb +0 -0
  293. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/governance/project-docs/CONTRIBUTING.md +0 -0
  294. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/governance/project-docs/GOVERNANCE.md +0 -0
  295. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/governance/project-docs/LICENSE.md +0 -0
  296. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/governance/project-docs/MEMBERS.md +0 -0
  297. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/index.md +0 -0
  298. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.area.ipynb +0 -0
  299. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.contour.ipynb +0 -0
  300. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.contourf.ipynb +0 -0
  301. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.dataset.ipynb +0 -0
  302. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.density.md +0 -0
  303. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.errorbars.ipynb +0 -0
  304. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.hexbin.ipynb +0 -0
  305. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.hist.ipynb +0 -0
  306. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.image.ipynb +0 -0
  307. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.labels.ipynb +0 -0
  308. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.ohlc.ipynb +0 -0
  309. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.polygons.ipynb +0 -0
  310. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.quadmesh.ipynb +0 -0
  311. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.rgb.ipynb +0 -0
  312. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.scatter.ipynb +0 -0
  313. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.step.ipynb +0 -0
  314. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.table.ipynb +0 -0
  315. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.hvPlot.vectorfield.ipynb +0 -0
  316. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.plotting.andrews_curves.ipynb +0 -0
  317. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.plotting.lag_plot.ipynb +0 -0
  318. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.plotting.parallel_coordinates.ipynb +0 -0
  319. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api/manual/hvplot.plotting.scatter_matrix.ipynb +0 -0
  320. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/api_compatibility/pandas/index.ipynb +0 -0
  321. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/deprecations.md +0 -0
  322. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/installation.md +0 -0
  323. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/plotting_options/index.md +0 -0
  324. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/plotting_options/interactivity.ipynb +0 -0
  325. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/plotting_options/legend.ipynb +0 -0
  326. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/plotting_options/resampling.ipynb +0 -0
  327. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/plotting_options/size_layout.ipynb +0 -0
  328. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/ref/plotting_options/styling.ipynb +0 -0
  329. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/releases.md +0 -0
  330. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/roadmap.md +0 -0
  331. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/topics.html +0 -0
  332. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/tutorials/getting_started_pandas.ipynb +0 -0
  333. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/user_guide/Gridded_Data.ipynb +0 -0
  334. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/doc/user_guide/Timeseries_Data.ipynb +0 -0
  335. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/data/crime.csv +0 -0
  336. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/datasets.yaml +0 -0
  337. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/tests/__init__.py +0 -0
  338. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/tests/data/README.md +0 -0
  339. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/hvplot/tests/data/RGB-red.byte.tif +0 -0
  340. {hvplot-0.13.0a1/hvplot/tests/plotting → hvplot-0.13.0rc1/hvplot/tests/data_libraries}/__init__.py +0 -0
  341. /hvplot-0.13.0a1/hvplot/tests/plotting/testandrewscurves.py → /hvplot-0.13.0rc1/hvplot/tests/plotting/test_andrews_curves.py +0 -0
  342. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/scripts/conda/build.sh +0 -0
  343. {hvplot-0.13.0a1 → hvplot-0.13.0rc1}/scripts/sync_git_tags.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.5
2
2
  Name: hvplot
3
- Version: 0.13.0a1
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.10
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 = ['.. list-table::', ' :header-rows: 1', ' :widths: 25 70', '']
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' **{param.name}** *({param.type})*')
60
+ table_rst.append(f' {name} *({param.type})*')
42
61
  table_rst.append(' - ')
43
62
  table_rst.append(indent(desc, ' ' * 7))
44
63
 
@@ -26,3 +26,8 @@
26
26
  padding: 0.7em 3em !important;
27
27
  font-size: 1.2em;
28
28
  }
29
+
30
+ /* Option names are links in the plotting options tables */
31
+ .plotting-options-table td:first-child a {
32
+ font-weight: bold;
33
+ }
@@ -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 hvplot # noqa
15
- from nbsite.shared_conf import * # noqa
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
- from bokeh.io.webdriver import webdriver_control
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
- if find_spec('selenium'):
70
- try:
71
- webdriver_control.create()
72
- except RuntimeError:
73
- # hvplot.save() with bokeh
74
- collect_ignore_glob += [
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 # noqa
76
+ import pygraphviz
85
77
  except ImportError:
86
78
  pass
87
79
 
88
80
  pydot = None
89
81
  try:
90
- import pydot # noqa
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-310`, `test-311`, `test-312`, `test-313`, and `test-core`. Where the first ones have the same environments except for different Python versions, and `test-core` only has a core set of dependencies.
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