jarvisplot 2.1.11__tar.gz → 2.1.13__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 (342) hide show
  1. jarvisplot-2.1.13/CHANGELOG.md +133 -0
  2. jarvisplot-2.1.13/Example/README.md +102 -0
  3. jarvisplot-2.1.13/Example/a4paper_2x1.yaml +73 -0
  4. jarvisplot-2.1.13/Example/a4paper_4x1_rectcmap.yaml +30 -0
  5. jarvisplot-2.1.13/Example/compact_legend.yaml +237 -0
  6. jarvisplot-2.1.13/Example/correlation_demo.csv +401 -0
  7. jarvisplot-2.1.13/Example/correlation_demo_wide.csv +201 -0
  8. jarvisplot-2.1.13/Example/corrplot_diamond.yaml +211 -0
  9. jarvisplot-2.1.13/Example/corrplot_matrix.yaml +85 -0
  10. jarvisplot-2.1.13/Example/corrplot_scales.yaml +210 -0
  11. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/Example/forest/README.md +5 -7
  12. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/Example/forest/intervals-only.yaml +0 -1
  13. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/Example/forest/multi-interval.yaml +0 -1
  14. jarvisplot-2.1.13/Example/gambit_2x1.yaml +41 -0
  15. jarvisplot-2.1.13/Example/generated_data.yaml +57 -0
  16. jarvisplot-2.1.13/Example/legend_cards.yaml +150 -0
  17. jarvisplot-2.1.13/Example/pdf_cdf_1d.yaml +74 -0
  18. jarvisplot-2.1.13/Example/ternary_1x1.yaml +39 -0
  19. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/JarvisPLOT.egg-info/PKG-INFO +43 -26
  20. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/JarvisPLOT.egg-info/SOURCES.txt +20 -5
  21. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/JarvisPLOT.egg-info/requires.txt +4 -0
  22. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/MANIFEST.in +2 -2
  23. jarvisplot-2.1.11/README.md → jarvisplot-2.1.13/PKG-INFO +64 -25
  24. jarvisplot-2.1.11/PKG-INFO → jarvisplot-2.1.13/README.md +39 -47
  25. jarvisplot-2.1.13/VERSION +1 -0
  26. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/Figure/adapters_rect.py +13 -0
  27. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/Figure/adapters_ternary.py +7 -0
  28. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/Figure/colorbar_runtime.py +1 -1
  29. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/Figure/density_cell_runtime.py +41 -1
  30. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/Figure/figure.py +17 -2
  31. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/Figure/forest_legend.py +11 -0
  32. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/Figure/forest_runtime.py +8 -5
  33. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/Figure/posterior_density_runtime.py +2 -12
  34. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/cache_registry.py +192 -12
  35. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/cache_store.py +159 -86
  36. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/capabilities.py +5 -0
  37. jarvisplot-2.1.13/jarvisplot/cards/a4paper/1x1/ternary.json +467 -0
  38. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/cards/a4paper/2x1/dynesty_runplot.json +10 -10
  39. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/cards/a4paper/2x1/ternary.json +1 -1
  40. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/cards/a4paper/2x1/ternary_cmap.json +1 -1
  41. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/cards/a4paper/4x1/ternary_cmap.json +1 -1
  42. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/cards/args.json +3 -11
  43. jarvisplot-2.1.13/jarvisplot/cards/gambit/1x1/ternary.json +481 -0
  44. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/cards/gambit/2x1/rect_cmap.json +4 -4
  45. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/cli.py +1 -1
  46. jarvisplot-2.1.13/jarvisplot/client.py +53 -0
  47. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/column_demand.py +14 -1
  48. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/column_probe.py +1 -1
  49. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/core.py +5 -3
  50. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/data_access.py +3 -2
  51. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/diagnostic_guidance.py +18 -1
  52. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/diagnostics.py +4 -4
  53. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/dryrun_runtime.py +27 -2
  54. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/expr_names.py +36 -4
  55. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/flowchart.py +39 -5
  56. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/inner_func.py +93 -41
  57. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/man_methods.py +0 -10
  58. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/manual_cards/agent-readme.yaml +3 -5
  59. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/manual_cards/cache.yaml +17 -1
  60. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/manual_cards/cli-map.yaml +3 -3
  61. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/manual_cards/data-columns.yaml +1 -1
  62. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/manual_cards/diagnostics.yaml +2 -4
  63. jarvisplot-2.1.13/jarvisplot/manual_cards/doctor.yaml +41 -0
  64. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/manual_cards/dryrun-viz.yaml +1 -1
  65. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/manual_cards/generated-data.yaml +0 -2
  66. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/manual_cards/layer-method.yaml +1 -1
  67. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/manual_cards/legend.yaml +1 -3
  68. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/manual_cards/manifest.yaml +1 -1
  69. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/manual_cards/method_notes.yaml +4 -2
  70. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/manual_cards/type-correlation-matrix.yaml +1 -9
  71. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/manual_cards/type-forest.yaml +4 -10
  72. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/manual_cards/workflow.yaml +3 -5
  73. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/manual_cards/yaml-root.yaml +0 -2
  74. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/method_contracts.py +4 -2
  75. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/render_health.py +0 -1
  76. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/schema/core/figure.json +52 -5
  77. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/schema/methods/voronoif.json +6 -5
  78. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/schema/types/forest.json +28 -36
  79. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/schema_diagnostics.py +2 -2
  80. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/validation.py +59 -3
  81. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/verbs/__init__.py +2 -3
  82. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/verbs/cache.py +4 -2
  83. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/verbs/config_cmd.py +7 -0
  84. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/pyproject.toml +4 -1
  85. jarvisplot-2.1.13/tests/conftest.py +35 -0
  86. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_cache_cleanup.py +2 -1
  87. jarvisplot-2.1.13/tests/test_cache_policy.py +362 -0
  88. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_cache_registry.py +8 -8
  89. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_capabilities.py +6 -12
  90. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_card_debug_shape.py +21 -0
  91. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_cli_help.py +4 -4
  92. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_cli_verbs.py +58 -83
  93. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_column_existence.py +153 -0
  94. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_config_edit.py +39 -0
  95. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_config_expand.py +1 -0
  96. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_data_head_eval.py +7 -0
  97. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_density_cell_transform.py +48 -0
  98. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_examples_validate.py +1 -1
  99. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_expression_semantics.py +121 -0
  100. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_figure_type_expander.py +47 -0
  101. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_flowchart_renderer.py +76 -1
  102. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_font_runtime.py +1 -1
  103. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_forest.py +11 -1
  104. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_forest_examples.py +3 -1
  105. jarvisplot-2.1.13/tests/test_forest_legend.py +39 -0
  106. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_imshow_adapter.py +1 -1
  107. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_man_cli.py +7 -7
  108. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_method_contracts.py +71 -1
  109. jarvisplot-2.1.13/tests/test_render_defects.py +303 -0
  110. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_schema_catalog.py +7 -2
  111. jarvisplot-2.1.11/tests/test_validate_no_matplotlib.py → jarvisplot-2.1.13/tests/test_validation_imports.py +8 -11
  112. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_version.py +21 -0
  113. jarvisplot-2.1.11/CHANGELOG.md +0 -61
  114. jarvisplot-2.1.11/VERSION +0 -1
  115. jarvisplot-2.1.11/jarvisplot/cards/a4paper/1x1/ternary.json +0 -298
  116. jarvisplot-2.1.11/jarvisplot/cards/gambit/1x1/ternary.json +0 -298
  117. jarvisplot-2.1.11/jarvisplot/client.py +0 -29
  118. jarvisplot-2.1.11/jarvisplot/fix_apply.py +0 -172
  119. jarvisplot-2.1.11/jarvisplot/manual_cards/validate.yaml +0 -50
  120. jarvisplot-2.1.11/jarvisplot/verbs/validate.py +0 -212
  121. jarvisplot-2.1.11/tests/test_fix_application.py +0 -111
  122. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/Example/forest/box.yaml +0 -0
  123. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/Example/forest/data/box.csv +0 -0
  124. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/Example/forest/data/forest-points.csv +0 -0
  125. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/Example/forest/data/forest-rows.csv +0 -0
  126. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/Example/forest/data/interval.csv +0 -0
  127. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/Example/forest/data/points.csv +0 -0
  128. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/Example/forest/data/summary-intervals.csv +0 -0
  129. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/Example/forest/data/summary-labels.csv +0 -0
  130. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/Example/forest/data/summary-points.csv +0 -0
  131. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/Example/forest/data/summary-rows.csv +0 -0
  132. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/Example/forest/interval.yaml +0 -0
  133. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/Example/forest/real-demo-debug.yaml +0 -0
  134. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/Example/forest/real-demo.yaml +0 -0
  135. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/JarvisPLOT.egg-info/dependency_links.txt +0 -0
  136. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/JarvisPLOT.egg-info/entry_points.txt +0 -0
  137. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/JarvisPLOT.egg-info/top_level.txt +0 -0
  138. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/Figure/__init__.py +0 -0
  139. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/Figure/adaptive_cdf_runtime.py +0 -0
  140. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/Figure/bin_stat_runtime.py +0 -0
  141. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/Figure/cards/std_axes_adapter_config.json +0 -0
  142. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/Figure/config_runtime.py +0 -0
  143. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/Figure/corr_layout.py +0 -0
  144. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/Figure/corr_layout_diamond.py +0 -0
  145. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/Figure/corr_order.py +0 -0
  146. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/Figure/correlation_runtime.py +0 -0
  147. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/Figure/corrplot_runtime.py +0 -0
  148. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/Figure/data_pipelines.py +0 -0
  149. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/Figure/debug_config.py +0 -0
  150. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/Figure/design_runtime.py +0 -0
  151. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/Figure/distribution_1d_runtime.py +0 -0
  152. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/Figure/dynesty_runtime.py +0 -0
  153. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/Figure/figure_types.py +0 -0
  154. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/Figure/forest_debug.py +0 -0
  155. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/Figure/helper.py +0 -0
  156. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/Figure/interp_2d_runtime.py +0 -0
  157. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/Figure/interp_natural_neighbor.py +0 -0
  158. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/Figure/interp_natural_neighbor_exact.py +0 -0
  159. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/Figure/layer_runtime.py +0 -0
  160. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/Figure/layout_runtime.py +0 -0
  161. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/Figure/legend_runtime.py +0 -0
  162. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/Figure/method_registry.py +0 -0
  163. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/Figure/posterior_hpd.py +0 -0
  164. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/Figure/posterior_mesh.py +0 -0
  165. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/Figure/preprocessor.py +0 -0
  166. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/Figure/preprocessor_runtime.py +0 -0
  167. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/Figure/profile_runtime.py +0 -0
  168. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/Figure/significance_runtime.py +0 -0
  169. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/Figure/style_runtime.py +0 -0
  170. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/__init__.py +0 -0
  171. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/agent_digest.py +0 -0
  172. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/agent_io.py +0 -0
  173. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/cards/a4paper/2x1/rect.json +0 -0
  174. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/cards/a4paper/2x1/rect5x1.json +0 -0
  175. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/cards/a4paper/2x1/rect_cmap.json +0 -0
  176. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/cards/a4paper/2x1/rect_marginal.json +0 -0
  177. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/cards/a4paper/2x1/rectratio.json +0 -0
  178. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/cards/a4paper/4x1/rect.json +0 -0
  179. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/cards/a4paper/4x1/rect_cmap.json +0 -0
  180. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/cards/a4paper/4x1/ternary.json +0 -0
  181. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/cards/colors/colormaps.json +0 -0
  182. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/cards/corrplot/diamond.json +0 -0
  183. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/cards/corrplot/matrix.json +0 -0
  184. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/cards/default/output.json +0 -0
  185. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/cards/flowchart/default.json +0 -0
  186. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/cards/fonts/default.json +0 -0
  187. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/cards/forest/swiss_column.json +0 -0
  188. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/cards/gambit/2x1/ternary.json +0 -0
  189. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/cards/gambit/2x1/ternary_cmap.json +0 -0
  190. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/cards/icons/JarvisHEP.png +0 -0
  191. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/cards/icons/flowchart/JarvisHEP.png +0 -0
  192. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/cards/icons/flowchart/calculator.png +0 -0
  193. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/cards/icons/flowchart/inputfile.png +0 -0
  194. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/cards/icons/flowchart/opera.png +0 -0
  195. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/cards/icons/flowchart/outputfile.png +0 -0
  196. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/cards/icons/flowchart/sampler.png +0 -0
  197. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/cards/icons/gambit.png +0 -0
  198. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/cards/icons/gambit_small.png +0 -0
  199. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/cards/legends/compact/legend-card.json +0 -0
  200. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/cards/legends/default/legend-card.json +0 -0
  201. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/cards/legends/paper/legend-card.json +0 -0
  202. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/cards/legends/presentation/legend-card.json +0 -0
  203. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/cards/style_preference.json +3 -3
  204. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/cli_help.py +0 -0
  205. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/config.py +0 -0
  206. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/config_address.py +0 -0
  207. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/core_assets.py +0 -0
  208. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/core_runtime.py +0 -0
  209. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/data_generation_contracts.py +0 -0
  210. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/data_loader.py +0 -0
  211. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/data_loader_hdf5.py +0 -0
  212. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/data_loader_runtime.py +0 -0
  213. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/data_loader_summary.py +0 -0
  214. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/dataset_types.py +0 -0
  215. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/distribution_1d_config.py +0 -0
  216. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/font_runtime.py +0 -0
  217. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/fonts.py +0 -0
  218. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/forest_contract.py +0 -0
  219. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/forest_text.py +0 -0
  220. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/generated_data.py +0 -0
  221. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/legend_cards.py +0 -0
  222. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/man_catalog.py +0 -0
  223. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/man_render_agent.py +0 -0
  224. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/man_render_human.py +0 -0
  225. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/man_transforms.py +0 -0
  226. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/manual_cards/agent-output.yaml +0 -0
  227. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/manual_cards/debug-overlay.yaml +0 -0
  228. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/manual_cards/field-interp.yaml +0 -0
  229. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/manual_cards/fonts.yaml +0 -0
  230. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/manual_cards/style-axes.yaml +0 -0
  231. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/manual_cards/type-posterior-2d.yaml +0 -0
  232. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/manual_cards/type-profile-2d.yaml +0 -0
  233. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/memtrace.py +0 -0
  234. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/schema/core/common.json +0 -0
  235. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/schema/core/dataset.json +0 -0
  236. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/schema/core/distribution-1d.json +0 -0
  237. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/schema/core/generated-data.json +0 -0
  238. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/schema/core/layer.json +0 -0
  239. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/schema/core/legend-card.json +0 -0
  240. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/schema/core/legend.json +0 -0
  241. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/schema/core/transform.json +0 -0
  242. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/schema/manifest.json +0 -0
  243. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/schema/methods/bar.json +0 -0
  244. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/schema/methods/barh.json +0 -0
  245. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/schema/methods/contour.json +0 -0
  246. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/schema/methods/contourf.json +0 -0
  247. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/schema/methods/corrplot.json +0 -0
  248. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/schema/methods/dynesty_runplot.json +0 -0
  249. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/schema/methods/errorbar.json +0 -0
  250. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/schema/methods/fill.json +0 -0
  251. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/schema/methods/fill_between.json +0 -0
  252. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/schema/methods/fill_betweenx.json +0 -0
  253. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/schema/methods/hist.json +0 -0
  254. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/schema/methods/hist2d.json +0 -0
  255. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/schema/methods/imshow.json +0 -0
  256. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/schema/methods/jpcontour.json +0 -0
  257. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/schema/methods/jpcontourf.json +0 -0
  258. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/schema/methods/jpfield.json +0 -0
  259. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/schema/methods/pcolor.json +0 -0
  260. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/schema/methods/pcolormesh.json +0 -0
  261. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/schema/methods/plot.json +0 -0
  262. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/schema/methods/quiver.json +0 -0
  263. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/schema/methods/scatter.json +0 -0
  264. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/schema/methods/stairs.json +0 -0
  265. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/schema/methods/step.json +0 -0
  266. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/schema/methods/tricontour.json +0 -0
  267. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/schema/methods/tricontourf.json +0 -0
  268. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/schema/methods/tripcolor.json +0 -0
  269. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/schema/methods/tripcolor_axes.json +0 -0
  270. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/schema/methods/triplot.json +0 -0
  271. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/schema/methods/voronoi.json +0 -0
  272. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/schema/plot-config.json +0 -0
  273. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/schema_catalog.py +0 -0
  274. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/templates_catalog.py +0 -0
  275. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/transform_contracts.py +0 -0
  276. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/utils/__init__.py +0 -0
  277. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/utils/cmaps.py +0 -0
  278. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/utils/dataframes.py +0 -0
  279. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/utils/expression.py +0 -0
  280. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/utils/interpolator.py +0 -0
  281. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/utils/pathing.py +0 -0
  282. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/verbs/cap.py +0 -0
  283. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/verbs/data.py +0 -0
  284. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/verbs/doctor.py +0 -0
  285. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/verbs/dryrun.py +0 -0
  286. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/verbs/explain.py +0 -0
  287. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/verbs/fonts.py +0 -0
  288. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/verbs/man.py +0 -0
  289. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/verbs/suggest.py +0 -0
  290. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/verbs/template.py +0 -0
  291. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/version.py +0 -0
  292. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/jarvisplot/yaml_io.py +0 -0
  293. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/setup.cfg +0 -0
  294. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_adaptive_cdf.py +0 -0
  295. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_add_column.py +0 -0
  296. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_agent_digest.py +0 -0
  297. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_agent_envelope.py +0 -0
  298. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_axis_title.py +0 -0
  299. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_cmaps.py +0 -0
  300. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_column_pruning.py +0 -0
  301. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_config_addressing.py +0 -0
  302. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_correlation_runtime.py +0 -0
  303. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_corrplot.py +0 -0
  304. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_data_access.py +0 -0
  305. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_data_describe.py +0 -0
  306. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_data_loader_contracts.py +0 -0
  307. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_data_pipelines.py +0 -0
  308. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_debug_config.py +0 -0
  309. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_debug_switches.py +0 -0
  310. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_debug_yaml_override.py +0 -0
  311. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_design_runtime.py +0 -0
  312. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_diagnostic_guidance.py +0 -0
  313. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_distribution_1d_transform.py +0 -0
  314. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_doctor_partial.py +0 -0
  315. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_explain.py +0 -0
  316. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_figure_contracts.py +0 -0
  317. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_fonts.py +0 -0
  318. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_fonts_cli.py +0 -0
  319. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_forest_text.py +0 -0
  320. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_generated_data.py +0 -0
  321. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_interp_2d_transform.py +0 -0
  322. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_interp_natural_neighbor.py +0 -0
  323. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_interpolator_contracts.py +0 -0
  324. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_jpcontour_methods.py +0 -0
  325. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_layer_legend.py +0 -0
  326. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_legend_cards.py +0 -0
  327. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_legend_runtime.py +0 -0
  328. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_parse_data_metadata.py +0 -0
  329. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_pathing_contracts.py +0 -0
  330. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_posterior_hpd.py +0 -0
  331. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_profile_runtime.py +0 -0
  332. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_release_contract.py +0 -0
  333. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_render_health.py +0 -0
  334. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_render_lifecycle.py +0 -0
  335. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_row_ledger.py +0 -0
  336. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_savefig_provenance.py +0 -0
  337. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_suggest.py +0 -0
  338. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_suggest_axes.py +0 -0
  339. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_template_catalog.py +0 -0
  340. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_ternary_debug.py +0 -0
  341. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tests/test_transform_contracts.py +0 -0
  342. {jarvisplot-2.1.11 → jarvisplot-2.1.13}/tools/check_release.py +0 -0
@@ -0,0 +1,133 @@
1
+ # Changelog
2
+
3
+ Release history of the `JarvisPLOT` distribution (import package `jarvisplot`,
4
+ CLI `jplot`). User guides and reference documentation are available in
5
+ [Jarvis-Books `Docs/Jarvis-PLOT/`](https://github.com/Pengxuan-Zhu-Phys/Jarvis-Books/blob/main/Docs/Jarvis-PLOT/README.md).
6
+
7
+ ## 2.1.13 — 2026-10-29
8
+ ### Fixed
9
+
10
+ - Branch flowchart connections from a module to its output files, and give each
11
+ file's output variables a separate, spaced group centered on its file icon.
12
+ - Correct A4 ternary badge image paths on case-sensitive filesystems, including
13
+ Linux, for the full-width, standard and colorbar cards.
14
+ - Keep the GAMBIT `rectcmap` colorbar label inside the page with Matplotlib 3.10
15
+ while preserving its separation from tick labels.
16
+ - Allow forest footer legends to meet the badge at their shared grid boundary
17
+ with macOS Helvetica and Matplotlib 3.10.9. Actual overlap with the badge or
18
+ description remains an error.
19
+
20
+ ## 2.1.12 — 2026-10-19
21
+
22
+ ### Added
23
+
24
+ - Automatically manage registered plot caches with a default 5 GiB total budget
25
+ and a 30-day idle limit. Configure `~/.jarvis/plot-cache.json` (under
26
+ `JARVIS_HOME` when set), `JP_CACHE_MAX_GIB` or `JP_CACHE_MAX_AGE_DAYS`.
27
+ `jplot cache list` reports the effective policy. Idle caches are reclaimed
28
+ toward 80% of the budget; active caches remain protected.
29
+ - Show `-v` / `--version` without loading the plotting runtime. Structured
30
+ `--json` version output is also available through `Jarvis plot`.
31
+
32
+ ### Fixed
33
+
34
+ - Draw `voronoif` and `triplot` layers. `voronoif` takes `x`, `y` and an
35
+ optional `where` mask for the selected region's hatched boundary; it has no
36
+ `z` or colorbar. `triplot` works on rectangular and ternary axes.
37
+ - Evaluate built-in mathematical functions, including hyperbolic and inverse
38
+ trigonometric functions, `Gauss`, `Normal` and `Heaviside`, on whole columns.
39
+ Preserve the `Heaviside(x, H0=...)` keyword. Define `Pi`, `pi`, `E` and `Inf`,
40
+ and publish them through `jplot cap funcs`.
41
+ - Avoid false missing-column errors for built-in functions, keyword argument
42
+ labels, YAML `Functions`, Operas namespaces and columns produced by
43
+ `significance` transforms.
44
+ - Accept `voronoi` and `adaptive` in `make_density_core`, and recognize the
45
+ existing `profile_2d` reduction and grid options during YAML checks.
46
+ - Restore usable full-width `[a4paper_1x1, Ternary]` and
47
+ `[gambit_1x1, Ternary]` cards. See the
48
+ [runnable example](https://github.com/Pengxuan-Zhu-Phys/Jarvis-PLOT/blob/main/Example/ternary_1x1.yaml).
49
+ - Print mappings containing quoted YAML strings with `jplot config get`.
50
+ - Keep `dynesty_runplot` y labels inside the page and the GAMBIT `rectcmap`
51
+ colorbar label clear of its tick numbers.
52
+ - Protect caches used by concurrent plotting sessions. `--print` defers
53
+ cleanup until readers finish, and rebuilding a busy cache reports an error
54
+ without deleting it. Atomic writes prevent incomplete payloads and lost
55
+ registry updates; interrupted temporary files are reclaimed when idle.
56
+ Cache use reports an error if reliable locking is unavailable.
57
+ - Report missing layer axes or data before rendering. A layer without a method
58
+ reports a warning and continues to use `scatter`.
59
+
60
+ ### Compatibility and upgrade notes
61
+
62
+ - Use `jplot doctor <file>` in place of the removed `jplot validate <file>`
63
+ command. Automatic `--fix` / `--fix-unsafe` YAML rewriting has been removed.
64
+ `doctor` performs internal YAML checks and a light dryrun; configuration
65
+ editing and suggestions also retain their internal checks.
66
+ - Remove boolean `frame.axlogo` entries from YAML. The field accepts a settings
67
+ mapping only, including for forest figures. Use `jplot <file> --print` for
68
+ final output without the badge.
69
+ - Lists in `frame` now replace the style card's lists in full. Review text,
70
+ tick and other list overrides; include every entry you want to keep. This
71
+ also fixes four-element axes rectangles being appended to the card's rectangle.
72
+ - `Min` / `Max` and their lowercase aliases are elementwise with multiple
73
+ arguments; a single column argument reduces the whole column to one value.
74
+ Lowercase `e` is a column name, not a built-in constant; use `E` for Euler's number.
75
+ - Text and JSON version reports display `Jarvis-PLOT`. The PyPI distribution
76
+ name remains `JarvisPLOT`, and the import package remains `jarvisplot`.
77
+
78
+ ### Documentation
79
+
80
+ - Include the public YAML examples and their supplied CSV data in the source
81
+ distribution, including the repaired full-width ternary example.
82
+
83
+ ## 2.1.11 — 2026-10-18
84
+
85
+ ### Added
86
+
87
+ - Manage plot fonts with `jplot fonts show|list|resolve|check|set|reset` and
88
+ `jplot man fonts`. The default font card uses Helvetica sans, STIXGeneral serif
89
+ and STIX MathText. Explicit YAML fonts and sizes take precedence.
90
+ - Save personal font overrides in `~/.jarvis/plot-fonts.json`; `JARVIS_HOME`
91
+ changes the configuration directory.
92
+ - When Helvetica is unavailable, use the first installed font among Arial,
93
+ Liberation Sans, Nimbus Sans and DejaVu Sans. `check` and `resolve` report the
94
+ selected font and the reason for substitution.
95
+
96
+ ### Fixed
97
+
98
+ - Remove empty registered cache directories whose marker is missing while
99
+ preserving unmarked directories that contain files.
100
+
101
+ ### Changed
102
+
103
+ - Use the font card's MathText font for cut descriptions by default.
104
+ - Find the plotting guides and reference documentation in
105
+ [Jarvis-Books](https://github.com/Pengxuan-Zhu-Phys/Jarvis-Books/blob/main/Docs/Jarvis-PLOT/README.md).
106
+ Public examples remain available in `Example/`.
107
+
108
+ ## 2.1.10 — 2026-10-13
109
+
110
+ - Native forest figures read multi-interval CSV sources and mappings,
111
+ intervals-only rows, box/scatter coexistence and literal CSV value
112
+ annotations. Values are plotted as supplied, never computed.
113
+ - Explicit shared x ticks, independent of grid divisions.
114
+ - MathText needs `math: true`; formula fonts are STIX by default with DejaVu
115
+ Sans as an alternative, selected separately for legends and cut
116
+ descriptions. Header notes, paragraphs and formulas are preserved, and
117
+ layout uses the actual font, glyph and annotation bounds.
118
+ - TTC faces keep their weight and slant; an explicit font size governs
119
+ measurement.
120
+ - Show consistent versions in the CLI, manuals, render reports and image
121
+ metadata. SVG output includes Dublin Core metadata. Export reports drawing
122
+ and I/O failures and retries only when a backend rejects metadata support.
123
+ - Packaged AI README (`jplot man agent-readme --json`), schema, manual and
124
+ example updates.
125
+ - Include native forest examples in the source distribution.
126
+
127
+ Existing forest YAML needs no migration. Custom export metadata must use keys
128
+ the selected backend supports; invalid SVG keys are now reported.
129
+
130
+ ## Earlier releases
131
+
132
+ See the [PyPI release history](https://pypi.org/project/JarvisPLOT/#history)
133
+ and [GitHub Releases](https://github.com/Pengxuan-Zhu-Phys/Jarvis-PLOT/releases).
@@ -0,0 +1,102 @@
1
+ # Jarvis-PLOT — design-reference debug examples
2
+
3
+ One example per style card. The layout-reference figures set `debug: true`, which draws the
4
+ **design-reference overlay**: every axis is outlined, while all axes'
5
+ `rect = [left, bottom, width, height]` (figure fractions) and width/height in
6
+ centimetres are listed sequentially in one panel inside the primary `ax`.
7
+ The figure size and margin / colorbar-gap dimension lines remain on the outer
8
+ overlay.
9
+
10
+ Most figures have **no data layers** on purpose — they are pure layout references
11
+ for each style card. `corrplot_matrix.yaml` is the exception: a correlation
12
+ matrix has nothing to show without data, and its card solves the figure size
13
+ *from* the data rather than fixing it.
14
+
15
+ ## Run
16
+
17
+ ```bash
18
+ jplot Example/a4paper_2x1.yaml
19
+ ```
20
+
21
+ (`plots/` and `.cache/` are created on the fly and are git-ignored.)
22
+
23
+ ## Styles covered
24
+
25
+ Examples are grouped by geometry family and paper ratio:
26
+
27
+ | YAML | Style `[family, variant]` |
28
+ |------|---------------------------|
29
+ | `ternary_1x1.yaml` | Full-width `[a4paper_1x1, Ternary]` and `[gambit_1x1, Ternary]` |
30
+ | `a4paper_2x1.yaml` | All `a4paper_2x1` cards: `rect`, `rectRatio`, `rectMarginal`, `rectcmap`, `Ternary`, `TernaryCmap`, `rect_5x1`, `dynesty_runplot` |
31
+ | `a4paper_4x1_rectcmap.yaml` | `[a4paper_4x1, rectcmap]` |
32
+ | `gambit_2x1.yaml` | All `gambit_2x1` cards: `rectcmap`, `Ternary`, `TernaryCmap` |
33
+ | `corrplot_matrix.yaml` | `[corrplot, matrix]` via `type: correlation_matrix` — a real correlation matrix, not a layout reference |
34
+ | `corrplot_scales.yaml` | The same card at n = 6 … 100, one glyph method each — where the derivation stops working |
35
+ | `generated_data.yaml` | `[a4paper_2x1, rect]` — named `DataSet.type: generated`, a private generated curve, transforms, and `combine: separate` |
36
+ | `pdf_cdf_1d.yaml` | `[a4paper_2x1, rect]` — raw weighted samples, `PDF1D` repeat mean/std band, and pure `CDF1D` |
37
+ | `compact_legend.yaml` | `[a4paper_2x1, rect]` — layer-declared compact legend objects with band/line overlays and stacked boundary/mean keys |
38
+ | `legend_cards.yaml` | `[a4paper_2x1, rect]` — forward layer membership, object sorting, JSON card selection and a native line/errorbar composite |
39
+
40
+ These are every style registered in `jarvisplot/cards/style_preference.json`.
41
+
42
+ ## The `corrplot` family is different
43
+
44
+ `[corrplot, matrix]` is the only card whose **figure size is derived, not
45
+ declared**. It carries a `Geometry` block in millimetres — cell size, padding,
46
+ colorbar width, a 170 mm cap — and the figure size falls out of the matrix:
47
+ `n` variables and the measured width of their names. Cell size and font size
48
+ stay fixed as `n` grows; the figure grows instead, and only past the cap does
49
+ the cell shrink (never the font).
50
+
51
+ That is why the card has no `figsize` and no axes `rect`, why its panel and
52
+ colorbar are called `axcorr` / `axccorr` rather than `ax` / `axc`, and why
53
+ `jplot cap styles` reports it as `geometry: solved, requires_type:
54
+ correlation_matrix`. Naming it in `style:` alone is an error, not a fallback.
55
+
56
+ `corrplot_matrix.yaml` therefore states no `figsize`, no axes `rect`, no tick
57
+ positions and no coordinates: `prebuild_correlations` measures the variable
58
+ names and writes all of it into the config before the figure is built. Add a
59
+ variable to the CSV and the figure grows — the cells and the type do not move.
60
+
61
+ It is also the one example written as a **`type:` macro** rather than as
62
+ layers, because the four reserved names here (`axcorr`, `axccorr`,
63
+ `method: corrplot`, `[corrplot, matrix]`) are not choices — they are one thing
64
+ spelled four times. `jplot config expand Example/corrplot_matrix.yaml --figure
65
+ corrplot_matrix` shows the single layer it lowers to.
66
+
67
+ Under it is **`method: corrplot`**, a drawing primitive of its own rather than a
68
+ `scatter` layer with a computed marker size. That distinction is what makes
69
+ `method: circle | square | ellipse | color | shade | pie | number` mean
70
+ anything: only `circle` is expressible as a scatter marker. The `corrplot:`
71
+ block takes R's own formals, spelled as R spells them.
72
+
73
+ The one split worth knowing is where each formal is applied. `order`,
74
+ `addrect`, `hclust.method`, `tl.pos` and `col` decide **which variable sits
75
+ where** (or what the whole scale is), and the tick labels are written at config
76
+ time — so those are resolved by `prebuild_correlations`, which writes the
77
+ resolved order into the transform's `columns`. Everything else describes **one
78
+ cell** and is applied at draw time. Nothing reorders a matrix after its labels
79
+ exist. `jplot man type-correlation-matrix` and
80
+ [CORRELATION_MATRIX.md](https://github.com/Pengxuan-Zhu-Phys/Jarvis-Books/blob/main/Docs/Jarvis-PLOT/specs/CORRELATION_MATRIX.md) carry the full crosswalk.
81
+
82
+ ### Where it stops working
83
+
84
+ `corrplot_scales.yaml` is the experiment behind the claim above: one 100-column
85
+ table, one card, seven values of `n`, a different glyph method each time. Up to
86
+ `n = 33` the cell stays 4.20 mm and the figure grows to fill 170 mm. From
87
+ `n = 40` the width is pinned and the **cell** shrinks — never the font, which
88
+ is what lets two of these sit in one paper. At `n = 100` even the 1.60 mm cell
89
+ floor does not fit: the solver keeps the floor, overruns the page by 13.8 mm,
90
+ and says so. The two `corrplot_100_*` figures are included precisely because
91
+ they are past the limit — the labelled one has 100 names colliding in 160 mm,
92
+ which is what "past the limit" looks like.
93
+
94
+ ## Notes
95
+
96
+ - Variant tokens are case-sensitive: `rect`, `rectcmap` (lower-case) and
97
+ `Ternary`, `TernaryCmap` (capitalized).
98
+ - To turn the overlay off, set `debug: false` (or remove it).
99
+ - To see the overlay on a real plot, add normal `layers` to any of these files.
100
+
101
+ See the docs: **Jarvis-PLOT → Style Cards and Layout** for a full explanation of
102
+ the card JSON structure and the overlay.
@@ -0,0 +1,73 @@
1
+ # Design-reference debug examples for all a4paper_2x1 style cards.
2
+ #
3
+ # Run: jplot Example/a4paper_2x1.yaml
4
+ #
5
+ # Each figure is a pure layout reference with debug overlay enabled.
6
+
7
+ version: '0.3'
8
+ project:
9
+ name: a4paper_2x1
10
+ Functions: []
11
+ DataSet: []
12
+ Figures:
13
+ - name: a4paper_2x1_Ternary
14
+ debug: true # draw the design-reference dimension overlay
15
+ style: [a4paper_2x1, Ternary]
16
+ frame:
17
+ axtri: {labels: {left: "A", bottom: "B", right: "C"}}
18
+ layers: [] # empty -- layout reference only
19
+
20
+ - name: a4paper_2x1_TernaryCmap
21
+ debug: true # draw the design-reference dimension overlay
22
+ style: [a4paper_2x1, TernaryCmap]
23
+ frame:
24
+ axtri: {labels: {left: "A", bottom: "B", right: "C"}}
25
+ axc: {label: {ylabel: "$z$"}}
26
+ layers: [] # empty -- layout reference only
27
+
28
+ - name: a4paper_2x1_dynesty_runplot
29
+ debug: true # draw the design-reference dimension overlay
30
+ style: [a4paper_2x1, dynesty_runplot]
31
+ layers: [] # empty -- layout reference only
32
+
33
+ - name: a4paper_2x1_rect
34
+ debug: true # draw the design-reference dimension overlay
35
+ style: [a4paper_2x1, rect]
36
+ frame:
37
+ ax: {labels: {x: "$x$", y: "$y$"}}
38
+ layers: [] # empty -- layout reference only
39
+ - name: a4paper_2x1_rectRatio
40
+ debug: true # draw the design-reference dimension overlay
41
+ style: [a4paper_2x1, rectRatio]
42
+ layers: [] # empty -- layout reference only
43
+
44
+ - name: a4paper_2x1_rectMarginal
45
+ debug: true # draw the design-reference dimension overlay
46
+ style: [a4paper_2x1, rectMarginal]
47
+ frame:
48
+ axl: {labels: {y: "$y$"}} # the strips carry the shared axis' labels
49
+ axb: {labels: {x: "$x$"}}
50
+ axc: {label: {ylabel: "$z$"}}
51
+ layers: [] # empty -- layout reference only
52
+
53
+
54
+
55
+ - name: a4paper_2x1_rect_5x1
56
+ debug: true # draw the design-reference dimension overlay
57
+ style: [a4paper_2x1, rect_5x1]
58
+ layers: [] # empty -- layout reference only
59
+
60
+ - name: a4paper_2x1_rectcmap
61
+ debug: true # draw the design-reference dimension overlay
62
+ style: [a4paper_2x1, rectcmap]
63
+ frame:
64
+ ax: {labels: {x: "$x$", y: "$y$"}}
65
+ axc: {label: {ylabel: "$z$"}}
66
+ layers: [] # empty -- layout reference only
67
+
68
+ output:
69
+ dir: ./plots
70
+ dpi: 150
71
+ formats:
72
+ - png
73
+ - pdf
@@ -0,0 +1,30 @@
1
+ # Design-reference debug example -- style [a4paper_4x1, rectcmap]
2
+ #
3
+ # Run: jplot Example/a4paper_4x1_rectcmap.yaml
4
+ # Shows: the axes layout of this style card -- every axis box with its
5
+ # rect [left, bottom, width, height] and width/height in cm, the
6
+ # figure size, margins and colorbar gap -- drawn by `debug: true`.
7
+ #
8
+ # The figure has no data layers on purpose: this is a pure layout reference.
9
+
10
+ version: "0.3"
11
+
12
+ project:
13
+ name: design_a4paper_4x1_rectcmap
14
+
15
+ Functions: []
16
+ DataSet: []
17
+
18
+ Figures:
19
+ - name: a4paper_4x1_rectcmap
20
+ debug: true # draw the design-reference dimension overlay
21
+ style: [a4paper_4x1, rectcmap]
22
+ frame:
23
+ ax: {labels: {x: "$x$", y: "$y$"}}
24
+ axc: {label: {ylabel: "$z$"}}
25
+ layers: [] # empty -- layout reference only
26
+
27
+ output:
28
+ dir: ./plots
29
+ dpi: 150
30
+ formats: [png]
@@ -0,0 +1,237 @@
1
+ DataSet: []
2
+ Figures:
3
+ - name: compact_legend
4
+ style:
5
+ - a4paper_2x1
6
+ - rect
7
+ frame:
8
+ ax:
9
+ xlim:
10
+ - 0
11
+ - 1
12
+ ylim:
13
+ - 0
14
+ - 7
15
+ labels:
16
+ x: Score
17
+ y: Density
18
+ legend:
19
+ loc: upper left
20
+ ncols: 2
21
+ prop:
22
+ family: STIXGeneral
23
+ size: 4.6
24
+ card: compact
25
+ order:
26
+ - signal_train
27
+ - signal_test
28
+ - background_train
29
+ - background_test
30
+ layers:
31
+ - name: signal_train_band
32
+ axes: ax
33
+ method: fill_between
34
+ coordinates:
35
+ x: &id001
36
+ - 0
37
+ - 0.15
38
+ - 0.3
39
+ - 0.45
40
+ - 0.6
41
+ - 0.75
42
+ - 1
43
+ y1: &id003
44
+ - 0.0
45
+ - 0.16000000000000003
46
+ - 1.6
47
+ - 3.2
48
+ - 1.6
49
+ - 0.4
50
+ - 0.0
51
+ y2: &id002
52
+ - 0.0
53
+ - 0.24
54
+ - 2.4
55
+ - 4.8
56
+ - 2.4
57
+ - 0.6
58
+ - 0.0
59
+ style:
60
+ color: '#56B4E9'
61
+ alpha: 0.3
62
+ linewidth: 0
63
+ legend:
64
+ object: signal_train
65
+ label: Signal train
66
+ role: band
67
+ - name: signal_train
68
+ axes: ax
69
+ method: plot
70
+ coordinates:
71
+ x: *id001
72
+ y:
73
+ - 0
74
+ - 0.2
75
+ - 2
76
+ - 4
77
+ - 2
78
+ - 0.5
79
+ - 0
80
+ style:
81
+ color: '#56B4E9'
82
+ linewidth: 0.7
83
+ legend:
84
+ object: signal_train
85
+ label: Signal train
86
+ role: line
87
+ - name: signal_test_high
88
+ axes: ax
89
+ method: plot
90
+ coordinates:
91
+ x: *id001
92
+ y: *id002
93
+ style:
94
+ color: '#005A8D'
95
+ alpha: 0.3
96
+ linewidth: 0.4
97
+ legend:
98
+ object: signal_test
99
+ label: Signal test
100
+ role: upper
101
+ - name: signal_test_low
102
+ axes: ax
103
+ method: plot
104
+ coordinates:
105
+ x: *id001
106
+ y: *id003
107
+ style:
108
+ color: '#005A8D'
109
+ alpha: 0.3
110
+ linewidth: 0.4
111
+ legend:
112
+ object: signal_test
113
+ label: Signal test
114
+ role: lower
115
+ - name: signal_test
116
+ axes: ax
117
+ method: plot
118
+ coordinates:
119
+ x: *id001
120
+ y:
121
+ - 0.0
122
+ - 0.20600000000000002
123
+ - 2.06
124
+ - 4.12
125
+ - 2.06
126
+ - 0.515
127
+ - 0.0
128
+ style:
129
+ color: '#005A8D'
130
+ linewidth: 0.7
131
+ legend:
132
+ object: signal_test
133
+ label: Signal test
134
+ role: line
135
+ - name: background_train_band
136
+ axes: ax
137
+ method: fill_between
138
+ coordinates:
139
+ x: *id001
140
+ y1: &id005
141
+ - 0.0
142
+ - 0.8
143
+ - 3.2
144
+ - 1.6
145
+ - 0.4
146
+ - 0.08000000000000002
147
+ - 0.0
148
+ y2: &id004
149
+ - 0.0
150
+ - 1.2
151
+ - 4.8
152
+ - 2.4
153
+ - 0.6
154
+ - 0.12
155
+ - 0.0
156
+ style:
157
+ color: '#E69F00'
158
+ alpha: 0.3
159
+ linewidth: 0
160
+ legend:
161
+ object: background_train
162
+ label: Background train
163
+ role: band
164
+ - name: background_train
165
+ axes: ax
166
+ method: plot
167
+ coordinates:
168
+ x: *id001
169
+ y:
170
+ - 0
171
+ - 1
172
+ - 4
173
+ - 2
174
+ - 0.5
175
+ - 0.1
176
+ - 0
177
+ style:
178
+ color: '#E69F00'
179
+ linewidth: 0.7
180
+ legend:
181
+ object: background_train
182
+ label: Background train
183
+ role: line
184
+ - name: background_test_high
185
+ axes: ax
186
+ method: plot
187
+ coordinates:
188
+ x: *id001
189
+ y: *id004
190
+ style:
191
+ color: '#A23E00'
192
+ alpha: 0.3
193
+ linewidth: 0.4
194
+ legend:
195
+ object: background_test
196
+ label: Background test
197
+ role: upper
198
+ - name: background_test_low
199
+ axes: ax
200
+ method: plot
201
+ coordinates:
202
+ x: *id001
203
+ y: *id005
204
+ style:
205
+ color: '#A23E00'
206
+ alpha: 0.3
207
+ linewidth: 0.4
208
+ legend:
209
+ object: background_test
210
+ label: Background test
211
+ role: lower
212
+ - name: background_test
213
+ axes: ax
214
+ method: plot
215
+ coordinates:
216
+ x: *id001
217
+ y:
218
+ - 0.0
219
+ - 1.03
220
+ - 4.12
221
+ - 2.06
222
+ - 0.515
223
+ - 0.10300000000000001
224
+ - 0.0
225
+ style:
226
+ color: '#A23E00'
227
+ linewidth: 0.7
228
+ legend:
229
+ object: background_test
230
+ label: Background test
231
+ role: line
232
+ output:
233
+ dir: ./plots
234
+ formats:
235
+ - png
236
+ - pdf
237
+ dpi: 300