From a56eb93a8a83bd8d27e3a24b32c1bbfe4827a2dc Mon Sep 17 00:00:00 2001 From: DeLaVlag Date: Fri, 6 Jan 2023 14:37:56 +0100 Subject: [PATCH 01/11] minval maxval extension for TVB Rateml --- lems/model/component.py | 20 ++++++++++++++++++-- lems/model/dynamics.py | 10 +++++++++- lems/parser/LEMS.py | 36 +++++++++++++++++++++++++++++++++--- 3 files changed, 60 insertions(+), 6 deletions(-) diff --git a/lems/model/component.py b/lems/model/component.py index 1b5b34f..595b5eb 100644 --- a/lems/model/component.py +++ b/lems/model/component.py @@ -21,7 +21,7 @@ class Parameter(LEMSBase): Stores a parameter declaration. """ - def __init__(self, name, dimension, description=""): + def __init__(self, name, dimension, minval, maxval, description=""): """ Constructor. @@ -56,6 +56,14 @@ def __init__(self, name, dimension, description=""): """ Description of this parameter. :type: str """ + self.minval = minval + """ Minimum value of this parameter. + :type: str """ + + self.maxval = maxval + """ Maximum value of this parameter. + :type: str """ + def toxml(self): """ Exports this object into a LEMS XML object @@ -309,7 +317,7 @@ class Exposure(LEMSBase): Stores a exposure specification. """ - def __init__(self, name, dimension, description=""): + def __init__(self, name, minval, maxval, dimension, description=""): """ Constructor. @@ -320,6 +328,14 @@ def __init__(self, name, dimension, description=""): """ Name of the exposure. :type: str """ + self.minval = minval + """ Minimum value of this parameter. + :type: str """ + + self.maxval = maxval + """ Maximum value of this parameter. + :type: str """ + self.dimension = dimension """ Physical dimension of the exposure. :type: str """ diff --git a/lems/model/dynamics.py b/lems/model/dynamics.py index 1ad1275..3fe6e59 100644 --- a/lems/model/dynamics.py +++ b/lems/model/dynamics.py @@ -16,7 +16,7 @@ class StateVariable(LEMSBase): Store the specification of a state variable. """ - def __init__(self, name, dimension, exposure=None): + def __init__(self, name, minval, maxval, dimension, exposure=None): """ Constructor. @@ -27,6 +27,14 @@ def __init__(self, name, dimension, exposure=None): """ Name of the state variable. :type: str """ + self.minval = minval + """ Minimum value of this parameter. + :type: str """ + + self.maxval = maxval + """ Maximum value of this parameter. + :type: str """ + self.dimension = dimension """ Dimension of the state variable. :type: str """ diff --git a/lems/parser/LEMS.py b/lems/parser/LEMS.py index a48eee9..00a4dca 100644 --- a/lems/parser/LEMS.py +++ b/lems/parser/LEMS.py @@ -985,6 +985,16 @@ def parse_exposure(self, node): except: self.raise_error(" must specify a name") + if "minval" in node.lattrib: + minval = node.lattrib["minval"] + else: + minval = 0.0 + + if "maxval" in node.lattrib: + maxval = node.lattrib["maxval"] + else: + maxval = 0.0 + try: dimension = node.lattrib["dimension"] except: @@ -992,7 +1002,7 @@ def parse_exposure(self, node): description = node.lattrib.get("description", "") - self.current_component_type.add_exposure(Exposure(name, dimension, description)) + self.current_component_type.add_exposure(Exposure(name, minval, maxval, dimension, description)) def parse_fixed(self, node): """ @@ -1286,13 +1296,23 @@ def parse_parameter(self, node): except: self.raise_error(" must specify a name") + if "minval" in node.lattrib: + minval = node.lattrib["minval"] + else: + minval = 0.0 + + if "maxval" in node.lattrib: + maxval = node.lattrib["maxval"] + else: + maxval = 0.0 + try: dimension = node.lattrib["dimension"] except: self.raise_error("Parameter '{0}' has no dimension", name) description = node.lattrib.get("description", "") - parameter = Parameter(name, dimension, description) + parameter = Parameter(name, dimension, minval, maxval, description) self.current_component_type.add_parameter(parameter) @@ -1638,6 +1658,16 @@ def parse_state_variable(self, node): else: self.raise_error(" must specify a name") + if "minval" in node.lattrib: + minval = node.lattrib["minval"] + else: + minval = 0.0 + + if "maxval" in node.lattrib: + maxval = node.lattrib["maxval"] + else: + maxval = 0.0 + if "dimension" in node.lattrib: dimension = node.lattrib["dimension"] else: @@ -1648,7 +1678,7 @@ def parse_state_variable(self, node): else: exposure = None - self.current_regime.add_state_variable(StateVariable(name, dimension, exposure)) + self.current_regime.add_state_variable(StateVariable(name, minval, maxval, dimension, exposure)) def parse_structure(self, node): """ From 9b15fae9199c7622055194016ce6dfdf11daafd4 Mon Sep 17 00:00:00 2001 From: Padraig Gleeson Date: Tue, 17 Jan 2023 16:36:33 +0000 Subject: [PATCH 02/11] Make minval/maxval optional --- examples/apitest_maxmin.py | 35 +++++++++++++++++++++++++++++++++++ lems/model/component.py | 4 ++-- lems/model/dynamics.py | 2 +- 3 files changed, 38 insertions(+), 3 deletions(-) create mode 100644 examples/apitest_maxmin.py diff --git a/examples/apitest_maxmin.py b/examples/apitest_maxmin.py new file mode 100644 index 0000000..8d92574 --- /dev/null +++ b/examples/apitest_maxmin.py @@ -0,0 +1,35 @@ +#! /usr/bin/python + +import lems.api as lems + +model = lems.Model() + +model.add(lems.Include("maxmin.xml")) + +model.add(lems.Dimension("voltage", m=1, l=3, t=-3, i=-1)) +model.add(lems.Dimension("time", t=1)) +model.add(lems.Dimension("capacitance", m=-1, l=-2, t=4, i=2)) + +model.add(lems.Unit("milliVolt", "mV", "voltage", -3)) +model.add(lems.Unit("milliSecond", "ms", "time", -3)) +model.add(lems.Unit("microFarad", "uF", "capacitance", -12)) + +iaf1 = lems.ComponentType("iaf1") +model.add(iaf1) + +iaf1.add(lems.Parameter("threshold", "voltage", minval=-44, maxval=55)) +iaf1.add(lems.Parameter("reset", "voltage")) + + +fn = "/tmp/maxmin.xml" +model.export_to_file(fn) + +print("----------------------------------------------") +print(open(fn, "r").read()) +print("----------------------------------------------") + +print("Written generated LEMS to %s" % fn) + +from lems.base.util import validate_lems + +validate_lems(fn) diff --git a/lems/model/component.py b/lems/model/component.py index 595b5eb..ea7b513 100644 --- a/lems/model/component.py +++ b/lems/model/component.py @@ -21,7 +21,7 @@ class Parameter(LEMSBase): Stores a parameter declaration. """ - def __init__(self, name, dimension, minval, maxval, description=""): + def __init__(self, name, dimension, minval=None, maxval=None, description=""): """ Constructor. @@ -317,7 +317,7 @@ class Exposure(LEMSBase): Stores a exposure specification. """ - def __init__(self, name, minval, maxval, dimension, description=""): + def __init__(self, name, dimension, minval=None, maxval=None, description=""): """ Constructor. diff --git a/lems/model/dynamics.py b/lems/model/dynamics.py index 3fe6e59..e085a11 100644 --- a/lems/model/dynamics.py +++ b/lems/model/dynamics.py @@ -16,7 +16,7 @@ class StateVariable(LEMSBase): Store the specification of a state variable. """ - def __init__(self, name, minval, maxval, dimension, exposure=None): + def __init__(self, name, dimension, minval=None, maxval=None, exposure=None): """ Constructor. From 4a9b717359563c5a4e4ae6c55f8c75f8d6c558fe Mon Sep 17 00:00:00 2001 From: Padraig Gleeson Date: Fri, 27 Jan 2023 16:33:43 +0000 Subject: [PATCH 03/11] Fixes for arg order --- lems/parser/LEMS.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lems/parser/LEMS.py b/lems/parser/LEMS.py index 00a4dca..425e58d 100644 --- a/lems/parser/LEMS.py +++ b/lems/parser/LEMS.py @@ -1002,7 +1002,7 @@ def parse_exposure(self, node): description = node.lattrib.get("description", "") - self.current_component_type.add_exposure(Exposure(name, minval, maxval, dimension, description)) + self.current_component_type.add_exposure(Exposure(name, dimension, minval, maxval, description)) def parse_fixed(self, node): """ @@ -1678,7 +1678,7 @@ def parse_state_variable(self, node): else: exposure = None - self.current_regime.add_state_variable(StateVariable(name, minval, maxval, dimension, exposure)) + self.current_regime.add_state_variable(StateVariable(name, dimension, minval, maxval, exposure)) def parse_structure(self, node): """ From 470bcfb657c1772b9fb58ba43a0fecdf0bca22e6 Mon Sep 17 00:00:00 2001 From: Padraig Gleeson Date: Thu, 11 May 2023 12:19:28 +0100 Subject: [PATCH 04/11] To v0.6.3; make sure case without condition serialises correctly --- lems/__init__.py | 2 +- lems/model/dynamics.py | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/lems/__init__.py b/lems/__init__.py index 0a1782d..562f3b8 100644 --- a/lems/__init__.py +++ b/lems/__init__.py @@ -7,7 +7,7 @@ logger = logging.getLogger("LEMS") -__version__ = "0.6.2" +__version__ = "0.6.3" __schema_version__ = "0.7.6" __schema_branch__ = "development" diff --git a/lems/model/dynamics.py b/lems/model/dynamics.py index e085a11..2ca7244 100644 --- a/lems/model/dynamics.py +++ b/lems/model/dynamics.py @@ -178,9 +178,10 @@ def toxml(self): """ Exports this object into a LEMS XML object """ - + cond = ' condition="{0}"'.format(self.condition) if self.condition is not None else '' + print(cond) return ( - '" ) From 49070b73de511a5deb648119e88a48c39d80bc3e Mon Sep 17 00:00:00 2001 From: Padraig Gleeson Date: Thu, 11 May 2023 12:20:24 +0100 Subject: [PATCH 05/11] Remove print.. --- lems/model/dynamics.py | 1 - 1 file changed, 1 deletion(-) diff --git a/lems/model/dynamics.py b/lems/model/dynamics.py index 2ca7244..e74d3df 100644 --- a/lems/model/dynamics.py +++ b/lems/model/dynamics.py @@ -179,7 +179,6 @@ def toxml(self): Exports this object into a LEMS XML object """ cond = ' condition="{0}"'.format(self.condition) if self.condition is not None else '' - print(cond) return ( '" From 6ddc7335d113ff1ff55b4737532514cca7b17434 Mon Sep 17 00:00:00 2001 From: Padraig Gleeson Date: Wed, 14 Jun 2023 15:18:21 +0100 Subject: [PATCH 06/11] Test on macos --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ef404cc..34dcad1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,7 +14,7 @@ jobs: fail-fast: false matrix: python-version: ["3.7", "3.9", "3.10", "3.11"] - runs-on: [ubuntu-latest, windows-latest] + runs-on: [ubuntu-latest, windows-latest, macos-latest] steps: - uses: actions/checkout@v3 From b2184ce30a79832bed3a1a4ce790a054f546ce52 Mon Sep 17 00:00:00 2001 From: pgleeson Date: Fri, 16 Jun 2023 16:31:58 +0100 Subject: [PATCH 07/11] Fix script for masos --- ci/run-apitest.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ci/run-apitest.sh b/ci/run-apitest.sh index 7dfa607..8507038 100755 --- a/ci/run-apitest.sh +++ b/ci/run-apitest.sh @@ -12,6 +12,10 @@ python examples/loadtest.py # Update NeuroML2 path for CI if [ "$CI" = "true" ]; then - sed -i 's|../NeuroML2|./NeuroML2|g' lems/dlems/exportdlems.py + if [ "$RUNNER_OS" = "macOS" ]; then + sed -i '' 's|../NeuroML2|./NeuroML2|g' lems/dlems/exportdlems.py; + else + sed -i 's|../NeuroML2|./NeuroML2|g' lems/dlems/exportdlems.py; + fi fi python lems/dlems/exportdlems.py From 15290150ce0da763c44bbc3dbff3680ae9887183 Mon Sep 17 00:00:00 2001 From: pgleeson Date: Fri, 16 Jun 2023 16:44:18 +0100 Subject: [PATCH 08/11] To v0.6.3 --- setup.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index c12cd26..58c8c02 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = PyLEMS -version = 0.6.2 +version = 0.6.3 author = PyLEMS authors and contributors author_email = gautham@lisphacker.org, p.gleeson@gmail.com maintainer_email = p.gleeson@gmail.com From 446b65e3629532fd442423c5a4dfdeb7e5e79e01 Mon Sep 17 00:00:00 2001 From: pgleeson Date: Tue, 19 Sep 2023 11:40:47 +0100 Subject: [PATCH 09/11] Retesting max/min impl - still need to write max/min to XML --- ci/run-apitest.sh | 11 ++++++++--- examples/apitest_maxmin.py | 4 ++-- examples/maxmin.xml | 13 +++++++++++++ 3 files changed, 23 insertions(+), 5 deletions(-) create mode 100644 examples/maxmin.xml diff --git a/ci/run-apitest.sh b/ci/run-apitest.sh index 48666b1..4e689bb 100755 --- a/ci/run-apitest.sh +++ b/ci/run-apitest.sh @@ -6,9 +6,14 @@ # # Run api tests on GitHub actions -python examples/apitest.py -python examples/apitest2.py -python examples/loadtest.py +cd examples +python apitest.py +python apitest2.py +python apitest3.py +python loadtest.py +python apitest_maxmin.py +cd .. + # Update NeuroML2 path for CI if [ "$CI" = "true" ]; then diff --git a/examples/apitest_maxmin.py b/examples/apitest_maxmin.py index 8d92574..ad1ebb4 100644 --- a/examples/apitest_maxmin.py +++ b/examples/apitest_maxmin.py @@ -4,7 +4,7 @@ model = lems.Model() -model.add(lems.Include("maxmin.xml")) +#model.add(lems.Include("maxmin.xml")) model.add(lems.Dimension("voltage", m=1, l=3, t=-3, i=-1)) model.add(lems.Dimension("time", t=1)) @@ -21,7 +21,7 @@ iaf1.add(lems.Parameter("reset", "voltage")) -fn = "/tmp/maxmin.xml" +fn = "maxmin.xml" model.export_to_file(fn) print("----------------------------------------------") diff --git a/examples/maxmin.xml b/examples/maxmin.xml new file mode 100644 index 0000000..a4f428d --- /dev/null +++ b/examples/maxmin.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + From f19ab2df1fffb4e137225aa5cc1ecf48bb2d0711 Mon Sep 17 00:00:00 2001 From: pgleeson Date: Tue, 20 Feb 2024 18:54:24 +0000 Subject: [PATCH 10/11] Better closing of files --- lems/model/model.py | 10 +++++++--- setup.cfg | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/lems/model/model.py b/lems/model/model.py index 527bd91..cbe2d74 100644 --- a/lems/model/model.py +++ b/lems/model/model.py @@ -272,7 +272,8 @@ def include_file(self, path, include_dirs=[]): parser = LEMSFileParser(self, inc_dirs, self.include_includes) if os.access(path, os.F_OK): if not path in self.included_files: - parser.parse(open(path).read()) + with open(path) as f: + parser.parse(f.read()) self.included_files.append(path) return else: @@ -284,7 +285,8 @@ def include_file(self, path, include_dirs=[]): new_path = inc_dir + "/" + path if os.access(new_path, os.F_OK): if not new_path in self.included_files: - parser.parse(open(new_path).read()) + with open(new_path) as f: + parser.parse(f.read()) self.included_files.append(new_path) return else: @@ -376,7 +378,9 @@ def export_to_file(self, filepath, level_prefix=" "): f = open(filepath, "w") f.write(xmlstr) - f.close() + f.flush() + os.fsync(f.fileno()) + def resolve(self) -> lems.model.Model: """ diff --git a/setup.cfg b/setup.cfg index a84acf1..6806b45 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = PyLEMS -version = 0.6.5 +version = 0.6.6 author = PyLEMS authors and contributors author_email = gautham@lisphacker.org, p.gleeson@gmail.com maintainer_email = p.gleeson@gmail.com From c6a67e12d631c7098497c2ccba027b6d9c4037fa Mon Sep 17 00:00:00 2001 From: pgleeson Date: Mon, 19 Aug 2024 16:50:06 +0100 Subject: [PATCH 11/11] Update pylems examples to formatted version from lems repo --- examples/SimpleNetwork.xml | 9 +- examples/SingleSimulation.xml | 25 +-- examples/elecdims.xml | 3 +- examples/ex2dims.xml | 10 +- examples/example1.xml | 295 ++++++++++++++-------------------- examples/example2.xml | 35 ++-- examples/example3.xml | 56 ++----- examples/example4.xml | 63 ++------ examples/example5.xml | 69 ++------ examples/example6.xml | 33 +--- examples/example7.xml | 29 +--- examples/example8.xml | 74 +++------ examples/hhaltgate.xml | 14 +- examples/hhcell.xml | 14 +- examples/hhchannel.xml | 20 +-- examples/hhmodels.xml | 8 +- examples/misciaf.xml | 12 +- examples/spikegenerators.xml | 7 +- 18 files changed, 233 insertions(+), 543 deletions(-) diff --git a/examples/SimpleNetwork.xml b/examples/SimpleNetwork.xml index 507842a..9a55a87 100644 --- a/examples/SimpleNetwork.xml +++ b/examples/SimpleNetwork.xml @@ -4,7 +4,6 @@ - @@ -13,8 +12,6 @@ - - @@ -23,17 +20,13 @@ - - - + - - diff --git a/examples/SingleSimulation.xml b/examples/SingleSimulation.xml index 1a2319d..e6a7d55 100644 --- a/examples/SingleSimulation.xml +++ b/examples/SingleSimulation.xml @@ -1,22 +1,17 @@ - - - + - - - @@ -27,20 +22,15 @@ - - - - - @@ -48,28 +38,17 @@ - - - - - - - - - - - - \ No newline at end of file + diff --git a/examples/elecdims.xml b/examples/elecdims.xml index c81221a..612f2cf 100644 --- a/examples/elecdims.xml +++ b/examples/elecdims.xml @@ -4,5 +4,4 @@ - - \ No newline at end of file + diff --git a/examples/ex2dims.xml b/examples/ex2dims.xml index aeb1e22..702c319 100644 --- a/examples/ex2dims.xml +++ b/examples/ex2dims.xml @@ -1,5 +1,4 @@ - - + @@ -8,8 +7,8 @@ - - + + @@ -19,5 +18,4 @@ - - \ No newline at end of file + diff --git a/examples/example1.xml b/examples/example1.xml index d84c23b..393f3f8 100644 --- a/examples/example1.xml +++ b/examples/example1.xml @@ -1,275 +1,220 @@ + - - - - - - - - - + + + + + + - - - + + + - - - - - - - - - - - - + + + + + + + + + + + - - + - + - - - - - - - + + + + + - - - + + - + - - - - - + + + - - + + - - + + - - - + + - - + + - - - - - - + + + + + - - + - - + - - - + + - - - - - - + + + + + - - - - - + + + + + - - - - - - + + + + + - - - - - - - + + + + + + + - - - - + + + - - + + - - - + + - - + + - - - + + - - - - - - - + + + + + - - - + + + - - + - - - - - - - + + + + + - + - - - - + + + - - - - + + - - - - - - - - - - - - - - + + + + + - - - - - - + + + + - + - - - - + - - - - + + + + - - \ No newline at end of file + diff --git a/examples/example2.xml b/examples/example2.xml index bdfe1b4..26e3953 100644 --- a/examples/example2.xml +++ b/examples/example2.xml @@ -1,51 +1,40 @@ - - + - - + - - + - - + - - - + - - - - - - + + + - - - + + + - - \ No newline at end of file + diff --git a/examples/example3.xml b/examples/example3.xml index 7e78b8b..bbee903 100644 --- a/examples/example3.xml +++ b/examples/example3.xml @@ -1,21 +1,13 @@ - - - + - - - - - + - @@ -23,98 +15,75 @@ - - - - - + + - - - - - + - - - - + - - - - - + - - - - + - - - - - - + + @@ -123,7 +92,4 @@ - - - - \ No newline at end of file + diff --git a/examples/example4.xml b/examples/example4.xml index d905399..74660f4 100644 --- a/examples/example4.xml +++ b/examples/example4.xml @@ -1,46 +1,35 @@ - - - + - - - - - - + - - @@ -51,12 +40,10 @@ - - @@ -64,7 +51,6 @@ - @@ -72,8 +58,7 @@ - - + @@ -82,53 +67,42 @@ - - - - - + + + - - + - - - - - - - - + + + - - - @@ -139,24 +113,19 @@ - - + - - - - - - + + @@ -165,15 +134,11 @@ - - - - - \ No newline at end of file + diff --git a/examples/example5.xml b/examples/example5.xml index c574a42..38aa956 100644 --- a/examples/example5.xml +++ b/examples/example5.xml @@ -1,5 +1,4 @@ - @@ -9,12 +8,10 @@ - - @@ -24,50 +21,39 @@ - - + - - - - - - - - + + - - @@ -78,21 +64,17 @@ - - - - @@ -100,8 +82,7 @@ - - + @@ -110,35 +91,26 @@ - - - - - - - - + + + - - + - - - @@ -146,21 +118,15 @@ - - - - - - + + + - - - @@ -172,27 +138,22 @@ - - + - - - - - + + - - \ No newline at end of file + diff --git a/examples/example6.xml b/examples/example6.xml index 8dd4025..12e3f6d 100644 --- a/examples/example6.xml +++ b/examples/example6.xml @@ -1,44 +1,35 @@ - - - + + - - + - - - + - - + - + - - - @@ -49,25 +40,19 @@ - - - - - - - + @@ -75,6 +60,4 @@ --> - - - \ No newline at end of file + diff --git a/examples/example7.xml b/examples/example7.xml index 4e46e4c..89c6311 100644 --- a/examples/example7.xml +++ b/examples/example7.xml @@ -1,76 +1,59 @@ - - - - + + - - - - - + - - - - - - - + - - + - - - - \ No newline at end of file + diff --git a/examples/example8.xml b/examples/example8.xml index 43d0b54..b7dbc6f 100644 --- a/examples/example8.xml +++ b/examples/example8.xml @@ -1,119 +1,95 @@ - - - - + - - - - - - - - - + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - + - - + - - - - + - - - - + @@ -121,6 +97,4 @@ - - - \ No newline at end of file + diff --git a/examples/hhaltgate.xml b/examples/hhaltgate.xml index 39906ee..64c3f8d 100644 --- a/examples/hhaltgate.xml +++ b/examples/hhaltgate.xml @@ -1,24 +1,18 @@ - - + - - - - + - - + - - \ No newline at end of file + diff --git a/examples/hhcell.xml b/examples/hhcell.xml index 90575e1..782f299 100644 --- a/examples/hhcell.xml +++ b/examples/hhcell.xml @@ -1,12 +1,9 @@ - - - @@ -14,36 +11,29 @@ - - - - - - - + - - \ No newline at end of file + diff --git a/examples/hhchannel.xml b/examples/hhchannel.xml index 7e7c6b4..debc1cb 100644 --- a/examples/hhchannel.xml +++ b/examples/hhchannel.xml @@ -1,5 +1,4 @@ - @@ -7,7 +6,6 @@ - @@ -16,49 +14,42 @@ - - + - - - - + - - + - + - - @@ -68,7 +59,4 @@ - - - diff --git a/examples/hhmodels.xml b/examples/hhmodels.xml index 60c3685..770bbe9 100644 --- a/examples/hhmodels.xml +++ b/examples/hhmodels.xml @@ -1,29 +1,25 @@ - + - - - - - \ No newline at end of file + diff --git a/examples/misciaf.xml b/examples/misciaf.xml index 6899cae..10ea7f2 100644 --- a/examples/misciaf.xml +++ b/examples/misciaf.xml @@ -1,7 +1,5 @@ - - @@ -9,24 +7,18 @@ - - - - + - - - - \ No newline at end of file + diff --git a/examples/spikegenerators.xml b/examples/spikegenerators.xml index dd8db3f..6c0d8da 100644 --- a/examples/spikegenerators.xml +++ b/examples/spikegenerators.xml @@ -1,7 +1,5 @@ - - @@ -17,7 +15,6 @@ - @@ -28,6 +25,4 @@ - - - \ No newline at end of file +