Skip to content

Commit 6d90cdb

Browse files
committed
Set Python (PyImageJ) active in python mode
1 parent 756dbdf commit 6d90cdb

File tree

1 file changed

+28
-1
lines changed

1 file changed

+28
-1
lines changed

src/main/java/org/scijava/plugins/scripting/python/PythonScriptLanguage.java

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,16 @@
2929

3030
package org.scijava.plugins.scripting.python;
3131

32+
import java.io.File;
33+
import java.io.IOException;
3234
import java.util.Arrays;
3335
import java.util.List;
36+
import java.util.Map;
3437

3538
import javax.script.ScriptEngine;
3639

3740
import org.scijava.Priority;
41+
import org.scijava.launcher.Config;
3842
import org.scijava.plugin.Plugin;
3943
import org.scijava.script.AbstractScriptLanguage;
4044
import org.scijava.script.ScriptLanguage;
@@ -47,9 +51,32 @@
4751
* @see ScriptEngine
4852
*/
4953
@Plugin(type = ScriptLanguage.class, name = "Python (pyimagej)",
50-
priority = Priority.VERY_LOW)
54+
priority = Priority.VERY_HIGH)
5155
public class PythonScriptLanguage extends AbstractScriptLanguage {
5256

57+
private Boolean isActive = null;
58+
59+
@Override
60+
public boolean isActive() {
61+
if (isActive == null) {
62+
String configFileProp = System.getProperty("scijava.app.config-file");
63+
File configFile = configFileProp == null ? null : new File(
64+
configFileProp);
65+
if (configFile != null && configFile.canRead()) {
66+
try {
67+
final Map<String, String> config = Config.load(configFile);
68+
69+
final String cfgLaunchMode = config.get("launch-mode");
70+
if (cfgLaunchMode != null) isActive = cfgLaunchMode.equals("PYTHON");
71+
}
72+
catch (IOException e) {
73+
// Proceed gracefully if config file is not accessible.
74+
}
75+
}
76+
}
77+
return (isActive == null) ? false : isActive;
78+
}
79+
5380
@Override
5481
public String getEngineName() {
5582
return "python";

0 commit comments

Comments
 (0)