ocdkit 0.0.6__tar.gz → 0.0.7__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.
- {ocdkit-0.0.6/src/ocdkit.egg-info → ocdkit-0.0.7}/PKG-INFO +3 -1
- ocdkit-0.0.7/badges/coverage.svg +1 -0
- ocdkit-0.0.7/badges/tests.svg +1 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/pyproject.toml +4 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/plot/text_metrics.py +16 -1
- {ocdkit-0.0.6 → ocdkit-0.0.7/src/ocdkit.egg-info}/PKG-INFO +3 -1
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit.egg-info/requires.txt +2 -0
- ocdkit-0.0.6/badges/coverage.svg +0 -1
- ocdkit-0.0.6/badges/tests.svg +0 -1
- {ocdkit-0.0.6 → ocdkit-0.0.7}/.github/workflows/test_and_deploy.yml +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/.gitignore +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/LICENSE +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/MANIFEST.in +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/README.md +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/docs/plot-backend-roadmap.md +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/docs/plugin-authoring.md +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/docs/pywebview-desktop-integration.md +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/jupyter-config/jupyter_server_config.d/ocdkit_tileserve.json +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/scripts/bench_colorize.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/scripts/bench_contour_alignment.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/scripts/bench_hdr_cmap.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/scripts/bench_vector_contours.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/scripts/bench_vector_contours_tier2.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/scripts/check_compare_pixels.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/scripts/check_hdr_cmap.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/scripts/check_image_grid_auto_color.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/scripts/check_jxl_p3_bytes.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/scripts/check_playwright_render.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/scripts/check_uhdr_sdr_base.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/scripts/coverage_cross_device.env.example +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/scripts/coverage_cross_device.sh +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/scripts/hdr_harness.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/scripts/make_chromaticity_p3.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/setup.cfg +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/__init__.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/__main__.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/array/__init__.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/array/convert.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/array/filters.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/array/imports.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/array/index.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/array/morphology.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/array/normalize.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/array/ops.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/array/parallel.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/array/spatial.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/array/transform.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/array/union_find.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/array/warp.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/cli/__init__.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/cli/__main__.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/cli/main.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/cli/migrate.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/cli/paths.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/desktop/__init__.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/desktop/pinning.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/imports.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/io/__init__.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/io/fig_export.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/io/figure.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/io/figure_server.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/io/files.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/io/image.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/io/imports.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/io/live_figure.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/io/mpl_axes_cropper.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/io/path.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/io/pptx.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/io/result.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/load/__init__.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/load/module.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/load/object.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/logging/__init__.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/logging/handler.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/measure/__init__.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/measure/bbox.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/measure/diameter.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/measure/imports.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/measure/medoid.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/measure/metrics.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/plot/__init__.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/plot/bench.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/plot/color.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/plot/composite.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/plot/composite_grid.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/plot/contour.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/plot/defaults.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/plot/display.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/plot/export.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/plot/figure.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/plot/grid.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/plot/hdr_cmap.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/plot/image_grid.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/plot/imports.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/plot/label.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/plot/layout.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/plot/luts.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/plot/ncolor.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/plot/pyramid.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/plot/style.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/plot/svg.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/plot/web/colormap_image.js +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/plot/web/hdr_colormap.js +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/plot/web/hdr_headroom.js +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/plot/web/label_gl.js +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/plot/web/scatter_gl.js +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/plot/web/spectra_density_element.js +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/plot/web/spectra_density_gl.js +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/plot/web/tile_grid_element.js +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/testing/__init__.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/testing/collisions.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/testing/imports.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/tileserve/__init__.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/tileserve/headless.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/tileserve/jupyter_ext.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/tileserve/layout.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/tileserve/server.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/tileserve/shaders.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/tileserve/viewer.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/tls/__init__.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/tls/external_ca.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/tls/hostnames.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/tls/imports.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/tls/local_ca.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/tls/paths.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/tls/trust.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/utils/__init__.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/utils/collections.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/utils/gpu.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/utils/kwargs.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/utils/paths.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/__init__.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/__main__.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/app.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/assets.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/cli.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/demo.html +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/dependencies.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/edr_bridge.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/exceptions.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/masks.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/middleware.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/model_registry.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/plugins/__init__.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/plugins/base.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/plugins/registry.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/plugins/schema.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/plugins/threshold.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/routers/__init__.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/routers/index.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/routers/log.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/routers/mask.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/routers/plugin.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/routers/segment.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/routers/session_routes.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/routers/system.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/routers/trust.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/routes.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/sample_image.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/schemas.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/segmentation.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/session.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/system.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/web/app.js +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/web/css/controls.css +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/web/css/layout.css +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/web/css/tools.css +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/web/css/viewer.css +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/web/hdr_cmap_prototype.html +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/web/hdr_cmap_uhdr.html +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/web/hdr_css_test.html +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/web/html/_attic_omnipose-panel.html +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/web/html/left-panel.html +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/web/html/sidebar.html +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/web/html/viewer.html +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/web/icons/affinity.svg +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/web/icons/arrow-back-up.svg +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/web/icons/arrow-forward-up.svg +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/web/icons/dbscan-nested-arcs.svg +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/web/icons/download.svg +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/web/icons/droplet-half-2.svg +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/web/icons/eraser.svg +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/web/icons/home-2.svg +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/web/icons/minus.svg +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/web/icons/palette.svg +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/web/icons/pencil.svg +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/web/icons/plus.svg +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/web/icons/rotate-rectangle.svg +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/web/icons/topology-star.svg +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/web/index.html +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/web/js/brush.js +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/web/js/colormap.js +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/web/js/debug-apple-material.js +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/web/js/file-navigation.js +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/web/js/hdr_image_layer.js +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/web/js/hdr_ui.js +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/web/js/history.js +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/web/js/interactions.js +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/web/js/logging.js +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/web/js/mask-pipeline.js +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/web/js/painting.js +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/web/js/plugin-panel.js +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/web/js/pointer-state.js +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/web/js/state-persistence.js +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/web/js/tooltip-editor.js +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/web/js/ui-utils.js +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit/viewer/web/js/wasm_fill.c +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit.egg-info/SOURCES.txt +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit.egg-info/dependency_links.txt +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit.egg-info/entry_points.txt +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/src/ocdkit.egg-info/top_level.txt +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/tests/e2e/__init__.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/tests/e2e/conftest.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/tests/e2e/test_browser_smoke.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/tests/e2e/test_pywebview_snapshot.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/tests/fixtures/multichan_3c_4x4.czi +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/tests/fixtures/tiny_8x8.czi +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/tests/test_array.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/tests/test_gpu.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/tests/test_import_cycles.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/tests/test_io.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/tests/test_io_live_figure.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/tests/test_io_pptx.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/tests/test_measure.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/tests/test_module_collisions.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/tests/test_module_discovery.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/tests/test_morphology.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/tests/test_paths_migration.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/tests/test_plot_color.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/tests/test_plot_contour.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/tests/test_plot_display.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/tests/test_plot_export.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/tests/test_plot_figure.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/tests/test_plot_grid.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/tests/test_plot_label.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/tests/test_plot_notebook.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/tests/test_registration.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/tests/test_slice.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/tests/test_spatial.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/tests/test_tileserve_pick_level.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/tests/viewer/__init__.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/tests/viewer/test_active_plugin_cache.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/tests/viewer/test_app.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/tests/viewer/test_async_dispatch.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/tests/viewer/test_envelope_and_middleware.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/tests/viewer/test_plugin_contract.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/tests/viewer/test_session_eviction.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/tests/viewer/test_title_config.py +0 -0
- {ocdkit-0.0.6 → ocdkit-0.0.7}/tests/viewer/test_ui_mode.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ocdkit
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.7
|
|
4
4
|
Summary: Obsessive Coder's Dependency Toolkit — Python utilities for array manipulation, GPU dispatch, image I/O, morphology, and plotting.
|
|
5
5
|
License: BSD-3-Clause
|
|
6
6
|
Requires-Python: >=3.11
|
|
@@ -27,6 +27,8 @@ Requires-Dist: platformdirs
|
|
|
27
27
|
Requires-Dist: cryptography
|
|
28
28
|
Requires-Dist: lxml
|
|
29
29
|
Requires-Dist: python-pptx
|
|
30
|
+
Requires-Dist: freetype-py
|
|
31
|
+
Requires-Dist: rich
|
|
30
32
|
Provides-Extra: viewer
|
|
31
33
|
Requires-Dist: fastapi; extra == "viewer"
|
|
32
34
|
Requires-Dist: uvicorn[standard]; extra == "viewer"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="114" height="20" role="img" aria-label="coverage: 32.58%"><title>coverage: 32.58%</title><filter id="blur"><feGaussianBlur stdDeviation="16"/></filter><linearGradient id="s" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="r"><rect width="114" height="20" rx="3"/></clipPath><g clip-path="url(#r)"><rect width="61" height="20" fill="#555"/><rect x="61" width="53" height="20" fill="#dd4343"/><rect width="114" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><g transform="scale(.1)"><g aria-hidden="true" fill="#010101"><text x="315" y="150" fill-opacity=".8" filter="url(#blur)" textLength="510">coverage</text><text x="315" y="150" fill-opacity=".3" textLength="510">coverage</text></g><text x="315" y="140" textLength="510">coverage</text></g><g transform="scale(.1)"><g aria-hidden="true" fill="#010101"><text x="865" y="150" fill-opacity=".8" filter="url(#blur)" textLength="430">32.58%</text><text x="865" y="150" fill-opacity=".3" textLength="430">32.58%</text></g><text x="865" y="140" textLength="430">32.58%</text></g></g></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="68" height="20" role="img" aria-label="tests: 423"><title>tests: 423</title><filter id="blur"><feGaussianBlur stdDeviation="16"/></filter><linearGradient id="s" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="r"><rect width="68" height="20" rx="3"/></clipPath><g clip-path="url(#r)"><rect width="37" height="20" fill="#555"/><rect x="37" width="31" height="20" fill="#4b0"/><rect width="68" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><g transform="scale(.1)"><g aria-hidden="true" fill="#010101"><text x="195" y="150" fill-opacity=".8" filter="url(#blur)" textLength="270">tests</text><text x="195" y="150" fill-opacity=".3" textLength="270">tests</text></g><text x="195" y="140" textLength="270">tests</text></g><g transform="scale(.1)"><g aria-hidden="true" fill="#010101"><text x="515" y="150" fill-opacity=".8" filter="url(#blur)" textLength="210">423</text><text x="515" y="150" fill-opacity=".3" textLength="210">423</text></g><text x="515" y="140" textLength="210">423</text></g></g></svg>
|
|
@@ -39,6 +39,10 @@ dependencies = [
|
|
|
39
39
|
"lxml",
|
|
40
40
|
# python-pptx: figs_to_deck PPTX export (ocdkit.io.pptx)
|
|
41
41
|
"python-pptx",
|
|
42
|
+
# freetype-py: glyph metrics for ocdkit.plot.text_metrics (measure_text etc.)
|
|
43
|
+
"freetype-py",
|
|
44
|
+
# rich: used by ocdkit.logging.handler (lazy import) for the rich logging handler
|
|
45
|
+
"rich",
|
|
42
46
|
]
|
|
43
47
|
|
|
44
48
|
[project.optional-dependencies]
|
|
@@ -33,6 +33,8 @@ _FONT_CANDIDATES_REGULAR = [
|
|
|
33
33
|
"/System/Library/Fonts/Supplemental/Arial.ttf",
|
|
34
34
|
"/Library/Fonts/Arial.ttf",
|
|
35
35
|
"/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf",
|
|
36
|
+
r"C:\Windows\Fonts\arial.ttf",
|
|
37
|
+
r"C:\Windows\Fonts\segoeui.ttf",
|
|
36
38
|
]
|
|
37
39
|
_FONT_CANDIDATES_BOLD = [
|
|
38
40
|
# Helvetica.ttc face 1 = Bold; freetype defaults to face 0 (Regular).
|
|
@@ -40,11 +42,15 @@ _FONT_CANDIDATES_BOLD = [
|
|
|
40
42
|
"/System/Library/Fonts/Supplemental/Arial Bold.ttf",
|
|
41
43
|
"/Library/Fonts/Arial Bold.ttf",
|
|
42
44
|
"/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf",
|
|
45
|
+
r"C:\Windows\Fonts\arialbd.ttf",
|
|
46
|
+
r"C:\Windows\Fonts\seguisb.ttf",
|
|
43
47
|
]
|
|
44
48
|
_FONT_CANDIDATES_MONO = [
|
|
45
49
|
"/System/Library/Fonts/Menlo.ttc",
|
|
46
50
|
"/System/Library/Fonts/SFNSMono.ttf",
|
|
47
51
|
"/usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf",
|
|
52
|
+
r"C:\Windows\Fonts\consola.ttf",
|
|
53
|
+
r"C:\Windows\Fonts\cour.ttf",
|
|
48
54
|
]
|
|
49
55
|
|
|
50
56
|
|
|
@@ -69,7 +75,16 @@ def load_face(weight: str = 'regular') -> freetype.Face:
|
|
|
69
75
|
for p in paths:
|
|
70
76
|
if os.path.exists(p):
|
|
71
77
|
return freetype.Face(p)
|
|
72
|
-
|
|
78
|
+
# Last resort: matplotlib always bundles DejaVu Sans, so findfont never
|
|
79
|
+
# fails — guarantees a usable face on any platform whose system-font paths
|
|
80
|
+
# aren't in the list above (e.g. headless Linux, or a Windows CI runner).
|
|
81
|
+
try:
|
|
82
|
+
import matplotlib.font_manager as _fm
|
|
83
|
+
family = 'monospace' if weight == 'mono' else 'sans-serif'
|
|
84
|
+
mpl_weight = 'bold' if weight == 'bold' else 'normal'
|
|
85
|
+
return freetype.Face(_fm.findfont(_fm.FontProperties(family=family, weight=mpl_weight)))
|
|
86
|
+
except Exception as e:
|
|
87
|
+
raise SystemExit(f"no usable system font found for freetype: {e}")
|
|
73
88
|
|
|
74
89
|
|
|
75
90
|
def measure_text(text: str, size_px: float,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ocdkit
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.7
|
|
4
4
|
Summary: Obsessive Coder's Dependency Toolkit — Python utilities for array manipulation, GPU dispatch, image I/O, morphology, and plotting.
|
|
5
5
|
License: BSD-3-Clause
|
|
6
6
|
Requires-Python: >=3.11
|
|
@@ -27,6 +27,8 @@ Requires-Dist: platformdirs
|
|
|
27
27
|
Requires-Dist: cryptography
|
|
28
28
|
Requires-Dist: lxml
|
|
29
29
|
Requires-Dist: python-pptx
|
|
30
|
+
Requires-Dist: freetype-py
|
|
31
|
+
Requires-Dist: rich
|
|
30
32
|
Provides-Extra: viewer
|
|
31
33
|
Requires-Dist: fastapi; extra == "viewer"
|
|
32
34
|
Requires-Dist: uvicorn[standard]; extra == "viewer"
|
ocdkit-0.0.6/badges/coverage.svg
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="114" height="20" role="img" aria-label="coverage: 34.16%"><title>coverage: 34.16%</title><filter id="blur"><feGaussianBlur in="SourceGraphic" stdDeviation="16"/></filter><linearGradient id="s" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="r"><rect width="114" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#r)"><rect width="61" height="20" fill="#555"/><rect x="61" width="53" height="20" fill="#dd4343"/><rect width="114" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text aria-hidden="true" x="315" y="150" fill="#010101" fill-opacity=".80" filter="url(#blur)" transform="scale(.1)" textLength="510">coverage</text><text aria-hidden="true" x="315" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="510">coverage</text><text x="315" y="140" transform="scale(.1)" fill="#fff" textLength="510">coverage</text><text aria-hidden="true" x="865" y="150" fill="#010101" fill-opacity=".80" filter="url(#blur)" transform="scale(.1)" textLength="430">34.16%</text><text aria-hidden="true" x="865" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="430">34.16%</text><text x="865" y="140" transform="scale(.1)" fill="#fff" textLength="430">34.16%</text></g></svg>
|
ocdkit-0.0.6/badges/tests.svg
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="68" height="20" role="img" aria-label="tests: 408"><title>tests: 408</title><filter id="blur"><feGaussianBlur in="SourceGraphic" stdDeviation="16"/></filter><linearGradient id="s" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="r"><rect width="68" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#r)"><rect width="37" height="20" fill="#555"/><rect x="37" width="31" height="20" fill="#4b0"/><rect width="68" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text aria-hidden="true" x="195" y="150" fill="#010101" fill-opacity=".80" filter="url(#blur)" transform="scale(.1)" textLength="270">tests</text><text aria-hidden="true" x="195" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="270">tests</text><text x="195" y="140" transform="scale(.1)" fill="#fff" textLength="270">tests</text><text aria-hidden="true" x="515" y="150" fill="#010101" fill-opacity=".80" filter="url(#blur)" transform="scale(.1)" textLength="210">408</text><text aria-hidden="true" x="515" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="210">408</text><text x="515" y="140" transform="scale(.1)" fill="#fff" textLength="210">408</text></g></svg>
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|