magicgui0.10.1
magicgui0.10.1
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.8.0
- qtpy
>=2.4.0
- superqt
[iconify]>=0.7.2
- typing-extensions
>=4.6
- pillow
>=10.4; extra == "image"
- ipywidgets
>=8.0.0; extra == "jupyter"
- pyqt5-qt5
<=5.15.2; sys_platform == "win32" and extra == "pyqt5"
- pyqt5
>=5.15.8; extra == "pyqt5"
- pyqt6
>=6.4.0; extra == "pyqt6"
- pyside2
>=5.15; extra == "pyside2"
- pyside6
>=6.4.0; extra == "pyside6"
- pint
>=0.13.0; extra == "quantity"
- 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.