Table Of Contents

Previous topic

PluginErrorItem

Next topic

ExtensionPoint

This Page

phoenix_title plugin

This module provides the core functionality of the plugin system for Editra. Its design is influenced by the system used in the web based project management software Trac (trac.edgewall.org). To create a plugin plugin class must derive from Plugin and in the class definintion it must state which Interface it Implements. Interfaces are defined throughout various locations in the core Editra code. The interface defines the contract that the plugin needs to conform to.

Plugins consist of python egg files that can be created with the use of the setuptools package.

There are some issues I dont like with how this is currently working that I hope to find a work around for in later revisions. Namely I dont like the fact that the plugins are loaded and kept in memory even when they are not activated. Although the footprint of the non activated plugin class members being held in memory is not likely to be very large.

Summary: Plugin interface and mananger implementation


class_hierarchy Inheritance Diagram

Inheritance diagram for module plugin

Inheritance diagram of plugin


function_summary Functions Summary

Implements Used by :class:`~tools.Editra.src.plugin.Plugin`s to declare the interface that they

class_summary Classes Summary

ExtensionPoint Declares what Interface a plugin is extending
Interface Base class for defining interfaces. Interface classes are
Plugin Base class for all plugin type objects
PluginConfigObject Plugin configuration object. Plugins that wish to provide a
PluginData A storage class for representing data about a Plugin
PluginManager The PluginManger keeps track of the active plugins. It
PluginMeta Acts as the registration point for plugin entrypoint objects.

Functions



Implements(*interfaces)

Used by :class:`~tools.Editra.src.plugin.Plugin`s to declare the interface that they implment/extend.

Parameters:interfaces – list of interfaces the plugin implements