A plugin that adds a console to napari
This napari plugin was generated with Cookiecutter using with @napari's cookiecutter-napari-plugin template.
In napari-console 0.0.8 and earlier, the console locals() namespace only
contained a reference to the napari viewer that enclosed the console.
Since version 0.0.9, it instead contains everything in the enclosing frame that called napari. That is, if your Python code is:
import napari
import numpy as np
from scipy import ndimage as ndi
image = np.random.random((500, 500))
labels = ndi.label(image > 0.7)[0]
viewer, image_layer = napari.imshow(image)
labels_layer = viewer.add_labels(labels)
napari.run()Then the napari console will have the variables np, napari, ndi, image,
labels, viewer, image_layer, and labels_layer in its namespace.
This is implemented by inspecting the Python stack when the console is first
instantiated, finding the first frame that is outside of the napari_console,
napari, and in_n_out modules, and passing the variables in the frame's
f_locals and f_globals to the console namespace.
If you want to disable this behavior (for example, because you are embedding
napari and the console within some larger application), you can add
NAPARI_EMBED=1 to your environment variables before instantiating the
console.
You can install napari-console via pip:
pip install napari-console
Contributions are very welcome. Tests can be run with tox, please ensure the coverage at least stays the same before you submit a pull request.
Distributed under the terms of the BSD-3 license, "napari-console" is free and open source software
If you encounter any problems, please file an issue along with a detailed description.