# InstancePlugin

Process once per [Instance](https://github.com/pyblish/api/tree/9d41e509649f2dfb91bc4d595aebabed2dc0512f/pages/instance.md).

| Source                                                                                                               | Added |
| -------------------------------------------------------------------------------------------------------------------- | ----- |
| [Link](https://github.com/pyblish/pyblish-base/blob/f695fad94b995915495b4123c503f24d3419429a/pyblish/plugin.py#L350) | 1.3.0 |

Inherits [Plugin](https://api.pyblish.com/pyblish.api/plugin)

## Public Functions

| Output | Method                                                                                                                                         |
| -----: | ---------------------------------------------------------------------------------------------------------------------------------------------- |
|        | [process](https://api.pyblish.com/pyblish.api/instanceplugin/instanceplugin.process)([instance](https://api.pyblish.com/pyblish.api/instance)) |

## Usage

The `InstancePlugin` is used for processing each individual instance. It is typically used on [Instances](https://github.com/pyblish/api/tree/9d41e509649f2dfb91bc4d595aebabed2dc0512f/pages/instance.md) created during [Collection](https://github.com/pyblish/api/tree/9d41e509649f2dfb91bc4d595aebabed2dc0512f/pages/CollectorOrder/README.md), either to validate or extract, but can be thought of as just a general process on each available [Instance](https://github.com/pyblish/api/tree/9d41e509649f2dfb91bc4d595aebabed2dc0512f/pages/instance.md).

## Example

```python
import pyblish.api as pyblish

class MyValidator(pyblish.InstancePlugin):
    order = pyblish.ValidatorOrder

    def process(self, instance):
        assert instance.data["name"] == "MyInstance"
```
