Skip to content

Commit 5f82541

Browse files
committed
Fix for empty array
1 parent 9829e79 commit 5f82541

File tree

3 files changed

+11
-10
lines changed

3 files changed

+11
-10
lines changed

pyaml/arrays/bpm_array.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ def __init__(self, arrayName: str, bpms: list[BPM], use_aggregator=True):
7777
self.__hpos = RWBPMSinglePosition(arrayName, bpms, 0)
7878
self.__vpos = RWBPMSinglePosition(arrayName, bpms, 1)
7979

80-
if use_aggregator:
80+
if use_aggregator and len(bpms) > 0:
8181
aggs = self.get_peer().create_bpm_aggregators(bpms)
8282
self.__hvpos.set_aggregator(aggs[0])
8383
self.__hpos.set_aggregator(aggs[1])

pyaml/arrays/element_array.py

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,15 @@ def __init__(self, arrayName: str, elements: list[Element], use_aggregator=True)
3030
"""
3131
super().__init__(i for i in elements)
3232
self.__name = arrayName
33-
self.__peer = self[0]._peer if len(self) > 0 else None
34-
self.__use_aggretator = use_aggregator
35-
if self.__peer is None or any([m._peer != self.__peer for m in self]):
36-
raise PyAMLException(
37-
f"{self.__class__.__name__} {self.get_name()}: "
38-
"All elements must be attached to the same instance "
39-
"of either a Simulator or a ControlSystem"
40-
)
33+
if len(elements) > 0:
34+
self.__peer = self[0]._peer if len(self) > 0 else None
35+
self.__use_aggretator = use_aggregator
36+
if self.__peer is None or any([m._peer != self.__peer for m in self]):
37+
raise PyAMLException(
38+
f"{self.__class__.__name__} {self.get_name()}: "
39+
"All elements must be attached to the same instance "
40+
"of either a Simulator or a ControlSystem"
41+
)
4142

4243
def get_peer(self):
4344
"""

pyaml/arrays/magnet_array.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ def __init__(self, arrayName: str, magnets: list[Magnet], use_aggregator=True):
103103
self.__rwstrengths = RWMagnetStrength(arrayName, magnets)
104104
self.__rwhardwares = RWMagnetHardware(arrayName, magnets)
105105

106-
if use_aggregator:
106+
if use_aggregator and len(magnets) > 0:
107107
aggs = self.get_peer().create_magnet_strength_aggregator(magnets)
108108
aggh = self.get_peer().create_magnet_harddware_aggregator(magnets)
109109
self.__rwstrengths.set_aggregator(aggs)

0 commit comments

Comments
 (0)