Replace customWidgetMap API with plugin
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 aTaurusValue
-like instance orNone
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