From 7970ff31ecb47e09629dd62f7157b458b25b5566 Mon Sep 17 00:00:00 2001 From: Pooja Babu <75320801+pnbabu@users.noreply.github.com> Date: Tue, 8 Aug 2023 17:50:51 +0200 Subject: [PATCH] Modify NEST version detection (#924) --- .github/workflows/nestml-build.yml | 2 +- pynestml/codegeneration/nest_tools.py | 29 +++++++++++++++------------ 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/.github/workflows/nestml-build.yml b/.github/workflows/nestml-build.yml index 48b3b37ac..198c6848a 100644 --- a/.github/workflows/nestml-build.yml +++ b/.github/workflows/nestml-build.yml @@ -119,7 +119,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - nest_branch: ["v2.20.2", "v3.0", "v3.1", "v3.2", "v3.3", "v3.4", "master"] + nest_branch: ["v2.20.2", "v3.0", "v3.1", "v3.2", "v3.3", "v3.4", "v3.5", "master"] fail-fast: false steps: # Checkout the repository contents diff --git a/pynestml/codegeneration/nest_tools.py b/pynestml/codegeneration/nest_tools.py index b0e9fa9d0..68718a723 100644 --- a/pynestml/codegeneration/nest_tools.py +++ b/pynestml/codegeneration/nest_tools.py @@ -60,20 +60,23 @@ def detect_nest_version(cls) -> str: pass if "DataConnect" in dir(nest): - nest_version = "v2.20.2" - elif "kernel_status" not in dir(nest): # added in v3.1 - nest_version = "v3.0" - elif "Kplus" in syn.get().keys(): # "Kplus" trace variable is made accessible via get_status() in master - nest_version = "master" - elif "prepared" in nest.GetKernelStatus().keys(): # "prepared" key was added after v3.3 release - nest_version = "v3.4" - elif "tau_u_bar_minus" in neuron.get().keys(): # added in v3.3 - nest_version = "v3.3" - elif "tau_Ca" in vt.get().keys(): # removed in v3.2 - nest_version = "v3.1" + nest_version = "v2.20.2" else: - nest_version = "v3.2" - + nest_version = "v" + nest.__version__ + if nest_version.startswith("v3.5"): + if "post0.dev0" in nest_version: + nest_version = "master" + else: + if "kernel_status" not in dir(nest): # added in v3.1 + nest_version = "v3.0" + elif "prepared" in nest.GetKernelStatus().keys(): # "prepared" key was added after v3.3 release + nest_version = "v3.4" + elif "tau_u_bar_minus" in neuron.get().keys(): # added in v3.3 + nest_version = "v3.3" + elif "tau_Ca" in vt.get().keys(): # removed in v3.2 + nest_version = "v3.1" + else: + nest_version = "v3.2" except ModuleNotFoundError: nest_version = ""