napari 0.5.5#

Thu, Dec 12, 2024

We’re happy to announce the release of napari 0.5.5! (You might have noticed it’s been a hot minute since our last release — the team has been busy on the conference circuit (watch our talk at PyConAU!), defending their PhDs, and more! We are now back to our regularly-scheduled programming. 😂

napari is a fast, interactive, multi-dimensional image viewer for Python. It’s designed for exploring, annotating, and analyzing multi-dimensional images. It’s built on Qt (for the GUI), VisPy (for performant GPU-based rendering), and the scientific Python stack (NumPy, SciPy, and friends).

For more information, examples, and documentation, please visit our website: https://napari.org/

Highlights#

This release continues the 0.5 tradition of churning out the bug fixes and enhancements, with 24 pull requests total in that category. If you are a user of oblique plane rendering, you’ll appreciate #7422, which fixes the plane calculation when data is anisotropic.

And, did you have a hole in your heart where high-quality 3D labels rendering should have been? Check out #7431, in which Ashley Anderson has (again) improved the quality of 3D labels by filling the (apparent, but fictional) holes in labels at the borders of a volume. Before/after gif:

movie showing before and after of labels rendering at the borders of avolume

Additionally, Grzegorz Bokota has again sped up launch time for Shapes layers by porting all the edge triangulation code to numba (#7268). As part of that work he also created a fantastic developer example explaining how the edge triangulation works, which you can find at examples/dev/triangle_edge.py. Give it a read and a play if you want to peek under the hood of the Shapes layer!

Did you miss a napari error or warning while reading these notes? We don’t blame you! Those missed notifications will be a thing of the past with #7220, which will keep notifications open if the napari window is not in focus. Whew!

Finally, for the zarrventurous among you, napari 0.5.5 is ready for zarr v3, coming soon to a PyPI near you! (#7215) If you are using or testing the zarr 3.0.0 betas, try them with napari! We hope you’ll be pleasantly surprised. 😊

As always, we thank all the contributors to this napari release and all the previous ones! We welcome Carol Willing and Tim Monko to the list of contributors. Read on for all the changes in this version!

Read on for all the changes in this version!

Improvements#

  • Do not start notification timer if window is not active. (#7220)

  • Speedup triangulation of edges (#7268)

  • [Enh] Double-click to zoom in on the clicked location (alt to zoom out) (#7286)

  • Highlight Shapes and Points layer data only when active (#7289)

  • Remove keybinding full stops (#7304)

  • Add example doc comparing screenshot and export_figure (#7319)

  • [Enh] Add a Merge to RGB contextual menu item (#7322)

  • Enable mouse pan and zoom when no active layer is available (#7408)

  • Add metadata event to Layer class (#7416)

  • Update normal calculation for labels isosurface rendering (#7431)

Bug Fixes#

  • Use font_size setting to control napari-console font-size (#6753)

  • Add from maximized to fullscreen mode interactions handling and allow using Alt-Tab while on fullscreen on Windows (#7308)

  • Fix bounding box to not contain only shape interior but also edges (#7332)

  • Clean selected data in Shapes layer when setting data (#7336)

  • fix iso_gradient_mode in constructor call (#7340)

  • Fix using transform mode when having layers with a different number of dimensions (#7342)

  • fix: change highlight only on zoom and mouse press (#7386)

  • Don’t show plane normal controls unless layer has 3 or more dimensions and change controls order (plane controls under depiction combobox) (#7395)

  • Enable mouse pan and zoom when no active layer is available (#7408)

  • bug fix: have layerlist consume return, not pass to viewer (#7417)

  • Prevent errors when interacting with selected non-visible layers (#7418)

  • [bugfix] implement proper world to data normal transformation (#7422)

  • Turn off ‘flash’ in screenshot/export_figure examples (#7427)

  • Update surface shading control combobox when value is set programatically (#7432)

Documentation#

  • update scale_bar example to include new attributes (#7309)

  • Add example doc comparing screenshot and export_figure (#7319)

  • Add reminder about version added directive in PR template (#7359)

  • Update the docstrings and comments for status checker thread (#7381)

  • Update to_screenshot and export_figure example docstrings (#7426)

  • Turn off ‘flash’ in screenshot/export_figure examples (#7427)

  • Add draft release notes for 0.5.5 (docs#536)

  • Add linkcheck step to be run once a week (docs#474)

  • Fix broken links detected by make linkcheck-files (docs#484)

  • Add 0.5.4 to the version switcher (docs#500)

  • Document the SPEC-0 rule for bundled Python (docs#501)

  • Update docs to remove flake8, isort mentions and add ruff (docs#502)

  • Highlight Jupyter option in gallery examples (docs#503)

  • Add community calendar link to landing page (docs#504)

  • Add information about qt_viewer fixture (docs#505)

  • Add information that qt_viewer fixture hide the viewer (docs#506)

  • Update release guide anchor (docs#507)

  • Minor improvement to provider annotations (docs#510)

  • Add notes about versionadded/versionchanged directives to dev guide (docs#512)

  • Update Step 4 of development set up to clarify qt backends (docs#516)

  • Update benchmarks.md to use conda napari-env (docs#518)

  • Add contributing text and link about CI (docs#519)

  • Update finding_and_installing_plugins.md (docs#521)

  • [Labels] Add more prominent info about the next label keybind and fix n_dimensional (deprecated) (docs#522)

  • Update NAP-6 to remove mention of context menu (docs#525)

  • Move Andy Sweet from core-devs to emeritus core-devs (docs#530)

Other Pull Requests#

  • Add testing for drag and drop events/behavior on QtLayerList (#6699)

  • Fix zarr 3.0 compatibility (#7215)

  • Add more tests for Qt processors (#7280)

  • Update coverage, dask, fsspec, hypothesis, imageio, ipython, napari-console, pillow, psutil, qtconsole, qtpy, rich, tensorstore, toolz, tqdm, virtualenv, xarray (#7287)

  • Block zarr 3.0.0a5, 3.0.0a6 (#7305)

  • [pre-commit.ci] pre-commit autoupdate (#7307)

  • ci(dependabot): bump peter-evans/create-pull-request from 6 to 7 in the actions group (#7311)

  • Change Layer.create type annotation to accept any Mapping (#7317)

  • [pre-commit.ci] pre-commit autoupdate (#7324)

  • Fix double reporting of leaked widgets (#7326)

  • Improve docstrings and code flow of ShapeList.outline add missed return in thread status (#7337)

  • Add screenshot test for highlights visibility when layer selection/active layer changes (#7339)

  • [miant] update binder to use conda nightly and jupyter-remote-desktop-proxy (#7352)

  • Update dask, hypothesis, pint (#7358)

  • Add setting Windows resolution step for prereleases testing workflow and some tests fixes (#7360)

  • [pre-commit.ci] pre-commit autoupdate (#7361)

  • Add maintainer and contributor documentation about workflow automation near the configuration (#7365)

  • Stop testing PySide6 on python 3.9 (#7368)

  • fix: remove “openblas_set_num_threads not found” warning by add missed break (#7369)

  • Isolate keybinding tests using pytest.mark (#7375)

  • Add python-dotenv to dev dependencies (#7377)

  • mark slow local tests (#7383)

  • Speed up bigtiff test using np.empty and smaller data (#7384)

  • Update coverage, dask, hypothesis, tensorstore (#7385)

  • [pre-commit.ci] pre-commit autoupdate (#7388)

  • [Maint] drop unused n_dimensional property of Labels (#7389)

  • [pre-commit.ci] pre-commit autoupdate (#7424)

  • [tests] add tests for Layer._world_to_displayed_data_normal (#7435)

  • [pre-commit.ci] pre-commit autoupdate (#7439)

  • Remove lucyleeow from qt/ codeowners (#7441)

  • [Maint] Fix labeler action by using proper syntax (docs#523)

  • Update labeler.yml to check subfolders (docs#526)

  • Fix linkchecker (docs#528)

12 authors added to this release (alphabetical)#

(+) denotes first-time contributors 🥳

14 reviewers added to this release (alphabetical)#

(+) denotes first-time contributors 🥳