patchworks 0.11.19__tar.gz → 0.11.21__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.
Files changed (77) hide show
  1. {patchworks-0.11.19 → patchworks-0.11.21}/.github/workflows/release.yml +0 -14
  2. {patchworks-0.11.19 → patchworks-0.11.21}/PKG-INFO +4 -2
  3. {patchworks-0.11.19 → patchworks-0.11.21}/pyproject.toml +5 -1
  4. {patchworks-0.11.19 → patchworks-0.11.21}/tests/test_relations.py +6 -2
  5. {patchworks-0.11.19 → patchworks-0.11.21}/.github/workflows/docs.yml +0 -0
  6. {patchworks-0.11.19 → patchworks-0.11.21}/.github/workflows/lint.yml +0 -0
  7. {patchworks-0.11.19 → patchworks-0.11.21}/.gitignore +0 -0
  8. {patchworks-0.11.19 → patchworks-0.11.21}/.markdownlint-cli2.yaml +0 -0
  9. {patchworks-0.11.19 → patchworks-0.11.21}/LICENSE +0 -0
  10. {patchworks-0.11.19 → patchworks-0.11.21}/README.md +0 -0
  11. {patchworks-0.11.19 → patchworks-0.11.21}/cliff.toml +0 -0
  12. {patchworks-0.11.19 → patchworks-0.11.21}/docs/api/chunks.md +0 -0
  13. {patchworks-0.11.19 → patchworks-0.11.21}/docs/api/cluster.md +0 -0
  14. {patchworks-0.11.19 → patchworks-0.11.21}/docs/api/io.md +0 -0
  15. {patchworks-0.11.19 → patchworks-0.11.21}/docs/api/merge_tile_labels.md +0 -0
  16. {patchworks-0.11.19 → patchworks-0.11.21}/docs/api/plugins/cellpose.md +0 -0
  17. {patchworks-0.11.19 → patchworks-0.11.21}/docs/api/plugins/napari.md +0 -0
  18. {patchworks-0.11.19 → patchworks-0.11.21}/docs/api/plugins/ome_zarr.md +0 -0
  19. {patchworks-0.11.19 → patchworks-0.11.21}/docs/api/relabel.md +0 -0
  20. {patchworks-0.11.19 → patchworks-0.11.21}/docs/api/tile_process.md +0 -0
  21. {patchworks-0.11.19 → patchworks-0.11.21}/docs/assets/logo.png +0 -0
  22. {patchworks-0.11.19 → patchworks-0.11.21}/docs/examples/cellpose_2d.md +0 -0
  23. {patchworks-0.11.19 → patchworks-0.11.21}/docs/examples/cellpose_2d.py +0 -0
  24. {patchworks-0.11.19 → patchworks-0.11.21}/docs/examples/cellpose_3d.md +0 -0
  25. {patchworks-0.11.19 → patchworks-0.11.21}/docs/examples/cellpose_3d.py +0 -0
  26. {patchworks-0.11.19 → patchworks-0.11.21}/docs/examples/custom.md +0 -0
  27. {patchworks-0.11.19 → patchworks-0.11.21}/docs/examples/custom_method.py +0 -0
  28. {patchworks-0.11.19 → patchworks-0.11.21}/docs/examples/standalone_merge.md +0 -0
  29. {patchworks-0.11.19 → patchworks-0.11.21}/docs/examples/stardist.md +0 -0
  30. {patchworks-0.11.19 → patchworks-0.11.21}/docs/examples/stardist_2d.py +0 -0
  31. {patchworks-0.11.19 → patchworks-0.11.21}/docs/getting_started.md +0 -0
  32. {patchworks-0.11.19 → patchworks-0.11.21}/docs/guide/gpu_distributed.md +0 -0
  33. {patchworks-0.11.19 → patchworks-0.11.21}/docs/guide/merging.md +0 -0
  34. {patchworks-0.11.19 → patchworks-0.11.21}/docs/guide/ome_zarr_napari.md +0 -0
  35. {patchworks-0.11.19 → patchworks-0.11.21}/docs/guide/performance.md +0 -0
  36. {patchworks-0.11.19 → patchworks-0.11.21}/docs/guide/pitfalls.md +0 -0
  37. {patchworks-0.11.19 → patchworks-0.11.21}/docs/guide/skip_empty.md +0 -0
  38. {patchworks-0.11.19 → patchworks-0.11.21}/docs/guide/snakemake.md +0 -0
  39. {patchworks-0.11.19 → patchworks-0.11.21}/docs/guide/tiling.md +0 -0
  40. {patchworks-0.11.19 → patchworks-0.11.21}/docs/index.md +0 -0
  41. {patchworks-0.11.19 → patchworks-0.11.21}/mkdocs.yml +0 -0
  42. {patchworks-0.11.19 → patchworks-0.11.21}/src/patchworks/__init__.py +0 -0
  43. {patchworks-0.11.19 → patchworks-0.11.21}/src/patchworks/_chunks.py +0 -0
  44. {patchworks-0.11.19 → patchworks-0.11.21}/src/patchworks/_cluster.py +0 -0
  45. {patchworks-0.11.19 → patchworks-0.11.21}/src/patchworks/_core.py +0 -0
  46. {patchworks-0.11.19 → patchworks-0.11.21}/src/patchworks/_distributed.py +0 -0
  47. {patchworks-0.11.19 → patchworks-0.11.21}/src/patchworks/_io.py +0 -0
  48. {patchworks-0.11.19 → patchworks-0.11.21}/src/patchworks/_merge.py +0 -0
  49. {patchworks-0.11.19 → patchworks-0.11.21}/src/patchworks/_relabel.py +0 -0
  50. {patchworks-0.11.19 → patchworks-0.11.21}/src/patchworks/_relations.py +0 -0
  51. {patchworks-0.11.19 → patchworks-0.11.21}/src/patchworks/plugins/__init__.py +0 -0
  52. {patchworks-0.11.19 → patchworks-0.11.21}/src/patchworks/plugins/cellpose.py +0 -0
  53. {patchworks-0.11.19 → patchworks-0.11.21}/src/patchworks/plugins/napari.py +0 -0
  54. {patchworks-0.11.19 → patchworks-0.11.21}/src/patchworks/plugins/ome_zarr.py +0 -0
  55. {patchworks-0.11.19 → patchworks-0.11.21}/tests/test_core.py +0 -0
  56. {patchworks-0.11.19 → patchworks-0.11.21}/tests/test_distributed.py +0 -0
  57. {patchworks-0.11.19 → patchworks-0.11.21}/tests/test_napari.py +0 -0
  58. {patchworks-0.11.19 → patchworks-0.11.21}/tests/test_ome_zarr.py +0 -0
  59. {patchworks-0.11.19 → patchworks-0.11.21}/workflow/README.md +0 -0
  60. {patchworks-0.11.19 → patchworks-0.11.21}/workflow/Snakefile +0 -0
  61. {patchworks-0.11.19 → patchworks-0.11.21}/workflow/config/config.yaml +0 -0
  62. {patchworks-0.11.19 → patchworks-0.11.21}/workflow/config/config_cyto.yaml +0 -0
  63. {patchworks-0.11.19 → patchworks-0.11.21}/workflow/config/config_nuclei.yaml +0 -0
  64. {patchworks-0.11.19 → patchworks-0.11.21}/workflow/config/multi.yaml +0 -0
  65. {patchworks-0.11.19 → patchworks-0.11.21}/workflow/pixi.toml +0 -0
  66. {patchworks-0.11.19 → patchworks-0.11.21}/workflow/profile/slurm/config.yaml +0 -0
  67. {patchworks-0.11.19 → patchworks-0.11.21}/workflow/rules/common.smk +0 -0
  68. {patchworks-0.11.19 → patchworks-0.11.21}/workflow/rules/convert.smk +0 -0
  69. {patchworks-0.11.19 → patchworks-0.11.21}/workflow/rules/merge.smk +0 -0
  70. {patchworks-0.11.19 → patchworks-0.11.21}/workflow/rules/segment.smk +0 -0
  71. {patchworks-0.11.19 → patchworks-0.11.21}/workflow/scripts/_pw.py +0 -0
  72. {patchworks-0.11.19 → patchworks-0.11.21}/workflow/scripts/convert.py +0 -0
  73. {patchworks-0.11.19 → patchworks-0.11.21}/workflow/scripts/fetch_model.py +0 -0
  74. {patchworks-0.11.19 → patchworks-0.11.21}/workflow/scripts/merge.py +0 -0
  75. {patchworks-0.11.19 → patchworks-0.11.21}/workflow/scripts/prepare_tiles.py +0 -0
  76. {patchworks-0.11.19 → patchworks-0.11.21}/workflow/scripts/run_multi.py +0 -0
  77. {patchworks-0.11.19 → patchworks-0.11.21}/workflow/scripts/segment_tile.py +0 -0
@@ -48,17 +48,3 @@ jobs:
48
48
 
49
49
  - name: Publish to PyPI
50
50
  uses: pypa/gh-action-pypi-publish@release/v1
51
-
52
- # Rebuild the org-wide pdoc apidocs site so it picks up the new version.
53
- apidocs:
54
- needs: release
55
- runs-on: ubuntu-latest
56
- steps:
57
- - name: Trigger imcf.github.io apidocs rebuild
58
- uses: peter-evans/repository-dispatch@v3
59
- with:
60
- # Fine-grained PAT with "Contents: write" on imcf/imcf.github.io,
61
- # stored as the APIDOCS_DISPATCH_TOKEN secret in this repo.
62
- token: ${{ secrets.APIDOCS_DISPATCH_TOKEN }}
63
- repository: imcf/imcf.github.io
64
- event-type: dispatch-event
@@ -1,10 +1,10 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: patchworks
3
- Version: 0.11.19
3
+ Version: 0.11.21
4
4
  Summary: Tiled processing of arbitrarily large images with globally consistent labels
5
5
  Project-URL: Homepage, https://github.com/imcf/patchworks
6
6
  Project-URL: Issues, https://github.com/imcf/patchworks/issues
7
- Author: IMCF Basel
7
+ Author-email: Laurent Guerard <laurent.guerard@unibas.ch>
8
8
  License: GPL-3.0-only
9
9
  License-File: LICENSE
10
10
  Keywords: bioimage,chunked,dask,image processing,segmentation,tiling,zarr
@@ -34,6 +34,7 @@ Requires-Dist: glasbey; extra == 'all'
34
34
  Requires-Dist: imaris-ims-file-reader; extra == 'all'
35
35
  Requires-Dist: ipykernel<7; extra == 'all'
36
36
  Requires-Dist: lxml-html-clean; extra == 'all'
37
+ Requires-Dist: napari-dask-ndmeasure>=0.1.0; extra == 'all'
37
38
  Requires-Dist: napari[all]>=0.7.1; extra == 'all'
38
39
  Requires-Dist: numpy<2.5; extra == 'all'
39
40
  Requires-Dist: nvidia-ml-py; extra == 'all'
@@ -74,6 +75,7 @@ Provides-Extra: napari
74
75
  Requires-Dist: glasbey; extra == 'napari'
75
76
  Requires-Dist: ipykernel<7; extra == 'napari'
76
77
  Requires-Dist: lxml-html-clean; extra == 'napari'
78
+ Requires-Dist: napari-dask-ndmeasure>=0.1.0; extra == 'napari'
77
79
  Requires-Dist: napari[all]>=0.7.1; extra == 'napari'
78
80
  Requires-Dist: numpy<2.5; extra == 'napari'
79
81
  Provides-Extra: workflow
@@ -8,7 +8,7 @@ dynamic = ["version"]
8
8
  description = "Tiled processing of arbitrarily large images with globally consistent labels"
9
9
  readme = "README.md"
10
10
  license = { text = "GPL-3.0-only" }
11
- authors = [{ name = "IMCF Basel" }]
11
+ authors = [{ name = "Laurent Guerard", email = "laurent.guerard@unibas.ch" }]
12
12
  keywords = [
13
13
  "image processing",
14
14
  "tiling",
@@ -67,12 +67,16 @@ imaris = ["imaris-ims-file-reader"]
67
67
  # - lxml-html-clean: napari's notebook_display imports lxml.html.clean, split
68
68
  # into a separate package in lxml >= 5.2 (else ImportError on Viewer()).
69
69
  # - glasbey: distinct high-contrast label LUTs for view_in_napari.
70
+ # - napari-dask-ndmeasure: out-of-core regionprops-style measurements
71
+ # (area/centroid/intensity stats) for huge Labels layers, straight off
72
+ # their backing dask/zarr arrays — the "Measure" dock widget.
70
73
  napari = [
71
74
  "napari[all]>=0.7.1",
72
75
  "numpy<2.5",
73
76
  "ipykernel<7",
74
77
  "lxml-html-clean",
75
78
  "glasbey",
79
+ "napari-dask-ndmeasure>=0.1.0",
76
80
  ]
77
81
  # workflow runs the Snakemake pipeline (per-tile SLURM jobs across GPUs).
78
82
  workflow = ["snakemake>=8", "snakemake-executor-plugin-slurm"]
@@ -17,7 +17,9 @@ def test_label_relations_majority_overlap():
17
17
  b[0:2, 6:8] = 21 # 4 voxels overlap with label 2 -> tie, but let's skew it
18
18
  b[0:2, 6:7] = 20 # tip the tie: label 20 now has 6 voxels vs 21's 2
19
19
 
20
- table = label_relations(da.from_array(a, chunks=(2, 5)), da.from_array(b, chunks=(2, 5)))
20
+ table = label_relations(
21
+ da.from_array(a, chunks=(2, 5)), da.from_array(b, chunks=(2, 5))
22
+ )
21
23
 
22
24
  assert table[1]["match"] == 10
23
25
  assert table[1]["overlap_voxels"] == 4
@@ -32,7 +34,9 @@ def test_label_relations_no_overlap_omitted():
32
34
  a[0, 0] = 1
33
35
  b = np.zeros((2, 2), dtype=np.int32) # all background, no overlap anywhere
34
36
 
35
- table = label_relations(da.from_array(a, chunks=(2, 2)), da.from_array(b, chunks=(2, 2)))
37
+ table = label_relations(
38
+ da.from_array(a, chunks=(2, 2)), da.from_array(b, chunks=(2, 2))
39
+ )
36
40
  assert table == {}
37
41
 
38
42
 
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes