Plugin development caveats

It's still early days for fman's plugin support. While great care has been taken to offer a reasonable and stable API, no guarantee is (currently) made that it won't change.

fman's plugins currently all live in the same process and even the same name space. This means that it is theoretically possible to import modules from other plugins. However, this is discouraged and will likely not be possible in future versions.

fman is based on the Qt GUI framework. It uses the PyQt library to access Qt's functions from Python. Plugins are currently able to call all PyQt functions, which you could in theory use to open and draw your own windows. This too is discouraged and will likely stop working in a future release.

Naming Conventions

When developing your own plugins, please follow these naming conventions:

  • Plugin names should be uppercase. Eg. Core instead of core.
  • All your Python sources should lie inside one (Python) package with a unique name. The name should be lower case and can contain underscores (_) but no other special characters. If your plugin is called My Plugin, then a good package name is my_plugin.
  • Make the names of your settings files very human-readable. For example, if your plugin is called Foo, name your settings file Foo Settings.json. All words should be capitalized.