napari 0.4.6
We’re happy to announce the release of napari 0.4.6! 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 the first that adds support for persistent settings in napari (#2212). Right now we just store the current theme and window geometry but we will be expanding this to include a full set of preferences in future releases.
We’ve also made plugin installation from our plugin dialog more flexible, including
supporting installation from anything supported by pip
, such as a
package name, url, or local file (#2319).
New Features¶
Add the ability to show contours of labels (#2168)
Add initial settings management for theme and window geometry (#2212)
More flexible plugin install (from url, name or file) (#2319)
Improvements¶
Use pydantic for viewer model (#2066)
Use vectorized indexing for xarray arrays in labels (#2191)
Add basic composite tree model (#2217)
Add Qt Tree Model and View (#2222)
Change status_format to return an existing string as-is (#2235)
Add translator stub and example (#2254)
Add hook implementation function name to plugin call order sorter (#2255)
Add
theme
parameter toget_stylesheet
(#2263)Add typing to event.py (#2269)
Add
canvas.background_color_override
(#2270)QColoredSVGIcon class for dynamic colorized svg icons (#2279)
Add EventedSet class (#2280)
Refactor icon build process (#2285)
Add more tooltips (#2292)
Make contour thickness settable (#2296)
Add
_json_encode
method API for EventedModel serdes (#2297)Don’t subclass
Layer
directly fromImage
, (adds_ImageBase
) (#2307)Disable run pre release test outside napari main repository (#2331)
Bug Fixes¶
Fix QtPoll to poll when camera moves (#2227)
Prevent garbage collection of viewer during startup. (#2262)
Fix EventedModel signatures with PySide2 imported (#2265)
Remove callsignature (#2266)
Fix bug with not display points close to given layer (#2289)
Fix plugin discovery in bundle (use certifi context for urlopen) (#2298)
Call processEvents before nbscreenshot (#2303)
Add handling of python <= 3.7 for translator (#2305)
Add parent parameter to about dialog to correctly inherit and apply theme (#2308)
Remove unneeded stylesheet on QtAbout dialog (#2312)
Avoid importing xarray (and other array libs) for equality checkers (#2325)
API Changes¶
The ViewerModel is now a Pydantic BaseModel and so subclassing the Viewer might require reading some of the Pydantic BaseModel documentation. Otherwise the API of the ViewerModel is unchanged.
Because
Labels
no longer inherit fromImage
(#2307), magicgui function parameters annotated asnapari.layers.Image
will no longer includenapari.layers.Labels
layer types in the dropdown menu. (napari.layers.Layer
may still be used to show all layer types in the magicgui-generated dropdown menu.)
Build Tools and Support¶
Add missing release notes 0.4.5 (#2250)
Explicitly document ability to implement multiple of the same hook (#2256)
Update install instructions to work with zsh default Mac shell (#2258)
Fix broken links in README (#2275)
Documentation typos (#2294)
Documentation on napari types in magicgui (#2306)
Pin pydantic < 1.8.0 (#2323)
Fix docs build with code execution (#2324)
Pin pydantic != 1.8.0 (#2333)
12 authors added to this release (alphabetical)¶
Draga Doncila Pop - @DragaDoncila
Genevieve Buckley - @GenevieveBuckley
Gonzalo Peña-Castellanos - @goanpeca
Grzegorz Bokota - @Czaki
Ian Hunt-Isaak - @ianhi
kir0ul - @kir0ul
Matthias Bussonnier - @Carreau
Neil Weisenfeld - @nweisenfeld
Nicholas Sofroniew - @sofroniewn
Pam - @ppwadhwa
Philip Winston - @pwinston
Talley Lambert - @tlambert03
13 reviewers added to this release (alphabetical)¶
Draga Doncila Pop - @DragaDoncila
Genevieve Buckley - @GenevieveBuckley
Gonzalo Peña-Castellanos - @goanpeca
Grzegorz Bokota - @Czaki
Juan Nunez-Iglesias - @jni
Kevin Yamauchi - @kevinyamauchi
kir0ul - @kir0ul
Matthias Bussonnier - @Carreau
Neil Weisenfeld - @nweisenfeld
Nicholas Sofroniew - @sofroniewn
Pam - @ppwadhwa
Talley Lambert - @tlambert03
ziyangczi - @ziyangczi