From 7c69ed3d81a50fd667df3fd5ef4db74be0cf2398 Mon Sep 17 00:00:00 2001 From: Lorenzo Gaifas Date: Thu, 30 Nov 2023 12:17:00 +0100 Subject: [PATCH] ensure thickness is only added if needeed --- pyproject.toml | 1 + src/blik/reader.py | 10 +++++++--- src/blik/widgets/main_widget.py | 5 ++++- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index d8c34f1..b2da29c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -37,6 +37,7 @@ dependencies = [ "einops", "morphosamplers>=0.0.10", "pydantic<2", # migration will take a while for napari + "packaging", ] # extras diff --git a/src/blik/reader.py b/src/blik/reader.py index 5b50be2..4d8d44d 100644 --- a/src/blik/reader.py +++ b/src/blik/reader.py @@ -1,4 +1,5 @@ import warnings +from importlib.metadata import version from pathlib import Path from uuid import uuid1 @@ -7,10 +8,13 @@ import pandas as pd from cryotypes.image import ImageProtocol from cryotypes.poseset import PoseSetProtocol +from packaging.version import parse as parse_version from scipy.spatial.transform import Rotation from .utils import generate_vectors, invert_xyz +NAPARI_050 = parse_version(version("napari")) >= parse_version("0.5.0a") + def get_reader(path): return read_layers @@ -38,9 +42,9 @@ def _construct_positions_layer( "shading": "spherical", "antialiasing": 0, "metadata": {"experiment_id": exp_id, "p_id": p_id, "source": source}, - "projection_mode": "all", "out_of_slice_display": True, **pt_kwargs, + **({"projection_mode": "all"} if NAPARI_050 else {}), }, "points", ) @@ -65,8 +69,8 @@ def _construct_orientations_layer(coords, features, scale, exp_id, p_id, source) "scale": [scale] * 3, "metadata": {"experiment_id": exp_id, "p_id": p_id, "source": source}, "vector_style": "arrow", - "projection_mode": "all", "out_of_slice_display": True, + **({"projection_mode": "all"} if NAPARI_050 else {}), }, "vectors", ) @@ -154,7 +158,7 @@ def read_image(image): "depiction": "plane", "blending": "translucent", "plane": {"thickness": 5}, - "projection_mode": "mean", + **({"projection_mode": "mean"} if NAPARI_050 else {}), }, "image", ) diff --git a/src/blik/widgets/main_widget.py b/src/blik/widgets/main_widget.py index 29d06d3..e2c1aa5 100644 --- a/src/blik/widgets/main_widget.py +++ b/src/blik/widgets/main_widget.py @@ -1,5 +1,6 @@ from __future__ import annotations +from importlib.metadata import version from typing import List import napari @@ -10,6 +11,7 @@ from napari.layers import Image, Labels, Points, Shapes, Vectors from napari.utils._magicgui import find_viewer_ancestor from napari.utils.notifications import show_info +from packaging.version import parse as parse_version from scipy.spatial.transform import Rotation from ..reader import construct_particle_layer_tuples @@ -242,7 +244,8 @@ def __init__(self, *args, **kwargs): self.append(exp) self.append(new) self.append(add_to_exp) - self.append(slice_thickness_A) + if parse_version(version("napari")) >= parse_version("0.5.0a"): + self.append(slice_thickness_A) def append(self, item): super().append(item)