diff options
| author | Daniel M. Pelt <D.M.Pelt@cwi.nl> | 2015-07-17 12:05:46 +0200 | 
|---|---|---|
| committer | Willem Jan Palenstijn <Willem.Jan.Palenstijn@cwi.nl> | 2015-07-23 11:57:17 +0200 | 
| commit | 2f871bc7068d6c87a7d950ae044ba66b0b8dcd3f (patch) | |
| tree | 168fc0ba77b0908845c69c9a11b0dd192cd07939 | |
| parent | f79f072b9bbc5719fbfa3d5c75e886a2bbb7f1ce (diff) | |
| download | astra-2f871bc7068d6c87a7d950ae044ba66b0b8dcd3f.tar.gz astra-2f871bc7068d6c87a7d950ae044ba66b0b8dcd3f.tar.bz2 astra-2f871bc7068d6c87a7d950ae044ba66b0b8dcd3f.tar.xz astra-2f871bc7068d6c87a7d950ae044ba66b0b8dcd3f.zip  | |
Remove config text file loading for plugins
| -rw-r--r-- | include/astra/PluginAlgorithm.h | 3 | ||||
| -rw-r--r-- | src/PluginAlgorithm.cpp | 72 | 
2 files changed, 6 insertions, 69 deletions
diff --git a/include/astra/PluginAlgorithm.h b/include/astra/PluginAlgorithm.h index 7d6c64a..a82c579 100644 --- a/include/astra/PluginAlgorithm.h +++ b/include/astra/PluginAlgorithm.h @@ -72,8 +72,7 @@ public:  private:      PyObject * pluginDict; -    PyObject *ospath, *inspect, *six, *astra; -    std::vector<std::string> getPluginPathList(); +    PyObject *inspect, *six;  };  PyObject* XMLNode2dict(XMLNode node); diff --git a/src/PluginAlgorithm.cpp b/src/PluginAlgorithm.cpp index 7dcaf68..8ba6631 100644 --- a/src/PluginAlgorithm.cpp +++ b/src/PluginAlgorithm.cpp @@ -67,79 +67,19 @@ void CPluginAlgorithm::run(int _iNrIterations){      Py_DECREF(retVal);  } -const char ps = -#ifdef _WIN32 -                            '\\'; -#else -                            '/'; -#endif - -std::vector<std::string> CPluginAlgorithmFactory::getPluginPathList(){ -    std::vector<std::string> list; -    list.push_back("/etc/astra-toolbox"); -    PyObject *ret, *retb; -    ret = PyObject_CallMethod(inspect,"getfile","O",astra); -    if(ret!=NULL){ -        retb = PyObject_CallMethod(six,"b","O",ret); -        Py_DECREF(ret); -        if(retb!=NULL){ -            std::string astra_inst (PyBytes_AsString(retb)); -            Py_DECREF(retb); -            ret = PyObject_CallMethod(ospath,"dirname","s",astra_inst.c_str()); -            if(ret!=NULL){ -                retb = PyObject_CallMethod(six,"b","O",ret); -                Py_DECREF(ret); -                if(retb!=NULL){ -                    list.push_back(std::string(PyBytes_AsString(retb))); -                    Py_DECREF(retb); -                } -            } -        } -    } -    ret = PyObject_CallMethod(ospath,"expanduser","s","~"); -    if(ret!=NULL){ -        retb = PyObject_CallMethod(six,"b","O",ret); -        Py_DECREF(ret); -        if(retb!=NULL){ -            list.push_back(std::string(PyBytes_AsString(retb)) + ps + ".astra-toolbox"); -            Py_DECREF(retb); -        } -    } -    const char *envval = getenv("ASTRA_PLUGIN_PATH"); -    if(envval!=NULL){ -        list.push_back(std::string(envval)); -    } -    return list; -} -  CPluginAlgorithmFactory::CPluginAlgorithmFactory(){      Py_Initialize();      pluginDict = PyDict_New(); -    ospath = PyImport_ImportModule("os.path");      inspect = PyImport_ImportModule("inspect");      six = PyImport_ImportModule("six"); -    astra = PyImport_ImportModule("astra"); -    std::vector<std::string> fls = getPluginPathList(); -    std::vector<std::string> items; -    for(unsigned int i=0;i<fls.size();i++){ -        std::ifstream fs ((fls[i]+ps+"plugins.txt").c_str()); -        if(!fs.is_open()) continue; -        std::string line; -        while (std::getline(fs,line)){ -            boost::split(items, line, boost::is_any_of(" ")); -            if(items.size()<2) continue; -            PyObject *str = PyBytes_FromString(items[1].c_str()); -            PyDict_SetItemString(pluginDict,items[0].c_str(),str); -            Py_DECREF(str); -        } -        fs.close(); -    }  }  CPluginAlgorithmFactory::~CPluginAlgorithmFactory(){      if(pluginDict!=NULL){          Py_DECREF(pluginDict);      } +    if(inspect!=NULL) Py_DECREF(inspect); +    if(six!=NULL) Py_DECREF(six);  }  bool CPluginAlgorithmFactory::registerPlugin(std::string name, std::string className){ @@ -198,18 +138,16 @@ std::string CPluginAlgorithmFactory::getHelp(std::string name){      std::string ret = "";      PyObject *pyclass = getClassFromString(str);      if(pyclass==NULL) return ""; -    PyObject *module = PyImport_ImportModule("inspect"); -    if(module!=NULL){ -        PyObject *retVal = PyObject_CallMethod(module,"getdoc","O",pyclass); +    if(inspect!=NULL && six!=NULL){ +        PyObject *retVal = PyObject_CallMethod(inspect,"getdoc","O",pyclass);          if(retVal!=NULL){              PyObject *retb = PyObject_CallMethod(six,"b","O",retVal);              Py_DECREF(retVal); -            if(retVal!=NULL){ +            if(retb!=NULL){                  ret = std::string(PyBytes_AsString(retb));                  Py_DECREF(retb);              }          } -        Py_DECREF(module);      }      Py_DECREF(pyclass);      return ret;  | 
