build GUIs from functions, using magic.
magicgui: build GUIs from functions, using magic.
pyqt to support both
pyqt5 backends. However, you
must have one of those installed for magicgui to work.
pip install magicgui pyside2 # or pyqt5 instead of pyside2
:information_source: If you'd like to help us extend support to a different backend, please open an issue.
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") def snells_law(aoi=30.0, n1=Medium.Glass, n2=Medium.Water, degrees=True): 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 will now have a new attribute "Gui" # call it to create (and optionally show) the new GUI! snell_gui = snells_law.Gui(show=True)
Please see Documentation for many more details and usage examples.
Contributions are welcome!
magicgui attempts to adhere to strict coding rules and employs the
following static analysis tools to prevent errors from being introduced into the
- black - code formatting
- flake8 - linting
- pydocstyle - docstring conventions
- pyright - static type anaylsis
- codecov - test coverage
To prevent continuous integration failures when contributing, please consider installing pre-commit in your environment to run all of these checks prior to checking in new code.
To run pyright, you will need to install with
npm install -g pyright,
pyright. See their docs for details.
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size magicgui-0.1.1-py2.py3-none-any.whl (13.9 kB)||File type Wheel||Python version py2.py3||Upload date||Hashes View hashes|
|Filename, size magicgui-0.1.1.tar.gz (14.4 kB)||File type Source||Python version None||Upload date||Hashes View hashes|
Hashes for magicgui-0.1.1-py2.py3-none-any.whl