build GUIs from functions, using magic.
Project description
magicgui: build GUIs from functions, using magic.
📖 Docs
Installation
magicgui
uses pyqt
to support both pyside2
and 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.
Basic usage
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.
Contributing
Contributions are welcome!
Please note: magicgui
attempts to adhere to strict coding rules and employs the
following static analysis tools to prevent errors from being introduced into the
codebase:
- 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.
pre-commit install
To run pyright, you will need to install with npm install -g pyright
,
then run pyright
. See their docs for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for magicgui-0.1.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 42a92fb5ba67c22ade1c4f41268ab80c8ff3f33b16bfcf3bf516b78173f5f426 |
|
MD5 | 53ce2e7d802fc9c17840be2b2b7dfe06 |
|
BLAKE2b-256 | ead35c37908c6ffcce96b765529a304d9b3b26a998652d3f522134726c61b5ad |