inklet 4.0.0.dev1__tar.gz → 4.0.0.dev2__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.dev1 → inklet-4.0.0.dev2}/.github/workflows/checks.yml +3 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/.github/workflows/publish.yml +2 -2
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/CHANGELOG.md +35 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/PKG-INFO +5 -4
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/README.md +4 -3
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/api.md +6 -2
- inklet-4.0.0.dev2/docs/assets/research-preview/clipping-after.json +119 -0
- inklet-4.0.0.dev2/docs/assets/research-preview/clipping-before.json +119 -0
- inklet-4.0.0.dev2/docs/assets/research-preview/clipping-caption.tex +1 -0
- inklet-4.0.0.dev2/docs/assets/research-preview/clipping-lines-after.json +110 -0
- inklet-4.0.0.dev2/docs/assets/research-preview/clipping-lines-before.json +110 -0
- inklet-4.0.0.dev2/docs/assets/research-preview/compositing-after.json +143 -0
- inklet-4.0.0.dev2/docs/assets/research-preview/compositing-before.json +143 -0
- inklet-4.0.0.dev2/docs/assets/research-preview/compositing-caption.tex +1 -0
- inklet-4.0.0.dev2/docs/assets/research-preview/hatch-after.json +207 -0
- inklet-4.0.0.dev2/docs/assets/research-preview/hatch-before.json +207 -0
- inklet-4.0.0.dev2/docs/assets/research-preview/hatch-caption.tex +1 -0
- inklet-4.0.0.dev2/docs/clipping.md +109 -0
- inklet-4.0.0.dev2/docs/compositing.md +112 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/cookbook.md +4 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/design/v4.md +13 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/development-preview.md +13 -6
- inklet-4.0.0.dev2/docs/hatching.md +112 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/rendering-engine.md +10 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/v3.md +3 -0
- inklet-4.0.0.dev2/examples/clipping_review.py +90 -0
- inklet-4.0.0.dev2/examples/compositing_review.py +93 -0
- inklet-4.0.0.dev2/examples/hatch_review.py +70 -0
- inklet-4.0.0.dev2/gallery/clipping-review.png +0 -0
- inklet-4.0.0.dev2/gallery/compositing-pdf-after.png +0 -0
- inklet-4.0.0.dev2/gallery/compositing-pdf-before.png +0 -0
- inklet-4.0.0.dev2/gallery/compositing-review.png +0 -0
- inklet-4.0.0.dev2/gallery/hatch-pdf-after.png +0 -0
- inklet-4.0.0.dev2/gallery/hatch-pdf-before.png +0 -0
- inklet-4.0.0.dev2/gallery/hatch-review.png +0 -0
- inklet-4.0.0.dev2/gallery/hatch-svg-before.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/mkdocs.yml +3 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/pyproject.toml +1 -1
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/__init__.py +3 -3
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/core/diagram.py +35 -6
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/diagnostics/rules.py +50 -2
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/draw/__init__.py +2 -2
- inklet-4.0.0.dev2/src/inklet/draw/bezier_clip.py +127 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/draw/clip.py +79 -28
- inklet-4.0.0.dev2/src/inklet/render/analysis.py +58 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/render/bounds.py +19 -5
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/render/brushes.py +5 -16
- inklet-4.0.0.dev2/src/inklet/render/hatching.py +49 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/render/pdf.py +78 -58
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/render/svg.py +74 -1
- inklet-4.0.0.dev2/tests/test_clip_engine.py +216 -0
- inklet-4.0.0.dev2/tests/test_compositing_engine.py +158 -0
- inklet-4.0.0.dev2/tests/test_hatch_engine.py +155 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_render_style_fields.py +5 -4
- inklet-4.0.0.dev2/tools/benchmark_clipping.py +62 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tools/benchmark_engine.py +29 -2
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/.gitattributes +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/.gitignore +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/.readthedocs.yaml +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/CONTRACT.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/CONTRIBUTING.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/LICENSE +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/THIRD_PARTY_NOTICES.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/brand/inklet-icon.svg +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/brand/inklet-logo-dark.svg +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/brand/inklet-logo-mono.svg +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/brand/inklet-logo.svg +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/brand/inklet-wordmark.svg +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/examples/quickstart.pdf +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/examples/quickstart.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/examples/quickstart.svg +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/axes-and-scales-1.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/calibrated-volumes-3.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/channels-and-contours-1.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/cookbook-anchor.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/cookbook-annotation.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/cookbook-bars-histogram.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/cookbook-branch.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/cookbook-broken-axis.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/cookbook-callout.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/cookbook-clipping.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/cookbook-creases.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/cookbook-custom-key.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/cookbook-cutout.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/cookbook-dates.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/cookbook-dense.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/cookbook-elbows.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/cookbook-equal-boxes.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/cookbook-facets.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/cookbook-fit-graph.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/cookbook-flow-width.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/cookbook-formula.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/cookbook-graph.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/cookbook-halo.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/cookbook-heatmap.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/cookbook-hole.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/cookbook-inline-type.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/cookbook-inset.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/cookbook-labels.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/cookbook-layers.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/cookbook-letters.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/cookbook-list.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/cookbook-matrix.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/cookbook-page-grid.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/cookbook-polar.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/cookbook-protein.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/cookbook-routes.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/cookbook-scene-overlay.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/cookbook-scene.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/cookbook-series-key.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/cookbook-span.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/cookbook-sparse-grid.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/cookbook-swarm.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/cookbook-text-path.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/cookbook-toon.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/cookbook-twin-axis.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/cookbook-unequal-panels.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/cookbook-violin.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/cookbook-wrapped-card.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/data-1.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/data-3.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/dense-data-1.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/diagram-components-1.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/diagrams-1.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/layout-3.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/oblique-sections-2.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/plot-quality-after.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/plot-quality-before.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/plot-types-1.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/plotting-1.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/plotting-2.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/publication-plots-1.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/publication-plots-2.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/publication-plots-3.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/publication-plots-4.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/slabs-and-regions-1.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/three-images-1.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/guides/three-images-2.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/research-preview/biology.json +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/research-preview/comparison.json +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/research-preview/diagram-after.json +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/research-preview/diagram-before.json +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/research-preview/diagram-review-caption.tex +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/research-preview/engine-after.json +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/research-preview/engine-before.json +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/research-preview/engine-review-caption.tex +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/research-preview/fluorescence-biology.json +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/research-preview/general-plots-caption.tex +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/research-preview/general-plots.json +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/research-preview/label-intensities-caption.tex +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/research-preview/label-intensities-native.csv +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/research-preview/label-intensities.json +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/research-preview/lines-after.json +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/research-preview/lines-before.json +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/research-preview/oblique-biology.json +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/research-preview/plot-engine-review-caption.tex +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/research-preview/real-biology.json +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/research-preview/revision.json +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/research-preview/slab-biology.json +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/research-preview/study.json +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/v4/after.json +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/v4/before.json +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/v4/browser-quality.json +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/v4/browser-scatter.html +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/v4/browser-scatter.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/v4/browser-study.json +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/v4/contours-streamlines-170mm.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/v4/contours-streamlines-masked.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/v4/contours-streamlines.html +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/v4/contours-streamlines.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/v4/engineering-report-170mm.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/v4/engineering-report.html +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/v4/engineering-report.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/v4/faceted-operations.html +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/v4/faceted-operations.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/v4/linked-dashboard.html +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/v4/linked-dashboard.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/v4/linked-selection.html +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/v4/linked-selection.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/v4/mesh-fields-170mm.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/v4/mesh-fields.html +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/v4/mesh-fields.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/v4/region-shapes.html +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/v4/region-shapes.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/v4/regional-analysis.html +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/v4/regional-analysis.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/v4/regional-report-160mm.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/v4/regional-report.html +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/v4/regional-report.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/v4/scientific-report-170mm.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/v4/scientific-report.html +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/v4/scientific-report.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/v4/statistical-views.html +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/v4/statistical-views.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/v4/table-inputs.html +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/v4/table-inputs.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/v4/time-series.html +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/v4/time-series.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/v4/world-population-2019.html +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/v4/world-population-2019.json +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/v4/world-population-2019.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/v4/world-population-revisions.html +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/v4/world-population-revisions.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/v4/world-population.html +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/assets/v4/world-population.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/axes-and-scales.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/biology-panels.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/blender-scenes.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/brand.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/browser-rendering.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/calibrated-volumes.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/channels-and-contours.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/cli.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/compatibility.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/complex-scene.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/concepts.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/contours-streamlines.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/data-revisions.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/data.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/dense-data.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/design/browser-backends.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/design/page_grid.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/design/v2.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/diagram-components.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/diagram-engine.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/diagrams.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/engineering-report.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/example-library.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/examples.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/export-review.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/fluorescence-biology.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/general-plots.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/index.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/installation.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/javascripts/inklet.js +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/label-intensities.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/label-measurements.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/layout.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/linked-facets.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/linked-maps.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/linked-plots.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/mesh-fields.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/microscopy-tiff.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/migration.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/oblique-biology.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/oblique-sections.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/plot-quality.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/plot-types.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/plotting-engine.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/plotting.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/presets.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/publication-plots.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/quickstart.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/real-biology.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/recipes/architecture-sketch.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/recipes/architecture.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/recipes/attractor.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/recipes/helix.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/recipes/interference.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/recipes/lattice.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/recipes/photonics.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/recipes/wave-packets.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/regional-report.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/release-checks.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/render-jobs.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/research-preview.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/research-revision.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/research-study.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/roadmap.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/scene-annotations.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/scene-paths.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/scene-templates.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/scientific-report.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/showcase.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/slab-biology.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/slabs-and-regions.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/statistical-views.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/stress20.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/stylesheets/code.css +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/stylesheets/inklet.css +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/table-inputs.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/three-images.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/time-series.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/troubleshooting.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/v2.5.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/v2.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/v4-foundations.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/docs/world-map.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/biology/README.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/biology/cells3d.lock.json +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/biology/data.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/biology/fluorescence.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/biology/organelle.lock.json +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/biology/requirements.txt +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/biology_panels.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/blender/complex_lab_scene.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/blender/lab_scene.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/blender/occlusion_scene.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/blender/organelle_scene.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/blender/research_lab_views.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/broken_axis.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/data/general-plots/benchmark.csv +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/data/general-plots/learning.csv +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/data/general-plots/revenue.csv +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/data/general-plots/sensor.csv +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/diagram_review.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/engine_review.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/feature_flow.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/fluorescence_biology.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/gallery.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/general_plots.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/graph.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/hello_figure.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/label_intensities.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/oblique_biology.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/panels.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/plot_engine_review.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/plot_quality_review.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/polar.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/preset_formats.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/presets.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/real_biology.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/render_smoke.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/research_figure_planner.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/research_planner_study.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/research_revision.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/showcase/README.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/showcase/assets.lock.json +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/showcase/blender_scenes.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/showcase/figures.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/slab_biology.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/state_machine.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/stress20.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/v25_document.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/v2_cases.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/v2_document.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/v3_complex_scene.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/v3_render_jobs.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/v3_rendering.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/v3_scene_annotations.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/v3_scene_passes.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/v3_scene_paths.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/v3_scene_templates.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/v4/README.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/v4/browser_scatter.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/v4/contours_streamlines.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/v4/data/world-countries.geojson +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/v4/data/world-map-source.json +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/v4/data/world-population.csv +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/v4/engineering_report.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/v4/faceted_operations.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/v4/fixtures/assembly.json +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/v4/fixtures/manifest.json +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/v4/fixtures/measurement.json +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/v4/fixtures/region-shapes.geojson +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/v4/fixtures/regions.csv +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/v4/fixtures/regions.geojson +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/v4/linked_dashboard.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/v4/linked_selection.html +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/v4/linked_selection.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/v4/mesh_fields.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/v4/region_shapes.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/v4/regional_analysis.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/v4/regional_report.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/v4/scientific_report.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/v4/statistical_views.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/v4/table_inputs.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/v4/time_series.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/examples/v4/world_population.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/figures/annot.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/figures/bio3d.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/figures/cartoon.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/figures/chem_data.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/figures/chem_fingerprints.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/figures/data/1m17-kinase.pdb +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/figures/data/README.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/figures/drug_discovery.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/figures/mouse_brain_data.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/figures/neural_activity.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/figures/pdbfile.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/figures/showcase_part.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/figures/showcase_process.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/figures/showcase_season.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/figures/structure.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/figures/structure_data.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/figures/target.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/figures/trial.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/gallery/README.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/gallery/biology-panels.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/gallery/chem_fingerprints.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/gallery/diagram-labels-after.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/gallery/diagram-labels-before.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/gallery/diagram-review.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/gallery/engine-review.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/gallery/engine-transparency-after.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/gallery/engine-transparency-before.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/gallery/flow.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/gallery/fluorescence-biology.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/gallery/general-plots-before.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/gallery/general-plots.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/gallery/label-intensities.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/gallery/oblique-biology.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/gallery/part.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/gallery/plot-axis-after.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/gallery/plot-axis-before.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/gallery/plot-engine-review.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/gallery/plots.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/gallery/polar.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/gallery/preset-formats.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/gallery/presets.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/gallery/process.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/gallery/real-biology.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/gallery/research-crossing-revision.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/gallery/research-figure-planner.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/gallery/research-planner-study.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/gallery/research-revision.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/gallery/season.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/gallery/showcase-architecture-sketch.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/gallery/showcase-architecture.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/gallery/showcase-attractor.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/gallery/showcase-helix.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/gallery/showcase-interference.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/gallery/showcase-lattice.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/gallery/showcase-photonics.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/gallery/showcase-wave-packets.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/gallery/slab-biology.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/gallery/stress20.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/gallery/structure.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/gallery/v3-complex-scene.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/gallery/v3-render-jobs.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/gallery/v3-rendering.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/gallery/v3-scene-annotations.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/gallery/v3-scene-passes.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/gallery/v3-scene-paths.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/gallery/v3-scene-templates.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/requirements-ci.txt +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/requirements-docs.txt +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/requirements-tables.txt +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/scripts/bench_svg.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/scripts/rasterise.sh +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/scripts/sanity_typeset.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/__main__.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/assets/__init__.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/assets/asset.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/assets/cache.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/assets/cutout.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/assets/deps.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/assets/harmonise.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/assets/lineart.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/assets/mask.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/assets/provenance.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/assets/raster.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/assets/sidecar.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/assets/silhouette.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/cli.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/components.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/core/__init__.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/core/envelope.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/core/geom.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/core/prims.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/core/style.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/core/trace.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/core/units.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/diagnostics/__init__.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/diagnostics/abut.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/diagnostics/break_rules.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/diagnostics/color.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/diagnostics/cross.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/diagnostics/image.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/diagnostics/key_rules.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/diagnostics/link_rules.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/diagnostics/path_rules.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/diagnostics/plot_rules.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/diagnostics/report.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/diagnostics/three_rules.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/document/__init__.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/document/compiler.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/document/composition.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/document/data.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/document/data_io.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/document/module.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/document/presets.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/document/publication.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/document/spec.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/draw/annotate.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/draw/coords.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/draw/path.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/draw/place.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/draw/shapes.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/experimental/__init__.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/experimental/_table_adapters.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/experimental/browser/__init__.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/experimental/browser/drawings.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/experimental/browser/fields.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/experimental/browser/grid.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/experimental/browser/images.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/experimental/browser/page.html +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/experimental/browser/regions.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/experimental/browser/runtime.js +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/experimental/browser/series.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/experimental/browser/timeaxis.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/experimental/channels.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/experimental/contours.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/experimental/engineering.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/experimental/fields.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/experimental/figure_planner.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/experimental/grid.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/experimental/measurement.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/experimental/measurements.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/experimental/planner_geometry.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/experimental/regions.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/experimental/sections.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/experimental/selection.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/experimental/slabs.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/experimental/temporal.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/experimental/tiff.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/experimental/volume.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/figure.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/layout/__init__.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/layout/fit.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/layout/flow.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/layout/graph.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/layout/graph_force.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/layout/graph_layered.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/layout/graph_tree.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/layout/labels.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/layout/sankey.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/links/__init__.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/links/curves.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/links/link.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/plot/__init__.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/plot/axis.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/plot/breaks.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/plot/categories.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/plot/facets.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/plot/inset.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/plot/key.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/plot/marks.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/plot/notes.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/plot/panel.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/plot/png.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/plot/polar.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/plot/ramp.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/plot/raster.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/plot/ribbon.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/plot/scale.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/plot/scatter_raster.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/plot/series.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/plot/simplify.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/plot/timescale.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/render/__init__.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/render/bundle.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/render/composite.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/render/fontembed.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/render/glyphs.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/render/outline.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/render/paint.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/render/pathdata.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/render/pdftext.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/render/preview.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/render/raster.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/render/resources.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/render/review.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/render/revision.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/themes/__init__.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/themes/color.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/themes/palettes.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/themes/theme.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/three/__init__.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/three/api.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/three/backend.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/three/blender/__init__.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/three/blender/device_worker.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/three/blender/discover.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/three/blender/lineart.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/three/blender/options.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/three/blender/scene_worker.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/three/blender/script.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/three/blender/svgread.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/three/blender/template_worker.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/three/blender/tracing.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/three/blender_backend.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/three/camera.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/three/deps.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/three/depth.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/three/devices.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/three/drill.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/three/edges.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/three/hlr.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/three/linalg.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/three/mesh.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/three/occlude.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/three/order.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/three/parse.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/three/place.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/three/protein.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/three/quality.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/three/render_jobs.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/three/scene_annotations.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/three/scene_pass.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/three/scene_projection.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/three/scenes.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/three/shade.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/three/solids.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/three/templates.json +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/three/templates.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/typeset/__init__.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/typeset/fonts.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/typeset/markup.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/typeset/onpath.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/typeset/outline.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/src/inklet/typeset/shaping.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/stress/assets/mouse.inklet.json +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/stress/assets/mouse.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/stress/dense_graph.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/stress/draw_probe.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/stress/electro/assets/sem.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/stress/electro/assets/tem.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/stress/electro/cell.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/stress/electro/common.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/stress/electro/data.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/stress/electro/imaging.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/stress/electro/kinetics.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/stress/electro/micrograph.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/stress/electro/system.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/stress/electro_figure.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/stress/fidelity.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/stress/flow.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/stress/hard_figure.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/stress/label_storm.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/stress/mega_figure.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/stress/meshes/README.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/stress/meshes/brain-lh.obj +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/stress/meshes/spot.obj +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/stress/panels/apparatus.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/stress/panels/graphs.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/stress/panels/relations.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/stress/panels/responses.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/stress/panels/sections.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/stress/probes.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/stress/three_figure.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_alignment_contract.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_annotate.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_annotate_letters.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_assets.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_assets_provenance.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_biology_source.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_blend_scene.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_browser_facets.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_browser_figure.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_browser_regions.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_browser_revision.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_browser_scatter.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_browser_series.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_browser_statistics.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_browser_switching.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_browser_time.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_categories.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_channels_contours.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_chem_figure.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_cli.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_components.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_contrast_and_labels.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_cookbook.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_core.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_core_amendments.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_csv_input.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_diagnostics.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_diagnostics_api.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_diagnostics_artwork.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_diagnostics_break_distorts.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_diagnostics_crossing.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_diagnostics_image_contrast.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_diagnostics_ink.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_diagnostics_keys.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_diagnostics_links.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_diagnostics_paths.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_diagnostics_plot_box.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_diagram_engine.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_docs.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_docs_site.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_document.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_document_data.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_document_v25.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_draw_clip.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_draw_path.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_draw_place.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_draw_shapes.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_engine_layout.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_engine_rendering.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_engine_scatter.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_engineering_report.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_export_bundle.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_figure.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_figure_planner.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_fit.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_grid_fields.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_guides.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_label_measurements.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_layout.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_layout_graph.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_layout_graph_fit.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_layout_origin.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_layout_sankey.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_links.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_links_avoid.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_links_shapes.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_mesh_fields.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_microscopy_tiff.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_neural_activity.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_output_contract.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_paint_program.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_place_labels.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_plot_axis.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_plot_broken_axis.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_plot_clip.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_plot_engine.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_plot_facets.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_plot_inset.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_plot_key.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_plot_labels.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_plot_legend.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_plot_marks.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_plot_notes.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_plot_polar.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_plot_publication.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_plot_quality_review.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_plot_raster.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_plot_ribbon.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_plot_scale.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_plot_swarm.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_plot_time.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_presets.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_publication_limits.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_regional_report.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_release_adversarial.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_render_devices.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_render_embed.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_render_glyphs.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_render_jobs.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_render_outline.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_render_pdf.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_render_pdf_text.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_render_quality.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_render_svg_perf.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_render_v3.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_review_v25.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_round4_plot.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_routing_avoid.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_scatter_rendering.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_scene_annotations.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_scene_pass.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_scene_projection.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_scene_templates.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_scientific_report.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_sections.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_shared_plot_margins.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_showcase_library.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_showcase_round3.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_slabs_regions.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_structure_figure.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_svg.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_table_adapters.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_target_pose.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_temporal_adapters.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_text_markup.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_text_on_path.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_theme_font_style.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_themes.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_three_anchor_pin.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_three_api.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_three_backend_blender.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_three_blender.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_three_depth_order.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_three_drill.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_three_hlr.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_three_mesh.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_three_order_vector.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_three_overlay.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_three_parse.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_three_patches.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_three_place.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_three_protein.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_three_ridges.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_three_sort.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_three_sort_budget.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_three_view.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_typeset.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_v4_selection.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_volume.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_watch_review.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/test_world_map_example.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/visual/README.md +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/visual/baseline/categories-pdf.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/visual/baseline/categories-svg.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/visual/baseline/components-pdf.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/visual/baseline/components-svg.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/visual/baseline/dense-pdf.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/visual/baseline/dense-svg.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/visual/baseline/fonts.json +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/visual/baseline/inset-pdf.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/visual/baseline/inset-svg.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/visual/baseline/markers-pdf.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/visual/baseline/markers-svg.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/visual/baseline/renderers.json +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/visual/baseline/type-opacity-pdf.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/visual/baseline/type-opacity-svg.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/visual/baseline/v2-category-subset-pdf.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/visual/baseline/v2-category-subset-svg.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/visual/baseline/v2-dense-pdf.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/visual/baseline/v2-dense-svg.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/visual/baseline/v2-late-inset-pdf.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/visual/baseline/v2-late-inset-svg.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/visual/baseline/v2-shared-scales-pdf.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/visual/baseline/v2-shared-scales-svg.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/visual/baseline/v2-twins-matrix-pdf.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/visual/baseline/v2-twins-matrix-svg.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/visual/baseline/v2-workflow-pdf.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/visual/baseline/v2-workflow-svg.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/visual/baseline/v25-document-pdf.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/visual/baseline/v25-document-svg.png +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/visual/fixtures.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tests/visual/v2-budgets.json +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tools/benchmark_diagrams.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tools/benchmark_lines.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tools/benchmark_v2.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tools/benchmark_v4.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tools/browser_study.js +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tools/check_render_wheel.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tools/check_wheel.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tools/dock_ligand.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tools/docs_gallery.json +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tools/docs_previews.json +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tools/docs_previews.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tools/docs_site.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tools/docs_theme/404.html +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tools/docs_theme/card.html +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tools/docs_theme/gallery.html +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tools/docs_theme/home.html +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tools/docs_theme/main.html +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tools/gen_api.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tools/prepare_world_map.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tools/preset_gallery.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tools/showcase_gallery.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tools/stress20.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tools/strip_pdb.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tools/v3_showcase.py +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tools/v4-budgets.json +0 -0
- {inklet-4.0.0.dev1 → inklet-4.0.0.dev2}/tools/visual_check.py +0 -0
|
@@ -92,6 +92,9 @@ jobs:
|
|
|
92
92
|
run: |
|
|
93
93
|
.venv/bin/python tools/benchmark_engine.py --repeat 1 --output out/engine-benchmark.json
|
|
94
94
|
.venv/bin/python examples/engine_review.py --output out/engine-review
|
|
95
|
+
.venv/bin/python examples/compositing_review.py --output out/compositing-review
|
|
96
|
+
.venv/bin/python examples/hatch_review.py --output out/hatch-review
|
|
97
|
+
.venv/bin/python examples/clipping_review.py --output out/clipping-review
|
|
95
98
|
- name: Diagram routing and label review
|
|
96
99
|
run: |
|
|
97
100
|
.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.dev2
|
|
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.dev2' >&2
|
|
47
47
|
exit 1
|
|
48
48
|
}
|
|
49
49
|
gh release view "$RELEASE_TAG" --json isDraft,isPrerelease > "$RUNNER_TEMP/release.json"
|
|
@@ -1,5 +1,40 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 4.0.0.dev2 — 2026-09-08
|
|
4
|
+
|
|
5
|
+
Second development preview. Install explicitly with
|
|
6
|
+
`python -m pip install "inklet==4.0.0.dev2"`; 3.1.0 remains stable.
|
|
7
|
+
|
|
8
|
+
- Preserve open cubic segments through geometric clipping, using parameter
|
|
9
|
+
subdivision and bounded adaptive measurement sampling in the clip frame.
|
|
10
|
+
- Add `window()` for nested, transformed visual clipping of all SVG/PDF/PNG
|
|
11
|
+
paint, including glyphs, images, markers, filled curves and rounded corners.
|
|
12
|
+
Keep window layout, painted bounds and authored child geometry distinct;
|
|
13
|
+
expose inherited clip regions and visibility filtering through resolution.
|
|
14
|
+
- Preserve windows through document compilation/copying and account for hidden
|
|
15
|
+
content in page-bound and path-crossing diagnostics.
|
|
16
|
+
- Reduce allocation in dense-line clipping; add an eight-panel rendering
|
|
17
|
+
review, independent backend checks and reproducible clipping/line benchmarks.
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
- Share exact hatch-line geometry between SVG and PDF, with reusable local
|
|
21
|
+
coverage resources and independent shape clips. Preserve holes, transforms,
|
|
22
|
+
border styles and fill opacity without periodic tile seams or inherited
|
|
23
|
+
border settings affecting the fill.
|
|
24
|
+
- Reuse hatch coverage across nearby shape sizes, retain explicit work limits,
|
|
25
|
+
and add an illustrated review plus repeated/distinct-size export benchmarks.
|
|
26
|
+
|
|
27
|
+
- Correct PDF compositing for individual filled-and-stroked shapes, text halos
|
|
28
|
+
and vector brushes: group opacity fades their combined paint once.
|
|
29
|
+
- Preserve palette and color-key PNG transparency in PDF, including partial
|
|
30
|
+
palette alpha and file-backed images.
|
|
31
|
+
- Reuse subtree painted bounds and paint-count analysis within each PDF page
|
|
32
|
+
export; nested transparency groups no longer remeasure the same glyphs for
|
|
33
|
+
every ancestor. Keep inherited style/transform contexts separate and discard
|
|
34
|
+
the caches after export.
|
|
35
|
+
- Add an illustrated compositing review, independent SVG/Poppler comparisons
|
|
36
|
+
and a nested-group workload to the rendering benchmark and CI checks.
|
|
37
|
+
|
|
3
38
|
## 4.0.0.dev1 — 2026-09-08
|
|
4
39
|
|
|
5
40
|
First installable 4.0 development preview. This collects the linked-document,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: inklet
|
|
3
|
-
Version: 4.0.0.
|
|
3
|
+
Version: 4.0.0.dev2
|
|
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,18 +81,19 @@ their signatures and report schemas may change.
|
|
|
81
81
|
|
|
82
82
|
## 4.0 development preview
|
|
83
83
|
|
|
84
|
-
**4.0.0.
|
|
84
|
+
**4.0.0.dev2** adds curve-preserving clipping, painted windows, improved PDF
|
|
85
|
+
compositing and hatching, alongside offline linked charts, maps, calibrated images, mesh fields,
|
|
85
86
|
contours and streamlines, with saved selections and reproducible exports.
|
|
86
87
|
It also includes date/UTC axes, facets, pandas/Polars adapters and shared
|
|
87
88
|
plotting-quality improvements.
|
|
88
89
|
|
|
89
90
|
```sh
|
|
90
|
-
python -m pip install "inklet==4.0.0.
|
|
91
|
+
python -m pip install "inklet==4.0.0.dev2"
|
|
91
92
|
```
|
|
92
93
|
|
|
93
94
|
[Preview guide and examples](https://inklet.readthedocs.io/en/latest/development-preview/) ·
|
|
94
95
|
[4.0 roadmap](https://inklet.readthedocs.io/en/latest/roadmap/) ·
|
|
95
|
-
[Release notes](https://github.com/Mapika/inklet/releases/tag/v4.0.0.
|
|
96
|
+
[Release notes](https://github.com/Mapika/inklet/releases/tag/v4.0.0.dev2)
|
|
96
97
|
|
|
97
98
|
This is an opt-in development release. Experimental APIs and saved-state schemas
|
|
98
99
|
may change; 3.1.0 remains the stable release. General browser editing,
|
|
@@ -31,18 +31,19 @@ their signatures and report schemas may change.
|
|
|
31
31
|
|
|
32
32
|
## 4.0 development preview
|
|
33
33
|
|
|
34
|
-
**4.0.0.
|
|
34
|
+
**4.0.0.dev2** adds curve-preserving clipping, painted windows, improved PDF
|
|
35
|
+
compositing and hatching, alongside offline linked charts, maps, calibrated images, mesh fields,
|
|
35
36
|
contours and streamlines, with saved selections and reproducible exports.
|
|
36
37
|
It also includes date/UTC axes, facets, pandas/Polars adapters and shared
|
|
37
38
|
plotting-quality improvements.
|
|
38
39
|
|
|
39
40
|
```sh
|
|
40
|
-
python -m pip install "inklet==4.0.0.
|
|
41
|
+
python -m pip install "inklet==4.0.0.dev2"
|
|
41
42
|
```
|
|
42
43
|
|
|
43
44
|
[Preview guide and examples](https://inklet.readthedocs.io/en/latest/development-preview/) ·
|
|
44
45
|
[4.0 roadmap](https://inklet.readthedocs.io/en/latest/roadmap/) ·
|
|
45
|
-
[Release notes](https://github.com/Mapika/inklet/releases/tag/v4.0.0.
|
|
46
|
+
[Release notes](https://github.com/Mapika/inklet/releases/tag/v4.0.0.dev2)
|
|
46
47
|
|
|
47
48
|
This is an opt-in development release. Experimental APIs and saved-state schemas
|
|
48
49
|
may change; 3.1.0 remains the stable release. General browser editing,
|
|
@@ -457,6 +457,10 @@ One data glyph, centred on its own origin so `place()` lands it on the point it
|
|
|
457
457
|
|
|
458
458
|
Put children at explicit coordinates, in millimetres.
|
|
459
459
|
|
|
460
|
+
#### `window(items: 'Diagram | Iterable[Diagram]', region: 'Rect | Sequence[Point]', *, kind: 'str' = 'window', **style) -> 'Diagram'`
|
|
461
|
+
|
|
462
|
+
Crop painted content to a fixed convex window, in local millimetres.
|
|
463
|
+
|
|
460
464
|
#### `clip(items: 'Diagram | Iterable[Diagram]', region: 'Rect | Sequence[Point]', *, kind: 'str' = 'clip', strict: 'bool' = False, **style) -> 'Diagram'`
|
|
461
465
|
|
|
462
466
|
Cut `items` down to `region`, in the coordinate frame you pass it in.
|
|
@@ -1058,9 +1062,9 @@ Flatten the tree into world transforms, keyed by node id.
|
|
|
1058
1062
|
|
|
1059
1063
|
## Core types and units
|
|
1060
1064
|
|
|
1061
|
-
#### `class Diagram(prim: 'Prim | None' = None, children: "tuple['Diagram', ...]" = (), transform: 'Affine' = Affine(a=1.0, b=0.0, c=0.0, d=1.0, e=0.0, f=0.0), style: 'Style' = Style(fill=None, stroke=None, stroke_width=None, stroke_dash=None, stroke_linecap=None, stroke_linejoin=None, opacity=None, fill_opacity=None, stroke_opacity=None, corner_radius=None, font_family=None, font_size=None, font_weight=None, font_style=None, text_fill=None, line_height=None, halo=None, halo_color=None), kind: 'str' = 'g', name: 'str | None' = None, id: 'str' = '', envelope_override: 'Envelope | None' = None, attached_to: 'tuple[str, ...]' = (), anchors: 'dict[str, Vec2]' = <factory>, notes: 'dict[str, object]' = <factory>, _cache: 'dict' = <factory>) -> None`
|
|
1065
|
+
#### `class Diagram(prim: 'Prim | None' = None, children: "tuple['Diagram', ...]" = (), transform: 'Affine' = Affine(a=1.0, b=0.0, c=0.0, d=1.0, e=0.0, f=0.0), style: 'Style' = Style(fill=None, stroke=None, stroke_width=None, stroke_dash=None, stroke_linecap=None, stroke_linejoin=None, opacity=None, fill_opacity=None, stroke_opacity=None, corner_radius=None, font_family=None, font_size=None, font_weight=None, font_style=None, text_fill=None, line_height=None, halo=None, halo_color=None), kind: 'str' = 'g', name: 'str | None' = None, id: 'str' = '', envelope_override: 'Envelope | None' = None, attached_to: 'tuple[str, ...]' = (), anchors: 'dict[str, Vec2]' = <factory>, notes: 'dict[str, object]' = <factory>, clip_region: 'tuple[Vec2, ...]' = (), _cache: 'dict' = <factory>) -> None`
|
|
1062
1066
|
|
|
1063
|
-
Diagram(prim: 'Prim | None' = None, children: "tuple['Diagram', ...]" = (), transform: 'Affine' = Affine(a=1.0, b=0.0, c=0.0, d=1.0, e=0.0, f=0.0), style: 'Style' = Style(fill=None, stroke=None, stroke_width=None, stroke_dash=None, stroke_linecap=None, stroke_linejoin=None, opacity=None, fill_opacity=None, stroke_opacity=None, corner_radius=None, font_family=None, font_size=None, font_weight=None, font_style=None, text_fill=None, line_height=None, halo=None, halo_color=None), kind: 'str' = 'g', name: 'str | None' = None, id: 'str' = '', envelope_override: 'Envelope | None' = None, attached_to: 'tuple[str, ...]' = (), anchors: 'dict[str, Vec2]' = <factory>, notes: 'dict[str, object]' = <factory>, _cache: 'dict' = <factory>)
|
|
1067
|
+
Diagram(prim: 'Prim | None' = None, children: "tuple['Diagram', ...]" = (), transform: 'Affine' = Affine(a=1.0, b=0.0, c=0.0, d=1.0, e=0.0, f=0.0), style: 'Style' = Style(fill=None, stroke=None, stroke_width=None, stroke_dash=None, stroke_linecap=None, stroke_linejoin=None, opacity=None, fill_opacity=None, stroke_opacity=None, corner_radius=None, font_family=None, font_size=None, font_weight=None, font_style=None, text_fill=None, line_height=None, halo=None, halo_color=None), kind: 'str' = 'g', name: 'str | None' = None, id: 'str' = '', envelope_override: 'Envelope | None' = None, attached_to: 'tuple[str, ...]' = (), anchors: 'dict[str, Vec2]' = <factory>, notes: 'dict[str, object]' = <factory>, clip_region: 'tuple[Vec2, ...]' = (), _cache: 'dict' = <factory>)
|
|
1064
1068
|
|
|
1065
1069
|
* `extent(direction: 'Vec2') -> 'float'` -- How far this reaches along a direction, in the parent's frame. This is what stacking asks, and why a rotated shape packs tighter than its bbox.
|
|
1066
1070
|
* `anchor(name: 'str', at: 'tuple[float, float] | Vec2') -> "'Diagram'"` -- Register a named point. A tuple is read as fractions of the local bounding box, (0, 0) being its top-left corner -- the natural way to point at an ear in a photograph.
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "inklet.clipping-benchmark/1",
|
|
3
|
+
"python": "3.12.3",
|
|
4
|
+
"platform": "Linux-6.6.87.2-microsoft-standard-WSL2-x86_64-with-glibc2.39",
|
|
5
|
+
"source_sha256": "b4ded74e40916e536713f7589469a20bb25677587c03e83942cf6aeb7ecf0bd5",
|
|
6
|
+
"cases": [
|
|
7
|
+
{
|
|
8
|
+
"case": "line",
|
|
9
|
+
"runs": [
|
|
10
|
+
{
|
|
11
|
+
"clip_seconds": 0.09736313400208019,
|
|
12
|
+
"svg_seconds": 0.010083654022309929,
|
|
13
|
+
"pdf_seconds": 0.01944988899049349,
|
|
14
|
+
"total_seconds": 0.1268966770148836,
|
|
15
|
+
"svg_bytes": 76870,
|
|
16
|
+
"pdf_bytes": 36176
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"clip_seconds": 0.09901987100602128,
|
|
20
|
+
"svg_seconds": 0.010495024005649611,
|
|
21
|
+
"pdf_seconds": 0.0206202779954765,
|
|
22
|
+
"total_seconds": 0.1301351730071474,
|
|
23
|
+
"svg_bytes": 76870,
|
|
24
|
+
"pdf_bytes": 36176
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"clip_seconds": 0.10801237399573438,
|
|
28
|
+
"svg_seconds": 0.01182610000250861,
|
|
29
|
+
"pdf_seconds": 0.022811452014138922,
|
|
30
|
+
"total_seconds": 0.1426499260123819,
|
|
31
|
+
"svg_bytes": 76870,
|
|
32
|
+
"pdf_bytes": 36176
|
|
33
|
+
}
|
|
34
|
+
],
|
|
35
|
+
"median": {
|
|
36
|
+
"clip_seconds": 0.09901987100602128,
|
|
37
|
+
"svg_seconds": 0.010495024005649611,
|
|
38
|
+
"pdf_seconds": 0.0206202779954765,
|
|
39
|
+
"total_seconds": 0.1301351730071474,
|
|
40
|
+
"svg_bytes": 76870,
|
|
41
|
+
"pdf_bytes": 36176
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"case": "band",
|
|
46
|
+
"runs": [
|
|
47
|
+
{
|
|
48
|
+
"clip_seconds": 0.6217630119936075,
|
|
49
|
+
"svg_seconds": 0.05115153800579719,
|
|
50
|
+
"pdf_seconds": 0.10317503899568692,
|
|
51
|
+
"total_seconds": 0.7760895889950916,
|
|
52
|
+
"svg_bytes": 316513,
|
|
53
|
+
"pdf_bytes": 145203
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"clip_seconds": 0.626939455018146,
|
|
57
|
+
"svg_seconds": 0.06268787098815665,
|
|
58
|
+
"pdf_seconds": 0.09176701598335057,
|
|
59
|
+
"total_seconds": 0.7813943419896532,
|
|
60
|
+
"svg_bytes": 316513,
|
|
61
|
+
"pdf_bytes": 145203
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"clip_seconds": 0.6646606319991406,
|
|
65
|
+
"svg_seconds": 0.05158257801667787,
|
|
66
|
+
"pdf_seconds": 0.09825415699742734,
|
|
67
|
+
"total_seconds": 0.8144973670132458,
|
|
68
|
+
"svg_bytes": 316513,
|
|
69
|
+
"pdf_bytes": 145203
|
|
70
|
+
}
|
|
71
|
+
],
|
|
72
|
+
"median": {
|
|
73
|
+
"clip_seconds": 0.626939455018146,
|
|
74
|
+
"svg_seconds": 0.05158257801667787,
|
|
75
|
+
"pdf_seconds": 0.09825415699742734,
|
|
76
|
+
"total_seconds": 0.7813943419896532,
|
|
77
|
+
"svg_bytes": 316513,
|
|
78
|
+
"pdf_bytes": 145203
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"case": "curves",
|
|
83
|
+
"runs": [
|
|
84
|
+
{
|
|
85
|
+
"clip_seconds": 0.02900044500711374,
|
|
86
|
+
"svg_seconds": 0.0009433439990971237,
|
|
87
|
+
"pdf_seconds": 0.0009197680046781898,
|
|
88
|
+
"total_seconds": 0.030863557010889053,
|
|
89
|
+
"svg_bytes": 5248,
|
|
90
|
+
"pdf_bytes": 3319
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"clip_seconds": 0.030080602009547874,
|
|
94
|
+
"svg_seconds": 0.0012863579904660583,
|
|
95
|
+
"pdf_seconds": 0.0010805090132635087,
|
|
96
|
+
"total_seconds": 0.03244746901327744,
|
|
97
|
+
"svg_bytes": 5248,
|
|
98
|
+
"pdf_bytes": 3319
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"clip_seconds": 0.029620053013786674,
|
|
102
|
+
"svg_seconds": 0.0009497819992247969,
|
|
103
|
+
"pdf_seconds": 0.0013156150234863162,
|
|
104
|
+
"total_seconds": 0.03188545003649779,
|
|
105
|
+
"svg_bytes": 5248,
|
|
106
|
+
"pdf_bytes": 3319
|
|
107
|
+
}
|
|
108
|
+
],
|
|
109
|
+
"median": {
|
|
110
|
+
"clip_seconds": 0.029620053013786674,
|
|
111
|
+
"svg_seconds": 0.0009497819992247969,
|
|
112
|
+
"pdf_seconds": 0.0010805090132635087,
|
|
113
|
+
"total_seconds": 0.03188545003649779,
|
|
114
|
+
"svg_bytes": 5248,
|
|
115
|
+
"pdf_bytes": 3319
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
]
|
|
119
|
+
}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "inklet.clipping-benchmark/1",
|
|
3
|
+
"python": "3.12.3",
|
|
4
|
+
"platform": "Linux-6.6.87.2-microsoft-standard-WSL2-x86_64-with-glibc2.39",
|
|
5
|
+
"source_sha256": "f323b9e3b780d44cc5ea1b286512bc9d3ec019a1387e814803964d8cc9d27d13",
|
|
6
|
+
"cases": [
|
|
7
|
+
{
|
|
8
|
+
"case": "line",
|
|
9
|
+
"runs": [
|
|
10
|
+
{
|
|
11
|
+
"clip_seconds": 0.2047820259758737,
|
|
12
|
+
"svg_seconds": 0.010102088999701664,
|
|
13
|
+
"pdf_seconds": 0.02015214299899526,
|
|
14
|
+
"total_seconds": 0.23503625797457062,
|
|
15
|
+
"svg_bytes": 76870,
|
|
16
|
+
"pdf_bytes": 36176
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"clip_seconds": 0.20985267401556484,
|
|
20
|
+
"svg_seconds": 0.010210584994638339,
|
|
21
|
+
"pdf_seconds": 0.02010145699023269,
|
|
22
|
+
"total_seconds": 0.24016471600043587,
|
|
23
|
+
"svg_bytes": 76870,
|
|
24
|
+
"pdf_bytes": 36176
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"clip_seconds": 0.20240381799521856,
|
|
28
|
+
"svg_seconds": 0.010233473003609106,
|
|
29
|
+
"pdf_seconds": 0.02053205599077046,
|
|
30
|
+
"total_seconds": 0.23316934698959813,
|
|
31
|
+
"svg_bytes": 76870,
|
|
32
|
+
"pdf_bytes": 36176
|
|
33
|
+
}
|
|
34
|
+
],
|
|
35
|
+
"median": {
|
|
36
|
+
"clip_seconds": 0.2047820259758737,
|
|
37
|
+
"svg_seconds": 0.010210584994638339,
|
|
38
|
+
"pdf_seconds": 0.02015214299899526,
|
|
39
|
+
"total_seconds": 0.23503625797457062,
|
|
40
|
+
"svg_bytes": 76870,
|
|
41
|
+
"pdf_bytes": 36176
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"case": "band",
|
|
46
|
+
"runs": [
|
|
47
|
+
{
|
|
48
|
+
"clip_seconds": 0.6113144700066186,
|
|
49
|
+
"svg_seconds": 0.05068271100753918,
|
|
50
|
+
"pdf_seconds": 0.0926879330072552,
|
|
51
|
+
"total_seconds": 0.754685114021413,
|
|
52
|
+
"svg_bytes": 316513,
|
|
53
|
+
"pdf_bytes": 145203
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"clip_seconds": 0.5794899000029545,
|
|
57
|
+
"svg_seconds": 0.0481099919998087,
|
|
58
|
+
"pdf_seconds": 0.08913570898585021,
|
|
59
|
+
"total_seconds": 0.7167356009886134,
|
|
60
|
+
"svg_bytes": 316513,
|
|
61
|
+
"pdf_bytes": 145203
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"clip_seconds": 0.5717577220057137,
|
|
65
|
+
"svg_seconds": 0.047267758985981345,
|
|
66
|
+
"pdf_seconds": 0.09365696899476461,
|
|
67
|
+
"total_seconds": 0.7126824499864597,
|
|
68
|
+
"svg_bytes": 316513,
|
|
69
|
+
"pdf_bytes": 145203
|
|
70
|
+
}
|
|
71
|
+
],
|
|
72
|
+
"median": {
|
|
73
|
+
"clip_seconds": 0.5794899000029545,
|
|
74
|
+
"svg_seconds": 0.0481099919998087,
|
|
75
|
+
"pdf_seconds": 0.0926879330072552,
|
|
76
|
+
"total_seconds": 0.7167356009886134,
|
|
77
|
+
"svg_bytes": 316513,
|
|
78
|
+
"pdf_bytes": 145203
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"case": "curves",
|
|
83
|
+
"runs": [
|
|
84
|
+
{
|
|
85
|
+
"clip_seconds": 0.03832915498060174,
|
|
86
|
+
"svg_seconds": 0.0019394969858694822,
|
|
87
|
+
"pdf_seconds": 0.002644603024236858,
|
|
88
|
+
"total_seconds": 0.04291325499070808,
|
|
89
|
+
"svg_bytes": 13575,
|
|
90
|
+
"pdf_bytes": 7041
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"clip_seconds": 0.03621691299485974,
|
|
94
|
+
"svg_seconds": 0.0019186209829058498,
|
|
95
|
+
"pdf_seconds": 0.0025379790167789906,
|
|
96
|
+
"total_seconds": 0.04067351299454458,
|
|
97
|
+
"svg_bytes": 13575,
|
|
98
|
+
"pdf_bytes": 7041
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"clip_seconds": 0.038817927008494735,
|
|
102
|
+
"svg_seconds": 0.0018433219811413437,
|
|
103
|
+
"pdf_seconds": 0.0024352470063604414,
|
|
104
|
+
"total_seconds": 0.04309649599599652,
|
|
105
|
+
"svg_bytes": 13575,
|
|
106
|
+
"pdf_bytes": 7041
|
|
107
|
+
}
|
|
108
|
+
],
|
|
109
|
+
"median": {
|
|
110
|
+
"clip_seconds": 0.03832915498060174,
|
|
111
|
+
"svg_seconds": 0.0019186209829058498,
|
|
112
|
+
"pdf_seconds": 0.0025379790167789906,
|
|
113
|
+
"total_seconds": 0.04291325499070808,
|
|
114
|
+
"svg_bytes": 13575,
|
|
115
|
+
"pdf_bytes": 7041
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
]
|
|
119
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
\caption{Clipping checks using original simulated data and artwork. (a) Geometrically clipped smooth response curves, retaining cubic segments. (b) A dense signal with a narrow peak and an explicit missing-data gap; physical simplification tolerance 0.02 mm. (c) Filled uncertainty-like bands representing supplied simulated intervals, cropped with their outlines. (d) Large boundary markers and thick strokes cropped by a painted window. (e) A synthetic scalar image under a rotated convex window. (f) Glyphs and halos cropped together. (g) Rounded rectangles and an even-odd hole, cropped without changing their source geometry. (h) Nested windows with group opacity beside an unclipped sibling. Letter labels identify checks; the artwork contains no panel titles. Recipe and artwork: MIT, Mark Marosi. No measured data or inferred uncertainty.}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "inklet.line-benchmark/1",
|
|
3
|
+
"python": "3.12.3",
|
|
4
|
+
"platform": "Linux-6.6.87.2-microsoft-standard-WSL2-x86_64-with-glibc2.39",
|
|
5
|
+
"source_sha256": "4d568547de3dd27236cad313c0ba4b2ea86c9b236c14e21265d28158f16f2dcb",
|
|
6
|
+
"cases": [
|
|
7
|
+
{
|
|
8
|
+
"mode": "exact",
|
|
9
|
+
"runs": [
|
|
10
|
+
{
|
|
11
|
+
"version": "4.0.0.dev1",
|
|
12
|
+
"mode": "exact",
|
|
13
|
+
"compile_seconds": 2.3698998230102006,
|
|
14
|
+
"svg_seconds": 0.20285959899774753,
|
|
15
|
+
"pdf_seconds": 0.29312898899661377,
|
|
16
|
+
"total_seconds": 2.865888411004562,
|
|
17
|
+
"svg_bytes": 980481,
|
|
18
|
+
"pdf_bytes": 461067,
|
|
19
|
+
"input_points": 100001,
|
|
20
|
+
"output_points": 100001
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"version": "4.0.0.dev1",
|
|
24
|
+
"mode": "exact",
|
|
25
|
+
"compile_seconds": 2.295190052012913,
|
|
26
|
+
"svg_seconds": 0.18526515999110416,
|
|
27
|
+
"pdf_seconds": 0.28874259899021126,
|
|
28
|
+
"total_seconds": 2.7691978109942283,
|
|
29
|
+
"svg_bytes": 980481,
|
|
30
|
+
"pdf_bytes": 461067,
|
|
31
|
+
"input_points": 100001,
|
|
32
|
+
"output_points": 100001
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"version": "4.0.0.dev1",
|
|
36
|
+
"mode": "exact",
|
|
37
|
+
"compile_seconds": 2.101868526020553,
|
|
38
|
+
"svg_seconds": 0.17295101800118573,
|
|
39
|
+
"pdf_seconds": 0.2843762160046026,
|
|
40
|
+
"total_seconds": 2.5591957600263413,
|
|
41
|
+
"svg_bytes": 980481,
|
|
42
|
+
"pdf_bytes": 461067,
|
|
43
|
+
"input_points": 100001,
|
|
44
|
+
"output_points": 100001
|
|
45
|
+
}
|
|
46
|
+
],
|
|
47
|
+
"median": {
|
|
48
|
+
"compile_seconds": 2.295190052012913,
|
|
49
|
+
"svg_seconds": 0.18526515999110416,
|
|
50
|
+
"pdf_seconds": 0.28874259899021126,
|
|
51
|
+
"total_seconds": 2.7691978109942283,
|
|
52
|
+
"svg_bytes": 980481,
|
|
53
|
+
"pdf_bytes": 461067,
|
|
54
|
+
"input_points": 100001,
|
|
55
|
+
"output_points": 100001
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"mode": "reduced",
|
|
60
|
+
"runs": [
|
|
61
|
+
{
|
|
62
|
+
"version": "4.0.0.dev1",
|
|
63
|
+
"mode": "reduced",
|
|
64
|
+
"compile_seconds": 1.4471595000068191,
|
|
65
|
+
"svg_seconds": 0.09697175401379354,
|
|
66
|
+
"pdf_seconds": 0.01362504600547254,
|
|
67
|
+
"total_seconds": 1.5577563000260852,
|
|
68
|
+
"svg_bytes": 27002,
|
|
69
|
+
"pdf_bytes": 6491,
|
|
70
|
+
"input_points": 100001,
|
|
71
|
+
"output_points": 347
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"version": "4.0.0.dev1",
|
|
75
|
+
"mode": "reduced",
|
|
76
|
+
"compile_seconds": 1.4402156580181327,
|
|
77
|
+
"svg_seconds": 0.09827578099793755,
|
|
78
|
+
"pdf_seconds": 0.011242231994401664,
|
|
79
|
+
"total_seconds": 1.5497336710104719,
|
|
80
|
+
"svg_bytes": 27002,
|
|
81
|
+
"pdf_bytes": 6491,
|
|
82
|
+
"input_points": 100001,
|
|
83
|
+
"output_points": 347
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"version": "4.0.0.dev1",
|
|
87
|
+
"mode": "reduced",
|
|
88
|
+
"compile_seconds": 1.4540170399995986,
|
|
89
|
+
"svg_seconds": 0.10391180001897737,
|
|
90
|
+
"pdf_seconds": 0.012621197005501017,
|
|
91
|
+
"total_seconds": 1.570550037024077,
|
|
92
|
+
"svg_bytes": 27002,
|
|
93
|
+
"pdf_bytes": 6491,
|
|
94
|
+
"input_points": 100001,
|
|
95
|
+
"output_points": 347
|
|
96
|
+
}
|
|
97
|
+
],
|
|
98
|
+
"median": {
|
|
99
|
+
"compile_seconds": 1.4471595000068191,
|
|
100
|
+
"svg_seconds": 0.09827578099793755,
|
|
101
|
+
"pdf_seconds": 0.012621197005501017,
|
|
102
|
+
"total_seconds": 1.5577563000260852,
|
|
103
|
+
"svg_bytes": 27002,
|
|
104
|
+
"pdf_bytes": 6491,
|
|
105
|
+
"input_points": 100001,
|
|
106
|
+
"output_points": 347
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
]
|
|
110
|
+
}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "inklet.line-benchmark/1",
|
|
3
|
+
"python": "3.12.3",
|
|
4
|
+
"platform": "Linux-6.6.87.2-microsoft-standard-WSL2-x86_64-with-glibc2.39",
|
|
5
|
+
"source_sha256": "7432547a3062befe9e771ae3eeebf198dd2ab45a95df9f9a283ba9704e56511d",
|
|
6
|
+
"cases": [
|
|
7
|
+
{
|
|
8
|
+
"mode": "exact",
|
|
9
|
+
"runs": [
|
|
10
|
+
{
|
|
11
|
+
"version": "4.0.0.dev1",
|
|
12
|
+
"mode": "exact",
|
|
13
|
+
"compile_seconds": 2.10556289597298,
|
|
14
|
+
"svg_seconds": 0.1684394869953394,
|
|
15
|
+
"pdf_seconds": 0.28911288201925345,
|
|
16
|
+
"total_seconds": 2.563115264987573,
|
|
17
|
+
"svg_bytes": 980481,
|
|
18
|
+
"pdf_bytes": 461067,
|
|
19
|
+
"input_points": 100001,
|
|
20
|
+
"output_points": 100001
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"version": "4.0.0.dev1",
|
|
24
|
+
"mode": "exact",
|
|
25
|
+
"compile_seconds": 2.19811100102379,
|
|
26
|
+
"svg_seconds": 0.18239081799401902,
|
|
27
|
+
"pdf_seconds": 0.2914214770135004,
|
|
28
|
+
"total_seconds": 2.6719232960313093,
|
|
29
|
+
"svg_bytes": 980481,
|
|
30
|
+
"pdf_bytes": 461067,
|
|
31
|
+
"input_points": 100001,
|
|
32
|
+
"output_points": 100001
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"version": "4.0.0.dev1",
|
|
36
|
+
"mode": "exact",
|
|
37
|
+
"compile_seconds": 2.135802510980284,
|
|
38
|
+
"svg_seconds": 0.18170851399190724,
|
|
39
|
+
"pdf_seconds": 0.2970958370133303,
|
|
40
|
+
"total_seconds": 2.6146068619855214,
|
|
41
|
+
"svg_bytes": 980481,
|
|
42
|
+
"pdf_bytes": 461067,
|
|
43
|
+
"input_points": 100001,
|
|
44
|
+
"output_points": 100001
|
|
45
|
+
}
|
|
46
|
+
],
|
|
47
|
+
"median": {
|
|
48
|
+
"compile_seconds": 2.135802510980284,
|
|
49
|
+
"svg_seconds": 0.18170851399190724,
|
|
50
|
+
"pdf_seconds": 0.2914214770135004,
|
|
51
|
+
"total_seconds": 2.6146068619855214,
|
|
52
|
+
"svg_bytes": 980481,
|
|
53
|
+
"pdf_bytes": 461067,
|
|
54
|
+
"input_points": 100001,
|
|
55
|
+
"output_points": 100001
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"mode": "reduced",
|
|
60
|
+
"runs": [
|
|
61
|
+
{
|
|
62
|
+
"version": "4.0.0.dev1",
|
|
63
|
+
"mode": "reduced",
|
|
64
|
+
"compile_seconds": 1.6233859639905859,
|
|
65
|
+
"svg_seconds": 0.12080392800271511,
|
|
66
|
+
"pdf_seconds": 0.013257821992738172,
|
|
67
|
+
"total_seconds": 1.7574477139860392,
|
|
68
|
+
"svg_bytes": 27002,
|
|
69
|
+
"pdf_bytes": 6491,
|
|
70
|
+
"input_points": 100001,
|
|
71
|
+
"output_points": 347
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"version": "4.0.0.dev1",
|
|
75
|
+
"mode": "reduced",
|
|
76
|
+
"compile_seconds": 1.6253068319929298,
|
|
77
|
+
"svg_seconds": 0.13291000598110259,
|
|
78
|
+
"pdf_seconds": 0.013203223003074527,
|
|
79
|
+
"total_seconds": 1.771420060977107,
|
|
80
|
+
"svg_bytes": 27002,
|
|
81
|
+
"pdf_bytes": 6491,
|
|
82
|
+
"input_points": 100001,
|
|
83
|
+
"output_points": 347
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"version": "4.0.0.dev1",
|
|
87
|
+
"mode": "reduced",
|
|
88
|
+
"compile_seconds": 1.5204979050031397,
|
|
89
|
+
"svg_seconds": 0.11567337001906708,
|
|
90
|
+
"pdf_seconds": 0.014040762995136902,
|
|
91
|
+
"total_seconds": 1.6502120380173437,
|
|
92
|
+
"svg_bytes": 27002,
|
|
93
|
+
"pdf_bytes": 6491,
|
|
94
|
+
"input_points": 100001,
|
|
95
|
+
"output_points": 347
|
|
96
|
+
}
|
|
97
|
+
],
|
|
98
|
+
"median": {
|
|
99
|
+
"compile_seconds": 1.6233859639905859,
|
|
100
|
+
"svg_seconds": 0.12080392800271511,
|
|
101
|
+
"pdf_seconds": 0.013257821992738172,
|
|
102
|
+
"total_seconds": 1.7574477139860392,
|
|
103
|
+
"svg_bytes": 27002,
|
|
104
|
+
"pdf_bytes": 6491,
|
|
105
|
+
"input_points": 100001,
|
|
106
|
+
"output_points": 347
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
]
|
|
110
|
+
}
|