Skip to content

Commit 9ec1eae

Browse files
committed
Resolving user warning when delay_after_gen is not in use
1 parent 0e8be9d commit 9ec1eae

File tree

1 file changed

+16
-13
lines changed

1 file changed

+16
-13
lines changed

pygad/pygad.py

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ def __init__(self,
5858
on_mutation=None,
5959
on_generation=None,
6060
on_stop=None,
61-
delay_after_gen=0.0,
61+
delay_after_gen=None,
6262
save_best_solutions=False,
6363
save_solutions=False,
6464
suppress_warnings=False,
@@ -1134,18 +1134,21 @@ def __init__(self,
11341134
self.on_stop = None
11351135

11361136
# Validate delay_after_gen
1137-
if type(delay_after_gen) in GA.supported_int_float_types:
1138-
if delay_after_gen != 0.0:
1139-
if not self.suppress_warnings:
1140-
warnings.warn("The 'delay_after_gen' parameter is deprecated starting from PyGAD 3.3.0. To delay or pause the evolution after each generation, assign a callback function/method to the 'on_generation' parameter to adds some time delay.")
1141-
if delay_after_gen >= 0.0:
1142-
self.delay_after_gen = delay_after_gen
1137+
if delay_after_gen is None:
1138+
self.delay_after_gen = None
1139+
else:
1140+
if type(delay_after_gen) in GA.supported_int_float_types:
1141+
if delay_after_gen != 0.0:
1142+
if not self.suppress_warnings:
1143+
warnings.warn("The 'delay_after_gen' parameter is deprecated starting from PyGAD 3.3.0. To delay or pause the evolution after each generation, assign a callback function/method to the 'on_generation' parameter to adds some time delay.")
1144+
if delay_after_gen >= 0.0:
1145+
self.delay_after_gen = delay_after_gen
1146+
else:
1147+
self.valid_parameters = False
1148+
raise ValueError(f"The value passed to the 'delay_after_gen' parameter must be a non-negative number. The value passed is ({delay_after_gen}) of type {type(delay_after_gen)}.")
11431149
else:
11441150
self.valid_parameters = False
1145-
raise ValueError(f"The value passed to the 'delay_after_gen' parameter must be a non-negative number. The value passed is ({delay_after_gen}) of type {type(delay_after_gen)}.")
1146-
else:
1147-
self.valid_parameters = False
1148-
raise TypeError(f"The value passed to the 'delay_after_gen' parameter must be of type int or float but {type(delay_after_gen)} found.")
1151+
raise TypeError(f"The value passed to the 'delay_after_gen' parameter must be of type int or float but {type(delay_after_gen)} found.")
11491152

11501153
# Validate save_best_solutions
11511154
if type(save_best_solutions) is bool:
@@ -2054,8 +2057,8 @@ def run(self):
20542057

20552058
if stop_run:
20562059
break
2057-
2058-
time.sleep(self.delay_after_gen)
2060+
if self.delay_after_gen is not None:
2061+
time.sleep(self.delay_after_gen)
20592062

20602063
# Save the fitness of the last generation.
20612064
if self.save_solutions:

0 commit comments

Comments
 (0)