PowerConsole execution engine is extensible through user defined Python objects that are passed to PowerConsole constructor. These objects must conform to this Extension Interface Specification.
If you are going to use setuptools for your extension package distribution (which is recommended), you may use the provided base class ExtensionPackage for your extension object. This base class implements all mandatory attributes and can fill their values from setuptools package metadata.
Extensions could be packaged and distributed in any format, but official PowerConsole applications will support only extensions that would conform to this Extension Package Specification. So if you’re planning to develop extensions for public use, or PowerConsole-based applications that would support thrid-party extensions, you should follow this specification in your product.
Package must be a setuptools package that registers at least one ‘powerconsole.package’ entry point.
Example setup.py for package:
from setuptools import setup, find_packages
setup(
...
entry_points = {
'powerconsole.package': [
'firebird = pwc.fbcmd:packageFirebird'
},
...
)
Each registered callable (it could be a function or class) should accept keyword arguments and must return single object conforming to Extension Interface Specification.