Summary of new features.
- Support for iterators
- Support for “targets”, more
- Scripted publishing and validating via Pyblish QML
- Support for non-unique plug-in names across many directories
- External log messages no longer pollute Pyblish
The biggest addition is perhaps the introduction of iterators for common publishing tasks.
from pyblish import api for result in api.publish_iter(): ...
With it, you gain surgical control over the processing loop itself; enough control to control when each new process starts and what to do in between.
it = api.publish_iter() print("Running the first one..") result = next(it) if not result["success"]: print("The first one didn't succeed") print("Running the second one..") result = next(it) print("Not running anything else")
Amongst the many usecases for iterators, this enables you to develop GUIs using native Pyblish functionality, where your UI performs one task, receives the result and finishes drawing and listening to user commands before commencing the next task. Drawing may include status messages and colors. User commands may include stop (or pause).
For details on what is contained in the
result dictionary, read more about it in API / result.
Enjoy, and happy new year!