I’ve been working this past week on a developer guide for you to learn more about how you can improve and extend upon Pyblish on your own.
The goal of this guide is to bring someone completely unfamiliar with Pyblish up to speed in implementing issues and features. It’s a bit rough around the edges still and some information is missing, but it should hopefully be enough get you started.
Share what you feel is wrong, lacking, missing or too verbose here or make an issue for it in the book’s repository.
Wanted to look at some GUI development, and got into trouble:s
Have all the repos setup, and I launched Atom with this;
I then proceeded to try and launch pyblish-standalone;
Edit: Oh, and about the recursion you experienced, that sounds like an unrelated (and dangerous) bug. Is standalone working elsewhere, such as in your Ftrack scripts?
Edit: You’ll notice that when you close the GUI in debug-mode, the Python process might still be running. It’s safe to either kill this via CTRL-X or similar means through Atom. Or you can pull the commit I just made to make this more friendly.
One of the benefits of running repos individually like this as opposed to using pyblish-win, is that you can more safely update them.
The main thing I’ve struggled with trying to get in to Pyblish is getting my head wrapped around how all of the abstraction layers are intended to interact with each other. In isolation the individual components are straight forward enough, but my high level understanding of how the system is designed is to work still has enough gaps that it feels like there is an awful lot of …A Miracle Happens… connecting them. Having more documentation will definitely help with that.
Thinking about the way I learn, having a tutorial that builds a simple complete demo application that touches all parts of the ecosystem would be really helpful. Say a standalone app that collects images from a directory, validates their sizes, and integrates them somewhere else.
Magenta is great, but is necessarily complex since it’s trying to solve real problems. It’s a pretty big step for “Learning Pyblish by Example” to Magenta and it would be nice to have something concrete to look at that sits in the middle.
@jedfrechette, I know you were asking for a more complete example of how plug-ins can work together, but as a first step towards better understanding the framework I added an example of how all of Pyblish can be implemented in about 200 lines of Python.
Yes, that is true. You are free to implement this in any way you like, this was made so as to enable users to run the code anywhere, without focusing too much on the details therein, but instead focus on making the GUI itself small and easily digestible.