inklet 4.0.0.dev2__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.dev2 → inklet-4.0.0.dev4}/.github/workflows/checks.yml +5 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/.github/workflows/publish.yml +2 -2
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/CHANGELOG.md +119 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/PKG-INFO +6 -9
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/README.md +5 -8
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/api.md +21 -4
- 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/assets/research-preview/compiled-marker-shapes-caption.tex +1 -0
- inklet-4.0.0.dev4/docs/assets/research-preview/compiled-marker-shapes.html +331 -0
- inklet-4.0.0.dev4/docs/assets/research-preview/compiled-markers-display.json +13 -0
- inklet-4.0.0.dev4/docs/assets/research-preview/compiled-markers-hardware.json +178 -0
- inklet-4.0.0.dev4/docs/assets/research-preview/compiled-scene-viewer.html +331 -0
- inklet-4.0.0.dev4/docs/assets/research-preview/compiled-viewer-display.json +12 -0
- inklet-4.0.0.dev4/docs/assets/research-preview/compiled-viewer-export.json +12 -0
- inklet-4.0.0.dev4/docs/assets/research-preview/compiled-viewer-study.json +194 -0
- inklet-4.0.0.dev4/docs/assets/research-preview/dense-scatter-caption.tex +1 -0
- inklet-4.0.0.dev4/docs/assets/research-preview/marker-batches.json +144 -0
- inklet-4.0.0.dev4/docs/assets/research-preview/marker-index-after.json +231 -0
- inklet-4.0.0.dev4/docs/assets/research-preview/marker-index-before.json +231 -0
- inklet-4.0.0.dev4/docs/assets/research-preview/marker-index-browser-after.json +1693 -0
- inklet-4.0.0.dev4/docs/assets/research-preview/marker-index-browser-before.json +1693 -0
- inklet-4.0.0.dev4/docs/assets/research-preview/render-scene-caption.tex +1 -0
- inklet-4.0.0.dev4/docs/assets/research-preview/scenes-after.json +207 -0
- inklet-4.0.0.dev4/docs/assets/research-preview/scenes-before.json +207 -0
- inklet-4.0.0.dev4/docs/assets/research-preview/viewer-culling-after.json +1649 -0
- inklet-4.0.0.dev4/docs/assets/research-preview/viewer-culling-before.json +1429 -0
- inklet-4.0.0.dev4/docs/assets/research-preview/viewer-culling-gpu-after.json +83 -0
- inklet-4.0.0.dev4/docs/assets/research-preview/viewer-culling-gpu-before.json +78 -0
- inklet-4.0.0.dev4/docs/assets/research-preview/viewer-redraw-after.json +885 -0
- inklet-4.0.0.dev4/docs/assets/research-preview/viewer-redraw-before.json +789 -0
- inklet-4.0.0.dev4/docs/assets/research-preview/viewer-redraw-display.json +12 -0
- inklet-4.0.0.dev4/docs/assets/research-preview/viewer-redraw-profile.json +383 -0
- inklet-4.0.0.dev4/docs/assets/research-preview/viewer-window-after.json +6275 -0
- inklet-4.0.0.dev4/docs/assets/research-preview/viewer-window-before.json +3895 -0
- inklet-4.0.0.dev4/docs/assets/research-preview/viewer-window-display.json +12 -0
- inklet-4.0.0.dev4/docs/assets/v4/visual-overrides.png +0 -0
- inklet-4.0.0.dev4/docs/bars-and-areas.md +164 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/browser-rendering.md +4 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/compatibility.md +1 -1
- inklet-4.0.0.dev4/docs/compiled-scenes.md +151 -0
- inklet-4.0.0.dev4/docs/compiled-viewer.md +302 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/design/v4.md +12 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/development-preview.md +35 -10
- inklet-4.0.0.dev4/docs/distributions.md +104 -0
- inklet-4.0.0.dev4/docs/index.md +27 -0
- {inklet-4.0.0.dev2 → 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/marker-batches.md +132 -0
- inklet-4.0.0.dev4/docs/marker-culling.md +174 -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.dev2 → inklet-4.0.0.dev4}/docs/plotting.md +7 -13
- inklet-4.0.0.dev4/docs/polar-plots.md +77 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/publication-plots.md +3 -2
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/regional-report.md +42 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/rendering-engine.md +5 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/roadmap.md +6 -0
- inklet-4.0.0.dev4/docs/uncertainty.md +104 -0
- inklet-4.0.0.dev4/docs/visual-editing.md +104 -0
- inklet-4.0.0.dev4/examples/compiled_marker_shapes.py +44 -0
- inklet-4.0.0.dev4/examples/compiled_scene_viewer.py +18 -0
- inklet-4.0.0.dev4/examples/dense_scatter_review.py +72 -0
- inklet-4.0.0.dev4/examples/render_scene_review.py +91 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/v4/regional_report.py +19 -2
- inklet-4.0.0.dev4/gallery/compiled-marker-shapes.png +0 -0
- inklet-4.0.0.dev4/gallery/compiled-scene-viewer.png +0 -0
- inklet-4.0.0.dev4/gallery/compiled-viewer-culling.png +0 -0
- inklet-4.0.0.dev4/gallery/compiled-viewer-deep-zoom.png +0 -0
- inklet-4.0.0.dev4/gallery/dense-scatter-review.png +0 -0
- inklet-4.0.0.dev4/gallery/polar.png +0 -0
- inklet-4.0.0.dev4/gallery/render-scene-data.png +0 -0
- inklet-4.0.0.dev4/gallery/render-scene-initial.png +0 -0
- inklet-4.0.0.dev4/gallery/render-scene-review.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/mkdocs.yml +62 -47
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/pyproject.toml +1 -1
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/__init__.py +3 -2
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/core/__init__.py +2 -1
- inklet-4.0.0.dev4/src/inklet/core/batch.py +93 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/diagnostics/key_rules.py +15 -5
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/diagnostics/rules.py +71 -11
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/document/compiler.py +17 -3
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/draw/clip.py +46 -1
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/experimental/browser/__init__.py +61 -7
- inklet-4.0.0.dev4/src/inklet/experimental/browser/compiled.js +53 -0
- inklet-4.0.0.dev4/src/inklet/experimental/browser/compiled.py +64 -0
- inklet-4.0.0.dev4/src/inklet/experimental/browser/editor.html +13 -0
- inklet-4.0.0.dev4/src/inklet/experimental/browser/editor.js +135 -0
- inklet-4.0.0.dev4/src/inklet/experimental/browser/overrides.py +96 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/experimental/browser/page.html +1 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/experimental/browser/runtime.js +33 -18
- inklet-4.0.0.dev4/src/inklet/experimental/scene_viewer/__init__.py +119 -0
- inklet-4.0.0.dev4/src/inklet/experimental/scene_viewer/controls.js +14 -0
- inklet-4.0.0.dev4/src/inklet/experimental/scene_viewer/page.html +4 -0
- inklet-4.0.0.dev4/src/inklet/experimental/scene_viewer/runtime.js +279 -0
- inklet-4.0.0.dev4/src/inklet/experimental/scene_viewer/spatial.js +52 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/figure.py +13 -3
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/plot/marks.py +7 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/plot/panel.py +5 -1
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/plot/polar.py +16 -2
- inklet-4.0.0.dev4/src/inklet/plot/scatter_batch.py +27 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/render/__init__.py +2 -1
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/render/analysis.py +19 -14
- inklet-4.0.0.dev4/src/inklet/render/bounds.py +67 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/render/pdf.py +43 -48
- inklet-4.0.0.dev4/src/inklet/render/scene.py +312 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/render/svg.py +68 -48
- inklet-4.0.0.dev4/tests/test_browser_compiled.py +150 -0
- inklet-4.0.0.dev4/tests/test_browser_overrides.py +142 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_browser_switching.py +4 -3
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_compositing_engine.py +8 -7
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_docs_site.py +38 -2
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_guides.py +2 -1
- inklet-4.0.0.dev4/tests/test_marker_batches.py +173 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_plot_polar.py +33 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_render_embed.py +4 -7
- inklet-4.0.0.dev4/tests/test_render_scene.py +199 -0
- inklet-4.0.0.dev4/tests/test_scene_culling.py +120 -0
- inklet-4.0.0.dev4/tests/test_scene_viewer.py +325 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_svg.py +4 -5
- inklet-4.0.0.dev4/tools/benchmark_batches.py +59 -0
- inklet-4.0.0.dev4/tools/benchmark_marker_index.mjs +26 -0
- inklet-4.0.0.dev4/tools/benchmark_scene_culling.js +20 -0
- inklet-4.0.0.dev4/tools/benchmark_scene_gpu.js +28 -0
- inklet-4.0.0.dev4/tools/benchmark_scene_redraw.js +21 -0
- inklet-4.0.0.dev4/tools/benchmark_scene_viewer.js +20 -0
- inklet-4.0.0.dev4/tools/benchmark_scene_zoom.js +17 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tools/check_wheel.py +14 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tools/docs_previews.json +154 -7
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tools/docs_previews.py +9 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tools/docs_site.py +1 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tools/docs_theme/home.html +1 -1
- {inklet-4.0.0.dev2 → 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/make_culling_review.py +33 -0
- inklet-4.0.0.dev4/tools/plot_catalog.json +314 -0
- inklet-4.0.0.dev4/tools/profile_scene_redraw.js +13 -0
- inklet-4.0.0.dev2/docs/assets/guides/plot-types-1.png +0 -0
- inklet-4.0.0.dev2/docs/index.md +0 -67
- inklet-4.0.0.dev2/docs/plot-types.md +0 -55
- inklet-4.0.0.dev2/gallery/polar.png +0 -0
- inklet-4.0.0.dev2/src/inklet/render/bounds.py +0 -58
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/.gitattributes +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/.gitignore +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/.readthedocs.yaml +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/CONTRACT.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/CONTRIBUTING.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/LICENSE +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/THIRD_PARTY_NOTICES.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/brand/inklet-icon.svg +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/brand/inklet-logo-dark.svg +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/brand/inklet-logo-mono.svg +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/brand/inklet-logo.svg +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/brand/inklet-wordmark.svg +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/examples/quickstart.pdf +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/examples/quickstart.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/examples/quickstart.svg +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/axes-and-scales-1.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/calibrated-volumes-3.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/channels-and-contours-1.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-anchor.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-annotation.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-bars-histogram.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-branch.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-broken-axis.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-callout.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-clipping.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-creases.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-custom-key.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-cutout.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-dates.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-dense.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-elbows.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-equal-boxes.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-facets.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-fit-graph.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-flow-width.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-formula.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-graph.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-halo.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-heatmap.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-hole.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-inline-type.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-inset.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-labels.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-layers.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-letters.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-list.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-matrix.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-page-grid.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-polar.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-protein.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-routes.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-scene-overlay.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-scene.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-series-key.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-span.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-sparse-grid.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-swarm.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-text-path.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-toon.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-twin-axis.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-unequal-panels.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-violin.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/cookbook-wrapped-card.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/data-1.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/data-3.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/dense-data-1.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/diagram-components-1.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/diagrams-1.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/layout-3.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/oblique-sections-2.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/plot-quality-after.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/plot-quality-before.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/plotting-1.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/plotting-2.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/publication-plots-1.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/publication-plots-2.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/publication-plots-3.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/publication-plots-4.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/slabs-and-regions-1.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/three-images-1.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/guides/three-images-2.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/research-preview/biology.json +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/research-preview/clipping-after.json +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/research-preview/clipping-before.json +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/research-preview/clipping-caption.tex +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/research-preview/clipping-lines-after.json +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/research-preview/clipping-lines-before.json +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/research-preview/comparison.json +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/research-preview/compositing-after.json +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/research-preview/compositing-before.json +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/research-preview/compositing-caption.tex +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/research-preview/diagram-after.json +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/research-preview/diagram-before.json +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/research-preview/diagram-review-caption.tex +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/research-preview/engine-after.json +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/research-preview/engine-before.json +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/research-preview/engine-review-caption.tex +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/research-preview/fluorescence-biology.json +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/research-preview/general-plots-caption.tex +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/research-preview/general-plots.json +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/research-preview/hatch-after.json +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/research-preview/hatch-before.json +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/research-preview/hatch-caption.tex +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/research-preview/label-intensities-caption.tex +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/research-preview/label-intensities-native.csv +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/research-preview/label-intensities.json +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/research-preview/lines-after.json +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/research-preview/lines-before.json +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/research-preview/oblique-biology.json +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/research-preview/plot-engine-review-caption.tex +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/research-preview/real-biology.json +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/research-preview/revision.json +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/research-preview/slab-biology.json +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/research-preview/study.json +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/v4/after.json +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/v4/before.json +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/v4/browser-quality.json +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/v4/browser-scatter.html +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/v4/browser-scatter.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/v4/browser-study.json +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/v4/contours-streamlines-170mm.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/v4/contours-streamlines-masked.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/v4/contours-streamlines.html +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/v4/contours-streamlines.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/v4/engineering-report-170mm.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/v4/engineering-report.html +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/v4/engineering-report.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/v4/faceted-operations.html +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/v4/faceted-operations.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/v4/linked-dashboard.html +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/v4/linked-dashboard.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/v4/linked-selection.html +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/v4/linked-selection.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/v4/mesh-fields-170mm.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/v4/mesh-fields.html +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/v4/mesh-fields.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/v4/region-shapes.html +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/v4/region-shapes.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/v4/regional-analysis.html +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/v4/regional-analysis.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/v4/regional-report-160mm.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/v4/regional-report.html +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/v4/regional-report.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/v4/scientific-report-170mm.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/v4/scientific-report.html +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/v4/scientific-report.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/v4/statistical-views.html +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/v4/statistical-views.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/v4/table-inputs.html +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/v4/table-inputs.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/v4/time-series.html +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/v4/time-series.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/v4/world-population-2019.html +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/v4/world-population-2019.json +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/v4/world-population-2019.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/v4/world-population-revisions.html +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/v4/world-population-revisions.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/v4/world-population.html +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/assets/v4/world-population.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/axes-and-scales.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/biology-panels.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/blender-scenes.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/brand.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/calibrated-volumes.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/channels-and-contours.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/cli.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/clipping.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/complex-scene.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/compositing.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/concepts.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/contours-streamlines.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/cookbook.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/data-revisions.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/data.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/dense-data.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/design/browser-backends.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/design/page_grid.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/design/v2.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/diagram-components.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/diagram-engine.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/diagrams.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/engineering-report.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/example-library.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/examples.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/export-review.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/fluorescence-biology.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/general-plots.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/hatching.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/javascripts/inklet.js +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/label-intensities.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/label-measurements.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/layout.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/linked-facets.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/linked-maps.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/linked-plots.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/mesh-fields.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/microscopy-tiff.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/migration.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/oblique-biology.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/oblique-sections.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/plot-quality.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/plotting-engine.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/presets.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/quickstart.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/real-biology.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/recipes/architecture-sketch.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/recipes/architecture.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/recipes/attractor.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/recipes/helix.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/recipes/interference.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/recipes/lattice.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/recipes/photonics.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/recipes/wave-packets.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/release-checks.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/render-jobs.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/research-preview.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/research-revision.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/research-study.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/scene-annotations.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/scene-paths.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/scene-templates.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/scientific-report.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/showcase.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/slab-biology.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/slabs-and-regions.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/statistical-views.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/stress20.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/stylesheets/code.css +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/stylesheets/inklet.css +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/table-inputs.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/three-images.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/time-series.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/troubleshooting.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/v2.5.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/v2.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/v3.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/v4-foundations.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/docs/world-map.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/biology/README.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/biology/cells3d.lock.json +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/biology/data.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/biology/fluorescence.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/biology/organelle.lock.json +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/biology/requirements.txt +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/biology_panels.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/blender/complex_lab_scene.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/blender/lab_scene.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/blender/occlusion_scene.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/blender/organelle_scene.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/blender/research_lab_views.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/broken_axis.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/clipping_review.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/compositing_review.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/data/general-plots/benchmark.csv +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/data/general-plots/learning.csv +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/data/general-plots/revenue.csv +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/data/general-plots/sensor.csv +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/diagram_review.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/engine_review.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/feature_flow.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/fluorescence_biology.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/gallery.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/general_plots.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/graph.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/hatch_review.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/hello_figure.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/label_intensities.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/oblique_biology.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/panels.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/plot_engine_review.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/plot_quality_review.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/polar.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/preset_formats.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/presets.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/real_biology.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/render_smoke.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/research_figure_planner.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/research_planner_study.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/research_revision.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/showcase/README.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/showcase/assets.lock.json +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/showcase/blender_scenes.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/showcase/figures.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/slab_biology.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/state_machine.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/stress20.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/v25_document.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/v2_cases.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/v2_document.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/v3_complex_scene.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/v3_render_jobs.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/v3_rendering.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/v3_scene_annotations.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/v3_scene_passes.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/v3_scene_paths.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/v3_scene_templates.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/v4/README.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/v4/browser_scatter.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/v4/contours_streamlines.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/v4/data/world-countries.geojson +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/v4/data/world-map-source.json +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/v4/data/world-population.csv +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/v4/engineering_report.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/v4/faceted_operations.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/v4/fixtures/assembly.json +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/v4/fixtures/manifest.json +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/v4/fixtures/measurement.json +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/v4/fixtures/region-shapes.geojson +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/v4/fixtures/regions.csv +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/v4/fixtures/regions.geojson +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/v4/linked_dashboard.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/v4/linked_selection.html +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/v4/linked_selection.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/v4/mesh_fields.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/v4/region_shapes.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/v4/regional_analysis.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/v4/scientific_report.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/v4/statistical_views.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/v4/table_inputs.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/v4/time_series.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/examples/v4/world_population.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/figures/annot.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/figures/bio3d.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/figures/cartoon.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/figures/chem_data.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/figures/chem_fingerprints.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/figures/data/1m17-kinase.pdb +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/figures/data/README.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/figures/drug_discovery.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/figures/mouse_brain_data.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/figures/neural_activity.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/figures/pdbfile.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/figures/showcase_part.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/figures/showcase_process.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/figures/showcase_season.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/figures/structure.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/figures/structure_data.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/figures/target.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/figures/trial.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/README.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/biology-panels.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/chem_fingerprints.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/clipping-review.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/compositing-pdf-after.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/compositing-pdf-before.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/compositing-review.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/diagram-labels-after.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/diagram-labels-before.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/diagram-review.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/engine-review.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/engine-transparency-after.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/engine-transparency-before.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/flow.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/fluorescence-biology.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/general-plots-before.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/general-plots.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/hatch-pdf-after.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/hatch-pdf-before.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/hatch-review.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/hatch-svg-before.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/label-intensities.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/oblique-biology.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/part.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/plot-axis-after.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/plot-axis-before.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/plot-engine-review.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/plots.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/preset-formats.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/presets.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/process.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/real-biology.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/research-crossing-revision.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/research-figure-planner.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/research-planner-study.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/research-revision.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/season.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/showcase-architecture-sketch.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/showcase-architecture.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/showcase-attractor.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/showcase-helix.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/showcase-interference.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/showcase-lattice.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/showcase-photonics.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/showcase-wave-packets.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/slab-biology.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/stress20.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/structure.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/v3-complex-scene.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/v3-render-jobs.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/v3-rendering.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/v3-scene-annotations.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/v3-scene-passes.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/v3-scene-paths.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/gallery/v3-scene-templates.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/requirements-ci.txt +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/requirements-docs.txt +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/requirements-tables.txt +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/scripts/bench_svg.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/scripts/rasterise.sh +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/scripts/sanity_typeset.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/__main__.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/assets/__init__.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/assets/asset.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/assets/cache.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/assets/cutout.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/assets/deps.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/assets/harmonise.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/assets/lineart.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/assets/mask.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/assets/provenance.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/assets/raster.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/assets/sidecar.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/assets/silhouette.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/cli.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/components.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/core/diagram.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/core/envelope.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/core/geom.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/core/prims.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/core/style.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/core/trace.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/core/units.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/diagnostics/__init__.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/diagnostics/abut.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/diagnostics/break_rules.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/diagnostics/color.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/diagnostics/cross.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/diagnostics/image.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/diagnostics/link_rules.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/diagnostics/path_rules.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/diagnostics/plot_rules.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/diagnostics/report.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/diagnostics/three_rules.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/document/__init__.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/document/composition.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/document/data.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/document/data_io.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/document/module.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/document/presets.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/document/publication.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/document/spec.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/draw/__init__.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/draw/annotate.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/draw/bezier_clip.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/draw/coords.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/draw/path.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/draw/place.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/draw/shapes.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/experimental/__init__.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/experimental/_table_adapters.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/experimental/browser/drawings.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/experimental/browser/fields.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/experimental/browser/grid.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/experimental/browser/images.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/experimental/browser/regions.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/experimental/browser/series.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/experimental/browser/timeaxis.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/experimental/channels.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/experimental/contours.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/experimental/engineering.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/experimental/fields.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/experimental/figure_planner.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/experimental/grid.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/experimental/measurement.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/experimental/measurements.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/experimental/planner_geometry.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/experimental/regions.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/experimental/sections.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/experimental/selection.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/experimental/slabs.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/experimental/temporal.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/experimental/tiff.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/experimental/volume.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/layout/__init__.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/layout/fit.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/layout/flow.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/layout/graph.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/layout/graph_force.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/layout/graph_layered.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/layout/graph_tree.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/layout/labels.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/layout/sankey.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/links/__init__.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/links/curves.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/links/link.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/plot/__init__.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/plot/axis.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/plot/breaks.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/plot/categories.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/plot/facets.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/plot/inset.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/plot/key.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/plot/notes.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/plot/png.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/plot/ramp.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/plot/raster.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/plot/ribbon.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/plot/scale.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/plot/scatter_raster.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/plot/series.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/plot/simplify.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/plot/timescale.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/render/brushes.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/render/bundle.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/render/composite.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/render/fontembed.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/render/glyphs.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/render/hatching.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/render/outline.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/render/paint.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/render/pathdata.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/render/pdftext.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/render/preview.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/render/raster.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/render/resources.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/render/review.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/render/revision.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/themes/__init__.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/themes/color.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/themes/palettes.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/themes/theme.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/three/__init__.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/three/api.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/three/backend.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/three/blender/__init__.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/three/blender/device_worker.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/three/blender/discover.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/three/blender/lineart.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/three/blender/options.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/three/blender/scene_worker.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/three/blender/script.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/three/blender/svgread.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/three/blender/template_worker.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/three/blender/tracing.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/three/blender_backend.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/three/camera.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/three/deps.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/three/depth.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/three/devices.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/three/drill.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/three/edges.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/three/hlr.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/three/linalg.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/three/mesh.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/three/occlude.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/three/order.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/three/parse.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/three/place.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/three/protein.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/three/quality.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/three/render_jobs.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/three/scene_annotations.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/three/scene_pass.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/three/scene_projection.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/three/scenes.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/three/shade.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/three/solids.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/three/templates.json +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/three/templates.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/typeset/__init__.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/typeset/fonts.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/typeset/markup.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/typeset/onpath.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/typeset/outline.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/src/inklet/typeset/shaping.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/stress/assets/mouse.inklet.json +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/stress/assets/mouse.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/stress/dense_graph.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/stress/draw_probe.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/stress/electro/assets/sem.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/stress/electro/assets/tem.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/stress/electro/cell.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/stress/electro/common.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/stress/electro/data.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/stress/electro/imaging.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/stress/electro/kinetics.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/stress/electro/micrograph.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/stress/electro/system.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/stress/electro_figure.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/stress/fidelity.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/stress/flow.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/stress/hard_figure.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/stress/label_storm.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/stress/mega_figure.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/stress/meshes/README.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/stress/meshes/brain-lh.obj +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/stress/meshes/spot.obj +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/stress/panels/apparatus.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/stress/panels/graphs.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/stress/panels/relations.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/stress/panels/responses.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/stress/panels/sections.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/stress/probes.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/stress/three_figure.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_alignment_contract.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_annotate.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_annotate_letters.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_assets.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_assets_provenance.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_biology_source.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_blend_scene.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_browser_facets.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_browser_figure.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_browser_regions.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_browser_revision.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_browser_scatter.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_browser_series.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_browser_statistics.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_browser_time.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_categories.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_channels_contours.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_chem_figure.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_cli.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_clip_engine.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_components.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_contrast_and_labels.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_cookbook.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_core.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_core_amendments.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_csv_input.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_diagnostics.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_diagnostics_api.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_diagnostics_artwork.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_diagnostics_break_distorts.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_diagnostics_crossing.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_diagnostics_image_contrast.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_diagnostics_ink.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_diagnostics_keys.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_diagnostics_links.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_diagnostics_paths.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_diagnostics_plot_box.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_diagram_engine.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_docs.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_document.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_document_data.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_document_v25.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_draw_clip.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_draw_path.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_draw_place.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_draw_shapes.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_engine_layout.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_engine_rendering.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_engine_scatter.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_engineering_report.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_export_bundle.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_figure.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_figure_planner.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_fit.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_grid_fields.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_hatch_engine.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_label_measurements.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_layout.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_layout_graph.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_layout_graph_fit.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_layout_origin.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_layout_sankey.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_links.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_links_avoid.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_links_shapes.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_mesh_fields.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_microscopy_tiff.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_neural_activity.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_output_contract.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_paint_program.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_place_labels.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_plot_axis.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_plot_broken_axis.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_plot_clip.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_plot_engine.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_plot_facets.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_plot_inset.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_plot_key.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_plot_labels.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_plot_legend.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_plot_marks.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_plot_notes.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_plot_publication.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_plot_quality_review.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_plot_raster.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_plot_ribbon.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_plot_scale.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_plot_swarm.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_plot_time.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_presets.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_publication_limits.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_regional_report.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_release_adversarial.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_render_devices.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_render_glyphs.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_render_jobs.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_render_outline.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_render_pdf.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_render_pdf_text.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_render_quality.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_render_style_fields.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_render_svg_perf.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_render_v3.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_review_v25.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_round4_plot.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_routing_avoid.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_scatter_rendering.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_scene_annotations.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_scene_pass.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_scene_projection.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_scene_templates.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_scientific_report.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_sections.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_shared_plot_margins.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_showcase_library.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_showcase_round3.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_slabs_regions.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_structure_figure.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_table_adapters.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_target_pose.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_temporal_adapters.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_text_markup.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_text_on_path.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_theme_font_style.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_themes.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_three_anchor_pin.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_three_api.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_three_backend_blender.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_three_blender.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_three_depth_order.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_three_drill.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_three_hlr.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_three_mesh.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_three_order_vector.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_three_overlay.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_three_parse.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_three_patches.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_three_place.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_three_protein.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_three_ridges.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_three_sort.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_three_sort_budget.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_three_view.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_typeset.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_v4_selection.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_volume.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_watch_review.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/test_world_map_example.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/visual/README.md +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/visual/baseline/categories-pdf.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/visual/baseline/categories-svg.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/visual/baseline/components-pdf.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/visual/baseline/components-svg.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/visual/baseline/dense-pdf.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/visual/baseline/dense-svg.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/visual/baseline/fonts.json +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/visual/baseline/inset-pdf.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/visual/baseline/inset-svg.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/visual/baseline/markers-pdf.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/visual/baseline/markers-svg.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/visual/baseline/renderers.json +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/visual/baseline/type-opacity-pdf.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/visual/baseline/type-opacity-svg.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/visual/baseline/v2-category-subset-pdf.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/visual/baseline/v2-category-subset-svg.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/visual/baseline/v2-dense-pdf.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/visual/baseline/v2-dense-svg.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/visual/baseline/v2-late-inset-pdf.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/visual/baseline/v2-late-inset-svg.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/visual/baseline/v2-shared-scales-pdf.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/visual/baseline/v2-shared-scales-svg.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/visual/baseline/v2-twins-matrix-pdf.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/visual/baseline/v2-twins-matrix-svg.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/visual/baseline/v2-workflow-pdf.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/visual/baseline/v2-workflow-svg.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/visual/baseline/v25-document-pdf.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/visual/baseline/v25-document-svg.png +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/visual/fixtures.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tests/visual/v2-budgets.json +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tools/benchmark_clipping.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tools/benchmark_diagrams.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tools/benchmark_engine.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tools/benchmark_lines.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tools/benchmark_v2.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tools/benchmark_v4.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tools/browser_study.js +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tools/check_render_wheel.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tools/dock_ligand.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tools/docs_gallery.json +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tools/docs_theme/404.html +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tools/docs_theme/card.html +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tools/docs_theme/gallery.html +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tools/gen_api.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tools/prepare_world_map.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tools/preset_gallery.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tools/showcase_gallery.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tools/stress20.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tools/strip_pdb.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tools/v3_showcase.py +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tools/v4-budgets.json +0 -0
- {inklet-4.0.0.dev2 → inklet-4.0.0.dev4}/tools/visual_check.py +0 -0
|
@@ -70,6 +70,7 @@ jobs:
|
|
|
70
70
|
.venv/bin/python examples/v4/time_series.py --output out/v4-time
|
|
71
71
|
.venv/bin/python examples/v4/statistical_views.py --output out/v4-statistics
|
|
72
72
|
.venv/bin/python examples/v4/regional_report.py --render --output out/v4-regional-report
|
|
73
|
+
.venv/bin/python examples/v4/regional_report.py --renderer compiled --editor --render --output out/v4-compiled-regional
|
|
73
74
|
.venv/bin/python examples/v4/engineering_report.py --render --output out/v4-engineering
|
|
74
75
|
.venv/bin/python examples/v4/scientific_report.py --render --output out/v4-scientific
|
|
75
76
|
.venv/bin/python examples/v4/mesh_fields.py --render --output out/v4-mesh-fields
|
|
@@ -95,6 +96,10 @@ jobs:
|
|
|
95
96
|
.venv/bin/python examples/compositing_review.py --output out/compositing-review
|
|
96
97
|
.venv/bin/python examples/hatch_review.py --output out/hatch-review
|
|
97
98
|
.venv/bin/python examples/clipping_review.py --output out/clipping-review
|
|
99
|
+
.venv/bin/python examples/render_scene_review.py --output out/render-scene-review
|
|
100
|
+
.venv/bin/python examples/dense_scatter_review.py --output out/dense-scatter-review
|
|
101
|
+
.venv/bin/python examples/compiled_marker_shapes.py --output out/compiled-marker-shapes
|
|
102
|
+
.venv/bin/python examples/compiled_scene_viewer.py --output out/compiled-scene-viewer
|
|
98
103
|
- name: Diagram routing and label review
|
|
99
104
|
run: |
|
|
100
105
|
.venv/bin/python tools/benchmark_diagrams.py --repeat 1 --output out/diagram-benchmark.json
|
|
@@ -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"
|
|
@@ -1,5 +1,124 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## Unreleased
|
|
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
|
+
|
|
18
|
+
## 4.0.0.dev3 — 2026-09-12
|
|
19
|
+
|
|
20
|
+
Third development preview: shared scene execution, dense marker rendering,
|
|
21
|
+
linked compiled reports and the first reproducible plot-style editor. Install
|
|
22
|
+
explicitly with `python -m pip install "inklet==4.0.0.dev3"`; 3.1.0 remains stable.
|
|
23
|
+
|
|
24
|
+
- Add an offline inspector for named plot colours, marker radii and line widths,
|
|
25
|
+
with bounded undo/redo and separate versioned overrides. Preserve compatible
|
|
26
|
+
choices across source revisions and page widths; reject or explicitly report
|
|
27
|
+
orphaned targets. Reproduce edited views through Python SVG/PDF/PNG exports.
|
|
28
|
+
- Prepare style commands atomically, preserve selection and view state, and
|
|
29
|
+
prevent file/command/revision races. Add edited full-report visual comparisons,
|
|
30
|
+
failure cases, browser/Python agreement and installed-wheel checks.
|
|
31
|
+
|
|
32
|
+
- Add opt-in compiled execution to linked browser figures, preserving keyed
|
|
33
|
+
selection, filtering, saved states, revision policies and vector exports.
|
|
34
|
+
Pack contiguous circle runs without reordering paint, retain native SVG for
|
|
35
|
+
other marks, and intersect visibility masks with spatial candidates.
|
|
36
|
+
- Share the compiled viewer runtime with the linked report instead of duplicating
|
|
37
|
+
GPU execution. Retain immutable records during filtering and release surfaces
|
|
38
|
+
on revision replacement. Add a runnable regional report mode, complete-figure
|
|
39
|
+
display comparisons and state/revision/export regressions across backends.
|
|
40
|
+
|
|
41
|
+
- Build ordered marker candidates with a reusable bitmap instead of temporary
|
|
42
|
+
JavaScript result arrays and comparison sorting. Accept fully contained grid
|
|
43
|
+
cells without rechecking each footprint, preserving source paint order and
|
|
44
|
+
independently owned result arrays.
|
|
45
|
+
- Measure 250,000- and million-point index queries and browser submission.
|
|
46
|
+
The million-point zoom query falls from 5.253 to 0.629 ms in the standalone
|
|
47
|
+
study; tiny queries are slightly slower. Retained bitmap storage adds one bit
|
|
48
|
+
per row. Add word-boundary and query-result ownership regressions.
|
|
49
|
+
|
|
50
|
+
- Cull individual packed markers with a shared spatial index of full marker
|
|
51
|
+
footprints. Preserve source order, antialiasing margins and vector exports.
|
|
52
|
+
Canvas paints candidates; WebGL2 fetches immutable records using compact
|
|
53
|
+
row-index uploads. Report candidate counts, uploads and index storage.
|
|
54
|
+
- Add a 250,000-point stress recipe, brute-force and visual fidelity checks,
|
|
55
|
+
and separate submission/GPU timer studies. Canvas window submission improves
|
|
56
|
+
from 88.5 to 10.8 ms in the recorded workload; GPU draw time falls from 0.325
|
|
57
|
+
to 0.042 ms while CPU submission rises from 0.9 to 2.2 ms. Document memory costs.
|
|
58
|
+
|
|
59
|
+
- Size compiled-viewer surfaces around the visible region with a retained pan
|
|
60
|
+
margin; skip painting offscreen layers and reuse their immutable buffers on
|
|
61
|
+
return. Preserve native clipping, marker order and complete vector export.
|
|
62
|
+
- Keep deep-zoom resolution within the existing per-surface pixel limits. In
|
|
63
|
+
the five-panel RTX 5090 study, 8× zoom uses about 3.05 million backing pixels
|
|
64
|
+
instead of 20 million, and median WebGL submission falls from 49.0 to 13.8 ms.
|
|
65
|
+
Add normal/deep-zoom fidelity, visibility and re-entry checks with raw studies.
|
|
66
|
+
|
|
67
|
+
- Retain compiled-viewer backing surfaces across pans and small zoom changes,
|
|
68
|
+
repaint only when resolution changes, and shrink after large zoom-outs.
|
|
69
|
+
Read all SVG transforms before changing canvas dimensions. Preserve the
|
|
70
|
+
existing pixel budgets, native compositing, vector export and error fallback.
|
|
71
|
+
- Report surface paints, resizes, reuse and allocated pixel counts. Add hardware
|
|
72
|
+
before/after profiles and regressions for reuse, resolution growth, shrinking
|
|
73
|
+
and context loss. Warm small-zoom submission falls from 47.8 ms to 0.5 ms in
|
|
74
|
+
the measured five-panel RTX 5090 workload; startup and growth are excluded.
|
|
75
|
+
|
|
76
|
+
- Accelerate filled square, triangle, diamond and star marker batches in the
|
|
77
|
+
compiled-scene viewer. Preserve exact polygon geometry, per-point sizes and
|
|
78
|
+
colours, winding rules, paint order, clipping and vector SVG download.
|
|
79
|
+
- Add a five-panel interactive marker comparison and test complete composited
|
|
80
|
+
screenshots against SVG at two display resolutions, including concave
|
|
81
|
+
polygons. Self-intersections, open, outlined and curved markers stay native.
|
|
82
|
+
- Validate the five-panel viewer on an RTX 5090 Laptop GPU through WSL/D3D12.
|
|
83
|
+
Publish timings and display comparisons; Canvas remains faster for this
|
|
84
|
+
measured workload, so hardware availability is not presented as a speedup.
|
|
85
|
+
|
|
86
|
+
- Add `RenderScene.to_html()` for offline native-scene viewing, with instanced
|
|
87
|
+
WebGL2 circle layers, Canvas fallback and native SVG artwork in paint order.
|
|
88
|
+
Automatic selection avoids recognized software WebGL renderers. Report
|
|
89
|
+
backend decisions, context loss, display limits and buffer uploads.
|
|
90
|
+
- Keep packed source buffers shared and immutable across browser view changes;
|
|
91
|
+
reconstruct vector SVG from 64-bit records, including exact source indices.
|
|
92
|
+
- Add a complete interactive figure, shader/fallback/resource tests and native
|
|
93
|
+
export comparisons. Keyed-row interaction migration and broader GPU geometry
|
|
94
|
+
remain open; hardware performance is not inferred from software WebGL tests.
|
|
95
|
+
|
|
96
|
+
- Store dense vector scatter in immutable 36-byte marker records, preserving
|
|
97
|
+
source order, per-point size/colour, physical strokes and native vector output.
|
|
98
|
+
Series with at least 256 points use batches unless placement anchors or
|
|
99
|
+
broken axes require individual nodes. Dense point handles become batch
|
|
100
|
+
handles; source indices remain inspectable in buffers and SVG elements.
|
|
101
|
+
- Stream batches through SVG/PDF with bounded prototype caches, preserve
|
|
102
|
+
geometric clipping and painted windows, and retain batch geometry on revisions.
|
|
103
|
+
- Check packed palettes against colour keys and inspect individual marker
|
|
104
|
+
footprints for text overlaps, avoiding false collisions over empty cloud space.
|
|
105
|
+
- Add a 38,300-marker four-panel review, native-backend fidelity tests and
|
|
106
|
+
reproducible construction/export/memory measurements, including a separate
|
|
107
|
+
million-point construction test.
|
|
108
|
+
|
|
109
|
+
- Compile a shared native render scene for SVG, PDF and PNG, resolving styles,
|
|
110
|
+
transforms, clipping and compositing once. Retain it across document exports.
|
|
111
|
+
- Reuse unchanged scene nodes and geometry across revisions; share small shapes
|
|
112
|
+
and shaped labels by value, expose invalidation reasons and conservative
|
|
113
|
+
redraw coverage, and report render-compilation work separately from layout.
|
|
114
|
+
- Reject missing image and font resources before native export; SVG no longer
|
|
115
|
+
silently emits broken image links or substitutes an unavailable font file.
|
|
116
|
+
- Snapshot file-backed image bytes so completed figures survive source changes;
|
|
117
|
+
detect updated image inputs on subsequent document compilation and reject
|
|
118
|
+
exports using changed or missing font files.
|
|
119
|
+
- Add a complete six-panel scene/revision review and repeated-export benchmarks.
|
|
120
|
+
Browser/GPU execution and finer layout invalidation remain open.
|
|
121
|
+
|
|
3
122
|
## 4.0.0.dev2 — 2026-09-08
|
|
4
123
|
|
|
5
124
|
Second development preview. Install explicitly with
|
|
@@ -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,19 +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
|
-
It also includes date/UTC axes, facets, pandas/Polars adapters and shared
|
|
88
|
-
plotting-quality improvements.
|
|
89
|
-
|
|
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.
|
|
90
87
|
```sh
|
|
91
|
-
python -m pip install "inklet==4.0.0.
|
|
88
|
+
python -m pip install "inklet==4.0.0.dev4"
|
|
92
89
|
```
|
|
93
90
|
|
|
94
91
|
[Preview guide and examples](https://inklet.readthedocs.io/en/latest/development-preview/) ·
|
|
95
92
|
[4.0 roadmap](https://inklet.readthedocs.io/en/latest/roadmap/) ·
|
|
96
|
-
[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)
|
|
97
94
|
|
|
98
95
|
This is an opt-in development release. Experimental APIs and saved-state schemas
|
|
99
96
|
may change; 3.1.0 remains the stable release. General browser editing,
|
|
@@ -31,19 +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
|
-
It also includes date/UTC axes, facets, pandas/Polars adapters and shared
|
|
38
|
-
plotting-quality improvements.
|
|
39
|
-
|
|
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.
|
|
40
37
|
```sh
|
|
41
|
-
python -m pip install "inklet==4.0.0.
|
|
38
|
+
python -m pip install "inklet==4.0.0.dev4"
|
|
42
39
|
```
|
|
43
40
|
|
|
44
41
|
[Preview guide and examples](https://inklet.readthedocs.io/en/latest/development-preview/) ·
|
|
45
42
|
[4.0 roadmap](https://inklet.readthedocs.io/en/latest/roadmap/) ·
|
|
46
|
-
[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)
|
|
47
44
|
|
|
48
45
|
This is an opt-in development release. Experimental APIs and saved-state schemas
|
|
49
46
|
may change; 3.1.0 remains the stable release. General browser editing,
|
|
@@ -18,6 +18,23 @@ took before layout still resolves inside the finished figure.
|
|
|
18
18
|
|
|
19
19
|
Declared format support; no renderer is selected implicitly.
|
|
20
20
|
|
|
21
|
+
#### `class RenderScene(root: 'SceneNode', bbox: 'Rect', stats: 'Mapping', changes: 'tuple[SceneChange, ...]', _nodes: 'Mapping', _resources: 'Mapping', _images: 'Mapping', _fonts: 'Mapping') -> None`
|
|
22
|
+
|
|
23
|
+
A compiled native scene shared by SVG, PDF and PNG exports.
|
|
24
|
+
|
|
25
|
+
* `walk()`
|
|
26
|
+
* `validate_fonts()`
|
|
27
|
+
* `sources_current()` -- Check external inputs when a document considers reusing a snapshot.
|
|
28
|
+
* `to_svg(**options)`
|
|
29
|
+
* `to_pdf(**options)`
|
|
30
|
+
* `to_png(**options)`
|
|
31
|
+
* `to_html(*, title='Inklet figure', backend='auto', **options)` -- Offline experimental viewer; WebGL2 filled markers, Canvas fallback, SVG art.
|
|
32
|
+
* `damage_bounds(previous: 'RenderScene')` -- Conservative old/new ink union for changed placements, in page mm.
|
|
33
|
+
|
|
34
|
+
#### `compile_scene(root: 'Diagram | RenderScene', *, previous: 'RenderScene | None' = None) -> 'RenderScene'`
|
|
35
|
+
|
|
36
|
+
Resolve a drawing for all native backends, reusing an optional revision.
|
|
37
|
+
|
|
21
38
|
#### `blend(node, mode='multiply')`
|
|
22
39
|
|
|
23
40
|
Blend an isolated group with the artwork behind it, natively in SVG/PDF.
|
|
@@ -1023,19 +1040,19 @@ One actionable finding. `where` is figure-space, in millimetres.
|
|
|
1023
1040
|
|
|
1024
1041
|
Compact report. Returns a single string with no trailing newline.
|
|
1025
1042
|
|
|
1026
|
-
#### `to_svg(root: 'Diagram', *, width: 'float | str | None' = None, height: 'float | str | None' = None, margin: 'float' = 0.0, background: 'str | None' = None, precision: 'int' = 3, title: 'str | None' = None, compact: 'bool | str' = 'auto', text: 'str' = 'names') -> 'str'`
|
|
1043
|
+
#### `to_svg(root: 'Diagram | RenderScene', *, width: 'float | str | None' = None, height: 'float | str | None' = None, margin: 'float' = 0.0, background: 'str | None' = None, precision: 'int' = 3, title: 'str | None' = None, compact: 'bool | str' = 'auto', text: 'str' = 'names') -> 'str'`
|
|
1027
1044
|
|
|
1028
1045
|
Render a diagram tree to a self-contained SVG document.
|
|
1029
1046
|
|
|
1030
|
-
#### `save_svg(root: 'Diagram', path: 'str', *, width: 'float | str | None' = None, height: 'float | str | None' = None, margin: 'float' = 0.0, background: 'str | None' = None, precision: 'int' = 3, title: 'str | None' = None, compact: 'bool | str' = 'auto', text: 'str' = 'names') -> 'None'`
|
|
1047
|
+
#### `save_svg(root: 'Diagram | RenderScene', path: 'str', *, width: 'float | str | None' = None, height: 'float | str | None' = None, margin: 'float' = 0.0, background: 'str | None' = None, precision: 'int' = 3, title: 'str | None' = None, compact: 'bool | str' = 'auto', text: 'str' = 'names') -> 'None'`
|
|
1031
1048
|
|
|
1032
1049
|
Write `root` to `path` as SVG. `to_svg` is the same thing as a string.
|
|
1033
1050
|
|
|
1034
|
-
#### `to_pdf(root: 'Diagram | Sequence[Diagram]', *, width: 'float | str | None' = None, height: 'float | str | None' = None, margin: 'float' = 0.0, background: 'str | None' = None, precision: 'int' = 3, title: 'str | None' = None, compress: 'bool' = True, text: 'str' = 'outline') -> 'bytes'`
|
|
1051
|
+
#### `to_pdf(root: 'Diagram | RenderScene | Sequence[Diagram | RenderScene]', *, width: 'float | str | None' = None, height: 'float | str | None' = None, margin: 'float' = 0.0, background: 'str | None' = None, precision: 'int' = 3, title: 'str | None' = None, compress: 'bool' = True, text: 'str' = 'outline') -> 'bytes'`
|
|
1035
1052
|
|
|
1036
1053
|
Render one diagram tree, or a sequence of them, to a PDF document.
|
|
1037
1054
|
|
|
1038
|
-
#### `save_pdf(root: 'Diagram | Sequence[Diagram]', path: 'str | Path', **kwargs) -> 'None'`
|
|
1055
|
+
#### `save_pdf(root: 'Diagram | RenderScene | Sequence[Diagram | RenderScene]', path: 'str | Path', **kwargs) -> 'None'`
|
|
1039
1056
|
|
|
1040
1057
|
Write `root` to `path` as PDF. `to_pdf` is the same thing as bytes.
|
|
1041
1058
|
|
|
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 @@
|
|
|
1
|
+
\caption{Five filled marker shapes with simulated observations. Each panel contains 2,500 points with varying sizes and two overlapping colour groups. The browser uses packed WebGL2 or Canvas layers; SVG and PDF retain vector markers. Marker order, transparency and panel clipping are shared by all modes. MIT, Mark Marosi.}
|