Let's look at a more interesting branching technique.
import pyblish.api
items = ["john", "door"]
class CollectInstances(pyblish.api.ContextPlugin):
order = 0
def process(self, context):
for item in items:
context.create_instance(item)
class PrintInstances(pyblish.api.InstancePlugin):
order = 1
def process(self, instance):
print("Instance is: %s" % instance)
pyblish.api.register_plugin(CollectInstances)
pyblish.api.register_plugin(PrintInstances)
import pyblish.util
pyblish.util.publish()
# The instance is "john"
# The instance is "door"
In this case, PrintInstances
will run once for every instance. That's because we subclassed InstancePlugin instead of ContextPlugin.
These two superclasses form the foundation upon which all of Pyblish is built, we'll have a much closer look these at in the following examples.