ultraplot 2.1.3__tar.gz → 2.1.9__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 (466) hide show
  1. {ultraplot-2.1.3 → ultraplot-2.1.9}/.github/dependabot.yml +8 -0
  2. {ultraplot-2.1.3 → ultraplot-2.1.9}/.github/workflows/build-ultraplot.yml +2 -2
  3. {ultraplot-2.1.3 → ultraplot-2.1.9}/.github/workflows/main.yml +57 -97
  4. {ultraplot-2.1.3 → ultraplot-2.1.9}/.github/workflows/publish-pypi.yml +80 -16
  5. {ultraplot-2.1.3 → ultraplot-2.1.9}/.github/workflows/test-map.yml +11 -3
  6. {ultraplot-2.1.3 → ultraplot-2.1.9}/.pre-commit-config.yaml +1 -1
  7. {ultraplot-2.1.3 → ultraplot-2.1.9}/CITATION.cff +3 -3
  8. {ultraplot-2.1.3/ultraplot.egg-info → ultraplot-2.1.9}/PKG-INFO +5 -11
  9. {ultraplot-2.1.3 → ultraplot-2.1.9}/README.rst +4 -10
  10. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/Makefile +1 -1
  11. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/_static/custom.css +107 -12
  12. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/colorbars_legends.py +138 -1
  13. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/conf.py +6 -2
  14. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/contributing.rst +32 -32
  15. ultraplot-2.1.9/docs/examples/geo/04_choropleth.py +55 -0
  16. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/examples/legends_colorbars/03_semantic_legends.py +29 -12
  17. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/projections.py +29 -0
  18. ultraplot-2.1.9/docs/sphinxext/jupytext_cache.py +51 -0
  19. {ultraplot-2.1.3 → ultraplot-2.1.9}/noxfile.py +25 -30
  20. {ultraplot-2.1.3 → ultraplot-2.1.9}/pyproject.toml +4 -0
  21. ultraplot-2.1.9/tools/ci/version_support.py +245 -0
  22. ultraplot-2.1.9/tools/release/publish_zenodo.py +313 -0
  23. ultraplot-2.1.9/tools/release/sync_citation.py +168 -0
  24. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/__init__.py +142 -1
  25. ultraplot-2.1.9/ultraplot/_version.py +1 -0
  26. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/axes/base.py +85 -48
  27. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/axes/geo.py +434 -23
  28. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/axes/plot.py +156 -29
  29. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/axes/plot_types/curved_quiver.py +42 -13
  30. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/colors.py +7 -7
  31. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/constructor.py +168 -92
  32. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/figure.py +326 -4
  33. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/gridspec.py +45 -21
  34. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/internals/rcsetup.py +23 -3
  35. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/legend.py +20 -3
  36. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/proj.py +4 -4
  37. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/scale.py +3 -2
  38. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/tests/test_1dplots.py +22 -0
  39. ultraplot-2.1.9/ultraplot/tests/test_axes_base_colorbar_helpers.py +300 -0
  40. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/tests/test_colorbar.py +56 -0
  41. ultraplot-2.1.9/ultraplot/tests/test_colorbar_helpers_extra.py +371 -0
  42. ultraplot-2.1.9/ultraplot/tests/test_colormap_helpers_extra.py +204 -0
  43. ultraplot-2.1.9/ultraplot/tests/test_colors_helpers.py +178 -0
  44. ultraplot-2.1.9/ultraplot/tests/test_config_helpers_extra.py +236 -0
  45. ultraplot-2.1.9/ultraplot/tests/test_constructor_helpers_extra.py +198 -0
  46. ultraplot-2.1.9/ultraplot/tests/test_core_versions.py +150 -0
  47. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/tests/test_figure.py +407 -0
  48. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/tests/test_geographic.py +259 -0
  49. ultraplot-2.1.9/ultraplot/tests/test_gridspec.py +312 -0
  50. ultraplot-2.1.9/ultraplot/tests/test_imports.py +265 -0
  51. ultraplot-2.1.9/ultraplot/tests/test_inputs_helpers.py +196 -0
  52. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/tests/test_legend.py +52 -11
  53. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/tests/test_plot.py +155 -2
  54. ultraplot-2.1.9/ultraplot/tests/test_proj_helpers.py +60 -0
  55. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/tests/test_projections.py +24 -8
  56. ultraplot-2.1.9/ultraplot/tests/test_rcsetup_helpers.py +184 -0
  57. ultraplot-2.1.9/ultraplot/tests/test_release_metadata.py +145 -0
  58. ultraplot-2.1.9/ultraplot/tests/test_scale_helpers.py +242 -0
  59. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/tests/test_subplots.py +11 -4
  60. ultraplot-2.1.9/ultraplot/tests/test_text_helpers.py +133 -0
  61. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/tests/test_ultralayout.py +20 -0
  62. {ultraplot-2.1.3 → ultraplot-2.1.9/ultraplot.egg-info}/PKG-INFO +5 -11
  63. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot.egg-info/SOURCES.txt +18 -1
  64. ultraplot-2.1.3/.zenodo.json +0 -39
  65. ultraplot-2.1.3/ultraplot/_version.py +0 -1
  66. ultraplot-2.1.3/ultraplot/tests/test_gridspec.py +0 -147
  67. ultraplot-2.1.3/ultraplot/tests/test_imports.py +0 -148
  68. {ultraplot-2.1.3 → ultraplot-2.1.9}/.github/ISSUE_TEMPLATE.md +0 -0
  69. {ultraplot-2.1.3 → ultraplot-2.1.9}/.github/micromamba-condarc.yml +0 -0
  70. {ultraplot-2.1.3 → ultraplot-2.1.9}/.gitignore +0 -0
  71. {ultraplot-2.1.3 → ultraplot-2.1.9}/.readthedocs.yml +0 -0
  72. {ultraplot-2.1.3 → ultraplot-2.1.9}/CODEOFCONDUCT.md +0 -0
  73. {ultraplot-2.1.3 → ultraplot-2.1.9}/CONTRIBUTING.rst +0 -0
  74. {ultraplot-2.1.3 → ultraplot-2.1.9}/INSTALL.rst +0 -0
  75. {ultraplot-2.1.3 → ultraplot-2.1.9}/LICENSE.txt +0 -0
  76. {ultraplot-2.1.3 → ultraplot-2.1.9}/UltraPlotLogo.svg +0 -0
  77. {ultraplot-2.1.3 → ultraplot-2.1.9}/codecov.yml +0 -0
  78. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/1dplots.py +0 -0
  79. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/2dplots.py +0 -0
  80. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/_ext/notoc.py +0 -0
  81. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/_scripts/fetch_releases.py +0 -0
  82. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/_static/custom.js +0 -0
  83. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/_static/example_plots/cartesian_example.svg +0 -0
  84. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/_static/example_plots/colorbars_legends_example.svg +0 -0
  85. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/_static/example_plots/colormaps_example.svg +0 -0
  86. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/_static/example_plots/panels_example.svg +0 -0
  87. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/_static/example_plots/projection_example.svg +0 -0
  88. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/_static/example_plots/subplot_example.svg +0 -0
  89. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/_static/logo_blank.svg +0 -0
  90. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/_static/logo_long.png +0 -0
  91. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/_static/logo_long.svg +0 -0
  92. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/_static/logo_social.png +0 -0
  93. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/_static/logo_social.svg +0 -0
  94. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/_static/logo_square.png +0 -0
  95. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/_templates/whatsnew_sidebar.html +0 -0
  96. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/about.rst +0 -0
  97. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/api.rst +0 -0
  98. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/basics.py +0 -0
  99. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/cartesian.py +0 -0
  100. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/colormaps.py +0 -0
  101. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/colors.py +0 -0
  102. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/configuration.rst +0 -0
  103. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/cycles.py +0 -0
  104. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/examples/README.txt +0 -0
  105. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/examples/colors/01_cycle_colormap.py +0 -0
  106. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/examples/colors/02_diverging_colormap.py +0 -0
  107. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/examples/colors/README.txt +0 -0
  108. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/examples/geo/01_robin_tracks.py +0 -0
  109. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/examples/geo/02_orthographic_views.py +0 -0
  110. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/examples/geo/03_projections_features.py +0 -0
  111. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/examples/geo/README.txt +0 -0
  112. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/examples/layouts/01_shared_axes_abc.py +0 -0
  113. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/examples/layouts/02_complex_layout_insets.py +0 -0
  114. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/examples/layouts/03_spanning_labels.py +0 -0
  115. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/examples/layouts/README.txt +0 -0
  116. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/examples/legends_colorbars/01_multi_colorbars.py +0 -0
  117. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/examples/legends_colorbars/02_legend_inset_colorbar.py +0 -0
  118. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/examples/legends_colorbars/README.txt +0 -0
  119. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/examples/plot_types/01_curved_quiver.py +0 -0
  120. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/examples/plot_types/02_network_graph.py +0 -0
  121. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/examples/plot_types/03_lollipop.py +0 -0
  122. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/examples/plot_types/04_datetime_series.py +0 -0
  123. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/examples/plot_types/05_box_violin.py +0 -0
  124. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/examples/plot_types/06_ridge_plot.py +0 -0
  125. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/examples/plot_types/07_radar.py +0 -0
  126. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/examples/plot_types/07_sankey.py +0 -0
  127. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/examples/plot_types/08_chord_diagram.py +0 -0
  128. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/examples/plot_types/08_ternary.py +0 -0
  129. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/examples/plot_types/09_phylogeny.py +0 -0
  130. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/examples/plot_types/10_circos_bed.py +0 -0
  131. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/examples/plot_types/11_topic_ribbon.py +0 -0
  132. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/examples/plot_types/README.txt +0 -0
  133. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/external-links.rst +0 -0
  134. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/faq.rst +0 -0
  135. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/fonts.py +0 -0
  136. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/index.rst +0 -0
  137. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/insets_panels.py +0 -0
  138. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/install.rst +0 -0
  139. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/lazy_loading.rst +0 -0
  140. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/make.bat +0 -0
  141. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/networks.py +0 -0
  142. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/requirements-rtd.txt +0 -0
  143. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/sphinxext/custom_roles.py +0 -0
  144. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/stats.py +0 -0
  145. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/subplots.py +0 -0
  146. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/ultraplotrc +0 -0
  147. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/usage.rst +0 -0
  148. {ultraplot-2.1.3 → ultraplot-2.1.9}/docs/why.rst +0 -0
  149. {ultraplot-2.1.3 → ultraplot-2.1.9}/environment.yml +0 -0
  150. {ultraplot-2.1.3 → ultraplot-2.1.9}/logo/PermanentMarker-Regular.ttf +0 -0
  151. {ultraplot-2.1.3 → ultraplot-2.1.9}/logo/environment-logo.yml +0 -0
  152. {ultraplot-2.1.3 → ultraplot-2.1.9}/logo/logo.py +0 -0
  153. {ultraplot-2.1.3 → ultraplot-2.1.9}/logo/run-linter.sh +0 -0
  154. {ultraplot-2.1.3 → ultraplot-2.1.9}/logo/webicon.py +0 -0
  155. {ultraplot-2.1.3 → ultraplot-2.1.9}/logo/whyUltraPlot.svg +0 -0
  156. {ultraplot-2.1.3 → ultraplot-2.1.9}/requirements-minimal.txt +0 -0
  157. {ultraplot-2.1.3 → ultraplot-2.1.9}/setup.cfg +0 -0
  158. {ultraplot-2.1.3 → ultraplot-2.1.9}/tools/ci/build_test_map.py +0 -0
  159. {ultraplot-2.1.3 → ultraplot-2.1.9}/tools/ci/select_tests.py +0 -0
  160. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/_lazy.py +0 -0
  161. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/axes/__init__.py +0 -0
  162. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/axes/cartesian.py +0 -0
  163. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/axes/container.py +0 -0
  164. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/axes/plot_types/__init__.py +0 -0
  165. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/axes/plot_types/circlize.py +0 -0
  166. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/axes/plot_types/ribbon.py +0 -0
  167. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/axes/plot_types/sankey.py +0 -0
  168. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/axes/polar.py +0 -0
  169. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/axes/shared.py +0 -0
  170. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/axes/three.py +0 -0
  171. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Algae.rgb +0 -0
  172. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Amp.rgb +0 -0
  173. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/BR.rgb +0 -0
  174. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Balance.rgb +0 -0
  175. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Blues1_r.xml +0 -0
  176. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Blues2.xml +0 -0
  177. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Blues3.xml +0 -0
  178. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Blues4_r.xml +0 -0
  179. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Blues5.xml +0 -0
  180. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Blues6.xml +0 -0
  181. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Blues7.xml +0 -0
  182. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Blues8.xml +0 -0
  183. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Blues9.xml +0 -0
  184. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Boreal.json +0 -0
  185. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Browns1.xml +0 -0
  186. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Browns2.xml +0 -0
  187. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Browns3.xml +0 -0
  188. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Browns4.xml +0 -0
  189. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Browns5.xml +0 -0
  190. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Browns6.xml +0 -0
  191. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Browns7.xml +0 -0
  192. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Browns8.xml +0 -0
  193. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Browns9.xml +0 -0
  194. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/ColdHot.rgb +0 -0
  195. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Crest.rgb +0 -0
  196. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Curl.rgb +0 -0
  197. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Deep.rgb +0 -0
  198. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Delta.rgb +0 -0
  199. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Dense.rgb +0 -0
  200. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Div.json +0 -0
  201. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/DryWet.json +0 -0
  202. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Dusk.json +0 -0
  203. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Fire.json +0 -0
  204. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Flare.rgb +0 -0
  205. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Glacial.json +0 -0
  206. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Greens1_r.xml +0 -0
  207. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Greens2.xml +0 -0
  208. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Greens3_r.xml +0 -0
  209. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Greens4.xml +0 -0
  210. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Greens5.xml +0 -0
  211. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Greens6_r.xml +0 -0
  212. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Greens7.xml +0 -0
  213. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Greens8.xml +0 -0
  214. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Haline.rgb +0 -0
  215. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Ice.rgb +0 -0
  216. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/IceFire.rgb +0 -0
  217. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Mako.rgb +0 -0
  218. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Marine.json +0 -0
  219. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Matter.rgb +0 -0
  220. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Mono.txt +0 -0
  221. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/MonoCycle.txt +0 -0
  222. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/NegPos.json +0 -0
  223. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Oranges1.xml +0 -0
  224. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Oranges2.xml +0 -0
  225. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Oranges3.xml +0 -0
  226. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Oranges4.xml +0 -0
  227. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Oxy.rgb +0 -0
  228. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Phase.rgb +0 -0
  229. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Purples1_r.xml +0 -0
  230. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Purples2.xml +0 -0
  231. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Purples3.xml +0 -0
  232. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Reds1.xml +0 -0
  233. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Reds2.xml +0 -0
  234. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Reds3.xml +0 -0
  235. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Reds4.xml +0 -0
  236. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Reds5.xml +0 -0
  237. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Rocket.rgb +0 -0
  238. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Solar.rgb +0 -0
  239. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Speed.rgb +0 -0
  240. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Stellar.json +0 -0
  241. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Sunrise.json +0 -0
  242. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Sunset.json +0 -0
  243. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Tempo.rgb +0 -0
  244. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Thermal.rgb +0 -0
  245. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Turbid.rgb +0 -0
  246. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Vivid.xml +0 -0
  247. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Vlag.rgb +0 -0
  248. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Yellows1.xml +0 -0
  249. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Yellows2.xml +0 -0
  250. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Yellows3.xml +0 -0
  251. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/Yellows4.xml +0 -0
  252. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/acton.txt +0 -0
  253. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/bam.txt +0 -0
  254. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/bamO.txt +0 -0
  255. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/bamako.txt +0 -0
  256. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/batlow.txt +0 -0
  257. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/batlowK.txt +0 -0
  258. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/batlowW.txt +0 -0
  259. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/berlin.txt +0 -0
  260. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/bilbao.txt +0 -0
  261. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/broc.txt +0 -0
  262. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/brocO.txt +0 -0
  263. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/buda.txt +0 -0
  264. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/bukavu.txt +0 -0
  265. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/cork.txt +0 -0
  266. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/corkO.txt +0 -0
  267. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/davos.txt +0 -0
  268. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/devon.txt +0 -0
  269. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/fes.txt +0 -0
  270. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/hawaii.txt +0 -0
  271. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/imola.txt +0 -0
  272. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/lajolla.txt +0 -0
  273. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/lapaz.txt +0 -0
  274. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/lisbon.txt +0 -0
  275. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/nuuk.txt +0 -0
  276. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/oleron.txt +0 -0
  277. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/oslo.txt +0 -0
  278. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/roma.txt +0 -0
  279. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/romaO.txt +0 -0
  280. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/tofino.txt +0 -0
  281. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/tokyo.txt +0 -0
  282. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/turku.txt +0 -0
  283. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/vanimo.txt +0 -0
  284. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/vik.txt +0 -0
  285. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cmaps/vikO.txt +0 -0
  286. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/colorbar.py +0 -0
  287. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/colors/opencolor.txt +0 -0
  288. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/colors/xkcd.txt +0 -0
  289. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/config.py +0 -0
  290. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cycles/538.hex +0 -0
  291. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cycles/FlatUI.hex +0 -0
  292. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cycles/Qual1.rgb +0 -0
  293. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cycles/Qual2.rgb +0 -0
  294. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cycles/bmh.hex +0 -0
  295. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cycles/classic.hex +0 -0
  296. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cycles/colorblind.hex +0 -0
  297. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cycles/colorblind10.hex +0 -0
  298. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cycles/default.hex +0 -0
  299. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cycles/ggplot.hex +0 -0
  300. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cycles/seaborn.hex +0 -0
  301. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/cycles/tableau.hex +0 -0
  302. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/demos.py +0 -0
  303. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/externals/__init__.py +0 -0
  304. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/externals/hsluv.py +0 -0
  305. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/FiraMath-Bold.ttf +0 -0
  306. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/FiraMath-ExtraLight.ttf +0 -0
  307. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/FiraMath-Heavy.ttf +0 -0
  308. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/FiraMath-Light.ttf +0 -0
  309. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/FiraMath-Medium.ttf +0 -0
  310. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/FiraMath-Regular.ttf +0 -0
  311. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/FiraMath-SemiBold.ttf +0 -0
  312. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/FiraMath-UltraLight.ttf +0 -0
  313. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/FiraSans-Black.ttf +0 -0
  314. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/FiraSans-BlackItalic.ttf +0 -0
  315. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/FiraSans-Bold.ttf +0 -0
  316. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/FiraSans-BoldItalic.ttf +0 -0
  317. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/FiraSans-ExtraBold.ttf +0 -0
  318. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/FiraSans-ExtraBoldItalic.ttf +0 -0
  319. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/FiraSans-ExtraLight.ttf +0 -0
  320. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/FiraSans-ExtraLightItalic.ttf +0 -0
  321. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/FiraSans-Italic.ttf +0 -0
  322. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/FiraSans-Light.ttf +0 -0
  323. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/FiraSans-LightItalic.ttf +0 -0
  324. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/FiraSans-Medium.ttf +0 -0
  325. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/FiraSans-MediumItalic.ttf +0 -0
  326. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/FiraSans-Regular.ttf +0 -0
  327. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/FiraSans-SemiBold.ttf +0 -0
  328. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/FiraSans-SemiBoldItalic.ttf +0 -0
  329. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/LICENSE_FIRAMATH.txt +0 -0
  330. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/LICENSE_FIRASANS.txt +0 -0
  331. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/LICENSE_NOTOSANS.txt +0 -0
  332. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/LICENSE_NOTOSERIF.txt +0 -0
  333. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/LICENSE_OPENSANS.txt +0 -0
  334. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/LICENSE_ROBOTO.txt +0 -0
  335. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/LICENSE_SOURCESANS.txt +0 -0
  336. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/LICENSE_SOURCESERIF.txt +0 -0
  337. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/LICENSE_TEXGYRE.txt +0 -0
  338. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/LICENSE_UBUNTU.txt +0 -0
  339. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/NotoSans-Bold.ttf +0 -0
  340. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/NotoSans-BoldItalic.ttf +0 -0
  341. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/NotoSans-Italic.ttf +0 -0
  342. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/NotoSans-Regular.ttf +0 -0
  343. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/NotoSerif-Bold.ttf +0 -0
  344. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/NotoSerif-BoldItalic.ttf +0 -0
  345. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/NotoSerif-Italic.ttf +0 -0
  346. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/NotoSerif-Regular.ttf +0 -0
  347. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/OpenSans-Bold.ttf +0 -0
  348. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/OpenSans-BoldItalic.ttf +0 -0
  349. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/OpenSans-Italic.ttf +0 -0
  350. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/OpenSans-Regular.ttf +0 -0
  351. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/OpenSans-Semibold.ttf +0 -0
  352. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/OpenSans-SemiboldItalic.ttf +0 -0
  353. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/Roboto-Black.ttf +0 -0
  354. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/Roboto-BlackItalic.ttf +0 -0
  355. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/Roboto-Bold.ttf +0 -0
  356. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/Roboto-BoldItalic.ttf +0 -0
  357. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/Roboto-Italic.ttf +0 -0
  358. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/Roboto-Light.ttf +0 -0
  359. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/Roboto-LightItalic.ttf +0 -0
  360. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/Roboto-Medium.ttf +0 -0
  361. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/Roboto-MediumItalic.ttf +0 -0
  362. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/Roboto-Regular.ttf +0 -0
  363. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/SourceSansPro-Black.ttf +0 -0
  364. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/SourceSansPro-BlackItalic.ttf +0 -0
  365. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/SourceSansPro-Bold.ttf +0 -0
  366. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/SourceSansPro-BoldItalic.ttf +0 -0
  367. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/SourceSansPro-ExtraLight.ttf +0 -0
  368. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/SourceSansPro-ExtraLightItalic.ttf +0 -0
  369. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/SourceSansPro-Italic.ttf +0 -0
  370. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/SourceSansPro-Light.ttf +0 -0
  371. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/SourceSansPro-LightItalic.ttf +0 -0
  372. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/SourceSansPro-Regular.ttf +0 -0
  373. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/SourceSansPro-SemiBold.ttf +0 -0
  374. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/SourceSansPro-SemiBoldItalic.ttf +0 -0
  375. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/SourceSerifPro-Black.ttf +0 -0
  376. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/SourceSerifPro-BlackItalic.ttf +0 -0
  377. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/SourceSerifPro-Bold.ttf +0 -0
  378. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/SourceSerifPro-BoldItalic.ttf +0 -0
  379. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/SourceSerifPro-ExtraLight.ttf +0 -0
  380. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/SourceSerifPro-ExtraLightItalic.ttf +0 -0
  381. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/SourceSerifPro-Italic.ttf +0 -0
  382. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/SourceSerifPro-Light.ttf +0 -0
  383. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/SourceSerifPro-LightItalic.ttf +0 -0
  384. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/SourceSerifPro-Regular.ttf +0 -0
  385. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/SourceSerifPro-SemiBold.ttf +0 -0
  386. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/SourceSerifPro-SemiBoldItalic.ttf +0 -0
  387. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/Ubuntu-Bold.ttf +0 -0
  388. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/Ubuntu-BoldItalic.ttf +0 -0
  389. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/Ubuntu-Italic.ttf +0 -0
  390. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/Ubuntu-Light.ttf +0 -0
  391. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/Ubuntu-LightItalic.ttf +0 -0
  392. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/Ubuntu-Medium.ttf +0 -0
  393. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/Ubuntu-MediumItalic.ttf +0 -0
  394. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/Ubuntu-Regular.ttf +0 -0
  395. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/texgyreadventor-bold.ttf +0 -0
  396. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/texgyreadventor-bolditalic.ttf +0 -0
  397. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/texgyreadventor-italic.ttf +0 -0
  398. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/texgyreadventor-regular.ttf +0 -0
  399. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/texgyrebonum-bold.ttf +0 -0
  400. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/texgyrebonum-bolditalic.ttf +0 -0
  401. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/texgyrebonum-italic.ttf +0 -0
  402. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/texgyrebonum-regular.ttf +0 -0
  403. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/texgyrechorus-mediumitalic.ttf +0 -0
  404. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/texgyrecursor-bold.ttf +0 -0
  405. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/texgyrecursor-bolditalic.ttf +0 -0
  406. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/texgyrecursor-italic.ttf +0 -0
  407. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/texgyrecursor-regular.ttf +0 -0
  408. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/texgyreheros-bold.ttf +0 -0
  409. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/texgyreheros-bolditalic.ttf +0 -0
  410. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/texgyreheros-italic.ttf +0 -0
  411. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/texgyreheros-regular.ttf +0 -0
  412. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/texgyrepagella-bold.ttf +0 -0
  413. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/texgyrepagella-bolditalic.ttf +0 -0
  414. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/texgyrepagella-italic.ttf +0 -0
  415. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/texgyrepagella-regular.ttf +0 -0
  416. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/texgyreschola-bold.ttf +0 -0
  417. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/texgyreschola-bolditalic.ttf +0 -0
  418. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/texgyreschola-italic.ttf +0 -0
  419. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/texgyreschola-regular.ttf +0 -0
  420. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/texgyretermes-bold.ttf +0 -0
  421. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/texgyretermes-bolditalic.ttf +0 -0
  422. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/texgyretermes-italic.ttf +0 -0
  423. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/fonts/texgyretermes-regular.ttf +0 -0
  424. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/internals/__init__.py +0 -0
  425. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/internals/benchmarks.py +0 -0
  426. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/internals/context.py +0 -0
  427. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/internals/docstring.py +0 -0
  428. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/internals/fonts.py +0 -0
  429. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/internals/guides.py +0 -0
  430. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/internals/inputs.py +0 -0
  431. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/internals/labels.py +0 -0
  432. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/internals/versions.py +0 -0
  433. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/internals/warnings.py +0 -0
  434. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/tests/__init__.py +0 -0
  435. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/tests/conftest.py +0 -0
  436. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/tests/test_2dplots.py +0 -0
  437. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/tests/test_animation.py +0 -0
  438. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/tests/test_axes.py +0 -0
  439. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/tests/test_base.py +0 -0
  440. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/tests/test_circlize_integration.py +0 -0
  441. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/tests/test_colormap.py +0 -0
  442. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/tests/test_colors.py +0 -0
  443. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/tests/test_config.py +0 -0
  444. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/tests/test_constructor.py +0 -0
  445. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/tests/test_demos.py +0 -0
  446. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/tests/test_docs.py +0 -0
  447. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/tests/test_external_axes_container_integration.py +0 -0
  448. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/tests/test_external_container_edge_cases.py +0 -0
  449. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/tests/test_external_container_mocked.py +0 -0
  450. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/tests/test_fonts.py +0 -0
  451. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/tests/test_format.py +0 -0
  452. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/tests/test_handlers.py +0 -0
  453. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/tests/test_imshow.py +0 -0
  454. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/tests/test_inputs.py +0 -0
  455. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/tests/test_inset.py +0 -0
  456. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/tests/test_integration.py +0 -0
  457. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/tests/test_statistical_plotting.py +0 -0
  458. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/tests/test_tickers.py +0 -0
  459. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/text.py +0 -0
  460. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/ticker.py +0 -0
  461. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/ui.py +0 -0
  462. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/ultralayout.py +0 -0
  463. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot/utils.py +0 -0
  464. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot.egg-info/dependency_links.txt +0 -0
  465. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot.egg-info/requires.txt +0 -0
  466. {ultraplot-2.1.3 → ultraplot-2.1.9}/ultraplot.egg-info/top_level.txt +0 -0
@@ -1,5 +1,13 @@
1
1
  version: 2
2
2
  updates:
3
+ - package-ecosystem: "pip"
4
+ directory: "/"
5
+ schedule:
6
+ interval: "weekly"
7
+ groups:
8
+ python-dependencies:
9
+ patterns:
10
+ - "*"
3
11
  - package-ecosystem: "github-actions"
4
12
  directory: "/"
5
13
  schedule:
@@ -53,7 +53,7 @@ jobs:
53
53
  with:
54
54
  fetch-depth: 0
55
55
 
56
- - uses: mamba-org/setup-micromamba@v2.0.7
56
+ - uses: mamba-org/setup-micromamba@v3.0.0
57
57
  with:
58
58
  environment-file: ./environment.yml
59
59
  init-shell: bash
@@ -100,7 +100,7 @@ jobs:
100
100
 
101
101
  - uses: actions/checkout@v6
102
102
 
103
- - uses: mamba-org/setup-micromamba@v2.0.7
103
+ - uses: mamba-org/setup-micromamba@v3.0.0
104
104
  with:
105
105
  environment-file: ./environment.yml
106
106
  init-shell: bash
@@ -12,12 +12,16 @@ jobs:
12
12
  run: ${{ (github.event_name == 'push' && github.ref_name == 'main') && 'true' || steps.filter.outputs.python }}
13
13
  steps:
14
14
  - uses: actions/checkout@v6
15
- - uses: dorny/paths-filter@v3
15
+ - uses: dorny/paths-filter@v4
16
16
  id: filter
17
17
  with:
18
18
  filters: |
19
19
  python:
20
20
  - 'ultraplot/**'
21
+ - 'pyproject.toml'
22
+ - 'environment.yml'
23
+ - '.github/workflows/**'
24
+ - 'tools/ci/**'
21
25
 
22
26
  select-tests:
23
27
  runs-on: ubuntu-latest
@@ -46,13 +50,13 @@ jobs:
46
50
 
47
51
  - name: Build test map on cache miss
48
52
  if: steps.restore-map.outputs.cache-hit != 'true'
49
- uses: mamba-org/setup-micromamba@v2.0.7
53
+ uses: mamba-org/setup-micromamba@v3.0.0
50
54
  with:
51
55
  environment-file: ./environment.yml
52
56
  init-shell: bash
53
57
  create-args: >-
54
58
  --verbose
55
- python=3.11
59
+ python=3.10
56
60
  matplotlib=3.9
57
61
  cache-environment: true
58
62
  cache-downloads: false
@@ -126,107 +130,63 @@ jobs:
126
130
  with:
127
131
  python-version: "3.11"
128
132
 
129
- - name: Install dependencies
130
- run: pip install tomli
131
-
132
133
  - id: set-versions
133
134
  run: |
134
- # Create a Python script to read and parse versions
135
- cat > get_versions.py << 'EOF'
136
- import tomli
137
- import re
138
- import json
139
-
140
- # Read pyproject.toml
141
- with open("pyproject.toml", "rb") as f:
142
- data = tomli.load(f)
143
-
144
- # Get Python version requirement
145
- python_req = data["project"]["requires-python"]
146
-
147
- # Parse min and max versions
148
- min_version = re.search(r">=(\d+\.\d+)", python_req)
149
- max_version = re.search(r"<(\d+\.\d+)", python_req)
150
-
151
- python_versions = []
152
- if min_version and max_version:
153
- # Convert version strings to tuples
154
- min_v = tuple(map(int, min_version.group(1).split(".")))
155
- max_v = tuple(map(int, max_version.group(1).split(".")))
156
-
157
- # Generate version list
158
- current = min_v
159
- while current < max_v:
160
- python_versions.append(".".join(map(str, current)))
161
- current = (current[0], current[1] + 1)
162
-
163
-
164
- # parse MPL versions
165
- mpl_req = None
166
- for d in data["project"]["dependencies"]:
167
- if d.startswith("matplotlib"):
168
- mpl_req = d
169
- break
170
- assert mpl_req is not None, "matplotlib version not found in dependencies"
171
- min_version = re.search(r">=(\d+\.\d+)", mpl_req)
172
- max_version = re.search(r"<(\d+\.\d+)", mpl_req)
173
-
174
- mpl_versions = []
175
- if min_version and max_version:
176
- # Convert version strings to tuples
177
- min_v = tuple(map(int, min_version.group(1).split(".")))
178
- max_v = tuple(map(int, max_version.group(1).split(".")))
179
-
180
- # Generate version list
181
- current = min_v
182
- while current < max_v:
183
- mpl_versions.append(".".join(map(str, current)))
184
- current = (current[0], current[1] + 1)
185
-
186
- # If no versions found, default to 3.9
187
- if not mpl_versions:
188
- mpl_versions = ["3.9"]
135
+ OUTPUT=$(python tools/ci/version_support.py)
136
+ echo "Detected Python versions: $(echo "$OUTPUT" | jq -c '.python_versions')"
137
+ echo "Detected Matplotlib versions: $(echo "$OUTPUT" | jq -c '.matplotlib_versions')"
138
+ echo "Detected test matrix: $(echo "$OUTPUT" | jq -c '.test_matrix')"
139
+ python tools/ci/version_support.py --format github-output >> $GITHUB_OUTPUT
140
+
141
+ coverage:
142
+ name: Coverage
143
+ runs-on: ubuntu-latest
144
+ needs:
145
+ - run-if-changes
146
+ if: always() && needs.run-if-changes.outputs.run == 'true' && github.event_name == 'pull_request'
147
+ defaults:
148
+ run:
149
+ shell: bash -el {0}
150
+ steps:
151
+ - name: Set up swap space
152
+ uses: pierotofy/set-swap-space@master
153
+ with:
154
+ swap-size-gb: 10
189
155
 
190
- # Create output dictionary
191
- midpoint_python = python_versions[len(python_versions) // 2]
192
- midpoint_mpl = mpl_versions[len(mpl_versions) // 2]
193
- matrix_candidates = [
194
- (python_versions[0], mpl_versions[0]), # lowest + lowest
195
- (midpoint_python, midpoint_mpl), # midpoint + midpoint
196
- (python_versions[-1], mpl_versions[-1]) # latest + latest
197
- ]
198
- test_matrix = []
199
- seen = set()
200
- for py_ver, mpl_ver in matrix_candidates:
201
- key = (py_ver, mpl_ver)
202
- if key in seen:
203
- continue
204
- seen.add(key)
205
- test_matrix.append(
206
- {"python-version": py_ver, "matplotlib-version": mpl_ver}
207
- )
156
+ - uses: actions/checkout@v6
157
+ with:
158
+ fetch-depth: 0
208
159
 
209
- output = {
210
- "python_versions": python_versions,
211
- "matplotlib_versions": mpl_versions,
212
- "test_matrix": test_matrix,
213
- }
160
+ - uses: mamba-org/setup-micromamba@v3.0.0
161
+ with:
162
+ environment-file: ./environment.yml
163
+ init-shell: bash
164
+ condarc-file: ./.github/micromamba-condarc.yml
165
+ post-cleanup: none
166
+ create-args: >-
167
+ --verbose
168
+ python=3.10
169
+ matplotlib=3.9
170
+ cache-environment: true
171
+ cache-downloads: false
214
172
 
215
- # Print as JSON
216
- print(json.dumps(output))
217
- EOF
173
+ - name: Build Ultraplot
174
+ run: |
175
+ pip install --no-build-isolation --no-deps .
218
176
 
219
- # Run the script and capture output
220
- OUTPUT=$(python3 get_versions.py)
221
- PYTHON_VERSIONS=$(echo $OUTPUT | jq -r '.python_versions')
222
- MPL_VERSIONS=$(echo $OUTPUT | jq -r '.matplotlib_versions')
177
+ - name: Run full coverage suite
178
+ run: |
179
+ pytest -q --tb=short --disable-warnings -n auto -p pytest_cov \
180
+ --cov=ultraplot --cov-branch --cov-context=test \
181
+ --cov-report=xml:coverage.xml --cov-report= \
182
+ ultraplot/tests
223
183
 
224
- echo "Detected Python versions: ${PYTHON_VERSIONS}"
225
- echo "Detected Matplotlib versions: ${MPL_VERSIONS}"
226
- echo "Detected test matrix: $(echo $OUTPUT | jq -c '.test_matrix')"
227
- echo "python-versions=$(echo $PYTHON_VERSIONS | jq -c)" >> $GITHUB_OUTPUT
228
- echo "matplotlib-versions=$(echo $MPL_VERSIONS | jq -c)" >> $GITHUB_OUTPUT
229
- echo "test-matrix=$(echo $OUTPUT | jq -c '.test_matrix')" >> $GITHUB_OUTPUT
184
+ - name: Upload coverage reports to Codecov
185
+ uses: codecov/codecov-action@v6
186
+ with:
187
+ token: ${{ secrets.CODECOV_TOKEN }}
188
+ files: ./coverage.xml
189
+ name: codecov-pr-python3.10-mpl3.9
230
190
 
231
191
  build:
232
192
  needs:
@@ -1,13 +1,13 @@
1
1
  name: Publish to PyPI
2
+
2
3
  on:
3
4
  pull_request:
4
- release:
5
- types: [published]
6
5
  push:
7
- tags: ["v*"]
6
+ tags:
7
+ - "v*"
8
8
 
9
9
  concurrency:
10
- group: publish-pypi-{{ github.sha }}
10
+ group: publish-pypi-${{ github.sha }}
11
11
  cancel-in-progress: false
12
12
 
13
13
  jobs:
@@ -19,22 +19,25 @@ jobs:
19
19
  with:
20
20
  fetch-depth: 0
21
21
 
22
- - name: Get tags
23
- run: git fetch --depth=1 origin +refs/tags/*:refs/tags/*
24
- shell: bash
25
-
26
22
  - uses: actions/setup-python@v6
27
23
  with:
28
24
  python-version: "3.12"
29
25
 
26
+ - name: Ensure clean tree before build
27
+ run: |
28
+ git diff --quiet || (git status --short && git diff && exit 1)
29
+ shell: bash
30
+
30
31
  - name: Build package
31
32
  run: |
32
- python -m pip install --upgrade pip wheel setuptools setuptools_scm build twine
33
+ python -m pip install --upgrade pip
34
+ python -m pip install wheel setuptools setuptools_scm build twine
33
35
  python -m build --sdist --wheel . --outdir dist
36
+ shell: bash
34
37
 
35
38
  - name: Check files
36
39
  run: |
37
- ls dist
40
+ ls -lah dist
38
41
  shell: bash
39
42
 
40
43
  - name: Test wheels
@@ -80,7 +83,7 @@ jobs:
80
83
 
81
84
  - name: Check files
82
85
  run: |
83
- ls dist
86
+ ls -lah dist
84
87
  shell: bash
85
88
 
86
89
  - name: Publish to TestPyPI
@@ -88,18 +91,16 @@ jobs:
88
91
  with:
89
92
  repository-url: https://test.pypi.org/legacy/
90
93
  verbose: true
91
- # releases generate both release and tag events so
92
- # we get a race condition if we don't skip existing
93
- skip-existing: ${{ (github.event_name == 'release' || github.event_name == 'push') && 'true' || 'false' }}
94
+ skip-existing: true
94
95
 
95
96
  publish-pypi:
96
97
  name: Publish to PyPI
97
98
  needs: publish-pypi-test
99
+ if: github.event_name == 'push'
98
100
  environment:
99
101
  name: prod
100
102
  url: https://pypi.org/project/ultraplot/
101
103
  runs-on: ubuntu-latest
102
- if: github.event_name == 'release'
103
104
  permissions:
104
105
  id-token: write
105
106
  contents: read
@@ -112,10 +113,73 @@ jobs:
112
113
 
113
114
  - name: Check files
114
115
  run: |
115
- ls dist
116
+ ls -lah dist
116
117
  shell: bash
117
118
 
118
119
  - name: Publish to PyPI
119
120
  uses: pypa/gh-action-pypi-publish@release/v1
120
121
  with:
121
122
  verbose: true
123
+ skip-existing: true
124
+
125
+ publish-github-release:
126
+ name: Publish GitHub release
127
+ needs: publish-pypi
128
+ runs-on: ubuntu-latest
129
+ if: github.event_name == 'push'
130
+ permissions:
131
+ contents: write
132
+ steps:
133
+ - name: Create GitHub release
134
+ uses: softprops/action-gh-release@v2
135
+ with:
136
+ generate_release_notes: true
137
+
138
+ publish-zenodo:
139
+ name: Publish Zenodo release
140
+ needs: publish-github-release
141
+ runs-on: ubuntu-latest
142
+ if: github.event_name == 'push'
143
+ permissions:
144
+ contents: read
145
+ env:
146
+ ZENODO_ACCESS_TOKEN: ${{ secrets.ZENODO_ACCESS_TOKEN }}
147
+ steps:
148
+ - uses: actions/checkout@v6
149
+ with:
150
+ fetch-depth: 0
151
+
152
+ - uses: actions/setup-python@v6
153
+ with:
154
+ python-version: "3.12"
155
+
156
+ - name: Install release tooling
157
+ run: |
158
+ python -m pip install --upgrade pip
159
+ python -m pip install PyYAML
160
+ shell: bash
161
+
162
+ - name: Download artifacts
163
+ uses: actions/download-artifact@v8
164
+ with:
165
+ name: dist-${{ github.sha }}-${{ github.run_id }}-${{ github.run_number }}
166
+ path: dist
167
+
168
+ - name: Generate release citation metadata
169
+ run: |
170
+ python tools/release/sync_citation.py \
171
+ --tag "${GITHUB_REF_NAME}" \
172
+ --output "${RUNNER_TEMP}/CITATION.cff"
173
+ shell: bash
174
+
175
+ - name: Check tree stayed clean
176
+ run: |
177
+ git diff --quiet || (git status --short && git diff && exit 1)
178
+ shell: bash
179
+
180
+ - name: Publish to Zenodo
181
+ run: |
182
+ python tools/release/publish_zenodo.py \
183
+ --dist-dir dist \
184
+ --citation-file "${RUNNER_TEMP}/CITATION.cff"
185
+ shell: bash
@@ -23,13 +23,13 @@ jobs:
23
23
  with:
24
24
  fetch-depth: 0
25
25
 
26
- - uses: mamba-org/setup-micromamba@v2.0.7
26
+ - uses: mamba-org/setup-micromamba@v3.0.0
27
27
  with:
28
28
  environment-file: ./environment.yml
29
29
  init-shell: bash
30
30
  create-args: >-
31
31
  --verbose
32
- python=3.11
32
+ python=3.10
33
33
  matplotlib=3.9
34
34
  cache-environment: true
35
35
  cache-downloads: false
@@ -42,10 +42,18 @@ jobs:
42
42
  run: |
43
43
  mkdir -p .ci
44
44
  pytest -q --tb=short --disable-warnings -n 0 -p pytest_cov \
45
- --cov=ultraplot --cov-branch --cov-context=test --cov-report= \
45
+ --cov=ultraplot --cov-branch --cov-context=test \
46
+ --cov-report=xml:coverage.xml --cov-report= \
46
47
  ultraplot/tests
47
48
  python tools/ci/build_test_map.py --coverage-file .coverage --output .ci/test-map.json --root .
48
49
 
50
+ - name: Upload coverage reports to Codecov
51
+ uses: codecov/codecov-action@v6
52
+ with:
53
+ token: ${{ secrets.CODECOV_TOKEN }}
54
+ files: ./coverage.xml
55
+ name: codecov-test-map
56
+
49
57
  - name: Cache test map
50
58
  uses: actions/cache@v5
51
59
  with:
@@ -11,6 +11,6 @@ ci:
11
11
 
12
12
  repos:
13
13
  - repo: https://github.com/psf/black-pre-commit-mirror
14
- rev: 26.1.0
14
+ rev: 26.3.1
15
15
  hooks:
16
16
  - id: black
@@ -8,9 +8,9 @@ authors:
8
8
  - family-names: "Becker"
9
9
  given-names: "Matthew R."
10
10
  orcid: "https://orcid.org/0000-0001-7774-2246"
11
- date-released: "2025-01-01"
12
- version: "1.57"
13
- doi: "10.5281/zenodo.15733580"
11
+ date-released: "2026-03-30"
12
+ version: "2.1.5"
13
+ doi: "10.5281/zenodo.15733564"
14
14
  repository-code: "https://github.com/Ultraplot/UltraPlot"
15
15
  license: "MIT"
16
16
  keywords:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ultraplot
3
- Version: 2.1.3
3
+ Version: 2.1.9
4
4
  Summary: A succinct matplotlib wrapper for making beautiful, publication-quality graphics.
5
5
  Author-email: Casper van Elteren <caspervanelteren@gmail.com>, Luke Davis <lukelbd@gmail.com>
6
6
  Maintainer-email: Casper van Elteren <caspervanelteren@gmail.com>, "Matthew R. Becker" <becker.mr@gmail.com>
@@ -170,16 +170,10 @@ To install a development version of UltraPlot, you can use
170
170
  or clone the repository and run ``pip install -e .``
171
171
  inside the ``ultraplot`` folder.
172
172
 
173
- If you use UltraPlot in your research, please cite it using the following BibTeX entry::
174
-
175
- @software{vanElteren2025,
176
- author = {Casper van Elteren and Matthew R. Becker},
177
- title = {UltraPlot: A succinct wrapper for Matplotlib},
178
- year = {2025},
179
- version = {1.57.1},
180
- publisher = {GitHub},
181
- url = {https://github.com/Ultraplot/UltraPlot}
182
- }
173
+ If you use UltraPlot in your research, please cite the latest release metadata in
174
+ ``CITATION.cff``. GitHub can export this metadata as BibTeX from the
175
+ repository's "Cite this repository" panel, and the Zenodo badge below points to
176
+ the project DOI across releases.
183
177
 
184
178
  .. |downloads| image:: https://static.pepy.tech/personalized-badge/UltraPlot?period=total&units=international_system&left_color=black&right_color=orange&left_text=Downloads
185
179
  :target: https://pepy.tech/project/ultraplot
@@ -125,16 +125,10 @@ To install a development version of UltraPlot, you can use
125
125
  or clone the repository and run ``pip install -e .``
126
126
  inside the ``ultraplot`` folder.
127
127
 
128
- If you use UltraPlot in your research, please cite it using the following BibTeX entry::
129
-
130
- @software{vanElteren2025,
131
- author = {Casper van Elteren and Matthew R. Becker},
132
- title = {UltraPlot: A succinct wrapper for Matplotlib},
133
- year = {2025},
134
- version = {1.57.1},
135
- publisher = {GitHub},
136
- url = {https://github.com/Ultraplot/UltraPlot}
137
- }
128
+ If you use UltraPlot in your research, please cite the latest release metadata in
129
+ ``CITATION.cff``. GitHub can export this metadata as BibTeX from the
130
+ repository's "Cite this repository" panel, and the Zenodo badge below points to
131
+ the project DOI across releases.
138
132
 
139
133
  .. |downloads| image:: https://static.pepy.tech/personalized-badge/UltraPlot?period=total&units=international_system&left_color=black&right_color=orange&left_text=Downloads
140
134
  :target: https://pepy.tech/project/ultraplot
@@ -12,7 +12,7 @@ BUILDDIR = _build
12
12
  .PHONY: help clean html html-exec Makefile
13
13
 
14
14
  html:
15
- @UPLT_DOCS_EXECUTE=$${UPLT_DOCS_EXECUTE:-always} $(SPHINXBUILD) -b html "$(SOURCEDIR)" "$(BUILDDIR)/html" -E -a $(SPHINXOPTS)
15
+ @UPLT_DOCS_EXECUTE=$${UPLT_DOCS_EXECUTE:-auto} $(SPHINXBUILD) -b html "$(SOURCEDIR)" "$(BUILDDIR)/html" $(SPHINXOPTS)
16
16
 
17
17
  html-exec:
18
18
  @UPLT_DOCS_EXECUTE=always $(SPHINXBUILD) -b html "$(SOURCEDIR)" "$(BUILDDIR)/html" -E -a $(SPHINXOPTS)