jarvisplot 2.0.2__tar.gz → 2.0.3__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 (216) hide show
  1. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/JarvisPLOT.egg-info/PKG-INFO +1 -1
  2. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/PKG-INFO +1 -1
  3. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/capabilities.py +35 -1
  4. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/manual_cards/workflow.yaml +2 -1
  5. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/templates_catalog.py +3 -8
  6. jarvisplot-2.0.3/jarvisplot/verbs/cap.py +629 -0
  7. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/verbs/config_cmd.py +1 -1
  8. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/verbs/explain.py +2 -3
  9. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/verbs/suggest.py +2 -3
  10. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/verbs/validate.py +2 -8
  11. jarvisplot-2.0.3/jarvisplot/yaml_io.py +154 -0
  12. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/pyproject.toml +1 -1
  13. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/tests/test_capabilities.py +85 -0
  14. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/tests/test_config_edit.py +45 -0
  15. jarvisplot-2.0.2/jarvisplot/verbs/cap.py +0 -189
  16. jarvisplot-2.0.2/jarvisplot/yaml_io.py +0 -64
  17. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/JarvisPLOT.egg-info/SOURCES.txt +0 -0
  18. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/JarvisPLOT.egg-info/dependency_links.txt +0 -0
  19. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/JarvisPLOT.egg-info/entry_points.txt +0 -0
  20. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/JarvisPLOT.egg-info/requires.txt +0 -0
  21. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/JarvisPLOT.egg-info/top_level.txt +0 -0
  22. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/README.md +0 -0
  23. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/Figure/__init__.py +0 -0
  24. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/Figure/adapters_rect.py +0 -0
  25. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/Figure/adapters_ternary.py +0 -0
  26. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/Figure/cards/std_axes_adapter_config.json +0 -0
  27. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/Figure/colorbar_runtime.py +0 -0
  28. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/Figure/config_runtime.py +0 -0
  29. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/Figure/data_pipelines.py +0 -0
  30. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/Figure/density_cell_runtime.py +0 -0
  31. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/Figure/design_runtime.py +0 -0
  32. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/Figure/dynesty_runtime.py +0 -0
  33. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/Figure/figure.py +0 -0
  34. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/Figure/figure_types.py +0 -0
  35. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/Figure/helper.py +0 -0
  36. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/Figure/interp_2d_runtime.py +0 -0
  37. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/Figure/interp_natural_neighbor.py +0 -0
  38. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/Figure/interp_natural_neighbor_exact.py +0 -0
  39. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/Figure/layer_runtime.py +0 -0
  40. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/Figure/layout_runtime.py +0 -0
  41. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/Figure/method_registry.py +0 -0
  42. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/Figure/posterior_density_runtime.py +0 -0
  43. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/Figure/posterior_hpd.py +0 -0
  44. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/Figure/posterior_mesh.py +0 -0
  45. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/Figure/preprocessor.py +0 -0
  46. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/Figure/preprocessor_runtime.py +0 -0
  47. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/Figure/profile_runtime.py +0 -0
  48. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/Figure/style_runtime.py +0 -0
  49. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/__init__.py +0 -0
  50. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/agent_digest.py +0 -0
  51. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/agent_io.py +0 -0
  52. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/cache_store.py +0 -0
  53. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/cards/a4paper/1x1/ternary.json +0 -0
  54. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/cards/a4paper/2x1/dynesty_runplot.json +0 -0
  55. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/cards/a4paper/2x1/rect.json +0 -0
  56. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/cards/a4paper/2x1/rect5x1.json +0 -0
  57. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/cards/a4paper/2x1/rect_cmap.json +0 -0
  58. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/cards/a4paper/2x1/ternary.json +0 -0
  59. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/cards/a4paper/2x1/ternary_cmap.json +0 -0
  60. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/cards/a4paper/4x1/rect.json +0 -0
  61. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/cards/a4paper/4x1/rect_cmap.json +0 -0
  62. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/cards/a4paper/4x1/ternary.json +0 -0
  63. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/cards/a4paper/4x1/ternary_cmap.json +0 -0
  64. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/cards/args.json +0 -0
  65. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/cards/colors/colormaps.json +0 -0
  66. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/cards/default/output.json +0 -0
  67. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/cards/flowchart/default.json +0 -0
  68. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/cards/gambit/1x1/ternary.json +0 -0
  69. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/cards/gambit/2x1/rect_cmap.json +0 -0
  70. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/cards/gambit/2x1/ternary.json +0 -0
  71. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/cards/gambit/2x1/ternary_cmap.json +0 -0
  72. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/cards/icons/JarvisHEP.png +0 -0
  73. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/cards/icons/flowchart/JarvisHEP.png +0 -0
  74. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/cards/icons/flowchart/calculator.png +0 -0
  75. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/cards/icons/flowchart/inputfile.png +0 -0
  76. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/cards/icons/flowchart/opera.png +0 -0
  77. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/cards/icons/flowchart/outputfile.png +0 -0
  78. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/cards/icons/flowchart/sampler.png +0 -0
  79. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/cards/icons/gambit.png +0 -0
  80. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/cards/icons/gambit_small.png +0 -0
  81. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/cards/style_preference.json +0 -0
  82. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/cli.py +0 -0
  83. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/cli_help.py +0 -0
  84. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/client.py +0 -0
  85. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/column_demand.py +0 -0
  86. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/column_probe.py +0 -0
  87. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/config.py +0 -0
  88. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/config_address.py +0 -0
  89. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/core.py +0 -0
  90. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/core_assets.py +0 -0
  91. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/core_runtime.py +0 -0
  92. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/data_access.py +0 -0
  93. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/data_loader.py +0 -0
  94. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/data_loader_hdf5.py +0 -0
  95. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/data_loader_runtime.py +0 -0
  96. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/data_loader_summary.py +0 -0
  97. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/diagnostic_guidance.py +0 -0
  98. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/diagnostics.py +0 -0
  99. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/dryrun_runtime.py +0 -0
  100. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/expr_names.py +0 -0
  101. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/fix_apply.py +0 -0
  102. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/flowchart.py +0 -0
  103. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/inner_func.py +0 -0
  104. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/man_catalog.py +0 -0
  105. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/man_methods.py +0 -0
  106. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/man_render_agent.py +0 -0
  107. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/man_render_human.py +0 -0
  108. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/man_transforms.py +0 -0
  109. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/manual_cards/agent-output.yaml +0 -0
  110. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/manual_cards/cli-map.yaml +0 -0
  111. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/manual_cards/data-columns.yaml +0 -0
  112. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/manual_cards/diagnostics.yaml +0 -0
  113. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/manual_cards/dryrun-viz.yaml +0 -0
  114. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/manual_cards/layer-method.yaml +0 -0
  115. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/manual_cards/manifest.yaml +0 -0
  116. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/manual_cards/method_notes.yaml +0 -0
  117. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/manual_cards/style-axes.yaml +0 -0
  118. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/manual_cards/type-posterior-2d.yaml +0 -0
  119. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/manual_cards/type-profile-2d.yaml +0 -0
  120. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/manual_cards/validate.yaml +0 -0
  121. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/manual_cards/yaml-root.yaml +0 -0
  122. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/memtrace.py +0 -0
  123. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/method_contracts.py +0 -0
  124. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/render_health.py +0 -0
  125. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/schema/core/common.json +0 -0
  126. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/schema/core/dataset.json +0 -0
  127. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/schema/core/figure.json +0 -0
  128. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/schema/core/layer.json +0 -0
  129. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/schema/core/transform.json +0 -0
  130. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/schema/manifest.json +0 -0
  131. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/schema/methods/bar.json +0 -0
  132. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/schema/methods/barh.json +0 -0
  133. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/schema/methods/contour.json +0 -0
  134. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/schema/methods/contourf.json +0 -0
  135. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/schema/methods/dynesty_runplot.json +0 -0
  136. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/schema/methods/errorbar.json +0 -0
  137. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/schema/methods/fill.json +0 -0
  138. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/schema/methods/fill_between.json +0 -0
  139. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/schema/methods/fill_betweenx.json +0 -0
  140. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/schema/methods/hist.json +0 -0
  141. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/schema/methods/imshow.json +0 -0
  142. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/schema/methods/jpcontour.json +0 -0
  143. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/schema/methods/jpcontourf.json +0 -0
  144. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/schema/methods/jpfield.json +0 -0
  145. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/schema/methods/pcolor.json +0 -0
  146. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/schema/methods/pcolormesh.json +0 -0
  147. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/schema/methods/plot.json +0 -0
  148. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/schema/methods/quiver.json +0 -0
  149. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/schema/methods/scatter.json +0 -0
  150. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/schema/methods/step.json +0 -0
  151. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/schema/methods/tricontour.json +0 -0
  152. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/schema/methods/tricontourf.json +0 -0
  153. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/schema/methods/tripcolor.json +0 -0
  154. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/schema/methods/tripcolor_axes.json +0 -0
  155. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/schema/methods/triplot.json +0 -0
  156. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/schema/methods/voronoi.json +0 -0
  157. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/schema/methods/voronoif.json +0 -0
  158. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/schema/plot-config.json +0 -0
  159. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/schema_catalog.py +0 -0
  160. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/schema_diagnostics.py +0 -0
  161. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/transform_contracts.py +0 -0
  162. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/utils/__init__.py +0 -0
  163. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/utils/cmaps.py +0 -0
  164. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/utils/dataframes.py +0 -0
  165. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/utils/expression.py +0 -0
  166. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/utils/interpolator.py +0 -0
  167. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/utils/pathing.py +0 -0
  168. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/validation.py +0 -0
  169. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/verbs/__init__.py +0 -0
  170. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/verbs/data.py +0 -0
  171. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/verbs/doctor.py +0 -0
  172. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/verbs/dryrun.py +0 -0
  173. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/verbs/man.py +0 -0
  174. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/jarvisplot/verbs/template.py +0 -0
  175. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/setup.cfg +0 -0
  176. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/tests/test_agent_digest.py +0 -0
  177. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/tests/test_agent_envelope.py +0 -0
  178. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/tests/test_axis_title.py +0 -0
  179. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/tests/test_cli_help.py +0 -0
  180. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/tests/test_cli_verbs.py +0 -0
  181. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/tests/test_cmaps.py +0 -0
  182. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/tests/test_column_existence.py +0 -0
  183. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/tests/test_config_addressing.py +0 -0
  184. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/tests/test_config_expand.py +0 -0
  185. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/tests/test_data_access.py +0 -0
  186. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/tests/test_data_describe.py +0 -0
  187. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/tests/test_data_head_eval.py +0 -0
  188. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/tests/test_data_loader_contracts.py +0 -0
  189. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/tests/test_data_pipelines.py +0 -0
  190. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/tests/test_density_cell_transform.py +0 -0
  191. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/tests/test_diagnostic_guidance.py +0 -0
  192. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/tests/test_docs_status_labels.py +0 -0
  193. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/tests/test_doctor_partial.py +0 -0
  194. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/tests/test_explain.py +0 -0
  195. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/tests/test_figure_contracts.py +0 -0
  196. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/tests/test_figure_type_expander.py +0 -0
  197. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/tests/test_fix_application.py +0 -0
  198. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/tests/test_flowchart_renderer.py +0 -0
  199. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/tests/test_interp_2d_transform.py +0 -0
  200. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/tests/test_interp_natural_neighbor.py +0 -0
  201. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/tests/test_interpolator_contracts.py +0 -0
  202. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/tests/test_jpcontour_methods.py +0 -0
  203. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/tests/test_man_cli.py +0 -0
  204. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/tests/test_method_contracts.py +0 -0
  205. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/tests/test_parse_data_metadata.py +0 -0
  206. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/tests/test_pathing_contracts.py +0 -0
  207. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/tests/test_posterior_hpd.py +0 -0
  208. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/tests/test_render_health.py +0 -0
  209. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/tests/test_row_ledger.py +0 -0
  210. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/tests/test_schema_catalog.py +0 -0
  211. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/tests/test_suggest.py +0 -0
  212. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/tests/test_suggest_axes.py +0 -0
  213. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/tests/test_template_catalog.py +0 -0
  214. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/tests/test_template_json.py +0 -0
  215. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/tests/test_transform_contracts.py +0 -0
  216. {jarvisplot-2.0.2 → jarvisplot-2.0.3}/tests/test_validate_no_matplotlib.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: JarvisPLOT
3
- Version: 2.0.2
3
+ Version: 2.0.3
4
4
  Summary: Jarvis-PLOT: YAML-driven plotting engine
5
5
  Requires-Python: >=3.10
6
6
  Description-Content-Type: text/markdown
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: JarvisPLOT
3
- Version: 2.0.2
3
+ Version: 2.0.3
4
4
  Summary: Jarvis-PLOT: YAML-driven plotting engine
5
5
  Requires-Python: >=3.10
6
6
  Description-Content-Type: text/markdown
@@ -15,7 +15,8 @@ Two rules keep this honest:
15
15
  derived from the registry, card directory or schema that the runtime actually
16
16
  consults, and ``tests/test_capabilities.py`` fails if the two drift apart.
17
17
  - **Stay cheap.** Agents call this constantly, so the collectors read JSON and
18
- module-level dicts; nothing here imports matplotlib.
18
+ module-level dicts. The cmap collector also inspects Matplotlib's live
19
+ registry because agents may need the complete built-in cmap vocabulary.
19
20
  """
20
21
 
21
22
  from __future__ import annotations
@@ -226,9 +227,42 @@ def _cmaps() -> dict[str, Any]:
226
227
  for entry in entries
227
228
  if isinstance(entry, dict) and entry.get("name")
228
229
  )
230
+ jarvis_and_reversed = set(names) | {f"{name}_r" for name in names}
231
+ matplotlib_entries: list[dict[str, Any]] = []
232
+ try:
233
+ from matplotlib import colormaps
234
+
235
+ matplotlib_names = sorted(
236
+ str(name) for name in colormaps if str(name) not in jarvis_and_reversed
237
+ )
238
+ matplotlib_registry = set(str(name) for name in colormaps)
239
+ for name in matplotlib_names:
240
+ cmap = colormaps[name]
241
+ if name.endswith("_r") and name[:-2] in matplotlib_registry:
242
+ reverse = name[:-2]
243
+ elif f"{name}_r" in matplotlib_registry:
244
+ reverse = f"{name}_r"
245
+ else:
246
+ reverse = None
247
+ samples = getattr(cmap, "N", None)
248
+ matplotlib_entries.append(
249
+ {
250
+ "name": name,
251
+ "type": type(cmap).__name__,
252
+ "N": int(samples) if isinstance(samples, int) else samples,
253
+ "reverse": reverse,
254
+ }
255
+ )
256
+ matplotlib_note = (
257
+ "Matplotlib registry entries include the normal and _r reverse names."
258
+ )
259
+ except Exception as exc:
260
+ matplotlib_note = f"Matplotlib registry unavailable: {exc}"
229
261
  return {
230
262
  "jarvis": names,
231
263
  "jarvis_reversed": [f"{name}_r" for name in names],
264
+ "matplotlib": matplotlib_entries,
265
+ "matplotlib_note": matplotlib_note,
232
266
  "note": (
233
267
  "Every matplotlib colormap is also available. Jarvis colormaps are "
234
268
  "registered from cards/colors/colormaps.json; each has an _r reverse."
@@ -65,6 +65,7 @@ human:
65
65
  title: Rules
66
66
  items:
67
67
  - Never invent method, style, or cmap strings — use jplot cap.
68
+ - 'Write scalar-only leaf lists/maps in compact flow style: xlim: [0.1, 5.0] and labels: {x: $x$, y: $y$}; keep complex parent structures expanded.'
68
69
  - Bare path renders: jplot plot.yaml (there is no jplot run).
69
70
  - Optional tools: suggest, config set/expand — not the main author path.
70
71
  - Need layers control: jplot config expand plot.yaml --figure NAME --write
@@ -72,7 +73,7 @@ agent:
72
73
  body_markdown: |
73
74
  ## Full agent playbook
74
75
  1. **Discover** — `data describe` + `cap` subsets.
75
- 2. **Author** — edit `*.yaml` in the workspace (type macros preferred).
76
+ 2. **Author** — edit `*.yaml` in the workspace (type macros preferred); write scalar-only leaf lists/maps in compact flow style, e.g. `xlim: [0.1, 5.0]` and `labels: {x: $x$, y: $y$}`.
76
77
  3. **Judge (light only)** — `validate` / `doctor --json`. No heavy re-run; partial on type: is OK.
77
78
  4. **Execute once** — `jplot <file>` for PNG/PDF + agent_output digest.
78
79
  5. **Learn** — `explain JP-*` or `man diagnostics`; figure content from digest, not doctor mesh.
@@ -7,6 +7,8 @@ from __future__ import annotations
7
7
  from copy import deepcopy
8
8
  from typing import Any
9
9
 
10
+ from .yaml_io import dump_yaml_doc
11
+
10
12
  __all__ = [
11
13
  "TEMPLATE_KINDS",
12
14
  "get_template",
@@ -42,20 +44,13 @@ def get_template(kind: str) -> dict[str, Any]:
42
44
 
43
45
  def render_template_yaml(kind: str, *, values: dict[str, Any] | None = None) -> str:
44
46
  """Fill slot defaults with ``values`` and return YAML text."""
45
- import yaml
46
-
47
47
  spec = get_template(kind)
48
48
  slots = {s["name"]: s.get("default") for s in spec.get("slots") or []}
49
49
  if values:
50
50
  slots.update({k: v for k, v in values.items() if v is not None})
51
51
  body = deepcopy(spec["skeleton"])
52
52
  _apply_slots(body, slots)
53
- return yaml.safe_dump(
54
- body,
55
- sort_keys=False,
56
- allow_unicode=True,
57
- default_flow_style=False,
58
- )
53
+ return dump_yaml_doc(body, meta={"engine": "pyyaml"})
59
54
 
60
55
 
61
56
  def _apply_slots(node: Any, slots: dict[str, Any]) -> None: