Plugins#
Otter-Grader supports grading plugins that allow users to override the default behavior of Otter by injecting an importable class that is able to alter the state of execution.
Using Plugins#
Plugins can be configured in your otter_config.json
file by listing the plugins as their
fully-qualified importable names in the plugins
key:
{
"plugins": [
"mypackage.MyOtterPlugin"
]
}
To supply configurations for the plugins, add the plugin to plugins
as a dictionary mapping a
single key, the plugin importable name, to a dictionary of configurations. For example, if we needed
mypackage.MyOtterPlugin
with configurations but mypackage.MyOtherOtterPlugin
required none,
the configurations for these plugins would look like
{
"plugins": [
{
"mypackage.MyOtterPlugin": {
"key1": "value1",
"key2": "value2"
}
},
"mypackage.MyOtherOtterPlugin"
]
}
Building Plugins#
Plugins can be created as importable classes in packages that inherit from the
otter.plugins.AbstractOtterPlugin
class. For more information about creating plugins, see
Creating Plugins.