inklet 4.0.0.dev3__tar.gz → 4.0.0.dev4__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.
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/.github/workflows/publish.yml +2 -2
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/CHANGELOG.md +13 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/PKG-INFO +6 -7
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/README.md +5 -6
- inklet-4.0.0.dev4/docs/assets/guides/plots-band.png +0 -0
- inklet-4.0.0.dev4/docs/assets/guides/plots-bars.png +0 -0
- inklet-4.0.0.dev4/docs/assets/guides/plots-boxplot.png +0 -0
- inklet-4.0.0.dev4/docs/assets/guides/plots-errorbars.png +0 -0
- inklet-4.0.0.dev4/docs/assets/guides/plots-fill-between.png +0 -0
- inklet-4.0.0.dev4/docs/assets/guides/plots-fill.png +0 -0
- inklet-4.0.0.dev4/docs/assets/guides/plots-grouped-bars.png +0 -0
- inklet-4.0.0.dev4/docs/assets/guides/plots-hist.png +0 -0
- inklet-4.0.0.dev4/docs/assets/guides/plots-horizontal-bars.png +0 -0
- inklet-4.0.0.dev4/docs/assets/guides/plots-line-errors.png +0 -0
- inklet-4.0.0.dev4/docs/assets/guides/plots-line.png +0 -0
- inklet-4.0.0.dev4/docs/assets/guides/plots-markers.png +0 -0
- inklet-4.0.0.dev4/docs/assets/guides/plots-matrix.png +0 -0
- inklet-4.0.0.dev4/docs/assets/guides/plots-polar-curve.png +0 -0
- inklet-4.0.0.dev4/docs/assets/guides/plots-rose.png +0 -0
- inklet-4.0.0.dev4/docs/assets/guides/plots-scatter.png +0 -0
- inklet-4.0.0.dev4/docs/assets/guides/plots-series.png +0 -0
- inklet-4.0.0.dev4/docs/assets/guides/plots-stackarea.png +0 -0
- inklet-4.0.0.dev4/docs/assets/guides/plots-stacked-bars.png +0 -0
- inklet-4.0.0.dev4/docs/assets/guides/plots-step.png +0 -0
- inklet-4.0.0.dev4/docs/assets/guides/plots-swarm.png +0 -0
- inklet-4.0.0.dev4/docs/assets/guides/plots-violin.png +0 -0
- inklet-4.0.0.dev4/docs/bars-and-areas.md +164 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/compatibility.md +1 -1
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/development-preview.md +20 -8
- inklet-4.0.0.dev4/docs/distributions.md +104 -0
- inklet-4.0.0.dev4/docs/index.md +27 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/installation.md +3 -3
- inklet-4.0.0.dev4/docs/interactive-documents.md +52 -0
- inklet-4.0.0.dev4/docs/lines-and-points.md +97 -0
- inklet-4.0.0.dev4/docs/matrices.md +38 -0
- inklet-4.0.0.dev4/docs/plot-types.md +14 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/plotting.md +3 -13
- inklet-4.0.0.dev4/docs/polar-plots.md +77 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/publication-plots.md +3 -2
- inklet-4.0.0.dev4/docs/uncertainty.md +104 -0
- inklet-4.0.0.dev4/gallery/polar.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/mkdocs.yml +62 -52
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/pyproject.toml +1 -1
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/__init__.py +1 -1
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/plot/polar.py +16 -2
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_docs_site.py +38 -2
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_guides.py +2 -1
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_plot_polar.py +33 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/docs_previews.json +154 -7
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/docs_previews.py +9 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/docs_site.py +1 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/docs_theme/home.html +1 -1
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/docs_theme/main.html +1 -1
- inklet-4.0.0.dev4/tools/docs_theme/plot-gallery.html +5 -0
- inklet-4.0.0.dev4/tools/plot_catalog.json +314 -0
- inklet-4.0.0.dev3/docs/assets/guides/plot-types-1.png +0 -0
- inklet-4.0.0.dev3/docs/index.md +0 -67
- inklet-4.0.0.dev3/docs/plot-types.md +0 -55
- inklet-4.0.0.dev3/gallery/polar.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/.gitattributes +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/.github/workflows/checks.yml +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/.gitignore +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/.readthedocs.yaml +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/CONTRACT.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/CONTRIBUTING.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/LICENSE +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/THIRD_PARTY_NOTICES.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/api.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/brand/inklet-icon.svg +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/brand/inklet-logo-dark.svg +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/brand/inklet-logo-mono.svg +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/brand/inklet-logo.svg +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/brand/inklet-wordmark.svg +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/examples/quickstart.pdf +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/examples/quickstart.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/examples/quickstart.svg +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/axes-and-scales-1.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/calibrated-volumes-3.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/channels-and-contours-1.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-anchor.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-annotation.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-bars-histogram.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-branch.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-broken-axis.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-callout.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-clipping.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-creases.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-custom-key.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-cutout.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-dates.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-dense.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-elbows.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-equal-boxes.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-facets.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-fit-graph.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-flow-width.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-formula.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-graph.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-halo.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-heatmap.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-hole.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-inline-type.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-inset.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-labels.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-layers.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-letters.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-list.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-matrix.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-page-grid.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-polar.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-protein.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-routes.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-scene-overlay.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-scene.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-series-key.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-span.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-sparse-grid.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-swarm.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-text-path.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-toon.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-twin-axis.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-unequal-panels.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-violin.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-wrapped-card.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/data-1.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/data-3.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/dense-data-1.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/diagram-components-1.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/diagrams-1.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/layout-3.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/oblique-sections-2.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/plot-quality-after.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/plot-quality-before.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/plotting-1.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/plotting-2.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/publication-plots-1.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/publication-plots-2.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/publication-plots-3.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/publication-plots-4.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/slabs-and-regions-1.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/three-images-1.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/guides/three-images-2.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/biology.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/clipping-after.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/clipping-before.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/clipping-caption.tex +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/clipping-lines-after.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/clipping-lines-before.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/comparison.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/compiled-marker-shapes-caption.tex +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/compiled-marker-shapes.html +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/compiled-markers-display.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/compiled-markers-hardware.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/compiled-scene-viewer.html +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/compiled-viewer-display.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/compiled-viewer-export.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/compiled-viewer-study.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/compositing-after.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/compositing-before.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/compositing-caption.tex +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/dense-scatter-caption.tex +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/diagram-after.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/diagram-before.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/diagram-review-caption.tex +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/engine-after.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/engine-before.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/engine-review-caption.tex +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/fluorescence-biology.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/general-plots-caption.tex +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/general-plots.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/hatch-after.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/hatch-before.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/hatch-caption.tex +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/label-intensities-caption.tex +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/label-intensities-native.csv +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/label-intensities.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/lines-after.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/lines-before.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/marker-batches.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/marker-index-after.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/marker-index-before.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/marker-index-browser-after.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/marker-index-browser-before.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/oblique-biology.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/plot-engine-review-caption.tex +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/real-biology.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/render-scene-caption.tex +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/revision.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/scenes-after.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/scenes-before.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/slab-biology.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/study.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/viewer-culling-after.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/viewer-culling-before.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/viewer-culling-gpu-after.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/viewer-culling-gpu-before.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/viewer-redraw-after.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/viewer-redraw-before.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/viewer-redraw-display.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/viewer-redraw-profile.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/viewer-window-after.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/viewer-window-before.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/research-preview/viewer-window-display.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/after.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/before.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/browser-quality.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/browser-scatter.html +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/browser-scatter.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/browser-study.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/contours-streamlines-170mm.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/contours-streamlines-masked.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/contours-streamlines.html +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/contours-streamlines.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/engineering-report-170mm.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/engineering-report.html +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/engineering-report.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/faceted-operations.html +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/faceted-operations.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/linked-dashboard.html +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/linked-dashboard.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/linked-selection.html +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/linked-selection.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/mesh-fields-170mm.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/mesh-fields.html +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/mesh-fields.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/region-shapes.html +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/region-shapes.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/regional-analysis.html +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/regional-analysis.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/regional-report-160mm.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/regional-report.html +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/regional-report.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/scientific-report-170mm.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/scientific-report.html +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/scientific-report.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/statistical-views.html +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/statistical-views.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/table-inputs.html +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/table-inputs.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/time-series.html +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/time-series.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/visual-overrides.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/world-population-2019.html +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/world-population-2019.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/world-population-2019.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/world-population-revisions.html +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/world-population-revisions.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/world-population.html +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/assets/v4/world-population.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/axes-and-scales.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/biology-panels.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/blender-scenes.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/brand.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/browser-rendering.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/calibrated-volumes.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/channels-and-contours.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/cli.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/clipping.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/compiled-scenes.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/compiled-viewer.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/complex-scene.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/compositing.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/concepts.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/contours-streamlines.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/cookbook.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/data-revisions.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/data.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/dense-data.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/design/browser-backends.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/design/page_grid.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/design/v2.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/design/v4.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/diagram-components.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/diagram-engine.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/diagrams.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/engineering-report.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/example-library.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/examples.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/export-review.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/fluorescence-biology.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/general-plots.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/hatching.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/javascripts/inklet.js +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/label-intensities.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/label-measurements.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/layout.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/linked-facets.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/linked-maps.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/linked-plots.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/marker-batches.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/marker-culling.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/mesh-fields.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/microscopy-tiff.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/migration.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/oblique-biology.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/oblique-sections.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/plot-quality.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/plotting-engine.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/presets.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/quickstart.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/real-biology.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/recipes/architecture-sketch.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/recipes/architecture.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/recipes/attractor.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/recipes/helix.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/recipes/interference.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/recipes/lattice.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/recipes/photonics.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/recipes/wave-packets.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/regional-report.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/release-checks.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/render-jobs.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/rendering-engine.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/research-preview.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/research-revision.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/research-study.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/roadmap.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/scene-annotations.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/scene-paths.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/scene-templates.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/scientific-report.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/showcase.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/slab-biology.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/slabs-and-regions.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/statistical-views.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/stress20.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/stylesheets/code.css +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/stylesheets/inklet.css +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/table-inputs.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/three-images.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/time-series.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/troubleshooting.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/v2.5.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/v2.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/v3.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/v4-foundations.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/visual-editing.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/docs/world-map.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/biology/README.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/biology/cells3d.lock.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/biology/data.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/biology/fluorescence.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/biology/organelle.lock.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/biology/requirements.txt +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/biology_panels.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/blender/complex_lab_scene.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/blender/lab_scene.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/blender/occlusion_scene.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/blender/organelle_scene.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/blender/research_lab_views.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/broken_axis.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/clipping_review.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/compiled_marker_shapes.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/compiled_scene_viewer.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/compositing_review.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/data/general-plots/benchmark.csv +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/data/general-plots/learning.csv +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/data/general-plots/revenue.csv +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/data/general-plots/sensor.csv +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/dense_scatter_review.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/diagram_review.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/engine_review.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/feature_flow.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/fluorescence_biology.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/gallery.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/general_plots.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/graph.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/hatch_review.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/hello_figure.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/label_intensities.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/oblique_biology.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/panels.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/plot_engine_review.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/plot_quality_review.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/polar.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/preset_formats.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/presets.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/real_biology.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/render_scene_review.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/render_smoke.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/research_figure_planner.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/research_planner_study.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/research_revision.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/showcase/README.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/showcase/assets.lock.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/showcase/blender_scenes.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/showcase/figures.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/slab_biology.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/state_machine.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/stress20.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v25_document.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v2_cases.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v2_document.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v3_complex_scene.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v3_render_jobs.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v3_rendering.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v3_scene_annotations.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v3_scene_passes.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v3_scene_paths.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v3_scene_templates.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v4/README.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v4/browser_scatter.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v4/contours_streamlines.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v4/data/world-countries.geojson +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v4/data/world-map-source.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v4/data/world-population.csv +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v4/engineering_report.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v4/faceted_operations.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v4/fixtures/assembly.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v4/fixtures/manifest.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v4/fixtures/measurement.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v4/fixtures/region-shapes.geojson +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v4/fixtures/regions.csv +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v4/fixtures/regions.geojson +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v4/linked_dashboard.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v4/linked_selection.html +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v4/linked_selection.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v4/mesh_fields.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v4/region_shapes.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v4/regional_analysis.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v4/regional_report.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v4/scientific_report.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v4/statistical_views.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v4/table_inputs.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v4/time_series.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/examples/v4/world_population.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/figures/annot.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/figures/bio3d.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/figures/cartoon.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/figures/chem_data.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/figures/chem_fingerprints.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/figures/data/1m17-kinase.pdb +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/figures/data/README.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/figures/drug_discovery.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/figures/mouse_brain_data.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/figures/neural_activity.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/figures/pdbfile.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/figures/showcase_part.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/figures/showcase_process.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/figures/showcase_season.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/figures/structure.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/figures/structure_data.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/figures/target.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/figures/trial.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/README.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/biology-panels.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/chem_fingerprints.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/clipping-review.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/compiled-marker-shapes.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/compiled-scene-viewer.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/compiled-viewer-culling.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/compiled-viewer-deep-zoom.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/compositing-pdf-after.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/compositing-pdf-before.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/compositing-review.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/dense-scatter-review.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/diagram-labels-after.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/diagram-labels-before.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/diagram-review.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/engine-review.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/engine-transparency-after.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/engine-transparency-before.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/flow.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/fluorescence-biology.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/general-plots-before.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/general-plots.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/hatch-pdf-after.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/hatch-pdf-before.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/hatch-review.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/hatch-svg-before.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/label-intensities.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/oblique-biology.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/part.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/plot-axis-after.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/plot-axis-before.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/plot-engine-review.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/plots.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/preset-formats.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/presets.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/process.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/real-biology.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/render-scene-data.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/render-scene-initial.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/render-scene-review.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/research-crossing-revision.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/research-figure-planner.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/research-planner-study.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/research-revision.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/season.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/showcase-architecture-sketch.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/showcase-architecture.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/showcase-attractor.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/showcase-helix.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/showcase-interference.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/showcase-lattice.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/showcase-photonics.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/showcase-wave-packets.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/slab-biology.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/stress20.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/structure.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/v3-complex-scene.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/v3-render-jobs.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/v3-rendering.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/v3-scene-annotations.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/v3-scene-passes.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/v3-scene-paths.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/gallery/v3-scene-templates.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/requirements-ci.txt +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/requirements-docs.txt +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/requirements-tables.txt +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/scripts/bench_svg.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/scripts/rasterise.sh +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/scripts/sanity_typeset.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/__main__.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/assets/__init__.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/assets/asset.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/assets/cache.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/assets/cutout.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/assets/deps.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/assets/harmonise.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/assets/lineart.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/assets/mask.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/assets/provenance.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/assets/raster.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/assets/sidecar.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/assets/silhouette.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/cli.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/components.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/core/__init__.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/core/batch.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/core/diagram.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/core/envelope.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/core/geom.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/core/prims.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/core/style.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/core/trace.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/core/units.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/diagnostics/__init__.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/diagnostics/abut.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/diagnostics/break_rules.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/diagnostics/color.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/diagnostics/cross.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/diagnostics/image.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/diagnostics/key_rules.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/diagnostics/link_rules.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/diagnostics/path_rules.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/diagnostics/plot_rules.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/diagnostics/report.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/diagnostics/rules.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/diagnostics/three_rules.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/document/__init__.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/document/compiler.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/document/composition.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/document/data.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/document/data_io.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/document/module.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/document/presets.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/document/publication.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/document/spec.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/draw/__init__.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/draw/annotate.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/draw/bezier_clip.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/draw/clip.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/draw/coords.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/draw/path.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/draw/place.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/draw/shapes.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/__init__.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/_table_adapters.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/browser/__init__.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/browser/compiled.js +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/browser/compiled.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/browser/drawings.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/browser/editor.html +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/browser/editor.js +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/browser/fields.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/browser/grid.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/browser/images.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/browser/overrides.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/browser/page.html +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/browser/regions.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/browser/runtime.js +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/browser/series.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/browser/timeaxis.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/channels.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/contours.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/engineering.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/fields.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/figure_planner.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/grid.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/measurement.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/measurements.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/planner_geometry.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/regions.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/scene_viewer/__init__.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/scene_viewer/controls.js +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/scene_viewer/page.html +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/scene_viewer/runtime.js +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/scene_viewer/spatial.js +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/sections.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/selection.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/slabs.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/temporal.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/tiff.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/experimental/volume.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/figure.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/layout/__init__.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/layout/fit.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/layout/flow.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/layout/graph.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/layout/graph_force.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/layout/graph_layered.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/layout/graph_tree.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/layout/labels.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/layout/sankey.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/links/__init__.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/links/curves.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/links/link.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/plot/__init__.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/plot/axis.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/plot/breaks.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/plot/categories.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/plot/facets.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/plot/inset.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/plot/key.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/plot/marks.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/plot/notes.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/plot/panel.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/plot/png.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/plot/ramp.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/plot/raster.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/plot/ribbon.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/plot/scale.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/plot/scatter_batch.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/plot/scatter_raster.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/plot/series.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/plot/simplify.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/plot/timescale.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/render/__init__.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/render/analysis.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/render/bounds.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/render/brushes.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/render/bundle.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/render/composite.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/render/fontembed.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/render/glyphs.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/render/hatching.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/render/outline.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/render/paint.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/render/pathdata.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/render/pdf.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/render/pdftext.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/render/preview.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/render/raster.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/render/resources.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/render/review.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/render/revision.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/render/scene.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/render/svg.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/themes/__init__.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/themes/color.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/themes/palettes.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/themes/theme.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/__init__.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/api.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/backend.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/blender/__init__.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/blender/device_worker.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/blender/discover.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/blender/lineart.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/blender/options.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/blender/scene_worker.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/blender/script.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/blender/svgread.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/blender/template_worker.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/blender/tracing.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/blender_backend.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/camera.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/deps.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/depth.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/devices.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/drill.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/edges.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/hlr.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/linalg.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/mesh.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/occlude.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/order.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/parse.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/place.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/protein.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/quality.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/render_jobs.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/scene_annotations.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/scene_pass.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/scene_projection.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/scenes.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/shade.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/solids.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/templates.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/three/templates.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/typeset/__init__.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/typeset/fonts.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/typeset/markup.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/typeset/onpath.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/typeset/outline.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/src/inklet/typeset/shaping.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/assets/mouse.inklet.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/assets/mouse.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/dense_graph.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/draw_probe.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/electro/assets/sem.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/electro/assets/tem.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/electro/cell.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/electro/common.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/electro/data.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/electro/imaging.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/electro/kinetics.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/electro/micrograph.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/electro/system.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/electro_figure.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/fidelity.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/flow.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/hard_figure.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/label_storm.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/mega_figure.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/meshes/README.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/meshes/brain-lh.obj +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/meshes/spot.obj +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/panels/apparatus.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/panels/graphs.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/panels/relations.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/panels/responses.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/panels/sections.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/probes.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/stress/three_figure.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_alignment_contract.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_annotate.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_annotate_letters.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_assets.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_assets_provenance.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_biology_source.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_blend_scene.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_browser_compiled.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_browser_facets.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_browser_figure.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_browser_overrides.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_browser_regions.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_browser_revision.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_browser_scatter.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_browser_series.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_browser_statistics.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_browser_switching.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_browser_time.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_categories.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_channels_contours.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_chem_figure.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_cli.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_clip_engine.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_components.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_compositing_engine.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_contrast_and_labels.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_cookbook.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_core.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_core_amendments.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_csv_input.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_diagnostics.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_diagnostics_api.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_diagnostics_artwork.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_diagnostics_break_distorts.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_diagnostics_crossing.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_diagnostics_image_contrast.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_diagnostics_ink.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_diagnostics_keys.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_diagnostics_links.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_diagnostics_paths.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_diagnostics_plot_box.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_diagram_engine.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_docs.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_document.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_document_data.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_document_v25.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_draw_clip.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_draw_path.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_draw_place.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_draw_shapes.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_engine_layout.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_engine_rendering.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_engine_scatter.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_engineering_report.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_export_bundle.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_figure.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_figure_planner.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_fit.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_grid_fields.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_hatch_engine.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_label_measurements.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_layout.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_layout_graph.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_layout_graph_fit.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_layout_origin.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_layout_sankey.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_links.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_links_avoid.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_links_shapes.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_marker_batches.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_mesh_fields.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_microscopy_tiff.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_neural_activity.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_output_contract.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_paint_program.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_place_labels.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_plot_axis.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_plot_broken_axis.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_plot_clip.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_plot_engine.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_plot_facets.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_plot_inset.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_plot_key.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_plot_labels.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_plot_legend.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_plot_marks.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_plot_notes.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_plot_publication.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_plot_quality_review.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_plot_raster.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_plot_ribbon.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_plot_scale.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_plot_swarm.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_plot_time.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_presets.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_publication_limits.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_regional_report.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_release_adversarial.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_render_devices.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_render_embed.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_render_glyphs.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_render_jobs.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_render_outline.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_render_pdf.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_render_pdf_text.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_render_quality.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_render_scene.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_render_style_fields.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_render_svg_perf.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_render_v3.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_review_v25.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_round4_plot.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_routing_avoid.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_scatter_rendering.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_scene_annotations.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_scene_culling.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_scene_pass.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_scene_projection.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_scene_templates.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_scene_viewer.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_scientific_report.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_sections.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_shared_plot_margins.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_showcase_library.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_showcase_round3.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_slabs_regions.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_structure_figure.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_svg.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_table_adapters.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_target_pose.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_temporal_adapters.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_text_markup.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_text_on_path.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_theme_font_style.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_themes.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_three_anchor_pin.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_three_api.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_three_backend_blender.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_three_blender.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_three_depth_order.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_three_drill.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_three_hlr.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_three_mesh.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_three_order_vector.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_three_overlay.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_three_parse.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_three_patches.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_three_place.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_three_protein.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_three_ridges.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_three_sort.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_three_sort_budget.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_three_view.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_typeset.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_v4_selection.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_volume.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_watch_review.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/test_world_map_example.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/README.md +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/categories-pdf.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/categories-svg.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/components-pdf.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/components-svg.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/dense-pdf.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/dense-svg.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/fonts.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/inset-pdf.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/inset-svg.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/markers-pdf.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/markers-svg.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/renderers.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/type-opacity-pdf.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/type-opacity-svg.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/v2-category-subset-pdf.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/v2-category-subset-svg.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/v2-dense-pdf.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/v2-dense-svg.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/v2-late-inset-pdf.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/v2-late-inset-svg.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/v2-shared-scales-pdf.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/v2-shared-scales-svg.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/v2-twins-matrix-pdf.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/v2-twins-matrix-svg.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/v2-workflow-pdf.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/v2-workflow-svg.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/v25-document-pdf.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/baseline/v25-document-svg.png +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/fixtures.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tests/visual/v2-budgets.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/benchmark_batches.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/benchmark_clipping.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/benchmark_diagrams.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/benchmark_engine.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/benchmark_lines.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/benchmark_marker_index.mjs +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/benchmark_scene_culling.js +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/benchmark_scene_gpu.js +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/benchmark_scene_redraw.js +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/benchmark_scene_viewer.js +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/benchmark_scene_zoom.js +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/benchmark_v2.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/benchmark_v4.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/browser_study.js +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/check_render_wheel.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/check_wheel.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/dock_ligand.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/docs_gallery.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/docs_theme/404.html +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/docs_theme/card.html +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/docs_theme/gallery.html +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/gen_api.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/make_culling_review.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/prepare_world_map.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/preset_gallery.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/profile_scene_redraw.js +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/showcase_gallery.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/stress20.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/strip_pdb.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/v3_showcase.py +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/v4-budgets.json +0 -0
- {inklet-4.0.0.dev3 → inklet-4.0.0.dev4}/tools/visual_check.py +0 -0
|
@@ -6,7 +6,7 @@ on:
|
|
|
6
6
|
tag:
|
|
7
7
|
description: Published GitHub release tag
|
|
8
8
|
required: true
|
|
9
|
-
default: v4.0.0.
|
|
9
|
+
default: v4.0.0.dev4
|
|
10
10
|
type: string
|
|
11
11
|
dry_run:
|
|
12
12
|
description: Validate release files without uploading to PyPI
|
|
@@ -43,7 +43,7 @@ jobs:
|
|
|
43
43
|
RELEASE_TAG: ${{ inputs.tag }}
|
|
44
44
|
run: |
|
|
45
45
|
[[ "$RELEASE_TAG" =~ ^v[0-9]+\.[0-9]+\.[0-9]+(\.dev[0-9]+)?$ ]] || {
|
|
46
|
-
echo 'Expected a stable or development tag such as v3.1.0 or v4.0.0.
|
|
46
|
+
echo 'Expected a stable or development tag such as v3.1.0 or v4.0.0.dev4' >&2
|
|
47
47
|
exit 1
|
|
48
48
|
}
|
|
49
49
|
gh release view "$RELEASE_TAG" --json isDraft,isPrerelease > "$RUNNER_TEMP/release.json"
|
|
@@ -2,6 +2,19 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 4.0.0.dev4 — 2026-09-12
|
|
6
|
+
|
|
7
|
+
Fourth development preview: correct closed polar geometry and make the plot
|
|
8
|
+
documentation visual and easier to navigate. 3.1.0 remains stable.
|
|
9
|
+
|
|
10
|
+
- Fix closed polar curves retracing the angular range and shaded bands crossing
|
|
11
|
+
themselves. Complete the closing arc in sample order and retain both band
|
|
12
|
+
endpoints; refresh polar previews and cover angular units and winding directions.
|
|
13
|
+
|
|
14
|
+
- Reorganize documentation around plotting, interactive documents and microscopy.
|
|
15
|
+
Add a searchable visual plot gallery and six guides with 22 rendered, runnable
|
|
16
|
+
examples; check plot-family coverage, gallery links and guide execution.
|
|
17
|
+
|
|
5
18
|
## 4.0.0.dev3 — 2026-09-12
|
|
6
19
|
|
|
7
20
|
Third development preview: shared scene execution, dense marker rendering,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: inklet
|
|
3
|
-
Version: 4.0.0.
|
|
3
|
+
Version: 4.0.0.dev4
|
|
4
4
|
Summary: Scientific figures with live data, measured layout, and consistent vector exports.
|
|
5
5
|
Project-URL: Repository, https://github.com/Mapika/inklet
|
|
6
6
|
Project-URL: Documentation, https://inklet.readthedocs.io/en/latest/
|
|
@@ -81,17 +81,16 @@ their signatures and report schemas may change.
|
|
|
81
81
|
|
|
82
82
|
## 4.0 development preview
|
|
83
83
|
|
|
84
|
-
**4.0.0.
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
source revisions and reproducible vector exports.
|
|
84
|
+
**4.0.0.dev4** fixes closed polar curves and shaded bands, and adds a visual
|
|
85
|
+
plot gallery with 22 runnable examples. It retains shared compiled rendering,
|
|
86
|
+
offline viewing, linked reports, and reproducible plot editing with undo/redo.
|
|
88
87
|
```sh
|
|
89
|
-
python -m pip install "inklet==4.0.0.
|
|
88
|
+
python -m pip install "inklet==4.0.0.dev4"
|
|
90
89
|
```
|
|
91
90
|
|
|
92
91
|
[Preview guide and examples](https://inklet.readthedocs.io/en/latest/development-preview/) ·
|
|
93
92
|
[4.0 roadmap](https://inklet.readthedocs.io/en/latest/roadmap/) ·
|
|
94
|
-
[Release notes](https://github.com/Mapika/inklet/releases/tag/v4.0.0.
|
|
93
|
+
[Release notes](https://github.com/Mapika/inklet/releases/tag/v4.0.0.dev4)
|
|
95
94
|
|
|
96
95
|
This is an opt-in development release. Experimental APIs and saved-state schemas
|
|
97
96
|
may change; 3.1.0 remains the stable release. General browser editing,
|
|
@@ -31,17 +31,16 @@ their signatures and report schemas may change.
|
|
|
31
31
|
|
|
32
32
|
## 4.0 development preview
|
|
33
33
|
|
|
34
|
-
**4.0.0.
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
source revisions and reproducible vector exports.
|
|
34
|
+
**4.0.0.dev4** fixes closed polar curves and shaded bands, and adds a visual
|
|
35
|
+
plot gallery with 22 runnable examples. It retains shared compiled rendering,
|
|
36
|
+
offline viewing, linked reports, and reproducible plot editing with undo/redo.
|
|
38
37
|
```sh
|
|
39
|
-
python -m pip install "inklet==4.0.0.
|
|
38
|
+
python -m pip install "inklet==4.0.0.dev4"
|
|
40
39
|
```
|
|
41
40
|
|
|
42
41
|
[Preview guide and examples](https://inklet.readthedocs.io/en/latest/development-preview/) ·
|
|
43
42
|
[4.0 roadmap](https://inklet.readthedocs.io/en/latest/roadmap/) ·
|
|
44
|
-
[Release notes](https://github.com/Mapika/inklet/releases/tag/v4.0.0.
|
|
43
|
+
[Release notes](https://github.com/Mapika/inklet/releases/tag/v4.0.0.dev4)
|
|
45
44
|
|
|
46
45
|
This is an opt-in development release. Experimental APIs and saved-state schemas
|
|
47
46
|
may change; 3.1.0 remains the stable release. General browser editing,
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
# Bars and areas
|
|
2
|
+
|
|
3
|
+
Bars compare values at category or numeric positions. Areas show the extent
|
|
4
|
+
between a curve and a baseline or between two curves. Use stacked displays only
|
|
5
|
+
when adding the contributions has a stated meaning.
|
|
6
|
+
|
|
7
|
+
All values below are illustrative. Each snippet can be run independently with
|
|
8
|
+
core Inklet; PNG preview generation additionally uses the `render` extra.
|
|
9
|
+
|
|
10
|
+
## Categorical bars
|
|
11
|
+
|
|
12
|
+
Compare values across named categories.
|
|
13
|
+
`bar_colors` maps colours to individual bars; `colors` maps colours to series
|
|
14
|
+
in grouped or stacked bars. Declare a suitable baseline explicitly.
|
|
15
|
+
|
|
16
|
+
```python
|
|
17
|
+
import inklet as i
|
|
18
|
+
p = i.plot_spec(x=['Control', 'Treatment'], y=(0, 10), height=45)
|
|
19
|
+
p.bars(['Control', 'Treatment'], [5, 8],
|
|
20
|
+
bar_colors=['#527da8', '#b96932'])
|
|
21
|
+
p.axes(y='Response / a.u.')
|
|
22
|
+
doc = i.document(width=105)
|
|
23
|
+
doc.add('bars', p)
|
|
24
|
+
doc.save('bars.svg', 'bars.pdf')
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+

|
|
28
|
+
|
|
29
|
+
*Rendered from the code above.*
|
|
30
|
+
|
|
31
|
+
## Grouped bars
|
|
32
|
+
|
|
33
|
+
Grouped bars compare several series within each category.
|
|
34
|
+
The outer list of heights is series-major. Keep the same category order across
|
|
35
|
+
series and use the legend to identify them.
|
|
36
|
+
|
|
37
|
+
```python
|
|
38
|
+
import inklet as i
|
|
39
|
+
p = i.plot_spec(x=['A', 'B', 'C'], y=(0, 10), height=45)
|
|
40
|
+
p.bars(['A', 'B', 'C'], [[4, 7, 5], [6, 5, 8]], grouped=True,
|
|
41
|
+
colors=['#527da8', '#b96932'], names=['Before', 'After'])
|
|
42
|
+
p.axes(y='Response / a.u.').legend(side='bottom')
|
|
43
|
+
doc = i.document(width=105)
|
|
44
|
+
doc.add('grouped-bars', p)
|
|
45
|
+
doc.save('grouped-bars.svg', 'grouped-bars.pdf')
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+

|
|
49
|
+
|
|
50
|
+
*Rendered from the code above.*
|
|
51
|
+
|
|
52
|
+
## Stacked bars
|
|
53
|
+
|
|
54
|
+
Stacked bars show each contribution and the total at each category.
|
|
55
|
+
Values are supplied per series. For contributions that are difficult to compare
|
|
56
|
+
without a common baseline, consider grouped bars instead.
|
|
57
|
+
|
|
58
|
+
```python
|
|
59
|
+
import inklet as i
|
|
60
|
+
p = i.plot_spec(x=['A', 'B', 'C'], y=(0, 10), height=45)
|
|
61
|
+
p.bars(['A', 'B', 'C'], [[3, 4, 2], [4, 2, 5]], stacked=True,
|
|
62
|
+
colors=['#527da8', '#80ad91'], names=['Part one', 'Part two'])
|
|
63
|
+
p.axes(y='Total / a.u.').legend(side='bottom')
|
|
64
|
+
doc = i.document(width=105)
|
|
65
|
+
doc.add('stacked-bars', p)
|
|
66
|
+
doc.save('stacked-bars.svg', 'stacked-bars.pdf')
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+

|
|
70
|
+
|
|
71
|
+
*Rendered from the code above.*
|
|
72
|
+
|
|
73
|
+
## Horizontal bars
|
|
74
|
+
|
|
75
|
+
Horizontal bars give category labels more room.
|
|
76
|
+
The first categorical y value is at the bottom. Reverse the category order
|
|
77
|
+
when the first label should appear at the top.
|
|
78
|
+
|
|
79
|
+
```python
|
|
80
|
+
import inklet as i
|
|
81
|
+
p = i.plot_spec(x=(0, 10), y=['West', 'Central', 'North'], height=45)
|
|
82
|
+
p.bars(['West', 'Central', 'North'], [6, 8, 5], orient='h',
|
|
83
|
+
bar_colors=['#527da8', '#80ad91', '#b96932'])
|
|
84
|
+
p.axes(x='Value / a.u.')
|
|
85
|
+
doc = i.document(width=105)
|
|
86
|
+
doc.add('horizontal-bars', p)
|
|
87
|
+
doc.save('horizontal-bars.svg', 'horizontal-bars.pdf')
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+

|
|
91
|
+
|
|
92
|
+
*Rendered from the code above.*
|
|
93
|
+
|
|
94
|
+
## Filled areas
|
|
95
|
+
|
|
96
|
+
Fill the region between a curve and a stated baseline.
|
|
97
|
+
Declare the area before an overlaid line so the outline remains visible.
|
|
98
|
+
|
|
99
|
+
```python
|
|
100
|
+
import inklet as i
|
|
101
|
+
p = i.plot_spec(x=(0, 5), y=(0, 6), height=45)
|
|
102
|
+
points = [(0, 1), (1, 3), (2, 2), (3, 4), (4, 3), (5, 5)]
|
|
103
|
+
p.fill(points, baseline=0, fill='#a5c8b7', stroke='none')
|
|
104
|
+
p.line(points, stroke='#34735f', stroke_width=.5)
|
|
105
|
+
p.axes(x='Position / mm', y='Value / a.u.')
|
|
106
|
+
doc = i.document(width=105)
|
|
107
|
+
doc.add('fill', p)
|
|
108
|
+
doc.save('fill.svg', 'fill.pdf')
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+

|
|
112
|
+
|
|
113
|
+
*Rendered from the code above.*
|
|
114
|
+
|
|
115
|
+
## Between curves
|
|
116
|
+
|
|
117
|
+
Fill a region between two supplied curves.
|
|
118
|
+
`fill_between` takes absolute y coordinates. A coloured region alone does not
|
|
119
|
+
imply uncertainty; describe the meaning of the two boundaries.
|
|
120
|
+
|
|
121
|
+
```python
|
|
122
|
+
import inklet as i
|
|
123
|
+
p = i.plot_spec(x=(0, 4), y=(0, 6), height=45)
|
|
124
|
+
x = [0, 1, 2, 3, 4]
|
|
125
|
+
lower, upper = [1, 2, 1.5, 2.5, 2], [3, 4, 3.5, 5, 4]
|
|
126
|
+
p.fill_between(x, lower, upper, fill='#c6b3d6', stroke='none')
|
|
127
|
+
p.line(list(zip(x, lower)), stroke='#76578f')
|
|
128
|
+
p.line(list(zip(x, upper)), stroke='#76578f')
|
|
129
|
+
p.axes(x='Position / mm', y='Boundary / a.u.')
|
|
130
|
+
doc = i.document(width=105)
|
|
131
|
+
doc.add('fill-between', p)
|
|
132
|
+
doc.save('fill-between.svg', 'fill-between.pdf')
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+

|
|
136
|
+
|
|
137
|
+
*Rendered from the code above.*
|
|
138
|
+
|
|
139
|
+
## Stacked areas
|
|
140
|
+
|
|
141
|
+
Stacked areas accumulate nonnegative series over x.
|
|
142
|
+
Values are series-major; each series must contain one value per x coordinate.
|
|
143
|
+
For signed regions, calculate the boundaries and use `fill_between` explicitly.
|
|
144
|
+
|
|
145
|
+
```python
|
|
146
|
+
import inklet as i
|
|
147
|
+
p = i.plot_spec(x=(0, 4), y=(0, 9), height=45)
|
|
148
|
+
p.stackarea([0, 1, 2, 3, 4], [[2, 3, 2, 4, 3], [3, 2, 4, 2, 4]],
|
|
149
|
+
colors=['#527da8', '#80ad91'], names=['Part one', 'Part two'],
|
|
150
|
+
stroke='none')
|
|
151
|
+
p.axes(x='Time / s', y='Total / a.u.').legend(side='bottom')
|
|
152
|
+
doc = i.document(width=105)
|
|
153
|
+
doc.add('stackarea', p)
|
|
154
|
+
doc.save('stackarea.svg', 'stackarea.pdf')
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+

|
|
158
|
+
|
|
159
|
+
*Rendered from the code above.*
|
|
160
|
+
|
|
161
|
+
## Next steps
|
|
162
|
+
|
|
163
|
+
[Compare plot types](plot-types.md), configure [axes and scales](axes-and-scales.md),
|
|
164
|
+
or [arrange several panels](layout.md). For exact options, see the [API](api.md).
|
|
@@ -48,7 +48,7 @@ Blender. Scene creation and rendering run Blender in a separate process.
|
|
|
48
48
|
### Development-preview table adapters
|
|
49
49
|
|
|
50
50
|
The [pandas and Polars adapters](table-inputs.md) are included in the experimental
|
|
51
|
-
[4.0.0.
|
|
51
|
+
[4.0.0.dev4 preview](development-preview.md), not in stable 3.1.0. Their `pandas` and `polars` extras are separate
|
|
52
52
|
from core dependencies. The adapter CI jobs use Linux/Python 3.12 with pandas
|
|
53
53
|
2.2.0 / Polars 1.0.0 and the versions pinned in `requirements-tables.txt`.
|
|
54
54
|
Both paths check scalar/identity contracts and saved-state SVG reconstruction.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# Inklet 4.0.0.
|
|
1
|
+
# Inklet 4.0.0.dev4
|
|
2
2
|
|
|
3
|
-
The
|
|
3
|
+
The fourth 4.0 development release includes the linked plotting, mapping,
|
|
4
4
|
engineering and scientific workflows developed since 3.1.0. It is an installable
|
|
5
5
|
snapshot for trying real examples and reporting problems. **3.1.0 remains the
|
|
6
6
|
stable release.** The [4.0 roadmap](roadmap.md) still has open work.
|
|
@@ -8,7 +8,7 @@ stable release.** The [4.0 roadmap](roadmap.md) still has open work.
|
|
|
8
8
|
```sh
|
|
9
9
|
python -m venv .venv
|
|
10
10
|
source .venv/bin/activate
|
|
11
|
-
python -m pip install "inklet==4.0.0.
|
|
11
|
+
python -m pip install "inklet==4.0.0.dev4"
|
|
12
12
|
```
|
|
13
13
|
|
|
14
14
|
On Windows PowerShell, activate with `.venv\Scripts\Activate.ps1` instead.
|
|
@@ -19,9 +19,9 @@ stable releases; see its [installation documentation](https://pip.pypa.io/en/sta
|
|
|
19
19
|
Optional extras can be installed with the same pin:
|
|
20
20
|
|
|
21
21
|
```sh
|
|
22
|
-
python -m pip install "inklet[render,pandas,polars]==4.0.0.
|
|
22
|
+
python -m pip install "inklet[render,pandas,polars]==4.0.0.dev4"
|
|
23
23
|
# Add calibrated volumes and TIFF workflows when needed:
|
|
24
|
-
python -m pip install "inklet[volume,render]==4.0.0.
|
|
24
|
+
python -m pip install "inklet[volume,render]==4.0.0.dev4"
|
|
25
25
|
```
|
|
26
26
|
|
|
27
27
|
The core preview needs no browser server, NumPy, pandas, Polars or Blender.
|
|
@@ -29,7 +29,19 @@ Opening the generated HTML requires a browser. PNG/PDF exports from browser
|
|
|
29
29
|
figures use separate Chrome/Chromium and Pillow; native Diagram exports retain
|
|
30
30
|
their existing requirements. See [installation](installation.md).
|
|
31
31
|
|
|
32
|
-
##
|
|
32
|
+
## Plot corrections and visual guides in dev4
|
|
33
|
+
|
|
34
|
+
Closed polar curves now complete the angular turn without retracing the samples,
|
|
35
|
+
and closed bands retain their endpoints without a missing wedge. This fixes
|
|
36
|
+
incorrect self-crossings in both static exports and their previews.
|
|
37
|
+
|
|
38
|
+
The [visual plot gallery](plot-types.md) adds 22 rendered examples across six
|
|
39
|
+
focused guides. Navigation now separates core plots, interactive documents,
|
|
40
|
+
microscopy and development studies. Existing guide URLs remain valid.
|
|
41
|
+
|
|
42
|
+

|
|
43
|
+
|
|
44
|
+
## Rendering and authoring retained from dev3
|
|
33
45
|
|
|
34
46
|
This preview adds shared [native compiled scenes](compiled-scenes.md),
|
|
35
47
|
[packed markers](marker-batches.md), [spatial culling](marker-culling.md), and
|
|
@@ -37,7 +49,7 @@ an offline [compiled viewer](compiled-viewer.md) with reported WebGL2/Canvas
|
|
|
37
49
|
fallback. The [regional report](regional-report.md) connects that executor to
|
|
38
50
|
keyed selection, filtering and saved-state revision controls.
|
|
39
51
|
|
|
40
|
-
The
|
|
52
|
+
The [plot-style inspector](visual-editing.md) supports named colours, marker
|
|
41
53
|
sizes and line widths, undo/redo, and saved overrides for Python reconstruction.
|
|
42
54
|
It preserves compatible edits across revisions and reports orphaned targets.
|
|
43
55
|
This is a bounded start on authoring, not the full 4.0 editor.
|
|
@@ -74,7 +86,7 @@ The wheel contains the library. To obtain recipes and fixtures, use the matching
|
|
|
74
86
|
release checkout or source archive:
|
|
75
87
|
|
|
76
88
|
```sh
|
|
77
|
-
git clone --branch v4.0.0.
|
|
89
|
+
git clone --branch v4.0.0.dev4 https://github.com/Mapika/inklet.git
|
|
78
90
|
cd inklet
|
|
79
91
|
python -m pip install -e '.[render]'
|
|
80
92
|
python examples/v4/regional_report.py --renderer compiled --editor --output out/regional
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# Distributions and individual samples
|
|
2
|
+
|
|
3
|
+
A histogram groups observations into bins; boxplots summarize quartiles;
|
|
4
|
+
violins estimate a smooth density; swarms retain the individual values. State
|
|
5
|
+
the sample population and any grouping or smoothing used.
|
|
6
|
+
|
|
7
|
+
All values below are illustrative. Each snippet can be run independently with
|
|
8
|
+
core Inklet; PNG preview generation additionally uses the `render` extra.
|
|
9
|
+
|
|
10
|
+
## Histograms
|
|
11
|
+
|
|
12
|
+
Histograms count observations within explicit bins.
|
|
13
|
+
`density=True` divides by sample size and bin width so the bar area integrates
|
|
14
|
+
to one. Use `inklet.plot.histogram` first when the counts should determine the
|
|
15
|
+
y domain.
|
|
16
|
+
|
|
17
|
+
```python
|
|
18
|
+
import inklet as i
|
|
19
|
+
values = [1, 1.2, 1.4, 1.9, 2.1, 2.4, 2.4, 2.8, 3, 3.2, 3.5, 4]
|
|
20
|
+
p = i.plot_spec(x=(0, 5), y=(0, 6), height=45)
|
|
21
|
+
p.hist(values, bins=[0, 1, 2, 3, 4, 5], colors='#527da8')
|
|
22
|
+
p.axes(x='Duration / s', y='Count')
|
|
23
|
+
doc = i.document(width=105)
|
|
24
|
+
doc.add('hist', p)
|
|
25
|
+
doc.save('hist.svg', 'hist.pdf')
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+

|
|
29
|
+
|
|
30
|
+
*Rendered from the code above.*
|
|
31
|
+
|
|
32
|
+
## Boxplots
|
|
33
|
+
|
|
34
|
+
Boxplots show the median, quartiles and Tukey whiskers.
|
|
35
|
+
Whiskers stop at the furthest observation within `whisker` times the interquartile
|
|
36
|
+
range. More distant observations are shown separately by default.
|
|
37
|
+
|
|
38
|
+
```python
|
|
39
|
+
import inklet as i
|
|
40
|
+
samples = {'A': [1, 2, 2.2, 2.5, 3, 3.2, 4, 7.5],
|
|
41
|
+
'B': [2, 3, 3.5, 4, 4.2, 4.5, 5, 6]}
|
|
42
|
+
p = i.plot_spec(x=['A', 'B'], y=(0, 8), height=45)
|
|
43
|
+
p.boxplot(samples, colors=['#527da8', '#b96932'])
|
|
44
|
+
p.axes(y='Measurement / a.u.')
|
|
45
|
+
doc = i.document(width=105)
|
|
46
|
+
doc.add('boxplot', p)
|
|
47
|
+
doc.save('boxplot.svg', 'boxplot.pdf')
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+

|
|
51
|
+
|
|
52
|
+
*Rendered from the code above.*
|
|
53
|
+
|
|
54
|
+
## Violins
|
|
55
|
+
|
|
56
|
+
Violins show a kernel-smoothed sample distribution.
|
|
57
|
+
The default bandwidth follows Silverman’s robust rule; `bandwidth`, `cut` and
|
|
58
|
+
`samples` control smoothing and drawing extent. For small groups, showing the
|
|
59
|
+
individual observations can reveal more than a smooth outline.
|
|
60
|
+
|
|
61
|
+
```python
|
|
62
|
+
import inklet as i
|
|
63
|
+
import math
|
|
64
|
+
samples = {'A': [3 + math.sin(k * .6) + .2 * math.cos(k) for k in range(48)],
|
|
65
|
+
'B': [5 + 1.5 * math.sin(k * .8) for k in range(48)]}
|
|
66
|
+
p = i.plot_spec(x=['A', 'B'], y=(0, 9), height=45)
|
|
67
|
+
p.violin(samples, colors=['#527da8', '#b96932'], cut=1.5)
|
|
68
|
+
p.axes(y='Measurement / a.u.')
|
|
69
|
+
doc = i.document(width=105)
|
|
70
|
+
doc.add('violin', p)
|
|
71
|
+
doc.save('violin.svg', 'violin.pdf')
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+

|
|
75
|
+
|
|
76
|
+
*Rendered from the code above.*
|
|
77
|
+
|
|
78
|
+
## Swarms
|
|
79
|
+
|
|
80
|
+
Swarms show every observation, including repeated values.
|
|
81
|
+
Only the sideways placement changes to separate markers. The measured value
|
|
82
|
+
stays fixed. `size` is marker diameter in millimetres; crowded groups may need
|
|
83
|
+
more panel width or smaller markers.
|
|
84
|
+
|
|
85
|
+
```python
|
|
86
|
+
import inklet as i
|
|
87
|
+
samples = {'A': [1.8, 2, 2, 2.1, 2.5, 3, 3.1, 4],
|
|
88
|
+
'B': [3, 3.1, 3.1, 3.3, 3.5, 4, 4.2, 5]}
|
|
89
|
+
p = i.plot_spec(x=['A', 'B'], y=(0, 6), height=45)
|
|
90
|
+
p.swarm(samples, size=1.5, colors=['#527da8', '#b96932'])
|
|
91
|
+
p.axes(y='Measurement / a.u.')
|
|
92
|
+
doc = i.document(width=105)
|
|
93
|
+
doc.add('swarm', p)
|
|
94
|
+
doc.save('swarm.svg', 'swarm.pdf')
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+

|
|
98
|
+
|
|
99
|
+
*Rendered from the code above.*
|
|
100
|
+
|
|
101
|
+
## Next steps
|
|
102
|
+
|
|
103
|
+
[Compare plot types](plot-types.md), configure [axes and scales](axes-and-scales.md),
|
|
104
|
+
or [arrange several panels](layout.md). For exact options, see the [API](api.md).
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: home
|
|
3
|
+
title: Overview
|
|
4
|
+
---
|
|
5
|
+
## Find the right guide
|
|
6
|
+
|
|
7
|
+
| You want to… | Start here |
|
|
8
|
+
|---|---|
|
|
9
|
+
| Choose a plot for your data | [Visual plot gallery](plot-types.md) |
|
|
10
|
+
| Combine marks, legends and insets | [Plotting](plotting.md) |
|
|
11
|
+
| Set scales, tick labels and fonts | [Axes, scales and text](axes-and-scales.md) |
|
|
12
|
+
| Share data, colours and units | [Live data](data.md) |
|
|
13
|
+
| Draw measured components and connections | [Diagrams](diagrams.md) |
|
|
14
|
+
| Add images, meshes or Blender scenes | [3D and images](three-images.md) |
|
|
15
|
+
| Build an offline interactive report | [Interactive documents (4.0 preview)](interactive-documents.md) |
|
|
16
|
+
| Work with microscopy data | [Calibrated volumes (preview)](calibrated-volumes.md) |
|
|
17
|
+
|
|
18
|
+
## Reference and development
|
|
19
|
+
|
|
20
|
+
Use the [Python API](api.md) for signatures, the [command-line reference](cli.md)
|
|
21
|
+
for script workflows and [troubleshooting](troubleshooting.md) for diagnostics.
|
|
22
|
+
[Migration](migration.md) covers existing projects.
|
|
23
|
+
|
|
24
|
+
Core guides work with the stable release. Features marked **preview** require
|
|
25
|
+
[the development installation](development-preview.md). Engine studies and
|
|
26
|
+
historical designs are grouped under Development; see the [4.0 roadmap](roadmap.md)
|
|
27
|
+
and [contributing guide](../CONTRIBUTING.md) to follow or contribute to that work.
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Inklet requires Python 3.11 or later and an installed TrueType/OpenType font.
|
|
4
4
|
The core Python dependencies are HarfBuzz bindings and fontTools.
|
|
5
5
|
|
|
6
|
-
This page covers stable **Inklet 3.1** and the opt-in **4.0.0.
|
|
6
|
+
This page covers stable **Inklet 3.1** and the opt-in **4.0.0.dev4 preview**. See the
|
|
7
7
|
[compatibility matrix](compatibility.md) for tested platforms and Blender versions.
|
|
8
8
|
|
|
9
9
|
## From PyPI
|
|
@@ -24,9 +24,9 @@ Activate the environment or prefix commands with `.venv/bin/` on Linux/macOS.
|
|
|
24
24
|
## 4.0 development preview
|
|
25
25
|
|
|
26
26
|
```sh
|
|
27
|
-
python -m pip install "inklet==4.0.0.
|
|
27
|
+
python -m pip install "inklet==4.0.0.dev4"
|
|
28
28
|
# Optional rendering and DataFrame adapters:
|
|
29
|
-
python -m pip install "inklet[render,pandas,polars]==4.0.0.
|
|
29
|
+
python -m pip install "inklet[render,pandas,polars]==4.0.0.dev4"
|
|
30
30
|
```
|
|
31
31
|
|
|
32
32
|
Use a separate virtual environment when trying the preview. Experimental APIs
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Interactive documents
|
|
2
|
+
|
|
3
|
+
The **4.0 development preview** adds offline HTML exploration and reproducible
|
|
4
|
+
visual editing. Install the [preview version](development-preview.md) explicitly;
|
|
5
|
+
`pip install inklet` still selects the stable release.
|
|
6
|
+
|
|
7
|
+

|
|
8
|
+
|
|
9
|
+
## Choose a workflow
|
|
10
|
+
|
|
11
|
+
| You want to… | Start here | What stays reproducible |
|
|
12
|
+
| --- | --- | --- |
|
|
13
|
+
| Inspect, pan and zoom a native figure | [Compiled-scene viewer](compiled-viewer.md) | Native vector export and the compiled snapshot |
|
|
14
|
+
| Select and filter observations across plots | [Linked plots](linked-plots.md) | Stable row IDs and a saved selection/view state |
|
|
15
|
+
| Build category panels or time series | [Facets](linked-facets.md), [dates and time series](time-series.md) | Category order, missing-value gaps and shared selection |
|
|
16
|
+
| Join a regional map to values | [Linked maps](linked-maps.md) | Explicit geometry keys, bins and source attribution |
|
|
17
|
+
| Display distributions or supplied intervals | [Linked statistics](statistical-views.md) | Stated methods, reference populations and interval meaning |
|
|
18
|
+
| Edit plot appearance in the browser | [Visual editing](visual-editing.md) | Versioned overrides, undo/redo and Python reconstruction |
|
|
19
|
+
| Replace source data | [Data revisions](data-revisions.md) | Explicit missing-ID policy and a revision report |
|
|
20
|
+
|
|
21
|
+
## Run a complete report
|
|
22
|
+
|
|
23
|
+
Start with the [regional report](regional-report.md): a real map with simulated
|
|
24
|
+
measurements, linked histories, an ECDF and faceted comparisons. It exercises
|
|
25
|
+
selection, filtering, save/reopen, source replacement and exports at two widths.
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
python examples/v4/regional_report.py --renderer compiled --editor --output out/regional
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Open the generated `index.html`. Save the view for selection/filter/zoom and
|
|
32
|
+
save overrides for edited styles. Keep both files with the matching source
|
|
33
|
+
recipe and data revision. The [visual editing guide](visual-editing.md) shows
|
|
34
|
+
how to rebuild the same appearance in Python.
|
|
35
|
+
|
|
36
|
+
For other data, follow the [engineering report](engineering-report.md),
|
|
37
|
+
[calibrated image measurements](scientific-report.md), [mesh fields](mesh-fields.md)
|
|
38
|
+
or [contours and streamlines](contours-streamlines.md). Optional
|
|
39
|
+
[pandas and Polars adapters](table-inputs.md) preserve explicit row identities.
|
|
40
|
+
|
|
41
|
+
## Know the boundary
|
|
42
|
+
|
|
43
|
+
Standalone pages embed their supported operations and assets. They need no
|
|
44
|
+
Python server or CDN to use those controls. Arbitrary Python callbacks do not
|
|
45
|
+
run inside the exported HTML. Source replacement in the browser switches among
|
|
46
|
+
precompiled alternatives; CSV processing and fresh compilation happen in Python.
|
|
47
|
+
|
|
48
|
+
A native compiled viewer does not automatically infer row relationships for
|
|
49
|
+
arbitrary scene objects. Linked figures declare those correspondences explicitly.
|
|
50
|
+
The first style editor covers named colours, marker radii and line widths;
|
|
51
|
+
label/panel/camera editing remains open. Read the feature guide's limits before
|
|
52
|
+
relying on an experimental API or saved-state schema.
|