jarvisplot 2.0.0__tar.gz → 2.0.1__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 (214) hide show
  1. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/JarvisPLOT.egg-info/PKG-INFO +1 -1
  2. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/PKG-INFO +1 -1
  3. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/cards/flowchart/default.json +1 -1
  4. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/flowchart.py +21 -5
  5. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/pyproject.toml +1 -1
  6. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/tests/test_flowchart_renderer.py +64 -1
  7. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/JarvisPLOT.egg-info/SOURCES.txt +0 -0
  8. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/JarvisPLOT.egg-info/dependency_links.txt +0 -0
  9. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/JarvisPLOT.egg-info/entry_points.txt +0 -0
  10. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/JarvisPLOT.egg-info/requires.txt +0 -0
  11. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/JarvisPLOT.egg-info/top_level.txt +0 -0
  12. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/README.md +0 -0
  13. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/Figure/__init__.py +0 -0
  14. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/Figure/adapters_rect.py +0 -0
  15. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/Figure/adapters_ternary.py +0 -0
  16. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/Figure/cards/std_axes_adapter_config.json +0 -0
  17. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/Figure/colorbar_runtime.py +0 -0
  18. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/Figure/config_runtime.py +0 -0
  19. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/Figure/data_pipelines.py +0 -0
  20. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/Figure/density_cell_runtime.py +0 -0
  21. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/Figure/design_runtime.py +0 -0
  22. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/Figure/dynesty_runtime.py +0 -0
  23. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/Figure/figure.py +0 -0
  24. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/Figure/figure_types.py +0 -0
  25. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/Figure/helper.py +0 -0
  26. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/Figure/interp_2d_runtime.py +0 -0
  27. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/Figure/interp_natural_neighbor.py +0 -0
  28. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/Figure/interp_natural_neighbor_exact.py +0 -0
  29. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/Figure/layer_runtime.py +0 -0
  30. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/Figure/layout_runtime.py +0 -0
  31. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/Figure/method_registry.py +0 -0
  32. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/Figure/posterior_density_runtime.py +0 -0
  33. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/Figure/posterior_hpd.py +0 -0
  34. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/Figure/posterior_mesh.py +0 -0
  35. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/Figure/preprocessor.py +0 -0
  36. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/Figure/preprocessor_runtime.py +0 -0
  37. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/Figure/profile_runtime.py +0 -0
  38. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/Figure/style_runtime.py +0 -0
  39. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/__init__.py +0 -0
  40. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/agent_digest.py +0 -0
  41. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/agent_io.py +0 -0
  42. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/cache_store.py +0 -0
  43. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/capabilities.py +0 -0
  44. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/cards/a4paper/1x1/ternary.json +0 -0
  45. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/cards/a4paper/2x1/dynesty_runplot.json +0 -0
  46. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/cards/a4paper/2x1/rect.json +0 -0
  47. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/cards/a4paper/2x1/rect5x1.json +0 -0
  48. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/cards/a4paper/2x1/rect_cmap.json +0 -0
  49. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/cards/a4paper/2x1/ternary.json +0 -0
  50. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/cards/a4paper/2x1/ternary_cmap.json +0 -0
  51. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/cards/a4paper/4x1/rect.json +0 -0
  52. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/cards/a4paper/4x1/rect_cmap.json +0 -0
  53. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/cards/a4paper/4x1/ternary.json +0 -0
  54. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/cards/a4paper/4x1/ternary_cmap.json +0 -0
  55. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/cards/args.json +0 -0
  56. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/cards/colors/colormaps.json +0 -0
  57. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/cards/default/output.json +0 -0
  58. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/cards/gambit/1x1/ternary.json +0 -0
  59. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/cards/gambit/2x1/rect_cmap.json +0 -0
  60. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/cards/gambit/2x1/ternary.json +0 -0
  61. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/cards/gambit/2x1/ternary_cmap.json +0 -0
  62. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/cards/icons/JarvisHEP.png +0 -0
  63. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/cards/icons/flowchart/JarvisHEP.png +0 -0
  64. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/cards/icons/flowchart/calculator.png +0 -0
  65. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/cards/icons/flowchart/inputfile.png +0 -0
  66. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/cards/icons/flowchart/opera.png +0 -0
  67. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/cards/icons/flowchart/outputfile.png +0 -0
  68. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/cards/icons/flowchart/sampler.png +0 -0
  69. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/cards/icons/gambit.png +0 -0
  70. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/cards/icons/gambit_small.png +0 -0
  71. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/cards/style_preference.json +0 -0
  72. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/cli.py +0 -0
  73. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/cli_help.py +0 -0
  74. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/client.py +0 -0
  75. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/column_demand.py +0 -0
  76. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/column_probe.py +0 -0
  77. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/config.py +0 -0
  78. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/config_address.py +0 -0
  79. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/core.py +0 -0
  80. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/core_assets.py +0 -0
  81. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/core_runtime.py +0 -0
  82. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/data_access.py +0 -0
  83. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/data_loader.py +0 -0
  84. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/data_loader_hdf5.py +0 -0
  85. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/data_loader_runtime.py +0 -0
  86. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/data_loader_summary.py +0 -0
  87. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/diagnostic_guidance.py +0 -0
  88. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/diagnostics.py +0 -0
  89. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/dryrun_runtime.py +0 -0
  90. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/expr_names.py +0 -0
  91. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/fix_apply.py +0 -0
  92. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/inner_func.py +0 -0
  93. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/man_catalog.py +0 -0
  94. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/man_methods.py +0 -0
  95. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/man_render_agent.py +0 -0
  96. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/man_render_human.py +0 -0
  97. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/man_transforms.py +0 -0
  98. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/manual_cards/agent-output.yaml +0 -0
  99. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/manual_cards/cli-map.yaml +0 -0
  100. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/manual_cards/data-columns.yaml +0 -0
  101. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/manual_cards/diagnostics.yaml +0 -0
  102. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/manual_cards/dryrun-viz.yaml +0 -0
  103. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/manual_cards/layer-method.yaml +0 -0
  104. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/manual_cards/manifest.yaml +0 -0
  105. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/manual_cards/method_notes.yaml +0 -0
  106. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/manual_cards/style-axes.yaml +0 -0
  107. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/manual_cards/type-posterior-2d.yaml +0 -0
  108. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/manual_cards/type-profile-2d.yaml +0 -0
  109. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/manual_cards/validate.yaml +0 -0
  110. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/manual_cards/workflow.yaml +0 -0
  111. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/manual_cards/yaml-root.yaml +0 -0
  112. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/memtrace.py +0 -0
  113. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/method_contracts.py +0 -0
  114. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/render_health.py +0 -0
  115. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/schema/core/common.json +0 -0
  116. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/schema/core/dataset.json +0 -0
  117. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/schema/core/figure.json +0 -0
  118. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/schema/core/layer.json +0 -0
  119. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/schema/core/transform.json +0 -0
  120. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/schema/manifest.json +0 -0
  121. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/schema/methods/bar.json +0 -0
  122. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/schema/methods/barh.json +0 -0
  123. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/schema/methods/contour.json +0 -0
  124. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/schema/methods/contourf.json +0 -0
  125. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/schema/methods/dynesty_runplot.json +0 -0
  126. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/schema/methods/errorbar.json +0 -0
  127. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/schema/methods/fill.json +0 -0
  128. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/schema/methods/fill_between.json +0 -0
  129. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/schema/methods/fill_betweenx.json +0 -0
  130. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/schema/methods/hist.json +0 -0
  131. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/schema/methods/imshow.json +0 -0
  132. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/schema/methods/jpcontour.json +0 -0
  133. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/schema/methods/jpcontourf.json +0 -0
  134. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/schema/methods/jpfield.json +0 -0
  135. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/schema/methods/pcolor.json +0 -0
  136. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/schema/methods/pcolormesh.json +0 -0
  137. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/schema/methods/plot.json +0 -0
  138. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/schema/methods/quiver.json +0 -0
  139. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/schema/methods/scatter.json +0 -0
  140. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/schema/methods/step.json +0 -0
  141. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/schema/methods/tricontour.json +0 -0
  142. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/schema/methods/tricontourf.json +0 -0
  143. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/schema/methods/tripcolor.json +0 -0
  144. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/schema/methods/tripcolor_axes.json +0 -0
  145. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/schema/methods/triplot.json +0 -0
  146. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/schema/methods/voronoi.json +0 -0
  147. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/schema/methods/voronoif.json +0 -0
  148. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/schema/plot-config.json +0 -0
  149. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/schema_catalog.py +0 -0
  150. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/schema_diagnostics.py +0 -0
  151. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/templates_catalog.py +0 -0
  152. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/transform_contracts.py +0 -0
  153. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/utils/__init__.py +0 -0
  154. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/utils/cmaps.py +0 -0
  155. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/utils/dataframes.py +0 -0
  156. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/utils/expression.py +0 -0
  157. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/utils/interpolator.py +0 -0
  158. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/utils/pathing.py +0 -0
  159. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/validation.py +0 -0
  160. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/verbs/__init__.py +0 -0
  161. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/verbs/cap.py +0 -0
  162. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/verbs/config_cmd.py +0 -0
  163. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/verbs/data.py +0 -0
  164. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/verbs/doctor.py +0 -0
  165. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/verbs/dryrun.py +0 -0
  166. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/verbs/explain.py +0 -0
  167. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/verbs/man.py +0 -0
  168. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/verbs/suggest.py +0 -0
  169. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/verbs/template.py +0 -0
  170. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/verbs/validate.py +0 -0
  171. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/jarvisplot/yaml_io.py +0 -0
  172. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/setup.cfg +0 -0
  173. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/tests/test_agent_digest.py +0 -0
  174. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/tests/test_agent_envelope.py +0 -0
  175. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/tests/test_axis_title.py +0 -0
  176. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/tests/test_capabilities.py +0 -0
  177. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/tests/test_cli_help.py +0 -0
  178. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/tests/test_cli_verbs.py +0 -0
  179. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/tests/test_cmaps.py +0 -0
  180. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/tests/test_column_existence.py +0 -0
  181. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/tests/test_config_addressing.py +0 -0
  182. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/tests/test_config_edit.py +0 -0
  183. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/tests/test_config_expand.py +0 -0
  184. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/tests/test_data_access.py +0 -0
  185. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/tests/test_data_describe.py +0 -0
  186. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/tests/test_data_head_eval.py +0 -0
  187. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/tests/test_data_loader_contracts.py +0 -0
  188. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/tests/test_data_pipelines.py +0 -0
  189. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/tests/test_density_cell_transform.py +0 -0
  190. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/tests/test_diagnostic_guidance.py +0 -0
  191. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/tests/test_docs_status_labels.py +0 -0
  192. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/tests/test_doctor_partial.py +0 -0
  193. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/tests/test_explain.py +0 -0
  194. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/tests/test_figure_contracts.py +0 -0
  195. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/tests/test_figure_type_expander.py +0 -0
  196. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/tests/test_fix_application.py +0 -0
  197. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/tests/test_interp_2d_transform.py +0 -0
  198. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/tests/test_interp_natural_neighbor.py +0 -0
  199. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/tests/test_interpolator_contracts.py +0 -0
  200. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/tests/test_jpcontour_methods.py +0 -0
  201. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/tests/test_man_cli.py +0 -0
  202. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/tests/test_method_contracts.py +0 -0
  203. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/tests/test_parse_data_metadata.py +0 -0
  204. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/tests/test_pathing_contracts.py +0 -0
  205. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/tests/test_posterior_hpd.py +0 -0
  206. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/tests/test_render_health.py +0 -0
  207. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/tests/test_row_ledger.py +0 -0
  208. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/tests/test_schema_catalog.py +0 -0
  209. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/tests/test_suggest.py +0 -0
  210. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/tests/test_suggest_axes.py +0 -0
  211. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/tests/test_template_catalog.py +0 -0
  212. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/tests/test_template_json.py +0 -0
  213. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/tests/test_transform_contracts.py +0 -0
  214. {jarvisplot-2.0.0 → jarvisplot-2.0.1}/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.0
3
+ Version: 2.0.1
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.0
3
+ Version: 2.0.1
4
4
  Summary: Jarvis-PLOT: YAML-driven plotting engine
5
5
  Requires-Python: >=3.10
6
6
  Description-Content-Type: text/markdown
@@ -14,7 +14,7 @@
14
14
  "variable_dx": 2.55,
15
15
  "input_variable_dx": 2.55,
16
16
  "output_variable_dx": 3.25,
17
- "bridge_y_offset": 0.45,
17
+ "bridge_y_offset": 0.55,
18
18
  "bridge_output_pad": 0.18,
19
19
  "module_icon_size": 0.9,
20
20
  "module_label_dy": -0.45,
@@ -412,6 +412,7 @@ class _ClassicGraph:
412
412
  self.output_variable_dx = float(self.classic.get("output_variable_dx", self.variable_dx))
413
413
  self.bridge_y_offset = float(self.classic.get("bridge_y_offset", 0.45))
414
414
  self.bridge_output_pad = float(self.classic.get("bridge_output_pad", 0.18))
415
+ self.module_icon_size = float(self.classic.get("module_icon_size", 0.9))
415
416
  self.mains: dict[str, dict] = {}
416
417
  self.files: dict[str, dict] = {}
417
418
  self.variables: dict[str, dict] = {}
@@ -585,7 +586,7 @@ class _ClassicGraph:
585
586
  y = cursor - height / 2.0
586
587
  self._place_main_group(main_id, x, y, height)
587
588
  cursor -= height + self.group_gap
588
- self._place_standalone_bridges(layer_id, x, max_height)
589
+ self._place_standalone_bridges(layer_id, x, max_height, layer_groups.get(layer_id, []))
589
590
 
590
591
  self._place_unpositioned_variables(max_height)
591
592
  self._compute_bounds(max_height)
@@ -704,11 +705,20 @@ class _ClassicGraph:
704
705
  self._place_variable(var_id, x - self.input_variable_dx, y, align="right")
705
706
  self._place_variables(self._direct_output_variables(main_id), x + self.output_variable_dx, y, align="right")
706
707
 
707
- def _place_standalone_bridges(self, layer_id: str, x: float, max_height: float) -> None:
708
+ def _place_standalone_bridges(self, layer_id: str, x: float, max_height: float, main_ids: list[str]) -> None:
708
709
  bridges = self._standalone_bridges(layer_id)
709
710
  if not bridges:
710
711
  return
711
- ys = self._spread_y(max_height / 2.0 + self.bridge_y_offset, len(bridges), self.var_gap)
712
+ main_items = [self.mains[main_id] for main_id in main_ids if main_id in self.mains]
713
+ if main_items:
714
+ module_top = max(item["pos"][1] + self.module_icon_size / 2.0 for item in main_items)
715
+ lowest_bridge_y = module_top + self.bridge_y_offset
716
+ ys = [
717
+ lowest_bridge_y + (len(bridges) - 1 - idx) * self.var_gap
718
+ for idx in range(len(bridges))
719
+ ]
720
+ else:
721
+ ys = self._spread_y(max_height / 2.0 + self.bridge_y_offset, len(bridges), self.var_gap)
712
722
  for node_id, y in zip(bridges, ys):
713
723
  label = str(self.nodes[node_id].get("label") or "")
714
724
  self.bridges[node_id] = {
@@ -823,12 +833,18 @@ class _ClassicGraph:
823
833
  return [str(node_id) for node_id in layer.get("nodes", [])]
824
834
  return []
825
835
 
826
- def _bridge_order_key(self, bridge_id: str) -> tuple[int, int, str]:
836
+ def _bridge_order_key(self, bridge_id: str) -> tuple[float, float, str]:
827
837
  source_id = None
828
838
  for edge in self.edges:
829
839
  if str(edge.get("target", {}).get("node")) == bridge_id:
830
840
  source_id = str(edge.get("source", {}).get("node"))
831
841
  break
842
+
843
+ source_item = self.variables.get(source_id or "") or self.bridges.get(source_id or "")
844
+ if source_item is not None:
845
+ # Preserve the actual top-to-bottom order of the previous layer.
846
+ return (0.0, -float(source_item["pos"][1]), bridge_id)
847
+
832
848
  source_node = self.nodes.get(source_id or "")
833
849
  source_layer = str(source_node.get("layer", "")) if isinstance(source_node, Mapping) else ""
834
850
  layer_ids = self._layer_node_ids(source_layer)
@@ -841,7 +857,7 @@ class _ClassicGraph:
841
857
  if str(layer.get("id")) == source_layer:
842
858
  layer_pos = idx
843
859
  break
844
- return (layer_pos, source_pos, bridge_id)
860
+ return (float(layer_pos + 1), float(source_pos), bridge_id)
845
861
 
846
862
  def _incoming_variables(self, target_id: str) -> list[str]:
847
863
  return self._unique(
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "JarvisPLOT"
7
- version = "2.0.0"
7
+ version = "2.0.1"
8
8
  description = "Jarvis-PLOT: YAML-driven plotting engine"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -158,7 +158,10 @@ def test_flowchart_synthesizes_missing_bridge_for_cross_layer_file_input():
158
158
  ],
159
159
  }
160
160
 
161
- graph = _ClassicGraph(scene, {"classic": {"synthesize_missing_bridges": True}})
161
+ graph = _ClassicGraph(
162
+ scene,
163
+ {"classic": {"synthesize_missing_bridges": True, "bridge_y_offset": 0.6}},
164
+ )
162
165
 
163
166
  bridge_id = "bridge::x::L2"
164
167
  assert bridge_id in graph.nodes
@@ -181,6 +184,66 @@ def test_flowchart_synthesizes_missing_bridge_for_cross_layer_file_input():
181
184
  for edge in graph.edges
182
185
  )
183
186
 
187
+ graph.layout()
188
+ module_top = graph.mains["FirstModule"]["pos"][1] + graph.module_icon_size / 2.0
189
+ bridge_y = graph.bridges[bridge_id]["pos"][1]
190
+ assert abs(bridge_y - module_top - 0.6) < 1e-9
191
+
192
+
193
+ def test_flowchart_orders_bridge_chain_by_previous_layer_y_position():
194
+ scene = {
195
+ "schema": "jarvisplot.scene/v1",
196
+ "scene_type": "flowchart",
197
+ "layers": [
198
+ {"id": "layer_1", "index": 1, "nodes": ["Parameters", "var::top", "var::bottom"]},
199
+ {"id": "layer_2", "index": 2, "nodes": []},
200
+ {"id": "layer_3", "index": 3, "nodes": []},
201
+ {
202
+ "id": "layer_4",
203
+ "index": 4,
204
+ "nodes": ["FinalModule", "file::FinalModule::input::final_input"],
205
+ },
206
+ ],
207
+ "nodes": [
208
+ {"id": "Parameters", "kind": "source", "label": "Parameters", "layer": "layer_1"},
209
+ {"id": "var::top", "kind": "variable", "role": "parameter", "label": "top", "layer": "layer_1"},
210
+ {"id": "var::bottom", "kind": "variable", "role": "parameter", "label": "bottom", "layer": "layer_1"},
211
+ {"id": "FinalModule", "kind": "module", "label": "FinalModule", "layer": "layer_4"},
212
+ {
213
+ "id": "file::FinalModule::input::final_input",
214
+ "kind": "file",
215
+ "role": "input_file",
216
+ "label": "final_input",
217
+ "layer": "layer_4",
218
+ },
219
+ ],
220
+ "edges": [
221
+ {"source": {"node": "Parameters", "port": "top"}, "target": {"node": "var::top", "port": "in"}, "role": "parameterflow"},
222
+ {"source": {"node": "Parameters", "port": "bottom"}, "target": {"node": "var::bottom", "port": "in"}, "role": "parameterflow"},
223
+ {
224
+ "source": {"node": "var::bottom", "port": "out"},
225
+ "target": {"node": "file::FinalModule::input::final_input", "port": "in"},
226
+ "role": "fileflow",
227
+ "metadata": {"variable": "bottom"},
228
+ },
229
+ {
230
+ "source": {"node": "var::top", "port": "out"},
231
+ "target": {"node": "file::FinalModule::input::final_input", "port": "in"},
232
+ "role": "fileflow",
233
+ "metadata": {"variable": "top"},
234
+ },
235
+ ],
236
+ }
237
+
238
+ graph = _ClassicGraph(scene, {"classic": {"synthesize_missing_bridges": True}})
239
+ graph.layout()
240
+
241
+ layer_2_bridges = graph._standalone_bridges("layer_2")
242
+ layer_3_bridges = graph._standalone_bridges("layer_3")
243
+ assert layer_2_bridges == ["bridge::top::L2", "bridge::bottom::L2"]
244
+ assert layer_3_bridges == ["bridge::top::L3", "bridge::bottom::L3"]
245
+ assert graph.bridges["bridge::top::L3"]["pos"][1] > graph.bridges["bridge::bottom::L3"]["pos"][1]
246
+
184
247
 
185
248
  def test_flowchart_uses_triangle_for_file_output_variables():
186
249
  scene = {
File without changes
File without changes
File without changes