Skip to main content

Widgets and type annotations for storing function results of any types

Project description

napari-result-stack

License BSD-3 PyPI Python Version tests codecov napari hub

Widgets and type annotations for storing function results of any types.

Stored type

Type Stored[T] is equivalent to T for the type checker, but magicgui is aware of this annotation and behaves as a "storage" for the T instances.

from pathlib import Path
import pandas as pd
from magicgui import magicgui
from napari_result_stack import Stored

# Returned values will be stored in a result stack.
@magicgui
def provide_data(path: Path) -> Stored[pd.DataFrame]:
    return pd.read_csv(path)

# You can choose one of the values stored in the result stack
# for the argument `df` from a ComboBox widget.
@magicgui
def print_data(df: Stored[pd.DataFrame]):
    print(df)

  • Different types use different storage. e.g. Stored[int] and Stored[str] do not share the same place.
  • Even for the same type, you can specify the second key to split the storage. e.g. Stored[int], Stored[int, 0] and Stored[int, "my-plugin-name"] use the distinct storages.

Manually store variables

Stored.valuesof[T] is a list-like object that returns a view of the values stored in Stored[T]. This value view is useful if you want to store values outside @magicgui.

from magicgui.widgets import PushButton
from datetime import datetime
from napari_result_stack import Stored

button = PushButton(text="Click!")

@button.changed.connect
def _record_now():
    Stored.valuesof[datetime].append(datetime.now())

Result stack widget

napari-result-stack provides a plugin widget that is helpful to inspect all the stored values.

Show code
from napari_result_stack import Stored
from magicgui import magicgui
import numpy as np
import pandas as pd

@magicgui
def f0() -> Stored[pd.DataFrame]:
    return pd.DataFrame(np.random.random((4, 3)))

@magicgui
def f1(x: Stored[pd.DataFrame]) -> Stored[float]:
    return np.mean(np.array(x))

viewer.window.add_dock_widget(f0, name="returns a DataFrame")
viewer.window.add_dock_widget(f1, name="mean of a DataFrame")


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

Installation

You can install napari-result-stack via pip:

pip install napari-result-stack

To install latest development version :

pip install git+https://github.com/hanjinliu/napari-result-stack.git

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-result-stack" is free and open source software

Issues

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

napari-result-stack-0.0.1.tar.gz (19.5 kB view details)

Uploaded Source

Built Distribution

napari_result_stack-0.0.1-py3-none-any.whl (23.4 kB view details)

Uploaded Python 3

File details

Details for the file napari-result-stack-0.0.1.tar.gz.

File metadata

  • Download URL: napari-result-stack-0.0.1.tar.gz
  • Upload date:
  • Size: 19.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.0 importlib_metadata/4.13.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.63.0 CPython/3.9.7

File hashes

Hashes for napari-result-stack-0.0.1.tar.gz
Algorithm Hash digest
SHA256 2952bfe0313d350dbd15f2e09e889eca8965a1f7ad7b1de18856acb411d17eaf
MD5 2928b2d5553b94a1c54b2ee5fc0f5701
BLAKE2b-256 ca73be8386ee628eb7ba2c2c91a8e239761a25a3c36b33445000898555d3a755

See more details on using hashes here.

File details

Details for the file napari_result_stack-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: napari_result_stack-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 23.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.0 importlib_metadata/4.13.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.63.0 CPython/3.9.7

File hashes

Hashes for napari_result_stack-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 eb5fc1e215a24bb644c2ed4210a2de7f93688cc22d5001f815e460ca552addcc
MD5 3c14e657e9cea7eea9056e2a59d5c69b
BLAKE2b-256 7563940ead571d53688a6374a947d375f62888d27283eedb58b8d128f5c6d9c6

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page