API
1.6
1.6
  • Introduction
  • Plug-in System
  • Data
    • result
    • Events
    • Targets
  • Environment Variables
    • PYBLISHPLUGINPATH
    • PYBLISH_CLIENT_PORT
    • PYBLISH_ALLOW_DUPLICATE_PLUGINS
    • PYBLISH_GUI
    • PYBLISH_EARLY_ADOPTER
    • PYBLISH_STRICT_DATATYPES
  • Ordering
    • CollectorOrder
    • ValidatorOrder
    • ExtractorOrder
    • IntegratorOrder
  • pyblish.util
    • publish
    • collect
    • validate
    • extract
    • integrate
  • pyblish.cli
    • publish
  • pyblish.api
    • AbstractEntity
      • .data
    • Context
      • .append
      • .create_instance
    • Instance
      • .append
      • .context
    • Plugin
      • .hosts
      • .families
      • .label
      • .active
      • .order
      • .optional
      • .requires
      • .actions
      • .version
      • .match
    • ContextPlugin
      • .process
    • InstancePlugin
      • .process
    • Action
      • .process
      • .icon
      • .on
    • Category
    • Separator
    • discover
    • sort
    • register_gui
    • register_host
Powered by GitBook
On this page
  • Introduction
  • Naming Convention
  • Examples

Was this helpful?

  1. pyblish.api
  2. AbstractEntity

.data

PreviousAbstractEntityNextContext

Last updated 5 years ago

Was this helpful?

Available to and objects and used to pass data between library and plug-ins.

Introduction

Data is primarily gathered during and used during subsequent plug-ins, such as and . Data can also be used as a means of messaging across plug-ins.

  • See for more information.

Naming Convention

Data members are using mixedCase.

Wrong

instance.data["snake_case_is_for_python"] = True
instance.data["CamelCaseIsForClasses"] = False

Right

instance.data["myVariable"] = True
instance.data["longName"] = 42
instance.data["veryLongVariable"] = 5

The motivation is to separate between what is Python and what is Pyblish data.

Examples

import pyblish.api as pyblish
context = pyblish.Context()
context.data["myData"] = "myValue"

instance = pyblish.Instance(name="MyInstance", parent=context)
instance.data["range"] = [0, 120]
instance.data["active"] = False

Data of any type may be added, including complex objects.

# Custom objects

import pyblish.api

class MyCustomChild(object):
   def __init__(self, name):
      self.name = name

instance = pyblish.api.Instance(name="Car")
instance.append(MyCustomChild("wheels"))
instance.append(MyCustomChild("engine"))

MyCustomType = type("MyCustomType", (object,), {})

owner = MyCustomType()
owner.value = "John Doe"
make = MyCustomType()
make.value = "Ford"

instance.data["owner"] = owner
instance.data["make"] = make
instance.data["miles"] = "123"

{{ file.mtime }}

Instance
Context
Collection
Validation
Extraction
Tale of Three APIs