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
File details
Details for the file magicgui-0.1.2.tar.gz
.
File metadata
- Download URL: magicgui-0.1.2.tar.gz
- Upload date:
- Size: 15.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.8.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 102c564bfddf32f510d01257592548a1d3ea33216c0150d1a730f74d1eaba8ac |
|
MD5 | 74e96323a1ea9c7d82c99235a74decf9 |
|
BLAKE2b-256 | 969c1830924ffa779f422045151af0be7df430dc45b1d0d4df951374a0d25647 |
File details
Details for the file magicgui-0.1.2-py2.py3-none-any.whl
.
File metadata
- Download URL: magicgui-0.1.2-py2.py3-none-any.whl
- Upload date:
- Size: 14.6 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.8.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 22ddc1690971441f452c1bb6685a684356febb6ec3358f076a2a73084b9c807a |
|
MD5 | 54bd255b529da4139e948913a81713e1 |
|
BLAKE2b-256 | cea5128658b6efba09a12e845777506e047f4504eb257ffa4938b54ebdff1ddb |