MedUX

OpenSource EMR

User Tools

Site Tools


en:dev:drafts:plugins

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
en:dev:drafts:plugins [2017/10/25 21:27] – merged from brainstorming nerdocen:dev:drafts:plugins [2019/09/15 16:23] (current) nerdoc
Line 1: Line 1:
-====== Plugins ======+====== Plugin Drafts ======
  
 As MedUX needs to be completely modular, we need a plugin framework that has some capabilities: As MedUX needs to be completely modular, we need a plugin framework that has some capabilities:
  
   * **it must be easy** to understand and use    * **it must be easy** to understand and use 
-  * **it must be maintained**. It must be a framework that will not vanish in half a year. +  * **it must be maintained**. It must be a framework that will not vanish in half a year. 
-  * **it must be thread safe**: Direct calls are not very nice when trying to make a responsive UI. Ideally based on a loosely-coupled signal/slot mechanism like the one in Qt. +
-  * **it should work with PyQt**+
  
 There are several plugin systems that are available for python,  There are several plugin systems that are available for python, 
Line 13: Line 11:
 that are taken into consideration for MedUX: that are taken into consideration for MedUX:
  
 +  * [[https://gitlab.com/nerdocs/gdaps|GDAPS]] - our own plugin system
   * [[http://martyalchin.com/2008/jan/10/simple-plugin-framework|Marty Alchin's framework]] - nice start.   * [[http://martyalchin.com/2008/jan/10/simple-plugin-framework|Marty Alchin's framework]] - nice start.
   * [[http://yapsy.sourceforge.net|Yapsy]] - maybe too narrow   * [[http://yapsy.sourceforge.net|Yapsy]] - maybe too narrow
 +  * [[https://github.com/PyUtilib/pyutilib/|PyUtilib]] - Loosely derived from trac. I would use just the plugin framework core. Documentation of the "Component Architecture" is [[https://software.sandia.gov/trac/pyutilib/export/1831/pyutilib.component.doc/trunk/doc/plugin/pca.pdf|here]]
 +
 +Old ones (not taken into consideration further):
 +
   * [[http://trac.edgewall.org/browser/branches/1.0-stable/trac/core.py|trac]] - only for web...   * [[http://trac.edgewall.org/browser/branches/1.0-stable/trac/core.py|trac]] - only for web...
-  * [[https://software.sandia.gov/trac/pyutilib|PyUtilib]] - Loosely derived from tracI would use just the plugin framework core. Documentation of the "Component Architecture" is [[https://software.sandia.gov/trac/pyutilib/export/1831/pyutilib.component.doc/trunk/doc/plugin/pca.pdf|here]]+  * [[https://pythonhosted.org/django-plugins/|Django-Plugins]] - only Django, but seems very nice.
   * [[https://github.com/mitsuhiko/pluginbase|Pluginbase]] - stability??   * [[https://github.com/mitsuhiko/pluginbase|Pluginbase]] - stability??
 +  * [[https://github.com/daltonmatos/plugnplay|PlugNPlay]] - small, inactive...??
  
-Maybe take the "best" out of them and compose our own? 
  
 Brainstorming: Brainstorming:
en/dev/drafts/plugins.1508959631.txt.gz · Last modified: 2017/10/25 21:27 by nerdoc