napari 0.4.4¶
We’re happy to announce the release of napari 0.4.4! napari is a fast, interactive, multi-dimensional image viewer for Python. It’s designed for browsing, annotating, and analyzing large multi-dimensional images. It’s built on top of Qt (for the GUI), vispy (for performant GPU-based rendering), and the scientific Python stack (numpy, scipy).
For more information, examples, and documentation, please visit our website: https://github.com/napari/napari
Highlights¶
This release is a quick follow on from our 0.4.3 release and contains some
nice improvements to the GUI and analysis function hookspecs we experimentally
added in that release. We’ve expanded the API of the
napari_experimental_provide_dock_widget to accept new magic_factory-
decorated functions (available in magicgui 0.2.6+), or any callable that
returns one or more widgets, making it easier for developers who want to use
magicgui and not have to write their own qt widgets (#2143).
We have also renamed napari_experimental_provide_function_widget to
napari_experimental_provide_function and reduced its API to receive only a
function or list of functions. napari will then take care to generate an
appropriate user interface for that function. This will make it even easier to
create analysis pipelines in napari (#2158).
Improvements¶
Add example code to hook documentation (#2112)
move Viewer import into method (#2119)
Support for EventedList.setitem with array-like items (#2120)
Add array protocol to transforms.Affine (#2137)
Relax dock_widget_hookspec to accept callable. (#2143)
Add name of system to napari sys_info (#2147)
Points layer enable interactive mode in add mode, don’t add point when dragging, addresses #2146 (WIP) (#2148)
Change plugin window search from naming convention to pypi classifier (#2153)
Add compress=1 to tifffile imsave call (#2157)
Add informations on what to do on error in GUI (#2165)
Documentation¶
Better documentation of API changes in 0.4.4 release notes (#2171)
Add new function and dock widget hook specifications to documentation (#2158)
Bug Fixes¶
QtAboutKeyBindings patch (#2132)
Fix too-late registration of napari types in magicgui (#2139)
Fix magicgui.FunctionGui deprecation warning (#2164)
Fix show/ hide of plugin widgets (#2173)
API Changes¶
viewer.grid_view()has been removed, useviewer.grid.enabled = Trueinstead (#2144)viewer.stack_view()has been removed, useviewer.grid.enabled = Falseinstead (#2144)viewer.grid_sizehas been removed, useviewer.grid.shapeinstead (#2144)viewer.grid_stridehas been removed, useviewer.grid.strideinstead (#2144)Plugins are no longer discovered by naming convention alone; to appear as an installed plugin in napari, make sure you use the
napari.pluginentrypoint in your setup.py or setup.cfg. To appear as a listed plugin on PyPI, be sure to use theFramework :: naparitrove classifier. (#2152)The
napari_experimental_provide_function_widgetplugin hook specification has been removed. Plugin developers should usenapari_experimental_provide_functioninstead for functional (layers/layer data in -> layers/layer data out) plugins, andnapari_experimental_provide_dock_widgetfor more elaborate plugins that require custom widgets. (#2158)
Deprecations¶
layer.statusis deprecated, to be removed in 0.4.6. Users should instead uselayer.get_status(position). (#1985)The position argument to
layer.get_value()is no longer optional, and will be required after 0.4.6. (#1985)layer.get_message()is deprecated, to be removed in 0.4.6. Users should uselayer.get_status(position)instead. (#1985)
Build Tools and Support¶
Add missed doc string in
import_resources(#2113)Delay import of pkg_resources (#2121)
Remove duplicate entry in install_requires (#2122)
Fix typo in deprecation message (#2124)
DOC: Formatting and Typos. (#2129)
DOC: Rename Section to conform to numpydocs (Return->Returns) (#2130)
Provide
make_test_vieweras a pytest plugin, for external use. (#2131)Doc: fix syntax = instead of : (#2141)
6 reviewers added to this release (alphabetical)¶
Juan Nunez-Iglesias - @jni
nhthayer - @nhthayer
Nicholas Sofroniew - @sofroniewn
Robert Haase - @haesleinhuepf
Talley Lambert - @tlambert03
Ziyang Liu - @ziyangczi