@@ -2551,6 +2551,72 @@ def get_morphology_root(self):
2551
2551
assert len(segs) == 1
2552
2552
return segs[0]
2553
2553
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
+
2554
2620
''' ,
2555
2621
class_names = ("Cell" ),
2556
2622
)
0 commit comments