From 64c34134b134e491ca93d550ff7ce3a3e6cd4034 Mon Sep 17 00:00:00 2001
From: Peter Schubert <Peter.Schubert@hhu.de>
Date: Fri, 9 Sep 2022 11:38:51 +0200
Subject: [PATCH] reaction local parameters collect also units

---
 xbanalysis/model/xba_reaction.py | 2 +-
 xbanalysis/utils/utils.py        | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/xbanalysis/model/xba_reaction.py b/xbanalysis/model/xba_reaction.py
index e483fee..31335ed 100644
--- a/xbanalysis/model/xba_reaction.py
+++ b/xbanalysis/model/xba_reaction.py
@@ -34,7 +34,7 @@ class XbaReaction:
             self.kinetic_law = s_reaction['kineticLaw'] if type(s_reaction['kineticLaw']) == str else ''
             # convert to numpy, replace local parameters with numerical values, inline lambda functions:
             expanded_kl = sbmlxdf.misc.mathml2numpy(self.kinetic_law)
-            for pid, val in self.local_params.items():
+            for pid, [val, _] in self.local_params.items():
                 expanded_kl = re.sub(r'\b' + pid + r'\b', str(val), expanded_kl)
             self.expanded_kl = expand_kineticlaw(expanded_kl, functions)
             for cid in compartments.keys():
diff --git a/xbanalysis/utils/utils.py b/xbanalysis/utils/utils.py
index 348bf00..b91343f 100644
--- a/xbanalysis/utils/utils.py
+++ b/xbanalysis/utils/utils.py
@@ -92,7 +92,7 @@ def get_local_params(reaction):
     if 'localParams' in reaction:
         for lp in record_generator(reaction['localParams']):
             params = extract_params(lp)
-            local_params[params['id']] = float(params['value'])
+            local_params[params['id']] = [float(params['value']), params.get('units', 'dimensionless')]
     return local_params
 
 
-- 
GitLab