diff --git a/pygenn/genn_groups.py b/pygenn/genn_groups.py index d0a8b1c685..93c4f9a395 100644 --- a/pygenn/genn_groups.py +++ b/pygenn/genn_groups.py @@ -293,29 +293,22 @@ def _load_egp(self, egp_dict=None, egp_suffix=""): egp_data.type) # Copy values egp_data.view[:] = egp_data.values - else: - if egp_data.values is None: - cname = self.__class__.__name__ - mname = self.name - raise Exception(f"Extra global parameter {egp_name} " - f"for {mname} ({cname}) can not be set " - f"to None, it should be {egp_data.type}") - else: - # Allocate memory - self._model._slm.allocate_extra_global_param( - self.name, egp_name + egp_suffix, len(egp_data.values)) - - # Assign view - egp_data.view = self._assign_ext_ptr_array(egp_name + egp_suffix, - len(egp_data.values), - egp_data.type) - - # Copy values - egp_data.view[:] = egp_data.values - - # Push egp_data - self._model._slm.push_extra_global_param( - self.name, egp_name + egp_suffix, len(egp_data.values)) + elif egp_data.values is not None: + # Allocate memory + self._model._slm.allocate_extra_global_param( + self.name, egp_name + egp_suffix, len(egp_data.values)) + + # Assign view + egp_data.view = self._assign_ext_ptr_array(egp_name + egp_suffix, + len(egp_data.values), + egp_data.type) + + # Copy values + egp_data.view[:] = egp_data.values + + # Push egp_data + self._model._slm.push_extra_global_param( + self.name, egp_name + egp_suffix, len(egp_data.values)) def _load_var_init_egps(self, var_dict=None): # If no variable dictionary is specified, use standard one