Skip to content

Commit f5f7283

Browse files
authored
Merge pull request #107 from OpenSourceBrain/development
jnml changes
2 parents a8fc070 + 29bc947 commit f5f7283

File tree

3 files changed

+37
-2
lines changed

3 files changed

+37
-2
lines changed

omv/engines/getjnml.py

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,29 @@
11
import os
2+
import platform
23
from subprocess import check_output
4+
from pathlib import Path
35

46
from omv.engines.utils.wdir import working_dir
57

68

79
def install_jnml():
810
version = "v0.12.2"
911

10-
jnmlpath = os.path.join(os.environ["HOME"], "jnml")
12+
try:
13+
jnmlhome = os.environ["JNML_HOME"]
14+
jnmlpath = Path(jnmlhome).parent
15+
except KeyError:
16+
osname = platform.system()
17+
if osname == "Linux":
18+
try:
19+
jnmlpath = os.path.join(os.environ["XDG_DATA_HOME"], "jnml")
20+
except KeyError:
21+
jnmlpath = os.path.join(os.environ["HOME"], ".local/share/jnml")
22+
elif osname == "Darwin":
23+
jnmlpath = os.path.join(os.environ["HOME"], "Library/jnml")
24+
else:
25+
jnmlpath = os.path.join(os.environ["HOME"], "jnml")
26+
1127
if not os.path.isdir(jnmlpath):
1228
os.mkdir(jnmlpath)
1329
with working_dir(jnmlpath):

omv/engines/jneuroml.py

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
import os
2+
import shutil
23
import subprocess as sp
4+
from pathlib import Path
5+
import platform
36

47
from omv.common.inout import inform, trim_path, is_verbose, check_output
58
from omv.engines.engine import OMVEngine, EngineExecutionError
@@ -12,8 +15,23 @@ class JNeuroMLEngine(OMVEngine):
1215
def get_environment():
1316
if "JNML_HOME" in os.environ:
1417
jnmlhome = os.environ["JNML_HOME"]
18+
elif shutil.which("jnml") is not None:
19+
jnmlhome = Path(shutil.which("jnml")).parent
1520
else:
16-
jnmlhome = os.path.join(os.environ["HOME"], "jnml/jNeuroMLJar")
21+
osname = platform.system()
22+
if osname == "Linux":
23+
try:
24+
jnmlhome = os.path.join(
25+
os.environ["XDG_DATA_HOME"], "jnml/jNeuroMLJar"
26+
)
27+
except KeyError as e:
28+
jnmlhome = os.path.join(
29+
os.environ["HOME"], ".local/share/jnml/jNeuroMLJar"
30+
)
31+
elif osname == "Darwin":
32+
jnmlhome = os.path.join(os.environ["HOME"], "Library/jnml/jNeuroMLJar")
33+
else:
34+
jnmlhome = os.path.join(os.environ["HOME"], "jnml/jNeuroMLJar")
1735

1836
environment_vars = {"JNML_HOME": jnmlhome}
1937

setup.cfg

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ install_requires =
2727
pyrx
2828
pathlib; python_version<'3.4'
2929
docopt
30+
importlib-metadata; python_version<'3.7'
3031

3132
packages = find:
3233

0 commit comments

Comments
 (0)