Hi all,
I was debugging my Python code and I found a behavior that doesn't make much sense to me unless I'm missing something.

Apparently, available forcefields are not found unless an OBConversion instance is created. I've made up an example by borrowing some code from Pybel, see attached.

In fact, I've noticed that Pybel does indeed create an instance of it very early, so I'm wondering if there's an underlying reason for that.
Thanks,

S

--
 Stefano Forli, PhD

 Staff Scientist
 Molecular Graphics Laboratory
 Dept. of Integrative Structural
  and Computational Biology, MB-112F
 The Scripps Research Institute
 10550  North Torrey Pines Road
 La Jolla,  CA 92037-1000,  USA.

    tel: +1 (858)784-2055
    fax: +1 (858)784-2860
    email: fo...@scripps.edu
    http://www.scripps.edu/~forli/
import openbabel as ob
import sys

_obfuncs = _obconsts = ob

def _getplugins(findplugin, names):
     plugins = dict([(x, findplugin(x)) for x in names if findplugin(x)])
     return plugins

def _getpluginnames(ptype):
     if sys.platform[:4] == "cli":
         plugins = ob.VectorString()
     else:
         plugins = ob.vectorString()
     ob.OBPlugin.ListAsVector(ptype, None, plugins)
     if sys.platform[:4] == "java":
         plugins = [plugins.get(i) for i in range(plugins.size())]
     return [x.split()[0] for x in plugins]

forcefields = [_x.lower() for _x in _getpluginnames("forcefields")]
"""A list of supported forcefields"""
_forcefields = _getplugins(ob.OBForceField.FindType, forcefields)
print "PRE  OBCONVERT", forcefields


# THIS DOES THE TRICK?
_obconv = ob.OBConversion()
forcefields = [_x.lower() for _x in _getpluginnames("forcefields")]
"""A list of supported forcefields"""
_forcefields = _getplugins(ob.OBForceField.FindType, forcefields)
print "POST OBCONVERT", forcefields
------------------------------------------------------------------------------
BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT
Develop your own process in accordance with the BPMN 2 standard
Learn Process modeling best practices with Bonita BPM through live exercises
http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_
source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF
_______________________________________________
OpenBabel-Devel mailing list
OpenBabel-Devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbabel-devel

Reply via email to