Description
FederatedLearning.__init__() unpacks the result of self.module_instances.get()
directly without a None guard. If the user's algorithm YAML omits the aggregation
block, .get() returns None and Python crashes with:
TypeError: cannot unpack non-iterable NoneType object
File and Line
core/testcasecontroller/algorithm/paradigm/federated_learning/federated_learning.py line 78
Steps to Reproduce
Run any federated learning benchmark with an algorithm YAML missing
the aggregation module entry.
Expected Behavior
A clear ValueError telling the user which module is missing and how to fix their YAML.
Actual Behavior
Confusing TypeError with no hint about the root cause.
Proposed Fix
Guard the .get() call before unpacking and raise a descriptive ValueError.
Description
FederatedLearning.__init__()unpacks the result ofself.module_instances.get()directly without a None guard. If the user's algorithm YAML omits the
aggregationblock,
.get()returnsNoneand Python crashes with:TypeError: cannot unpack non-iterable NoneType object
File and Line
core/testcasecontroller/algorithm/paradigm/federated_learning/federated_learning.pyline 78Steps to Reproduce
Run any federated learning benchmark with an algorithm YAML missing
the
aggregationmodule entry.Expected Behavior
A clear ValueError telling the user which module is missing and how to fix their YAML.
Actual Behavior
Confusing TypeError with no hint about the root cause.
Proposed Fix
Guard the
.get()call before unpacking and raise a descriptive ValueError.