@@ -2551,6 +2551,72 @@ def get_morphology_root(self):
25512551 assert len(segs) == 1
25522552 return segs[0]
25532553
2554+
2555+ def get_parameters(self):
2556+ """Get parameters for this cell component
2557+
2558+ .. versionadded:: 0.6.6
2559+
2560+ :returns: dictionary of dicts with parameter names as keys, and
2561+ parameter values as values
2562+
2563+ """
2564+ parameters = {}
2565+ bp = None
2566+ mp = None
2567+ ip = None
2568+
2569+ # can't use self.get_parameters() since it creates a recursion loop
2570+ # or can I: needs thought
2571+ info = self.info(show_contents="all", return_format="dict")
2572+ for member, memberinfo in info.items():
2573+ if (
2574+ memberinfo["type"].startswith("Nml2Quantity_")
2575+ or memberinfo["type"] == "NmlId"
2576+ ):
2577+ if memberinfo["members"]:
2578+ parameters[member] = memberinfo["members"]
2579+
2580+ if self.__class__.__name__ == "Cell":
2581+ bp = self.biophysical_properties
2582+ mp = bp.membrane_properties
2583+ ip = bp.intracellular_properties
2584+ elif self.__class__.__name__ == "Cell2CaPools":
2585+ bp = self.biophysical_properties2_ca_pools
2586+ mp = bp.membrane_properties2_ca_pools
2587+ ip = bp.intracellular_properties2_ca_pools
2588+
2589+ meminfo = mp.info(show_contents="all", return_format="dict")
2590+ intinfo = ip.info(show_contents="all", return_format="dict")
2591+
2592+ for member, memberinfo in meminfo.items():
2593+ if (
2594+ memberinfo["type"].startswith("Nml2Quantity_")
2595+ or memberinfo["type"] == "NmlId"
2596+ ):
2597+ if memberinfo["members"]:
2598+ parameters[member] = memberinfo["members"]
2599+ else:
2600+ for m in memberinfo["members"]:
2601+ dictkey = memberinfo['type']
2602+ dictkey += f":{m.id}" if getattr(m, "id", None) else ""
2603+ parameters[dictkey] = m.get_parameters()
2604+
2605+ for member, memberinfo in intinfo.items():
2606+ if (
2607+ memberinfo["type"].startswith("Nml2Quantity_")
2608+ or memberinfo["type"] == "NmlId"
2609+ ):
2610+ if memberinfo["members"]:
2611+ parameters[member] = memberinfo["members"]
2612+ else:
2613+ for m in memberinfo["members"]:
2614+ dictkey = memberinfo['type']
2615+ dictkey += f":{m.id}" if getattr(m, "id", None) else ""
2616+ parameters[dictkey] = m.get_parameters()
2617+
2618+ return parameters
2619+
25542620 ''' ,
25552621 class_names = ("Cell" ),
25562622)
0 commit comments