Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ jobs:
pip install .
pip install scipy sympy matplotlib cython pandas tables
#sudo apt install octave
sudo apt-get install -y subversion # for neuroConstruct full install...

- name: Run OMV tests on engine ${{ matrix.engine }}
run: |
Expand Down
2 changes: 1 addition & 1 deletion omv/autogen.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ def read_option(options, default=0):
opt = None
while opt is None:
try:
sel = int(raw_input("Select option number [default: %s]: " % default))
sel = int(input("Select option number [default: %s]: " % default))
opt = options[sel]
except IndexError:
print("invalid index!")
Expand Down
2 changes: 1 addition & 1 deletion omv/common/inout.py
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ def check_output(cmds, cwd=".", shell=False, verbosity=0, env=None):
if env:
joint_env.update(env)
for k in os.environ:
if not k in joint_env:
if k not in joint_env:
joint_env[k] = os.environ[k]

try:
Expand Down
5 changes: 2 additions & 3 deletions omv/engines/engine.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
from os.path import realpath
from os import environ
import sys
from omv.common.inout import inform
import platform

Expand Down Expand Up @@ -78,8 +77,8 @@ def build_query_string(self, name, cmd):
def set_environment(self):
if self.environment_vars:
for name, val in self.environment_vars.items():
if name in environ and not "HOME" in name:
if not ":%s:" % val in environ[name]:
if name in environ and "HOME" not in name:
if ":%s:" % val not in environ[name]:
environ[name] = "%s:%s" % (environ[name], val)
else:
environ[name] = val
Expand Down
2 changes: 1 addition & 1 deletion omv/engines/getarbor.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ def install_arbor(version=None):
pip_install("arbor==%s" % version)
import arbor

m = "Successfully installed Arbor..."
m = "Successfully installed Arbor %s..."%arbor.__version__
except Exception as e:
m = "ERROR installing Arbor: " + str(e)
finally:
Expand Down
1 change: 0 additions & 1 deletion omv/engines/getbrian1.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import os
import pip
from omv.common.inout import inform, check_output
from omv.engines.utils.wdir import working_dir

Expand Down
2 changes: 1 addition & 1 deletion omv/engines/getbrian2.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ def install_brian2(version):
pip_install("brian2", version)
import brian2

m = "Successfully installed Brian2..."
m = "Successfully installed Brian2 %s..."%brian2.__version__
except Exception as e:
m = "ERROR installing Brian2: " + str(e)
finally:
Expand Down
3 changes: 1 addition & 2 deletions omv/engines/getjnml.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@


def install_jnml(version):

if not version:
version = "v0.14.0"

Expand Down Expand Up @@ -45,4 +44,4 @@ def install_jnml(version):
)
check_output(["unzip", "jNeuroML.zip"])

inform("Successfully installed jNeuroML "+version, indent=1)
inform("Successfully installed jNeuroML " + version, indent=1)
5 changes: 3 additions & 2 deletions omv/engines/getpynn.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@ def install_pynn(version=None):

pip_install("pynn", version)
import pyNN
'''

"""
install_root = os.environ["HOME"]

pyNN_src = "PyNN_src"
Expand All @@ -36,7 +37,7 @@ def install_pynn(version=None):
print(check_output(["pwd"]))
print("Finished attempting to install PyNN")
# import pyNN
'''
"""
m = "Successfully installed pyNN..."
except Exception as e:
m = "ERROR during install_pynn: %s" % e
Expand Down
64 changes: 16 additions & 48 deletions omv/engines/getxpp.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,18 @@

from omv.engines.utils.wdir import working_dir
from sysconfig import get_paths
import sys

import fileinput


def install_xpp(version='latest'):

if version is None:
version='latest'
elif not version=='latest':
raise Exception('Can currently only install the latest XPP version')
def install_xpp(version="latest"):
if version is None:
version = "latest"
elif not version == "latest":
raise Exception("Can currently only install the latest XPP version")

inform("Installing XPP", indent=2, verbosity=1)
xppinstallpath = os.path.join(os.environ["HOME"])
xpphomepath = os.path.join(xppinstallpath, 'xppaut')
xpphomepath = os.path.join(xppinstallpath, "xppaut")

inform(
"Installing XPP to: %s" % (xpphomepath),
Expand All @@ -27,56 +24,27 @@ def install_xpp(version='latest'):
pypaths = get_paths()
inform("Python lib info: %s" % (pypaths), indent=2, verbosity=1)


with working_dir(xppinstallpath):
print(
check_output(
[
"git",
"clone",
"https://github.com/NeuroML/xppaut"
]
)
)
print(check_output(["git", "clone", "https://github.com/NeuroML/xppaut"]))

with working_dir(xpphomepath):
print(
check_output(
[
"ls",
"-alth"
]
)
)
print(check_output(["ls", "-alth"]))

makefile = os.path.join(xpphomepath, "Makefile")

makefile = os.path.join(xpphomepath, 'Makefile')

print(' - Replacing text in %s'%makefile)
with open(makefile, 'r') as file:
print(" - Replacing text in %s" % makefile)
with open(makefile, "r") as file:
filedata = file.read()

# Replace the target string
filedata = filedata.replace("/usr/local/", "%s/"%xpphomepath)
filedata = filedata.replace("/usr/local/", "%s/" % xpphomepath)

# Write the file out again
with open(makefile, 'w') as file:
with open(makefile, "w") as file:
file.write(filedata)

print(
check_output(
[
"make", "-j4"
]
)
)
print(
check_output(
[
"make", "install"
]
)
)

print(check_output(["make", "-j4"]))
print(check_output(["make", "install"]))


if __name__ == "__main__":
Expand Down
2 changes: 1 addition & 1 deletion omv/engines/jneuroml.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ def get_environment():
jnmlhome = os.path.join(
os.environ["XDG_DATA_HOME"], "jnml/jNeuroMLJar"
)
except KeyError as e:
except KeyError:
localsharepath = os.path.join(os.environ["HOME"], ".local/share")
if os.path.isdir(localsharepath):
jnmlhome = os.path.join(
Expand Down
3 changes: 0 additions & 3 deletions omv/engines/jneuromlmoose.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@


class JNeuroMLMooseEngine(JNeuroMLEngine):

name = "jNeuroML_Moose"

@staticmethod
Expand All @@ -22,7 +21,6 @@ def is_installed():

@staticmethod
def install(version):

if not JNeuroMLEngine.is_installed():
JNeuroMLEngine.install(None)
if not MooseEngine.is_installed():
Expand All @@ -34,7 +32,6 @@ def install(version):
JNeuroMLMooseEngine.environment_vars.update(MooseEngine.environment_vars)
inform("PATH: " + JNeuroMLMooseEngine.path)
inform("Env vars: %s" % JNeuroMLMooseEngine.environment_vars)


def run(self):
try:
Expand Down
1 change: 1 addition & 0 deletions omv/engines/jneuromlvalidate.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
from omv.engines.engine import PATH_DELIMITER
from omv.engines.utils import resolve_paths


class JNeuroMLValidateEngine(JNeuroMLEngine):
name = "jNeuroML_validate"

Expand Down
9 changes: 6 additions & 3 deletions omv/engines/jneuromlxpp.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ def install(xpp_version):
if not XppEngine.is_installed():
XppEngine.install(xpp_version)


def run(self):
self.environment_vars = XppEngine.get_xpp_environment()
self.set_environment()
Expand All @@ -44,9 +43,13 @@ def run(self):
cwd=os.path.dirname(self.modelpath),
env=JNeuroMLEngine.get_environment(),
)

self.stdout = check_output(
[self.environment_vars["XPP_HOME"] + "/xppaut", self.modelpath.replace('.xml','.ode'), '-silent'],
[
self.environment_vars["XPP_HOME"] + "/xppaut",
self.modelpath.replace(".xml", ".ode"),
"-silent",
],
cwd=os.path.dirname(self.modelpath),
)

Expand Down
3 changes: 1 addition & 2 deletions omv/engines/moose_.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,13 @@

from omv.engines.pyneuroml_ import PyNeuroMLEngine

from omv.common.inout import inform, trim_path, check_output, is_verbose
from omv.common.inout import inform, trim_path, check_output
from omv.engines.engine import OMVEngine, EngineExecutionError


class MooseEngine(OMVEngine):
name = "Moose"


@staticmethod
def is_installed():
ret = True
Expand Down
2 changes: 1 addition & 1 deletion omv/engines/nestsli.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ def is_installed():
if "-" in ret:
ret = "v%s" % ret.split("-")[-1]

if not "v" in ret:
if "v" not in ret:
ret = "v%s" % ret

inform("NEST %s is correctly installed..." % ret, indent=2, verbosity=1)
Expand Down
2 changes: 1 addition & 1 deletion omv/engines/neuron_.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ def get_nrn_environment():

environment_vars = {"PYTHONPATH": pp}

if not "NEURON_HOME" in os.environ:
if "NEURON_HOME" not in os.environ:
pip_install_dir1 = "/usr/local"
pip_install_nrniv1 = os.path.join(pip_install_dir1, "bin", "nrniv")
scripts_bin = get_paths()["scripts"]
Expand Down
1 change: 0 additions & 1 deletion omv/engines/pylems.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import os
import subprocess as sp
import sys

from omv.common.inout import inform, trim_path, check_output, is_verbose
from omv.engines.engine import OMVEngine, EngineExecutionError
Expand Down
3 changes: 1 addition & 2 deletions omv/engines/pyneuroml_.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import os
import subprocess as sp

from omv.common.inout import inform, trim_path, is_verbose, check_output
from omv.common.inout import inform, trim_path, check_output
from omv.engines.engine import OMVEngine, EngineExecutionError


Expand Down Expand Up @@ -42,7 +42,6 @@ def install(version):
inform("Failure to install, exiting", indent=1)
exit(1)


def run(self):
try:
inform(
Expand Down
28 changes: 17 additions & 11 deletions omv/engines/pyneuromlvalidatesbml.py
Original file line number Diff line number Diff line change
@@ -1,23 +1,26 @@
import os
import subprocess as sp

from omv.common.inout import inform, trim_path, check_output
from omv.common.inout import inform, check_output
from omv.engines.engine import EngineExecutionError
from omv.engines.pyneuroml_ import PyNeuroMLEngine
from omv.engines.pyneuroml_ import PyNeuroMLEngine
from omv.engines.engine import PATH_DELIMITER
from omv.engines.utils import resolve_paths


class PyNeuroMLValidateSBMLEngine(PyNeuroMLEngine):
name = "pyNeuroML_validate_sbml"

@staticmethod
def is_installed():
if not PyNeuroMLEngine.is_installed(): return False
if not PyNeuroMLEngine.is_installed():
return False

ret = True
try:
inform(
"Checking whether %s is installed..." % PyNeuroMLValidateSBMLEngine.name,
"Checking whether %s is installed..."
% PyNeuroMLValidateSBMLEngine.name,
indent=1,
verbosity=2,
)
Expand All @@ -37,7 +40,8 @@ def is_installed():

@staticmethod
def install(version):
if not PyNeuroMLEngine.is_installed(): PyNeuroMLEngine.install(None)
if not PyNeuroMLEngine.is_installed():
PyNeuroMLEngine.install(None)

from omv.engines.getlibsbml import install_libsbml

Expand All @@ -54,19 +58,20 @@ def run(self):
verbosity=1,
)

#pynml = PyNeuroMLEngine.get_executable() #could implement more flexible way to find the executeable
# pynml = PyNeuroMLEngine.get_executable() #could implement more flexible way to find the executeable
cmds = ["pynml", "-validate-sbml"]
for p in path_s:
cmds.append(p)

inform(
"Running with %s, using: %s..." % (PyNeuroMLValidateSBMLEngine.name, cmds),
"Running with %s, using: %s..."
% (PyNeuroMLValidateSBMLEngine.name, cmds),
indent=1,
)
self.stdout = check_output(
cmds,
cwd=os.path.dirname(self.modelpath.split(PATH_DELIMITER)[0])
#env=PyNeuroMLEngine.get_environment(),
cwd=os.path.dirname(self.modelpath.split(PATH_DELIMITER)[0]),
# env=PyNeuroMLEngine.get_environment(),
)
inform(
"Success with running ",
Expand All @@ -76,8 +81,9 @@ def run(self):
)
self.returncode = 0
except sp.CalledProcessError as err:
inform("Error with ", PyNeuroMLValidateSBMLEngine.name, indent=1, verbosity=1)
inform(
"Error with ", PyNeuroMLValidateSBMLEngine.name, indent=1, verbosity=1
)
self.returncode = err.returncode
self.stdout = err.output
raise EngineExecutionError

Loading