Skip to content

Replace customWidgetMap API with plugin

Carlos Pascual requested to merge github/fork/cpascual/plugin_cwmap into develop

TaurusForm.{get,set}CustomWidgetMap API is tango-centric and it requires taurus to keep knowledge of a different project (sardana) since it maintains T_FORM_CUSTOM_WIDGET_MAP.

Fix this by switching to a plugin-based solution using entry points:

  • define an entry point group called "taurus.qt.taurusform.item_factories" "taurus.form.item_factories"
  • other packages (such as sardana) can then register "Taurus Value Factories" for this entry point group.
  • TaurusValue factories are functions that receive a TaurusModel as their only argument and return either a TaurusValue-like instance or None in case the factory does not handle the given model.

The old CustomWidgetMap API is still kept for backwards compatibility but it is deprecated and will be removed eventually.

This PR makes #1101 obsolete

Merge request reports