Magic-class

Latest version: v0.7.14

Safety actively analyzes 706267 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 3 of 11

0.7.1

New Features
---------------
- Add `testing` submodule (99).
- Implement `ColormapEdit` (100).
- More arguments in `repeat_method`.
- Support key combo in `bind_key`.

Bug Fixes
----------
- Fix label not considered in `UnionWidget`.
- Fix `with_choices` annotation.
- Fix copy/save of images in logger widgets.
- Fix matplotlib default paramters in logger widgets.
- Fix error catching architecture of `thread_worker`.
- Fix color getter/setter of pyqtgraph scatter plot and histogram.
- Fix repr of undo stack.

Changes
----------
- Drop python 3.8.

0.7.0

0.7.0rc0

0.6.15

Bug Fixes
----------
- Fix `GenericAlias` typing in python 3.11 (88).
- Reactivate macro when errored in `GeneratorWorker` (89).
- Search for the propert button in `get_button` (90).
- Fix progress bar widget of `dask_thread_worker` (91).

0.6.14

New Features
---------------
- `impl_preview` now supports custom clean-up strategies (69).
- `do_not_record` now supports recursive silencing of macro recording with new argument `do_not_record(recursive=True)` (70).
- The built-in macro widget is updated so that users can utilize the recorded macro (71).
- Animation in collapsible container (73).
- `get_function_gui` now accepts method input. From now on, `get_function_gui(ui.func)` is preferred rather than `get_function_gui(ui, "func")` (74).
- To avoid a child widget being appended to the parent, now you can just name it with a string starting with underscore, rather than changing the attribute name (75).
- `magicclass`, `magicmenu`, `magiccontext` and `magictoolbar` allow new argument `record=False` to silent all the macro recording in the child widgets (76).
- `setup_function_gui` decorator for customizing any magicgui widgets after construction (79).
- Built-in command palette (81).
- More IDE-like behavior in the built-in macro widget (82).
- Catch `KeyboardInterrupt` during blocking asynchronous execution (83).

New Widgets
---------------
- An iPhone-like `ToggleSwitch` widget (77).
- Literal evaluation widget with arbitrary namespace using `EvalLineEdit` widget, and the corresponding `ExprStr` type (78).

Bug Fixes
----------
- Minor bug fixes in `pyqtgraph` submodule.
- Bug fixes in `vtk` submodule, with the latest `vedo`.
- Fix nested `Annotated` type (80).
- `thread_worker` now allows nested calls (84).

0.6.13

New Features
--------------
- Implement `abstractapi`. From now on, using `abstractapi` to pre-define methods is recommended.
python
magicclass
class A:
magicclass
class B:
a = abstractapi() instead of def a(self): ...
B.wraps
def a(self):
do something

See [here](https://hanjinliu.github.io/magic-class/main/make_better/use_wraps.html#use-abstractapi-decorator).
- Implement `with_progress` method to `thread_worker` (67). Changing code to use this is highly recommended.
python
thread_worker(progress={"desc": "running...", "total": 10}) instead of this
thread_worker.with_progress(desc="running...", total=10) use this

See [here](https://hanjinliu.github.io/magic-class/main/make_better/use_worker.html#better-way-to-pass-progress-bar-parameters).
- Implement `wraps` like field definition (66).
- Implement `with_options` and `with_choices` to magic fields. See [here](https://hanjinliu.github.io/magic-class/main/basics/use_field.html#even-better-widget-configuration).
- Add `properties` argument to `magicclass` etc., to set `min_width` etc.
- Syntax highlightening of macro widget (65). Enable by `defaults["macro-highlight"] = True`.

Changes
---------
- For upcoming `magicgui==0.7`, many imports of variables are refactored (61).

Bug Fixes
-----------
- Bug fix in data orientation of vispy Points layer.
- Title bar did not work in many popup mode (62).
- Fix widget visibility (63).
- Fix `__getitem__` of widget macro and change the default macro history to 100k lines.
- Fix vispy camera event emission bug for `magicgui>=0.7`.

Page 3 of 11

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.