napari / napari-console

A plugin that adds a console to napari
BSD 3-Clause "New" or "Revised" License
3 stars 12 forks source link

napari-console (WIP, under active development)

License PyPI Python Version tests codecov

A plugin that adds a console to napari


This napari plugin was generated with Cookiecutter using with @napari's cookiecutter-napari-plugin template.

Local variables

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.

Installation

You can install napari-console via pip:

pip install napari-console

Contributing

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.

License

Distributed under the terms of the BSD-3 license, "napari-console" is free and open source software

Issues

If you encounter any problems, please file an issue along with a detailed description.