napari-ome-arrow 0.0.3__py3-none-any.whl → 0.0.5__py3-none-any.whl

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.
@@ -0,0 +1,11 @@
1
+ """Shared reader type aliases."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from pathlib import Path
6
+ from typing import Any, Union
7
+
8
+ import numpy as np
9
+
10
+ PathLike = Union[str, Path]
11
+ LayerData = tuple[np.ndarray, dict[str, Any], str]
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '0.0.3'
32
- __version_tuple__ = version_tuple = (0, 0, 3)
31
+ __version__ = version = '0.0.5'
32
+ __version_tuple__ = version_tuple = (0, 0, 5)
33
33
 
34
34
  __commit_id__ = commit_id = None
@@ -12,6 +12,9 @@ contributions:
12
12
  - "*.ome.parquet"
13
13
  - "*.parquet"
14
14
  - "*.pq"
15
+ # OME-Vortex
16
+ - "*.ome.vortex"
17
+ - "*.vortex"
15
18
  # OME-TIFF
16
19
  - "*.ome.tif"
17
20
  - "*.ome.tiff"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: napari-ome-arrow
3
- Version: 0.0.3
3
+ Version: 0.0.5
4
4
  Summary: A Napari plugin for OME-Arrow and OME-Parquet bioimage data
5
5
  License:
6
6
  Copyright (c) 2025, Dave Bunten
@@ -51,7 +51,7 @@ Description-Content-Type: text/markdown
51
51
  License-File: LICENSE
52
52
  Requires-Dist: magicgui
53
53
  Requires-Dist: numpy
54
- Requires-Dist: ome-arrow>=0.0.2
54
+ Requires-Dist: ome-arrow>=0.0.3
55
55
  Requires-Dist: qtpy>=2.4
56
56
  Requires-Dist: scikit-image
57
57
  Provides-Extra: all
@@ -65,6 +65,8 @@ Provides-Extra: pyside6
65
65
  Requires-Dist: napari[pyside6]; extra == "pyside6"
66
66
  Requires-Dist: pyside6>=6.6; extra == "pyside6"
67
67
  Requires-Dist: qtpy>=2.4; extra == "pyside6"
68
+ Provides-Extra: vortex
69
+ Requires-Dist: vortex-data; extra == "vortex"
68
70
  Dynamic: license-file
69
71
 
70
72
  # napari-ome-arrow
@@ -74,6 +76,7 @@ Dynamic: license-file
74
76
  [![Python Version](https://img.shields.io/pypi/pyversions/napari-ome-arrow.svg?color=green)](https://python.org)
75
77
  [![napari hub](https://img.shields.io/endpoint?url=https://api.napari-hub.org/shields/napari-ome-arrow)](https://napari-hub.org/plugins/napari-ome-arrow)
76
78
  [![npe2](https://img.shields.io/badge/plugin-npe2-blue?link=https://napari.org/stable/plugins/index.html)](https://napari.org/stable/plugins/index.html)
79
+ [![Software DOI badge](https://zenodo.org/badge/DOI/10.5281/zenodo.17613571.svg)](https://doi.org/10.5281/zenodo.17613571)
77
80
 
78
81
  `napari-ome-arrow` is a minimal plugin for [napari](https://napari.org) that opens image data through the [OME-Arrow](https://github.com/wayscience/ome-arrow) toolkit.
79
82
 
@@ -82,6 +85,7 @@ It provides a single, explicit pathway for loading OME-style bioimage data:
82
85
  - **OME-TIFF** (`.ome.tif`, `.ome.tiff`, `.tif`, `.tiff`)
83
86
  - **OME-Zarr** (`.ome.zarr`, `.zarr` stores and URLs)
84
87
  - **OME-Parquet** (`.ome.parquet`, `.parquet`, `.pq`)
88
+ - **OME-Vortex** (`.ome.vortex`, `.vortex`)
85
89
  - **Bio-Formats–style stack patterns** (paths containing `<`, `>`, or `*`)
86
90
  - A simple **`.npy` fallback** for quick testing / ad-hoc arrays
87
91
 
@@ -126,8 +130,11 @@ It provides a single, explicit pathway for loading OME-style bioimage data:
126
130
  - respects `NAPARI_OME_ARROW_LAYER_TYPE`, and
127
131
  - defaults to `"image"` if the variable is not set.
128
132
 
129
- - ✅ **Grid view for multi-row OME-Parquet**
130
- When a Parquet file contains multiple OME-Arrow rows, each row is loaded as its own layer and the viewer is switched to napari’s grid mode. Set `NAPARI_OME_ARROW_PARQUET_COLUMN` to pick which image column to visualize.
133
+ - ✅ **Grid view for multi-row OME-Parquet / OME-Vortex**
134
+ When a Parquet or Vortex file contains multiple OME-Arrow rows, each row is loaded as its own layer and the viewer is switched to napari’s grid mode. Set `NAPARI_OME_ARROW_PARQUET_COLUMN` or `NAPARI_OME_ARROW_VORTEX_COLUMN` to pick which image column to visualize.
135
+
136
+ - ✅ **Stack scale prompt + override**
137
+ When loading image stacks (stack patterns), napari prompts for voxel spacing only if no scale metadata or `NAPARI_OME_ARROW_STACK_SCALE` override is present and a Qt UI is available (headless runs skip the prompt). To avoid the prompt, set `NAPARI_OME_ARROW_STACK_SCALE` using `Z,Y,X` or `T,C,Z,Y,X`.
131
138
 
132
139
  ______________________________________________________________________
133
140
 
@@ -153,13 +160,19 @@ To install latest development version :
153
160
  pip install git+https://github.com/wayscience/napari-ome-arrow.git
154
161
  ```
155
162
 
163
+ To enable OME-Vortex support via OME-Arrow, install the optional extra:
164
+
165
+ ```bash
166
+ pip install "napari-ome-arrow[vortex]"
167
+ ```
168
+
156
169
  ## Usage
157
170
 
158
171
  ### From the napari GUI
159
172
 
160
173
  1. Install the plugin (see above).
161
174
  1. Start napari.
162
- 1. Drag and drop an OME-TIFF, OME-Zarr, OME-Parquet file, or stack pattern into the viewer.
175
+ 1. Drag and drop an OME-TIFF, OME-Zarr, OME-Parquet, OME-Vortex file, a stack pattern, or a multi-select stack (e.g. `img_000.tif` ... `img_123.tif`) into the viewer.
163
176
  1. When prompted, choose **Image** or **Labels**.
164
177
 
165
178
  The plugin will:
@@ -167,6 +180,7 @@ The plugin will:
167
180
  - load the data through `OMEArrow`,
168
181
  - map channels and axes appropriately, and
169
182
  - automatically switch to 3D if there is a Z-stack.
183
+ - When multiple files look like a numbered stack, treat them as a single stack rather than independent layers.
170
184
 
171
185
  ### From the command line
172
186
 
@@ -183,6 +197,12 @@ NAPARI_OME_ARROW_LAYER_TYPE=labels napari my_labels.ome.parquet
183
197
  NAPARI_OME_ARROW_LAYER_TYPE=image \\
184
198
  NAPARI_OME_ARROW_PARQUET_COLUMN=Image_FileName_OrigDNA_OMEArrow_ORIG \\
185
199
  napari tests/data/cytodataframe/BR00117006.ome.parquet
200
+
201
+ # Prefill stack voxel spacing for stack patterns (Z,Y,X or T,C,Z,Y,X)
202
+ NAPARI_OME_ARROW_STACK_SCALE=1.0,0.108,0.108 napari "stack/z<000-120>.tif"
203
+
204
+ # Prefill stack voxel spacing for multi-file stacks (use a pattern or glob on CLI)
205
+ NAPARI_OME_ARROW_STACK_SCALE=1.0,0.108,0.108 napari "stack/img_<000-120>.tif"
186
206
  ```
187
207
 
188
208
  ## Contributing
@@ -0,0 +1,15 @@
1
+ napari_ome_arrow/__init__.py,sha256=hfpJMmD3HYHJH-0lh-esO04Pe57u8YbK4OO_qcx1b8o,236
2
+ napari_ome_arrow/_reader.py,sha256=jOWj5w8GZyp7oiCPRf3mJ7l_pNgbAzqcz8kec4b-z4k,11894
3
+ napari_ome_arrow/_reader_infer.py,sha256=fp4n7MQoys3rl37lTZU1RJBLj8bHxw1O9D9SC4oj8OQ,6303
4
+ napari_ome_arrow/_reader_napari.py,sha256=mf29u86pUrYDfayLKJrAi2X-9RnrpLrh7iaVnOizS2s,2696
5
+ napari_ome_arrow/_reader_omearrow.py,sha256=DC9hHyv0o49HcYO3jEsHCdxEo3AWNoKep4sEXxfPtHM,14913
6
+ napari_ome_arrow/_reader_stack.py,sha256=uZ46tZ4A68TKupN5RPvYLgEFmY0tCi1ZZu59X8QkTqY,22945
7
+ napari_ome_arrow/_reader_types.py,sha256=FUWVUb2oKP9PiC9WZDnyi5LQTli2LgeEfyBdWA2_Crg,226
8
+ napari_ome_arrow/_version.py,sha256=YRV1ohn6CdKEhsUOmFFMmr5UTjMv4Ydw3WJGxF2BHBs,704
9
+ napari_ome_arrow/napari.yaml,sha256=LO5bEgu2lp2X0GwfSdQfFcfDgvGuXDcibhniDbrKxFE,634
10
+ napari_ome_arrow-0.0.5.dist-info/licenses/LICENSE,sha256=RuLVTR9eFL6OX1phw5Ue8tdGrhgoG9ZErP6QrxrUlaE,1486
11
+ napari_ome_arrow-0.0.5.dist-info/METADATA,sha256=2R29BjUisN1JZts2HUiNGoZx5LYXo4rLQDhITHRJbDM,9854
12
+ napari_ome_arrow-0.0.5.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
13
+ napari_ome_arrow-0.0.5.dist-info/entry_points.txt,sha256=ZNpIZF-jrixFQlUNA1kR_jCBsBDxvoIrmc_lrQqu8VE,66
14
+ napari_ome_arrow-0.0.5.dist-info/top_level.txt,sha256=IRsRRK6uFbyipfWh77Br3G4_6uvSYp8CL01RjMN6Mzk,17
15
+ napari_ome_arrow-0.0.5.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.9.0)
2
+ Generator: setuptools (80.10.2)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,10 +0,0 @@
1
- napari_ome_arrow/__init__.py,sha256=hfpJMmD3HYHJH-0lh-esO04Pe57u8YbK4OO_qcx1b8o,236
2
- napari_ome_arrow/_reader.py,sha256=JobcKfWGscMonX9u7cu_SdZtZL_Hbcj8-Uu1whuFe0o,14230
3
- napari_ome_arrow/_version.py,sha256=pBZsQt6tlL02W-ri--X_4JCubpAK7jjCSnOmUp_isjc,704
4
- napari_ome_arrow/napari.yaml,sha256=L64Y_YyvIlkOBgP2b8HciimyE3xmzfo9ASj5o-wu9gI,567
5
- napari_ome_arrow-0.0.3.dist-info/licenses/LICENSE,sha256=RuLVTR9eFL6OX1phw5Ue8tdGrhgoG9ZErP6QrxrUlaE,1486
6
- napari_ome_arrow-0.0.3.dist-info/METADATA,sha256=ABKwECGALgq03J4rmVonPtxUoP_EUxrkySZ7PIjgR6I,8596
7
- napari_ome_arrow-0.0.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
8
- napari_ome_arrow-0.0.3.dist-info/entry_points.txt,sha256=ZNpIZF-jrixFQlUNA1kR_jCBsBDxvoIrmc_lrQqu8VE,66
9
- napari_ome_arrow-0.0.3.dist-info/top_level.txt,sha256=IRsRRK6uFbyipfWh77Br3G4_6uvSYp8CL01RjMN6Mzk,17
10
- napari_ome_arrow-0.0.3.dist-info/RECORD,,