def runProgram(program, params): """ Runs a em program setting its environment matching a prefix""" env = None # Allow passing absolute paths programName = basename(program) from pwem import Domain # Avoid detecting xmipp installation script to be run as xmipp, since # it will run devel installation with production xmippEnv.json environment: # Example: want to compile devel with java 8, but production was compiled with java 11. # So java 11 makes it into the PATH taking priority if programName.startswith('xmipp_'): print("Xmipp command detected") xmipp3 = Domain.getPlugin('xmipp3').Plugin env = xmipp3.getEnviron() if programName.startswith('relion'): print("relion command detected") relion = Domain.getPlugin("relion").Plugin env = relion.getEnviron() elif (programName.startswith('e2') or programName.startswith('sx')): print("eman/sparx command detected") eman2 = Domain.importFromPlugin('eman2', 'Plugin') env = eman2.getEnviron() elif programName.startswith('b'): print("Bsoft command detected") bsoft = Domain.importFromPlugin('bsoft', 'Plugin') env = bsoft.getEnviron() pwutils.runJob(None, program, params, env=env)
def runProgram(program, params): """ Runs a em program setting its environment matching a prefix""" env = None # Allow passing absolute paths programName = basename(program) from pwem import Domain if programName.startswith('xmipp'): xmipp3 = Domain.getPlugin('xmipp3').Plugin env = xmipp3.getEnviron() if programName.startswith('relion'): relion = Domain.getPlugin("relion").Plugin env = relion.getEnviron() print(env) elif (programName.startswith('e2') or programName.startswith('sx')): eman2 = Domain.importFromPlugin('eman2', 'Plugin') env = eman2.getEnviron() elif programName.startswith('b'): bsoft = Domain.importFromPlugin('bsoft', 'Plugin') env = bsoft.getEnviron() pwutils.runJob(None, program, params, env=env)
def test_plugin(self): # Really stupid test to check that tomo plugin is defined tomo = Domain.getPlugin('tomo') self.assertFalse(tomo is None) self.assertTrue(hasattr(tomo, 'Plugin')) # Check that defined objects here are found objects = Domain.getObjects() expected = [ 'TiltImage', 'TiltSeries', 'SetOfTiltSeries', 'TiltImageM', 'TiltSeriesM', 'SetOfTiltSeriesM' ] for e in expected: self.assertTrue(e in objects, "%s should be in Domain.getObjects" % e)
print("Objects") pwutils.prettyDict(Domain.getObjects()) print("Protocols") pwutils.prettyDict(Domain.getProtocols()) print("Viewers") pwutils.prettyDict(Domain.getViewers()) elif n == 2: if sys.argv[1] in ['-h', '--help', 'help']: usage() pluginName = sys.argv[1] plugin = Domain.getPlugin(pluginName) print("Plugin: %s" % pluginName) for subName in [ 'constants', 'convert', 'protocols', 'wizards', 'viewers', 'tests' ]: sub, error = getSubmodule(plugin, pluginName, subName) if sub is None: if error is None: msg = " missing" else: exitWithErrors = True msg = " error -> %s" % error else: msg = " loaded"