jarvisplot 2.1.10__tar.gz → 2.1.11__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.
- jarvisplot-2.1.11/CHANGELOG.md +61 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/Example/forest/README.md +1 -1
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/JarvisPLOT.egg-info/PKG-INFO +84 -27
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/JarvisPLOT.egg-info/SOURCES.txt +9 -59
- jarvisplot-2.1.11/MANIFEST.in +36 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/PKG-INFO +84 -27
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/README.md +83 -26
- jarvisplot-2.1.11/VERSION +1 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/Figure/config_runtime.py +6 -3
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/Figure/corr_layout.py +13 -6
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/Figure/corr_layout_diamond.py +3 -1
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/Figure/corrplot_runtime.py +29 -12
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/Figure/figure.py +17 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/Figure/forest_runtime.py +28 -23
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/agent_io.py +1 -1
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/cache_registry.py +17 -1
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/cards/args.json +12 -2
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/cards/corrplot/diamond.json +0 -1
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/cards/corrplot/matrix.json +0 -1
- jarvisplot-2.1.11/jarvisplot/cards/fonts/default.json +14 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/core_runtime.py +62 -4
- jarvisplot-2.1.11/jarvisplot/font_runtime.py +232 -0
- jarvisplot-2.1.11/jarvisplot/fonts.py +309 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/forest_contract.py +22 -7
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/forest_text.py +16 -4
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/legend_cards.py +8 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/manual_cards/agent-output.yaml +1 -1
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/manual_cards/agent-readme.yaml +20 -1
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/manual_cards/cache.yaml +2 -1
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/manual_cards/cli-map.yaml +5 -2
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/manual_cards/debug-overlay.yaml +1 -1
- jarvisplot-2.1.11/jarvisplot/manual_cards/fonts.yaml +156 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/manual_cards/legend.yaml +1 -1
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/manual_cards/manifest.yaml +4 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/manual_cards/style-axes.yaml +1 -1
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/manual_cards/workflow.yaml +1 -1
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/verbs/__init__.py +3 -1
- jarvisplot-2.1.11/jarvisplot/verbs/fonts.py +240 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/pyproject.toml +24 -1
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_cache_registry.py +32 -0
- jarvisplot-2.1.11/tests/test_font_runtime.py +227 -0
- jarvisplot-2.1.11/tests/test_fonts.py +139 -0
- jarvisplot-2.1.11/tests/test_fonts_cli.py +183 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_forest.py +10 -6
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_legend_cards.py +3 -1
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_release_contract.py +13 -3
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_schema_catalog.py +2 -1
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tools/check_release.py +5 -10
- jarvisplot-2.1.10/MANIFEST.in +0 -4
- jarvisplot-2.1.10/VERSION +0 -1
- jarvisplot-2.1.10/docs/README.md +0 -45
- jarvisplot-2.1.10/docs/archive/JARVIS_PLOT_CODE_REVIEW_2026-03-04.md +0 -130
- jarvisplot-2.1.10/docs/archive/README.md +0 -15
- jarvisplot-2.1.10/docs/context/CODEX_JARVIS_PLOT_STYLE.md +0 -154
- jarvisplot-2.1.10/docs/context/CODE_MAP_JARVIS_PLOT.md +0 -216
- jarvisplot-2.1.10/docs/context/JARVIS_PLOT_CONTEXT.md +0 -234
- jarvisplot-2.1.10/docs/context/JARVIS_PLOT_FRAMEWORK_LOGIC.md +0 -200
- jarvisplot-2.1.10/docs/context/README.md +0 -49
- jarvisplot-2.1.10/docs/design/ARCHITECTURE_OVERVIEW.md +0 -127
- jarvisplot-2.1.10/docs/design/DATAFLOW_ARCHITECTURE.md +0 -183
- jarvisplot-2.1.10/docs/design/LAYOUT_ENGINE_DESIGN.md +0 -59
- jarvisplot-2.1.10/docs/design/PROFILE_SYSTEM_DESIGN.md +0 -80
- jarvisplot-2.1.10/docs/design/README.md +0 -22
- jarvisplot-2.1.10/docs/design/STYLE_SYSTEM_DESIGN.md +0 -55
- jarvisplot-2.1.10/docs/design/YAML_DESIGN.md +0 -2230
- jarvisplot-2.1.10/docs/dev/AGENT_CLI_CLOSURE_AUDIT_2026-08-07.md +0 -206
- jarvisplot-2.1.10/docs/dev/AGENT_CLI_FULL_REVIEW_2026-08-06.md +0 -518
- jarvisplot-2.1.10/docs/dev/AGENT_OUTPUT_YAML_DESIGN.md +0 -408
- jarvisplot-2.1.10/docs/dev/CONTRIBUTION_GUIDE.md +0 -160
- jarvisplot-2.1.10/docs/dev/DEVELOPER_RULES.md +0 -130
- jarvisplot-2.1.10/docs/dev/MAN_CLI.md +0 -472
- jarvisplot-2.1.10/docs/dev/MEMORY_OPTIMIZATION_GUIDE.md +0 -132
- jarvisplot-2.1.10/docs/dev/MEMTRACE_SYSTEM.md +0 -159
- jarvisplot-2.1.10/docs/dev/README.md +0 -21
- jarvisplot-2.1.10/docs/dev/YAML_HUMAN_AI_OCCAM_REVIEW.md +0 -278
- jarvisplot-2.1.10/docs/release/README.md +0 -29
- jarvisplot-2.1.10/docs/release/RELEASE_PLAYBOOK.md +0 -27
- jarvisplot-2.1.10/docs/release/releases/README.md +0 -21
- jarvisplot-2.1.10/docs/release/releases/v1.2.6.md +0 -61
- jarvisplot-2.1.10/docs/release/releases/v2.1.10.md +0 -49
- jarvisplot-2.1.10/docs/release/releases/v2.1.6.md +0 -58
- jarvisplot-2.1.10/docs/release/releases/v2.1.9.md +0 -91
- jarvisplot-2.1.10/docs/roadmap/IMPLEMENTATION_ROADMAP.md +0 -192
- jarvisplot-2.1.10/docs/roadmap/README.md +0 -21
- jarvisplot-2.1.10/docs/roadmap/V2_AGENT_CLI_SURFACE.md +0 -489
- jarvisplot-2.1.10/docs/roadmap/V2_DEV_LEDGER.md +0 -772
- jarvisplot-2.1.10/docs/roadmap/V2_YAML_AGENT_ERGONOMICS.md +0 -339
- jarvisplot-2.1.10/docs/roadmap/soft-cooking-wilkinson.md +0 -385
- jarvisplot-2.1.10/docs/specs/AGENT_DATA_API.md +0 -207
- jarvisplot-2.1.10/docs/specs/CORRELATION_DIAMOND.md +0 -486
- jarvisplot-2.1.10/docs/specs/CORRELATION_MATRIX.md +0 -320
- jarvisplot-2.1.10/docs/specs/DYNESTY_RUNPLOT.md +0 -120
- jarvisplot-2.1.10/docs/specs/FOREST.md +0 -183
- jarvisplot-2.1.10/docs/specs/INTERP_2D.md +0 -176
- jarvisplot-2.1.10/docs/specs/LAYER_TYPE_REGISTRY.md +0 -35
- jarvisplot-2.1.10/docs/specs/LEGEND.md +0 -223
- jarvisplot-2.1.10/docs/specs/PDF_CDF_1D.md +0 -190
- jarvisplot-2.1.10/docs/specs/POSTERIOR_DENSITY.md +0 -174
- jarvisplot-2.1.10/docs/specs/PROFILE_SCHEMA.md +0 -88
- jarvisplot-2.1.10/docs/specs/README.md +0 -30
- jarvisplot-2.1.10/docs/specs/SCENE_JSON_SCHEMA.md +0 -706
- jarvisplot-2.1.10/docs/specs/STYLE_SCHEMA.md +0 -222
- jarvisplot-2.1.10/docs/specs/TRANSFORMS.md +0 -248
- jarvisplot-2.1.10/docs/templates/README.md +0 -14
- jarvisplot-2.1.10/docs/templates/profile.example.json +0 -16
- jarvisplot-2.1.10/docs/templates/scene.example.json +0 -76
- jarvisplot-2.1.10/docs/templates/style.example.json +0 -28
- jarvisplot-2.1.10/tests/test_docs_status_labels.py +0 -57
- jarvisplot-2.1.10/tests/test_template_json.py +0 -26
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/Example/forest/box.yaml +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/Example/forest/data/box.csv +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/Example/forest/data/forest-points.csv +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/Example/forest/data/forest-rows.csv +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/Example/forest/data/interval.csv +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/Example/forest/data/points.csv +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/Example/forest/data/summary-intervals.csv +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/Example/forest/data/summary-labels.csv +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/Example/forest/data/summary-points.csv +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/Example/forest/data/summary-rows.csv +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/Example/forest/interval.yaml +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/Example/forest/intervals-only.yaml +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/Example/forest/multi-interval.yaml +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/Example/forest/real-demo-debug.yaml +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/Example/forest/real-demo.yaml +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/JarvisPLOT.egg-info/dependency_links.txt +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/JarvisPLOT.egg-info/entry_points.txt +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/JarvisPLOT.egg-info/requires.txt +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/JarvisPLOT.egg-info/top_level.txt +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/Figure/__init__.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/Figure/adapters_rect.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/Figure/adapters_ternary.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/Figure/adaptive_cdf_runtime.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/Figure/bin_stat_runtime.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/Figure/cards/std_axes_adapter_config.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/Figure/colorbar_runtime.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/Figure/corr_order.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/Figure/correlation_runtime.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/Figure/data_pipelines.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/Figure/debug_config.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/Figure/density_cell_runtime.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/Figure/design_runtime.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/Figure/distribution_1d_runtime.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/Figure/dynesty_runtime.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/Figure/figure_types.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/Figure/forest_debug.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/Figure/forest_legend.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/Figure/helper.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/Figure/interp_2d_runtime.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/Figure/interp_natural_neighbor.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/Figure/interp_natural_neighbor_exact.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/Figure/layer_runtime.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/Figure/layout_runtime.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/Figure/legend_runtime.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/Figure/method_registry.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/Figure/posterior_density_runtime.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/Figure/posterior_hpd.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/Figure/posterior_mesh.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/Figure/preprocessor.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/Figure/preprocessor_runtime.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/Figure/profile_runtime.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/Figure/significance_runtime.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/Figure/style_runtime.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/__init__.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/agent_digest.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/cache_store.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/capabilities.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/cards/a4paper/1x1/ternary.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/cards/a4paper/2x1/dynesty_runplot.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/cards/a4paper/2x1/rect.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/cards/a4paper/2x1/rect5x1.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/cards/a4paper/2x1/rect_cmap.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/cards/a4paper/2x1/rect_marginal.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/cards/a4paper/2x1/rectratio.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/cards/a4paper/2x1/ternary.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/cards/a4paper/2x1/ternary_cmap.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/cards/a4paper/4x1/rect.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/cards/a4paper/4x1/rect_cmap.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/cards/a4paper/4x1/ternary.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/cards/a4paper/4x1/ternary_cmap.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/cards/colors/colormaps.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/cards/default/output.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/cards/flowchart/default.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/cards/forest/swiss_column.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/cards/gambit/1x1/ternary.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/cards/gambit/2x1/rect_cmap.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/cards/gambit/2x1/ternary.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/cards/gambit/2x1/ternary_cmap.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/cards/icons/JarvisHEP.png +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/cards/icons/flowchart/JarvisHEP.png +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/cards/icons/flowchart/calculator.png +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/cards/icons/flowchart/inputfile.png +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/cards/icons/flowchart/opera.png +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/cards/icons/flowchart/outputfile.png +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/cards/icons/flowchart/sampler.png +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/cards/icons/gambit.png +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/cards/icons/gambit_small.png +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/cards/legends/compact/legend-card.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/cards/legends/default/legend-card.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/cards/legends/paper/legend-card.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/cards/legends/presentation/legend-card.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/cards/style_preference.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/cli.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/cli_help.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/client.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/column_demand.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/column_probe.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/config.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/config_address.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/core.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/core_assets.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/data_access.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/data_generation_contracts.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/data_loader.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/data_loader_hdf5.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/data_loader_runtime.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/data_loader_summary.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/dataset_types.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/diagnostic_guidance.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/diagnostics.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/distribution_1d_config.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/dryrun_runtime.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/expr_names.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/fix_apply.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/flowchart.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/generated_data.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/inner_func.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/man_catalog.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/man_methods.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/man_render_agent.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/man_render_human.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/man_transforms.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/manual_cards/data-columns.yaml +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/manual_cards/diagnostics.yaml +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/manual_cards/dryrun-viz.yaml +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/manual_cards/field-interp.yaml +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/manual_cards/generated-data.yaml +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/manual_cards/layer-method.yaml +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/manual_cards/method_notes.yaml +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/manual_cards/type-correlation-matrix.yaml +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/manual_cards/type-forest.yaml +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/manual_cards/type-posterior-2d.yaml +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/manual_cards/type-profile-2d.yaml +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/manual_cards/validate.yaml +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/manual_cards/yaml-root.yaml +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/memtrace.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/method_contracts.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/render_health.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/schema/core/common.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/schema/core/dataset.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/schema/core/distribution-1d.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/schema/core/figure.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/schema/core/generated-data.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/schema/core/layer.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/schema/core/legend-card.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/schema/core/legend.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/schema/core/transform.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/schema/manifest.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/schema/methods/bar.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/schema/methods/barh.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/schema/methods/contour.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/schema/methods/contourf.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/schema/methods/corrplot.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/schema/methods/dynesty_runplot.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/schema/methods/errorbar.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/schema/methods/fill.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/schema/methods/fill_between.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/schema/methods/fill_betweenx.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/schema/methods/hist.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/schema/methods/hist2d.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/schema/methods/imshow.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/schema/methods/jpcontour.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/schema/methods/jpcontourf.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/schema/methods/jpfield.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/schema/methods/pcolor.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/schema/methods/pcolormesh.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/schema/methods/plot.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/schema/methods/quiver.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/schema/methods/scatter.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/schema/methods/stairs.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/schema/methods/step.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/schema/methods/tricontour.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/schema/methods/tricontourf.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/schema/methods/tripcolor.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/schema/methods/tripcolor_axes.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/schema/methods/triplot.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/schema/methods/voronoi.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/schema/methods/voronoif.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/schema/plot-config.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/schema/types/forest.json +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/schema_catalog.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/schema_diagnostics.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/templates_catalog.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/transform_contracts.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/utils/__init__.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/utils/cmaps.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/utils/dataframes.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/utils/expression.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/utils/interpolator.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/utils/pathing.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/validation.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/verbs/cache.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/verbs/cap.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/verbs/config_cmd.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/verbs/data.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/verbs/doctor.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/verbs/dryrun.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/verbs/explain.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/verbs/man.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/verbs/suggest.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/verbs/template.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/verbs/validate.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/version.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/jarvisplot/yaml_io.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/setup.cfg +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_adaptive_cdf.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_add_column.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_agent_digest.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_agent_envelope.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_axis_title.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_cache_cleanup.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_capabilities.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_card_debug_shape.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_cli_help.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_cli_verbs.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_cmaps.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_column_existence.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_column_pruning.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_config_addressing.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_config_edit.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_config_expand.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_correlation_runtime.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_corrplot.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_data_access.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_data_describe.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_data_head_eval.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_data_loader_contracts.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_data_pipelines.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_debug_config.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_debug_switches.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_debug_yaml_override.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_density_cell_transform.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_design_runtime.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_diagnostic_guidance.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_distribution_1d_transform.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_doctor_partial.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_examples_validate.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_explain.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_expression_semantics.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_figure_contracts.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_figure_type_expander.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_fix_application.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_flowchart_renderer.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_forest_examples.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_forest_text.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_generated_data.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_imshow_adapter.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_interp_2d_transform.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_interp_natural_neighbor.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_interpolator_contracts.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_jpcontour_methods.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_layer_legend.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_legend_runtime.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_man_cli.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_method_contracts.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_parse_data_metadata.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_pathing_contracts.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_posterior_hpd.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_profile_runtime.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_render_health.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_render_lifecycle.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_row_ledger.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_savefig_provenance.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_suggest.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_suggest_axes.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_template_catalog.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_ternary_debug.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_transform_contracts.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_validate_no_matplotlib.py +0 -0
- {jarvisplot-2.1.10 → jarvisplot-2.1.11}/tests/test_version.py +0 -0
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
Release history of the `JarvisPLOT` distribution (import package `jarvisplot`,
|
|
4
|
+
CLI `jplot`). Design documents, specifications and the roadmap live 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.11 — 2026-10-18
|
|
8
|
+
|
|
9
|
+
- Exclude maintainer release helpers, local configuration, credentials, and
|
|
10
|
+
generated files from distribution archives.
|
|
11
|
+
|
|
12
|
+
- `./jprel X.Y.Z` now completes PyPI upload, local editable install, Git tag,
|
|
13
|
+
and GitHub release. `--dry` checks inputs without changing the checkout.
|
|
14
|
+
- Remove private research cards and scripts under `bin/` from version control
|
|
15
|
+
and distribution archives; public examples remain under `Example/`.
|
|
16
|
+
- Cache cleanup removes empty registered cache directories whose marker is
|
|
17
|
+
missing, while retaining unmarked directories containing files.
|
|
18
|
+
- Font card: `jplot fonts show|list|resolve|check|set|reset` and
|
|
19
|
+
`jplot man fonts`. Normal YAML rendering applies the bundled role card
|
|
20
|
+
(Helvetica sans, STIXGeneral serif, STIX MathText); explicit YAML fonts and
|
|
21
|
+
sizes take precedence. Personal overrides live in
|
|
22
|
+
`~/.jarvis/plot-fonts.json` (`JARVIS_HOME` overrides the directory).
|
|
23
|
+
- When Helvetica is absent, the first installed of Arial, Liberation Sans,
|
|
24
|
+
Nimbus Sans and DejaVu Sans is used; `check` and `resolve` report the actual
|
|
25
|
+
font and the substitution reason.
|
|
26
|
+
- Cut descriptions take their MathText font from the font card by default.
|
|
27
|
+
- Documentation moved to Jarvis-Books; the repository keeps only `README.md`,
|
|
28
|
+
`CHANGELOG.md` and the example READMEs. The source distribution ships
|
|
29
|
+
`CHANGELOG.md` instead of a `docs/` tree, and `tools/check_release.py` checks
|
|
30
|
+
the latest `CHANGELOG.md` entry instead of the old release-note files.
|
|
31
|
+
|
|
32
|
+
## 2.1.10 — 2026-10-13
|
|
33
|
+
|
|
34
|
+
- Native forest figures read multi-interval CSV sources and mappings,
|
|
35
|
+
intervals-only rows, box/scatter coexistence and literal CSV value
|
|
36
|
+
annotations. Values are plotted as supplied, never computed.
|
|
37
|
+
- Explicit shared x ticks, independent of grid divisions.
|
|
38
|
+
- MathText needs `math: true`; formula fonts are STIX by default with DejaVu
|
|
39
|
+
Sans as an alternative, selected separately for legends and cut
|
|
40
|
+
descriptions. Header notes, paragraphs and formulas are preserved, and
|
|
41
|
+
layout uses the actual font, glyph and annotation bounds.
|
|
42
|
+
- TTC faces keep their weight and slant; an explicit font size governs
|
|
43
|
+
measurement.
|
|
44
|
+
- CLI, manuals, render reports and image metadata read the version from
|
|
45
|
+
`jarvisplot/version.py`. SVG output carries Dublin Core metadata; export
|
|
46
|
+
retries only on a backend's unsupported-metadata error and reports drawing
|
|
47
|
+
and I/O failures.
|
|
48
|
+
- Packaged AI README (`jplot man agent-readme --json`), schema, manual and
|
|
49
|
+
example updates.
|
|
50
|
+
- `tools/check_release.py` source, tag and wheel gates; the sdist includes the
|
|
51
|
+
native forest examples; CI runs Linux Python 3.10–3.13 and macOS 3.13.
|
|
52
|
+
|
|
53
|
+
Existing forest YAML needs no migration. Custom export metadata must use keys
|
|
54
|
+
the selected backend supports; invalid SVG keys are now reported.
|
|
55
|
+
|
|
56
|
+
## Earlier releases
|
|
57
|
+
|
|
58
|
+
See the [PyPI release history](https://pypi.org/project/JarvisPLOT/#history)
|
|
59
|
+
and [GitHub Releases](https://github.com/Pengxuan-Zhu-Phys/Jarvis-PLOT/releases).
|
|
60
|
+
Earlier release notes are archived in Jarvis-Books
|
|
61
|
+
`Docs/archive/Jarvis-PLOT/2026-10-17/docs/release/`.
|
|
@@ -54,7 +54,7 @@ The normal chart shows a shared top numerical axis and continuous vertical grid;
|
|
|
54
54
|
The default canvas is white, with no row shading, numbered metadata or legend heading. Point legend markers and their labels are left aligned using compact keys.
|
|
55
55
|
|
|
56
56
|
For a study previously using `jarvis_forest_preview`, install the formal project in the same
|
|
57
|
-
Python environment (`python -m pip install -e
|
|
57
|
+
Python environment (`python -m pip install -e .` from the Jarvis-PLOT repository root),
|
|
58
58
|
remove its preview path from the shell/launcher PYTHONPATH, and call the formal `jplot` on
|
|
59
59
|
the existing YAML. The native interface accepts the established `intervals`, annotation,
|
|
60
60
|
MathText, header_note and geometry keys; no task-specific names or data conversion are needed.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: JarvisPLOT
|
|
3
|
-
Version: 2.1.
|
|
3
|
+
Version: 2.1.11
|
|
4
4
|
Summary: Jarvis-PLOT: YAML-driven plotting engine
|
|
5
5
|
Requires-Python: >=3.10
|
|
6
6
|
Description-Content-Type: text/markdown
|
|
@@ -27,8 +27,8 @@ but it can also be used as a **standalone scientific plotting tool**.
|
|
|
27
27
|
|
|
28
28
|
It provides a simple command-line interface (CLI) to generate publication-quality figures from YAML configuration files, with most layout and style decisions handled by predefined profiles and style cards.
|
|
29
29
|
|
|
30
|
-
Current source candidate: **2.1.
|
|
31
|
-
|
|
30
|
+
Current source candidate: **2.1.11** (`jplot -v` reports the installed version).
|
|
31
|
+
Release history: [CHANGELOG.md](CHANGELOG.md). Design documents and specifications: [Jarvis-Books `Docs/Jarvis-PLOT/`](https://github.com/Pengxuan-Zhu-Phys/Jarvis-Books/blob/main/Docs/Jarvis-PLOT/README.md).
|
|
32
32
|
|
|
33
33
|
---
|
|
34
34
|
|
|
@@ -110,6 +110,39 @@ jplot doctor plot.yaml # validate + dryrun in one pass
|
|
|
110
110
|
|
|
111
111
|
Every one of these takes `--json`.
|
|
112
112
|
|
|
113
|
+
### Default fonts
|
|
114
|
+
|
|
115
|
+
The bundled font card recommends **Helvetica** for sans text and **STIXGeneral**
|
|
116
|
+
for serif text, with **STIX** MathText formulas. Normal YAML rendering applies
|
|
117
|
+
the card automatically; explicit YAML fonts and sizes take precedence.
|
|
118
|
+
When Helvetica is absent, Jarvis-PLOT selects the first installed similar family:
|
|
119
|
+
Arial, Liberation Sans, Nimbus Sans, then DejaVu Sans. `check` and `resolve`
|
|
120
|
+
report the actual font and substitution reason.
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
jplot fonts # role card: title, labels, ticks, legend, text, annotations, caption
|
|
124
|
+
jplot fonts show title --json # current defaults for one role
|
|
125
|
+
jplot fonts show --recommended --json
|
|
126
|
+
jplot fonts list --filter Helvetica --json
|
|
127
|
+
jplot fonts list --refresh --json # rescan after installing fonts
|
|
128
|
+
jplot fonts resolve Helvetica --weight bold --json
|
|
129
|
+
jplot fonts check --json # actual installed faces used by the card
|
|
130
|
+
jplot fonts set roles.title.family sans
|
|
131
|
+
jplot fonts set roles.legend.family serif
|
|
132
|
+
jplot fonts set roles.title.size_pt 9
|
|
133
|
+
jplot fonts set roles.title.size_pt null # inherit the plot style's size
|
|
134
|
+
jplot fonts reset roles.title.size_pt
|
|
135
|
+
jplot fonts reset # remove all personal overrides
|
|
136
|
+
jplot man fonts --json
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
Personal overrides persist in `~/.jarvis/plot-fonts.json` (`JARVIS_HOME` overrides
|
|
140
|
+
the directory). Queries never create that file. `size_pt: null` preserves the
|
|
141
|
+
plot style's canvas-specific size; `recommended_size_pt` is drafting advice.
|
|
142
|
+
Font discovery uses Matplotlib's cached system and bundled font index, while
|
|
143
|
+
TTC face selection preserves the requested weight and slant. `$...$` uses
|
|
144
|
+
MathText; an external LaTeX compiler has its own font configuration.
|
|
145
|
+
|
|
113
146
|
### Design-Reference Overlay
|
|
114
147
|
|
|
115
148
|
Set `debug: true` on a figure and Jarvis-PLOT draws a dimension overlay on top
|
|
@@ -127,7 +160,7 @@ Figures:
|
|
|
127
160
|
|
|
128
161
|
The style card's `Debug` block decides what the annotations look like and which
|
|
129
162
|
of them appear; a per-figure `debug:` mapping overrides the card for that figure
|
|
130
|
-
only. See `jplot man debug-overlay` and
|
|
163
|
+
only. See `jplot man debug-overlay` and [STYLE_SCHEMA.md](https://github.com/Pengxuan-Zhu-Phys/Jarvis-Books/blob/main/Docs/Jarvis-PLOT/specs/STYLE_SCHEMA.md).
|
|
131
164
|
|
|
132
165
|
> `Figures[].debug` is not the `jplot --debug` flag — the flag only raises the
|
|
133
166
|
> log level.
|
|
@@ -152,6 +185,9 @@ TTY** — piping is enough.
|
|
|
152
185
|
|
|
153
186
|
The loop `jplot man` prints is:
|
|
154
187
|
|
|
188
|
+
Before drafting, inspect `jplot fonts show --json` and `jplot fonts check --json`
|
|
189
|
+
for the typography defaults and actual installed font choices.
|
|
190
|
+
|
|
155
191
|
1. `jplot data describe <file> --json` — column names from the real file. Never
|
|
156
192
|
invent one; a wrong name is a hard error, not a warning.
|
|
157
193
|
2. `jplot cap methods|styles|cmaps|funcs|transforms|types --json` — the legal
|
|
@@ -175,13 +211,13 @@ with the same object regroup automatically using card templates such as
|
|
|
175
211
|
single-component object. `frame.<axes>.legend` owns card selection, `order`,
|
|
176
212
|
`ncols`, position and spacing. JSON cards provide
|
|
177
213
|
reusable defaults, and YAML can override them. See
|
|
178
|
-
[the legend contract](
|
|
214
|
+
[the legend contract](https://github.com/Pengxuan-Zhu-Phys/Jarvis-Books/blob/main/Docs/Jarvis-PLOT/specs/LEGEND.md) and the
|
|
179
215
|
[self-contained example](Example/compact_legend.yaml).
|
|
180
216
|
|
|
181
217
|
For continuous one-dimensional distributions from raw samples, use `PDF1D`
|
|
182
218
|
(CDF plus PDF) or `CDF1D` in a data transform. `coordinates.x` owns `expr`,
|
|
183
219
|
`lim`, and `grid`; optional `repeat` computes independent batch means and
|
|
184
|
-
standard deviations. See [the contract](
|
|
220
|
+
standard deviations. See [the contract](https://github.com/Pengxuan-Zhu-Phys/Jarvis-Books/blob/main/Docs/Jarvis-PLOT/specs/PDF_CDF_1D.md) and the
|
|
185
221
|
[runnable example](Example/pdf_cdf_1d.yaml).
|
|
186
222
|
Reconstruction defaults to adaptive true CDF anchors and `monotone_c2`
|
|
187
223
|
interpolation (C2 CDF / C1 PDF). Set `anchors: all` and `interpolation: pchip`
|
|
@@ -192,7 +228,7 @@ Two things worth knowing before trusting a config:
|
|
|
192
228
|
- `jplot validate` checks shape and contracts and never touches the data;
|
|
193
229
|
`jplot dryrun` loads the data and reports the row ledger and JP-VIZ render
|
|
194
230
|
health. Passing the first says nothing about the second.
|
|
195
|
-
-
|
|
231
|
+
- [AGENT_DATA_API.md](https://github.com/Pengxuan-Zhu-Phys/Jarvis-Books/blob/main/Docs/Jarvis-PLOT/specs/AGENT_DATA_API.md) describes a *different*, still-frozen bridge
|
|
196
232
|
(a numeric digest channel for Jarvis-Agent). The surface above is what ships
|
|
197
233
|
today.
|
|
198
234
|
|
|
@@ -249,24 +285,26 @@ multiple directory trees; overlapping selections are deduplicated. Use
|
|
|
249
285
|
All cache subcommands accept `--json` and use the existing CLI envelope and
|
|
250
286
|
exit codes (0 success/partial, 1 failure, 2 usage). Non-TTY stdout defaults to
|
|
251
287
|
JSON; human results go to stderr. Active caches are skipped (`ok: null` when
|
|
252
|
-
the remaining operation succeeds), and records for missing paths
|
|
253
|
-
|
|
288
|
+
the remaining operation succeeds), and records for missing paths or unmarked
|
|
289
|
+
`.cache` directories containing only empty Jarvis-PLOT component directories
|
|
290
|
+
are pruned during cleanup. Only marked
|
|
291
|
+
Jarvis-PLOT components are removed; source data,
|
|
254
292
|
plots, and unrelated `.cache` content are retained. Failed deletions retain
|
|
255
|
-
their registry entries
|
|
293
|
+
their registry entries; nonempty unmarked directories remain invalid and are
|
|
294
|
+
not deleted. Scanning adopts legacy caches only when the four
|
|
256
295
|
pipeline directories and a compatible `manifest.json` identify them; old
|
|
257
296
|
unmarked twin-only directories need a new `dryrun --with-data` run to register.
|
|
258
297
|
An explicitly supplied `--out-dir` is an export directory and is not registered.
|
|
259
298
|
Concurrent registry writes use a lock and atomic replacement. Registration
|
|
260
299
|
failures warn without preventing rendering.
|
|
261
300
|
|
|
262
|
-
### Example:
|
|
301
|
+
### Example: Ternary Layouts
|
|
263
302
|
|
|
264
303
|
```bash
|
|
265
|
-
jplot ./
|
|
266
|
-
jplot ./bin/SUSYRun2_GEWMSSM.yaml
|
|
304
|
+
jplot ./Example/gambit_2x1.yaml
|
|
267
305
|
```
|
|
268
306
|
|
|
269
|
-
|
|
307
|
+
This layout reference uses bundled style cards and renders without external data.
|
|
270
308
|
|
|
271
309
|
### Example: Dynesty Runplot
|
|
272
310
|
|
|
@@ -288,7 +326,7 @@ Figures:
|
|
|
288
326
|
- dynesty_runplot
|
|
289
327
|
```
|
|
290
328
|
|
|
291
|
-
See
|
|
329
|
+
See [DYNESTY_RUNPLOT.md](https://github.com/Pengxuan-Zhu-Phys/Jarvis-Books/blob/main/Docs/Jarvis-PLOT/specs/DYNESTY_RUNPLOT.md) for the default axes, KDE, scatter overlay,
|
|
292
330
|
and evidence summary behavior.
|
|
293
331
|
|
|
294
332
|
---
|
|
@@ -330,19 +368,19 @@ and evidence summary behavior.
|
|
|
330
368
|
### Documentation
|
|
331
369
|
[https://pengxuan-zhu-phys.github.io/Jarvis-Docs/](https://pengxuan-zhu-phys.github.io/Jarvis-Docs/)
|
|
332
370
|
|
|
333
|
-
###
|
|
371
|
+
### Project Docs
|
|
334
372
|
|
|
335
|
-
|
|
373
|
+
This repository keeps only `README.md` and `CHANGELOG.md`. Design documents,
|
|
374
|
+
specifications and the roadmap live in Jarvis-Books:
|
|
336
375
|
|
|
337
|
-
-
|
|
338
|
-
-
|
|
339
|
-
-
|
|
340
|
-
-
|
|
341
|
-
-
|
|
342
|
-
-
|
|
343
|
-
-
|
|
344
|
-
-
|
|
345
|
-
- `docs/dev/MEMORY_OPTIMIZATION_GUIDE.md` - narrow-table memory notes
|
|
376
|
+
- [Doc index](https://github.com/Pengxuan-Zhu-Phys/Jarvis-Books/blob/main/Docs/Jarvis-PLOT/README.md)
|
|
377
|
+
- [JARVIS_PLOT_CONTEXT.md](https://github.com/Pengxuan-Zhu-Phys/Jarvis-Books/blob/main/Docs/Jarvis-PLOT/context/JARVIS_PLOT_CONTEXT.md) - project boundary; read before changing code
|
|
378
|
+
- [CODE_MAP_JARVIS_PLOT.md](https://github.com/Pengxuan-Zhu-Phys/Jarvis-Books/blob/main/Docs/Jarvis-PLOT/context/CODE_MAP_JARVIS_PLOT.md) - code owner map
|
|
379
|
+
- [JARVIS_PLOT_FRAMEWORK_LOGIC.md](https://github.com/Pengxuan-Zhu-Phys/Jarvis-Books/blob/main/Docs/Jarvis-PLOT/context/JARVIS_PLOT_FRAMEWORK_LOGIC.md) - runtime execution contract
|
|
380
|
+
- [IMPLEMENTATION_ROADMAP.md](https://github.com/Pengxuan-Zhu-Phys/Jarvis-Books/blob/main/Docs/Jarvis-PLOT/roadmap/IMPLEMENTATION_ROADMAP.md) - open work
|
|
381
|
+
- [RELEASING.md](https://github.com/Pengxuan-Zhu-Phys/Jarvis-Books/blob/main/Docs/Jarvis-PLOT/release/RELEASING.md) - versioning, `tools/check_release.py` and CI verification
|
|
382
|
+
- [STYLE_SCHEMA.md](https://github.com/Pengxuan-Zhu-Phys/Jarvis-Books/blob/main/Docs/Jarvis-PLOT/specs/STYLE_SCHEMA.md) - style card contract, including the `Debug` overlay block
|
|
383
|
+
- [DEVELOPER_RULES.md](https://github.com/Pengxuan-Zhu-Phys/Jarvis-Books/blob/main/Docs/Jarvis-PLOT/dev/DEVELOPER_RULES.md) - pipeline and cache rules
|
|
346
384
|
|
|
347
385
|
Read the context docs and roadmap before changing parsing, transforms, rendering, or layout-related behavior.
|
|
348
386
|
|
|
@@ -352,6 +390,25 @@ Read the context docs and roadmap before changing parsing, transforms, rendering
|
|
|
352
390
|
|
|
353
391
|
MIT License
|
|
354
392
|
|
|
355
|
-
Create a continuous forest figure with `type: forest`, a generic row table, optional points and multiple supplied intervals per row. Native YAML supports class-specific interval lanes, CSV value annotations, explicit `x.ticks`, opt-in MathText, header notes and a shared-format legend. The default Swiss-column card uses 82.5 mm width and 5.5 mm row pitch; every row shares one numerical x domain. See [the forest contract](
|
|
393
|
+
Create a continuous forest figure with `type: forest`, a generic row table, optional points and multiple supplied intervals per row. Native YAML supports class-specific interval lanes, CSV value annotations, explicit `x.ticks`, opt-in MathText, header notes and a shared-format legend. The default Swiss-column card uses 82.5 mm width and 5.5 mm row pitch; every row shares one numerical x domain. See [the forest contract](https://github.com/Pengxuan-Zhu-Phys/Jarvis-Books/blob/main/Docs/Jarvis-PLOT/specs/FOREST.md), [native examples](Example/forest/README.md), or `jplot man forest --json`.
|
|
356
394
|
|
|
357
395
|
AI agents: start with `jplot man agent-readme --json` for the official-package YAML workflow and missing-feature reporting instructions. Feature requests include the installed version from `jplot --version`; the CLI does not send email automatically.
|
|
396
|
+
|
|
397
|
+
## Releasing
|
|
398
|
+
|
|
399
|
+
`jprel` is a maintainer-local script, excluded from Git and distribution archives.
|
|
400
|
+
|
|
401
|
+
Record changes in `CHANGELOG.md`, then run from this checkout (replace the
|
|
402
|
+
example version with the intended release):
|
|
403
|
+
|
|
404
|
+
```bash
|
|
405
|
+
./jprel 2.1.11 --dry
|
|
406
|
+
./jprel 2.1.11
|
|
407
|
+
```
|
|
408
|
+
|
|
409
|
+
`--dry` performs read-only source and release-note checks. The normal command
|
|
410
|
+
requires a clean Git checkout, builds and checks the wheel and sdist, uploads
|
|
411
|
+
to PyPI, refreshes the local version with `python3 -m pip install -e .`, and
|
|
412
|
+
verifies the installed version. Only then does it commit the version, push the
|
|
413
|
+
`vX.Y.Z` tag, and create a GitHub release with changelog notes. Configure Twine
|
|
414
|
+
and `gh` authentication before publishing.
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
CHANGELOG.md
|
|
1
2
|
MANIFEST.in
|
|
2
3
|
README.md
|
|
3
4
|
VERSION
|
|
@@ -24,63 +25,6 @@ JarvisPLOT.egg-info/dependency_links.txt
|
|
|
24
25
|
JarvisPLOT.egg-info/entry_points.txt
|
|
25
26
|
JarvisPLOT.egg-info/requires.txt
|
|
26
27
|
JarvisPLOT.egg-info/top_level.txt
|
|
27
|
-
docs/README.md
|
|
28
|
-
docs/archive/JARVIS_PLOT_CODE_REVIEW_2026-03-04.md
|
|
29
|
-
docs/archive/README.md
|
|
30
|
-
docs/context/CODEX_JARVIS_PLOT_STYLE.md
|
|
31
|
-
docs/context/CODE_MAP_JARVIS_PLOT.md
|
|
32
|
-
docs/context/JARVIS_PLOT_CONTEXT.md
|
|
33
|
-
docs/context/JARVIS_PLOT_FRAMEWORK_LOGIC.md
|
|
34
|
-
docs/context/README.md
|
|
35
|
-
docs/design/ARCHITECTURE_OVERVIEW.md
|
|
36
|
-
docs/design/DATAFLOW_ARCHITECTURE.md
|
|
37
|
-
docs/design/LAYOUT_ENGINE_DESIGN.md
|
|
38
|
-
docs/design/PROFILE_SYSTEM_DESIGN.md
|
|
39
|
-
docs/design/README.md
|
|
40
|
-
docs/design/STYLE_SYSTEM_DESIGN.md
|
|
41
|
-
docs/design/YAML_DESIGN.md
|
|
42
|
-
docs/dev/AGENT_CLI_CLOSURE_AUDIT_2026-08-07.md
|
|
43
|
-
docs/dev/AGENT_CLI_FULL_REVIEW_2026-08-06.md
|
|
44
|
-
docs/dev/AGENT_OUTPUT_YAML_DESIGN.md
|
|
45
|
-
docs/dev/CONTRIBUTION_GUIDE.md
|
|
46
|
-
docs/dev/DEVELOPER_RULES.md
|
|
47
|
-
docs/dev/MAN_CLI.md
|
|
48
|
-
docs/dev/MEMORY_OPTIMIZATION_GUIDE.md
|
|
49
|
-
docs/dev/MEMTRACE_SYSTEM.md
|
|
50
|
-
docs/dev/README.md
|
|
51
|
-
docs/dev/YAML_HUMAN_AI_OCCAM_REVIEW.md
|
|
52
|
-
docs/release/README.md
|
|
53
|
-
docs/release/RELEASE_PLAYBOOK.md
|
|
54
|
-
docs/release/releases/README.md
|
|
55
|
-
docs/release/releases/v1.2.6.md
|
|
56
|
-
docs/release/releases/v2.1.10.md
|
|
57
|
-
docs/release/releases/v2.1.6.md
|
|
58
|
-
docs/release/releases/v2.1.9.md
|
|
59
|
-
docs/roadmap/IMPLEMENTATION_ROADMAP.md
|
|
60
|
-
docs/roadmap/README.md
|
|
61
|
-
docs/roadmap/V2_AGENT_CLI_SURFACE.md
|
|
62
|
-
docs/roadmap/V2_DEV_LEDGER.md
|
|
63
|
-
docs/roadmap/V2_YAML_AGENT_ERGONOMICS.md
|
|
64
|
-
docs/roadmap/soft-cooking-wilkinson.md
|
|
65
|
-
docs/specs/AGENT_DATA_API.md
|
|
66
|
-
docs/specs/CORRELATION_DIAMOND.md
|
|
67
|
-
docs/specs/CORRELATION_MATRIX.md
|
|
68
|
-
docs/specs/DYNESTY_RUNPLOT.md
|
|
69
|
-
docs/specs/FOREST.md
|
|
70
|
-
docs/specs/INTERP_2D.md
|
|
71
|
-
docs/specs/LAYER_TYPE_REGISTRY.md
|
|
72
|
-
docs/specs/LEGEND.md
|
|
73
|
-
docs/specs/PDF_CDF_1D.md
|
|
74
|
-
docs/specs/POSTERIOR_DENSITY.md
|
|
75
|
-
docs/specs/PROFILE_SCHEMA.md
|
|
76
|
-
docs/specs/README.md
|
|
77
|
-
docs/specs/SCENE_JSON_SCHEMA.md
|
|
78
|
-
docs/specs/STYLE_SCHEMA.md
|
|
79
|
-
docs/specs/TRANSFORMS.md
|
|
80
|
-
docs/templates/README.md
|
|
81
|
-
docs/templates/profile.example.json
|
|
82
|
-
docs/templates/scene.example.json
|
|
83
|
-
docs/templates/style.example.json
|
|
84
28
|
jarvisplot/__init__.py
|
|
85
29
|
jarvisplot/agent_digest.py
|
|
86
30
|
jarvisplot/agent_io.py
|
|
@@ -111,6 +55,8 @@ jarvisplot/dryrun_runtime.py
|
|
|
111
55
|
jarvisplot/expr_names.py
|
|
112
56
|
jarvisplot/fix_apply.py
|
|
113
57
|
jarvisplot/flowchart.py
|
|
58
|
+
jarvisplot/font_runtime.py
|
|
59
|
+
jarvisplot/fonts.py
|
|
114
60
|
jarvisplot/forest_contract.py
|
|
115
61
|
jarvisplot/forest_text.py
|
|
116
62
|
jarvisplot/generated_data.py
|
|
@@ -191,6 +137,7 @@ jarvisplot/cards/corrplot/diamond.json
|
|
|
191
137
|
jarvisplot/cards/corrplot/matrix.json
|
|
192
138
|
jarvisplot/cards/default/output.json
|
|
193
139
|
jarvisplot/cards/flowchart/default.json
|
|
140
|
+
jarvisplot/cards/fonts/default.json
|
|
194
141
|
jarvisplot/cards/forest/swiss_column.json
|
|
195
142
|
jarvisplot/cards/gambit/1x1/ternary.json
|
|
196
143
|
jarvisplot/cards/gambit/2x1/rect_cmap.json
|
|
@@ -218,6 +165,7 @@ jarvisplot/manual_cards/debug-overlay.yaml
|
|
|
218
165
|
jarvisplot/manual_cards/diagnostics.yaml
|
|
219
166
|
jarvisplot/manual_cards/dryrun-viz.yaml
|
|
220
167
|
jarvisplot/manual_cards/field-interp.yaml
|
|
168
|
+
jarvisplot/manual_cards/fonts.yaml
|
|
221
169
|
jarvisplot/manual_cards/generated-data.yaml
|
|
222
170
|
jarvisplot/manual_cards/layer-method.yaml
|
|
223
171
|
jarvisplot/manual_cards/legend.yaml
|
|
@@ -287,6 +235,7 @@ jarvisplot/verbs/data.py
|
|
|
287
235
|
jarvisplot/verbs/doctor.py
|
|
288
236
|
jarvisplot/verbs/dryrun.py
|
|
289
237
|
jarvisplot/verbs/explain.py
|
|
238
|
+
jarvisplot/verbs/fonts.py
|
|
290
239
|
jarvisplot/verbs/man.py
|
|
291
240
|
jarvisplot/verbs/suggest.py
|
|
292
241
|
jarvisplot/verbs/template.py
|
|
@@ -322,7 +271,6 @@ tests/test_density_cell_transform.py
|
|
|
322
271
|
tests/test_design_runtime.py
|
|
323
272
|
tests/test_diagnostic_guidance.py
|
|
324
273
|
tests/test_distribution_1d_transform.py
|
|
325
|
-
tests/test_docs_status_labels.py
|
|
326
274
|
tests/test_doctor_partial.py
|
|
327
275
|
tests/test_examples_validate.py
|
|
328
276
|
tests/test_explain.py
|
|
@@ -331,6 +279,9 @@ tests/test_figure_contracts.py
|
|
|
331
279
|
tests/test_figure_type_expander.py
|
|
332
280
|
tests/test_fix_application.py
|
|
333
281
|
tests/test_flowchart_renderer.py
|
|
282
|
+
tests/test_font_runtime.py
|
|
283
|
+
tests/test_fonts.py
|
|
284
|
+
tests/test_fonts_cli.py
|
|
334
285
|
tests/test_forest.py
|
|
335
286
|
tests/test_forest_examples.py
|
|
336
287
|
tests/test_forest_text.py
|
|
@@ -358,7 +309,6 @@ tests/test_schema_catalog.py
|
|
|
358
309
|
tests/test_suggest.py
|
|
359
310
|
tests/test_suggest_axes.py
|
|
360
311
|
tests/test_template_catalog.py
|
|
361
|
-
tests/test_template_json.py
|
|
362
312
|
tests/test_ternary_debug.py
|
|
363
313
|
tests/test_transform_contracts.py
|
|
364
314
|
tests/test_validate_no_matplotlib.py
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
include VERSION
|
|
2
|
+
include tools/check_release.py
|
|
3
|
+
include CHANGELOG.md
|
|
4
|
+
recursive-include Example/forest *.yaml *.csv *.md
|
|
5
|
+
|
|
6
|
+
# Git ignores do not control source distributions.
|
|
7
|
+
exclude jprel
|
|
8
|
+
prune docs
|
|
9
|
+
prune .github
|
|
10
|
+
prune .claude
|
|
11
|
+
prune .codex
|
|
12
|
+
prune .agents
|
|
13
|
+
prune .cursor
|
|
14
|
+
prune .idea
|
|
15
|
+
prune .vscode
|
|
16
|
+
prune .aws
|
|
17
|
+
prune .ssh
|
|
18
|
+
prune .twine
|
|
19
|
+
prune .pypi
|
|
20
|
+
prune .venv
|
|
21
|
+
prune venv
|
|
22
|
+
prune env
|
|
23
|
+
prune .cache
|
|
24
|
+
prune .pytest_cache
|
|
25
|
+
prune .ruff_cache
|
|
26
|
+
prune .mypy_cache
|
|
27
|
+
prune .tox
|
|
28
|
+
prune .nox
|
|
29
|
+
prune .ipynb_checkpoints
|
|
30
|
+
global-exclude .DS_Store *.py[cod] .env .env.* .envrc .pypirc .pypirc.* .twinerc .pypi-token* .mcp.json release.env twine.env *.code-workspace *.swp *.swo *~ *.bak *.tmp
|
|
31
|
+
prune bin
|
|
32
|
+
prune Workshop
|
|
33
|
+
prune Example/plots
|
|
34
|
+
prune Example/.cache
|
|
35
|
+
prune Example/forest/plots
|
|
36
|
+
prune Example/forest/.cache
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: JarvisPLOT
|
|
3
|
-
Version: 2.1.
|
|
3
|
+
Version: 2.1.11
|
|
4
4
|
Summary: Jarvis-PLOT: YAML-driven plotting engine
|
|
5
5
|
Requires-Python: >=3.10
|
|
6
6
|
Description-Content-Type: text/markdown
|
|
@@ -27,8 +27,8 @@ but it can also be used as a **standalone scientific plotting tool**.
|
|
|
27
27
|
|
|
28
28
|
It provides a simple command-line interface (CLI) to generate publication-quality figures from YAML configuration files, with most layout and style decisions handled by predefined profiles and style cards.
|
|
29
29
|
|
|
30
|
-
Current source candidate: **2.1.
|
|
31
|
-
|
|
30
|
+
Current source candidate: **2.1.11** (`jplot -v` reports the installed version).
|
|
31
|
+
Release history: [CHANGELOG.md](CHANGELOG.md). Design documents and specifications: [Jarvis-Books `Docs/Jarvis-PLOT/`](https://github.com/Pengxuan-Zhu-Phys/Jarvis-Books/blob/main/Docs/Jarvis-PLOT/README.md).
|
|
32
32
|
|
|
33
33
|
---
|
|
34
34
|
|
|
@@ -110,6 +110,39 @@ jplot doctor plot.yaml # validate + dryrun in one pass
|
|
|
110
110
|
|
|
111
111
|
Every one of these takes `--json`.
|
|
112
112
|
|
|
113
|
+
### Default fonts
|
|
114
|
+
|
|
115
|
+
The bundled font card recommends **Helvetica** for sans text and **STIXGeneral**
|
|
116
|
+
for serif text, with **STIX** MathText formulas. Normal YAML rendering applies
|
|
117
|
+
the card automatically; explicit YAML fonts and sizes take precedence.
|
|
118
|
+
When Helvetica is absent, Jarvis-PLOT selects the first installed similar family:
|
|
119
|
+
Arial, Liberation Sans, Nimbus Sans, then DejaVu Sans. `check` and `resolve`
|
|
120
|
+
report the actual font and substitution reason.
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
jplot fonts # role card: title, labels, ticks, legend, text, annotations, caption
|
|
124
|
+
jplot fonts show title --json # current defaults for one role
|
|
125
|
+
jplot fonts show --recommended --json
|
|
126
|
+
jplot fonts list --filter Helvetica --json
|
|
127
|
+
jplot fonts list --refresh --json # rescan after installing fonts
|
|
128
|
+
jplot fonts resolve Helvetica --weight bold --json
|
|
129
|
+
jplot fonts check --json # actual installed faces used by the card
|
|
130
|
+
jplot fonts set roles.title.family sans
|
|
131
|
+
jplot fonts set roles.legend.family serif
|
|
132
|
+
jplot fonts set roles.title.size_pt 9
|
|
133
|
+
jplot fonts set roles.title.size_pt null # inherit the plot style's size
|
|
134
|
+
jplot fonts reset roles.title.size_pt
|
|
135
|
+
jplot fonts reset # remove all personal overrides
|
|
136
|
+
jplot man fonts --json
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
Personal overrides persist in `~/.jarvis/plot-fonts.json` (`JARVIS_HOME` overrides
|
|
140
|
+
the directory). Queries never create that file. `size_pt: null` preserves the
|
|
141
|
+
plot style's canvas-specific size; `recommended_size_pt` is drafting advice.
|
|
142
|
+
Font discovery uses Matplotlib's cached system and bundled font index, while
|
|
143
|
+
TTC face selection preserves the requested weight and slant. `$...$` uses
|
|
144
|
+
MathText; an external LaTeX compiler has its own font configuration.
|
|
145
|
+
|
|
113
146
|
### Design-Reference Overlay
|
|
114
147
|
|
|
115
148
|
Set `debug: true` on a figure and Jarvis-PLOT draws a dimension overlay on top
|
|
@@ -127,7 +160,7 @@ Figures:
|
|
|
127
160
|
|
|
128
161
|
The style card's `Debug` block decides what the annotations look like and which
|
|
129
162
|
of them appear; a per-figure `debug:` mapping overrides the card for that figure
|
|
130
|
-
only. See `jplot man debug-overlay` and
|
|
163
|
+
only. See `jplot man debug-overlay` and [STYLE_SCHEMA.md](https://github.com/Pengxuan-Zhu-Phys/Jarvis-Books/blob/main/Docs/Jarvis-PLOT/specs/STYLE_SCHEMA.md).
|
|
131
164
|
|
|
132
165
|
> `Figures[].debug` is not the `jplot --debug` flag — the flag only raises the
|
|
133
166
|
> log level.
|
|
@@ -152,6 +185,9 @@ TTY** — piping is enough.
|
|
|
152
185
|
|
|
153
186
|
The loop `jplot man` prints is:
|
|
154
187
|
|
|
188
|
+
Before drafting, inspect `jplot fonts show --json` and `jplot fonts check --json`
|
|
189
|
+
for the typography defaults and actual installed font choices.
|
|
190
|
+
|
|
155
191
|
1. `jplot data describe <file> --json` — column names from the real file. Never
|
|
156
192
|
invent one; a wrong name is a hard error, not a warning.
|
|
157
193
|
2. `jplot cap methods|styles|cmaps|funcs|transforms|types --json` — the legal
|
|
@@ -175,13 +211,13 @@ with the same object regroup automatically using card templates such as
|
|
|
175
211
|
single-component object. `frame.<axes>.legend` owns card selection, `order`,
|
|
176
212
|
`ncols`, position and spacing. JSON cards provide
|
|
177
213
|
reusable defaults, and YAML can override them. See
|
|
178
|
-
[the legend contract](
|
|
214
|
+
[the legend contract](https://github.com/Pengxuan-Zhu-Phys/Jarvis-Books/blob/main/Docs/Jarvis-PLOT/specs/LEGEND.md) and the
|
|
179
215
|
[self-contained example](Example/compact_legend.yaml).
|
|
180
216
|
|
|
181
217
|
For continuous one-dimensional distributions from raw samples, use `PDF1D`
|
|
182
218
|
(CDF plus PDF) or `CDF1D` in a data transform. `coordinates.x` owns `expr`,
|
|
183
219
|
`lim`, and `grid`; optional `repeat` computes independent batch means and
|
|
184
|
-
standard deviations. See [the contract](
|
|
220
|
+
standard deviations. See [the contract](https://github.com/Pengxuan-Zhu-Phys/Jarvis-Books/blob/main/Docs/Jarvis-PLOT/specs/PDF_CDF_1D.md) and the
|
|
185
221
|
[runnable example](Example/pdf_cdf_1d.yaml).
|
|
186
222
|
Reconstruction defaults to adaptive true CDF anchors and `monotone_c2`
|
|
187
223
|
interpolation (C2 CDF / C1 PDF). Set `anchors: all` and `interpolation: pchip`
|
|
@@ -192,7 +228,7 @@ Two things worth knowing before trusting a config:
|
|
|
192
228
|
- `jplot validate` checks shape and contracts and never touches the data;
|
|
193
229
|
`jplot dryrun` loads the data and reports the row ledger and JP-VIZ render
|
|
194
230
|
health. Passing the first says nothing about the second.
|
|
195
|
-
-
|
|
231
|
+
- [AGENT_DATA_API.md](https://github.com/Pengxuan-Zhu-Phys/Jarvis-Books/blob/main/Docs/Jarvis-PLOT/specs/AGENT_DATA_API.md) describes a *different*, still-frozen bridge
|
|
196
232
|
(a numeric digest channel for Jarvis-Agent). The surface above is what ships
|
|
197
233
|
today.
|
|
198
234
|
|
|
@@ -249,24 +285,26 @@ multiple directory trees; overlapping selections are deduplicated. Use
|
|
|
249
285
|
All cache subcommands accept `--json` and use the existing CLI envelope and
|
|
250
286
|
exit codes (0 success/partial, 1 failure, 2 usage). Non-TTY stdout defaults to
|
|
251
287
|
JSON; human results go to stderr. Active caches are skipped (`ok: null` when
|
|
252
|
-
the remaining operation succeeds), and records for missing paths
|
|
253
|
-
|
|
288
|
+
the remaining operation succeeds), and records for missing paths or unmarked
|
|
289
|
+
`.cache` directories containing only empty Jarvis-PLOT component directories
|
|
290
|
+
are pruned during cleanup. Only marked
|
|
291
|
+
Jarvis-PLOT components are removed; source data,
|
|
254
292
|
plots, and unrelated `.cache` content are retained. Failed deletions retain
|
|
255
|
-
their registry entries
|
|
293
|
+
their registry entries; nonempty unmarked directories remain invalid and are
|
|
294
|
+
not deleted. Scanning adopts legacy caches only when the four
|
|
256
295
|
pipeline directories and a compatible `manifest.json` identify them; old
|
|
257
296
|
unmarked twin-only directories need a new `dryrun --with-data` run to register.
|
|
258
297
|
An explicitly supplied `--out-dir` is an export directory and is not registered.
|
|
259
298
|
Concurrent registry writes use a lock and atomic replacement. Registration
|
|
260
299
|
failures warn without preventing rendering.
|
|
261
300
|
|
|
262
|
-
### Example:
|
|
301
|
+
### Example: Ternary Layouts
|
|
263
302
|
|
|
264
303
|
```bash
|
|
265
|
-
jplot ./
|
|
266
|
-
jplot ./bin/SUSYRun2_GEWMSSM.yaml
|
|
304
|
+
jplot ./Example/gambit_2x1.yaml
|
|
267
305
|
```
|
|
268
306
|
|
|
269
|
-
|
|
307
|
+
This layout reference uses bundled style cards and renders without external data.
|
|
270
308
|
|
|
271
309
|
### Example: Dynesty Runplot
|
|
272
310
|
|
|
@@ -288,7 +326,7 @@ Figures:
|
|
|
288
326
|
- dynesty_runplot
|
|
289
327
|
```
|
|
290
328
|
|
|
291
|
-
See
|
|
329
|
+
See [DYNESTY_RUNPLOT.md](https://github.com/Pengxuan-Zhu-Phys/Jarvis-Books/blob/main/Docs/Jarvis-PLOT/specs/DYNESTY_RUNPLOT.md) for the default axes, KDE, scatter overlay,
|
|
292
330
|
and evidence summary behavior.
|
|
293
331
|
|
|
294
332
|
---
|
|
@@ -330,19 +368,19 @@ and evidence summary behavior.
|
|
|
330
368
|
### Documentation
|
|
331
369
|
[https://pengxuan-zhu-phys.github.io/Jarvis-Docs/](https://pengxuan-zhu-phys.github.io/Jarvis-Docs/)
|
|
332
370
|
|
|
333
|
-
###
|
|
371
|
+
### Project Docs
|
|
334
372
|
|
|
335
|
-
|
|
373
|
+
This repository keeps only `README.md` and `CHANGELOG.md`. Design documents,
|
|
374
|
+
specifications and the roadmap live in Jarvis-Books:
|
|
336
375
|
|
|
337
|
-
-
|
|
338
|
-
-
|
|
339
|
-
-
|
|
340
|
-
-
|
|
341
|
-
-
|
|
342
|
-
-
|
|
343
|
-
-
|
|
344
|
-
-
|
|
345
|
-
- `docs/dev/MEMORY_OPTIMIZATION_GUIDE.md` - narrow-table memory notes
|
|
376
|
+
- [Doc index](https://github.com/Pengxuan-Zhu-Phys/Jarvis-Books/blob/main/Docs/Jarvis-PLOT/README.md)
|
|
377
|
+
- [JARVIS_PLOT_CONTEXT.md](https://github.com/Pengxuan-Zhu-Phys/Jarvis-Books/blob/main/Docs/Jarvis-PLOT/context/JARVIS_PLOT_CONTEXT.md) - project boundary; read before changing code
|
|
378
|
+
- [CODE_MAP_JARVIS_PLOT.md](https://github.com/Pengxuan-Zhu-Phys/Jarvis-Books/blob/main/Docs/Jarvis-PLOT/context/CODE_MAP_JARVIS_PLOT.md) - code owner map
|
|
379
|
+
- [JARVIS_PLOT_FRAMEWORK_LOGIC.md](https://github.com/Pengxuan-Zhu-Phys/Jarvis-Books/blob/main/Docs/Jarvis-PLOT/context/JARVIS_PLOT_FRAMEWORK_LOGIC.md) - runtime execution contract
|
|
380
|
+
- [IMPLEMENTATION_ROADMAP.md](https://github.com/Pengxuan-Zhu-Phys/Jarvis-Books/blob/main/Docs/Jarvis-PLOT/roadmap/IMPLEMENTATION_ROADMAP.md) - open work
|
|
381
|
+
- [RELEASING.md](https://github.com/Pengxuan-Zhu-Phys/Jarvis-Books/blob/main/Docs/Jarvis-PLOT/release/RELEASING.md) - versioning, `tools/check_release.py` and CI verification
|
|
382
|
+
- [STYLE_SCHEMA.md](https://github.com/Pengxuan-Zhu-Phys/Jarvis-Books/blob/main/Docs/Jarvis-PLOT/specs/STYLE_SCHEMA.md) - style card contract, including the `Debug` overlay block
|
|
383
|
+
- [DEVELOPER_RULES.md](https://github.com/Pengxuan-Zhu-Phys/Jarvis-Books/blob/main/Docs/Jarvis-PLOT/dev/DEVELOPER_RULES.md) - pipeline and cache rules
|
|
346
384
|
|
|
347
385
|
Read the context docs and roadmap before changing parsing, transforms, rendering, or layout-related behavior.
|
|
348
386
|
|
|
@@ -352,6 +390,25 @@ Read the context docs and roadmap before changing parsing, transforms, rendering
|
|
|
352
390
|
|
|
353
391
|
MIT License
|
|
354
392
|
|
|
355
|
-
Create a continuous forest figure with `type: forest`, a generic row table, optional points and multiple supplied intervals per row. Native YAML supports class-specific interval lanes, CSV value annotations, explicit `x.ticks`, opt-in MathText, header notes and a shared-format legend. The default Swiss-column card uses 82.5 mm width and 5.5 mm row pitch; every row shares one numerical x domain. See [the forest contract](
|
|
393
|
+
Create a continuous forest figure with `type: forest`, a generic row table, optional points and multiple supplied intervals per row. Native YAML supports class-specific interval lanes, CSV value annotations, explicit `x.ticks`, opt-in MathText, header notes and a shared-format legend. The default Swiss-column card uses 82.5 mm width and 5.5 mm row pitch; every row shares one numerical x domain. See [the forest contract](https://github.com/Pengxuan-Zhu-Phys/Jarvis-Books/blob/main/Docs/Jarvis-PLOT/specs/FOREST.md), [native examples](Example/forest/README.md), or `jplot man forest --json`.
|
|
356
394
|
|
|
357
395
|
AI agents: start with `jplot man agent-readme --json` for the official-package YAML workflow and missing-feature reporting instructions. Feature requests include the installed version from `jplot --version`; the CLI does not send email automatically.
|
|
396
|
+
|
|
397
|
+
## Releasing
|
|
398
|
+
|
|
399
|
+
`jprel` is a maintainer-local script, excluded from Git and distribution archives.
|
|
400
|
+
|
|
401
|
+
Record changes in `CHANGELOG.md`, then run from this checkout (replace the
|
|
402
|
+
example version with the intended release):
|
|
403
|
+
|
|
404
|
+
```bash
|
|
405
|
+
./jprel 2.1.11 --dry
|
|
406
|
+
./jprel 2.1.11
|
|
407
|
+
```
|
|
408
|
+
|
|
409
|
+
`--dry` performs read-only source and release-note checks. The normal command
|
|
410
|
+
requires a clean Git checkout, builds and checks the wheel and sdist, uploads
|
|
411
|
+
to PyPI, refreshes the local version with `python3 -m pip install -e .`, and
|
|
412
|
+
verifies the installed version. Only then does it commit the version, push the
|
|
413
|
+
`vX.Y.Z` tag, and create a GitHub release with changelog notes. Configure Twine
|
|
414
|
+
and `gh` authentication before publishing.
|