magicgui0.10.0
magicgui0.10.0
Published
build GUIs from python types
pip install magicgui
Package Downloads
Authors
Project URLs
Requires Python
>=3.9
Dependencies
- docstring-parser
>=0.7
- psygnal
>=0.6.1
- qtpy
>=1.7.0
- superqt
[iconify]>=0.6.1
- typing-extensions
>=4.6
- ipython
; extra == "dev"
- mypy
; extra == "dev"
- pdbpp
; extra == "dev"
- pre-commit
; extra == "dev"
- pyqt6
; extra == "dev"
- rich
; extra == "dev"
- ruff
; extra == "dev"
- griffe
==1.2.0; extra == "docs"
- ipykernel
; extra == "docs"
- ipywidgets
>=8.0.0; extra == "docs"
- matplotlib
; extra == "docs"
- mkdocs
; extra == "docs"
- mkdocs-gallery
==0.10.3; extra == "docs"
- mkdocs-gen-files
==0.5.0; extra == "docs"
- mkdocs-literate-nav
==0.6.1; extra == "docs"
- mkdocs-material
~=9.5; extra == "docs"
- mkdocs-spellcheck
[all]; extra == "docs"
- mkdocstrings-python
==1.11.1; extra == "docs"
- mkdocstrings
==0.26.1; extra == "docs"
- napari
==0.5.3; extra == "docs"
- pint
; extra == "docs"
- pyqt6
; extra == "docs"
- qtgallery
==0.0.2; extra == "docs"
- pillow
>=4.0; extra == "image"
- ipywidgets
>=8.0.0; extra == "jupyter"
- pyqt5
>=5.12.0; extra == "pyqt5"
- pyqt6
; extra == "pyqt6"
- pyside2
>=5.15; python_version >= "3.9" and extra == "pyside2"
- pyside6
; extra == "pyside6"
- pint
>=0.13.0; extra == "quantity"
- annotated-types
; extra == "test"
- attrs
; extra == "test"
- ipykernel
; extra == "test"
- ipywidgets
; extra == "test"
- matplotlib
; extra == "test"
- numpy
; extra == "test"
- pandas
; extra == "test"
- pillow
>=4.0; extra == "test"
- pint
>=0.13.0; extra == "test"
- pydantic
; extra == "test"
- pytest
; extra == "test"
- pytest-cov
; extra == "test"
- pytest-mypy-plugins
>=3; extra == "test"
- pytest-qt
; extra == "test"
- toolz
; extra == "test"
- tqdm
>=4.30.0; extra == "test"
- tqdm
>=4.30.0; extra == "tqdm"
build GUIs from type annotations, using magic.
📖 Docs
https://pyapp-kit.github.io/magicgui/
Installation
magicgui
uses qtpy
to support both pyside2
and pyqt5
backends. However, you
must have one of those installed for magicgui to work.
install with pip
pip install magicgui[pyqt5]
# or
pip install magicgui[pyside2]
or with conda:
conda install -c conda-forge magicgui pyqt # or pyside2 instead of pyqt
:information_source: If you'd like to help us extend support to a different backend, please open an issue.
Basic usage
from magicgui import magicgui
from enum import Enum
class Medium(Enum):
Glass = 1.520
Oil = 1.515
Water = 1.333
Air = 1.0003
# decorate your function with the @magicgui decorator
@magicgui(call_button="calculate", result_widget=True)
def snells_law(aoi=30.0, n1=Medium.Glass, n2=Medium.Water, degrees=True):
import math
aoi = math.radians(aoi) if degrees else aoi
try:
result = math.asin(n1.value * math.sin(aoi) / n2.value)
return math.degrees(result) if degrees else result
except ValueError:
return "Total internal reflection!"
# your function is now capable of showing a GUI
snells_law.show(run=True)
But that's just the beginning! Please see Documentation for many more details and usage examples.
Contributing
Contributions are welcome!
See contributing guide here.