Skip to content

WIP: SEP19 - Refactor plugin system

I would like to start discussion on the refactoring of the Sardana plugin system. I have prepared some proposals in the form of SEP19. When reading it you will realize that there are several TODOs. I list them here so we can check them when agreed:

  • How to deal with widgets? Shouldn't these be entry points to Taurus?
  • Evaluate use of importlib-metadata project - standard from Python 3.8.
  • Check if it will be possible to use dots in magic command completion e.g. relmaclib sardana_bl04.macro.hotblower
  • Prepare implementaion plan

I think when workign on this we should also clarify solutions for the following tickets related to the plugins:

Macro specific:

  • Unable to run macro: PyDs_PythonError UnknownMacro: Unknown macro macro1 (SF#401) #246
  • Neither a created macro nor a macro from the macro manager is instance of an imported macro class (SF#402) #247
  • Add verbosity to edmac macro (SF#479) #324
  • wrong argout of the ReloadMacro and ReloadMacroLib tango cmds (SF#119) sourceforge #76 (closed)
  • ReloadMacro and ReloadMacroLib tango cmds are not verbose in case of errors (SF#118) #75 (closed)
  • relmaclib does not work with macros importing modules from PythonPath (SF#465) #310
  • 'NoneType' object has no attribute 'getType' on editing macro in a new location (SF#455) #300 (closed)
  • MacroServer ReloadMacro failure (SF#444) #289
  • Problems with edmac on Windows (SF#505) #349
  • edmac raises an exception #520
  • Error reloading macros once they were overwritten #949
  • Warn when macros gets overriden #930

Controller specific:

  • Insert new controller Library in Pool when it is Running. (SF#80) #53
  • edctrl macro does not work (SF#472) #317 (closed)
  • Pool should not log an ERROR if hkl is not installed #394 (closed)
  • edctrl and edctrllib to use Git as a VCS #566 (closed)
  • Order of loading controllers when one imports another
  • Controller initial class is maintained even if the class got overridden #1459

General:

  • Plugin class inheritance #563
  • Module based plugin discovery #562

It is totally open for changes and comments. Thanks a lot in advance for looking into it!

Edited by Zbigniew Reszela

Merge request reports

Loading