From 9ec1eae28f02e35bd0fdecfcdf4d801080243304 Mon Sep 17 00:00:00 2001 From: ruthl Date: Wed, 17 Jul 2024 17:05:28 +0930 Subject: [PATCH] Resolving user warning when delay_after_gen is not in use --- pygad/pygad.py | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/pygad/pygad.py b/pygad/pygad.py index dad0be8..3032331 100644 --- a/pygad/pygad.py +++ b/pygad/pygad.py @@ -58,7 +58,7 @@ def __init__(self, on_mutation=None, on_generation=None, on_stop=None, - delay_after_gen=0.0, + delay_after_gen=None, save_best_solutions=False, save_solutions=False, suppress_warnings=False, @@ -1134,18 +1134,21 @@ def __init__(self, self.on_stop = None # Validate delay_after_gen - if type(delay_after_gen) in GA.supported_int_float_types: - if delay_after_gen != 0.0: - if not self.suppress_warnings: - 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.") - if delay_after_gen >= 0.0: - self.delay_after_gen = delay_after_gen + if delay_after_gen is None: + self.delay_after_gen = None + else: + if type(delay_after_gen) in GA.supported_int_float_types: + if delay_after_gen != 0.0: + if not self.suppress_warnings: + 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.") + if delay_after_gen >= 0.0: + self.delay_after_gen = delay_after_gen + else: + self.valid_parameters = False + 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)}.") else: self.valid_parameters = False - 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)}.") - else: - self.valid_parameters = False - 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.") + 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.") # Validate save_best_solutions if type(save_best_solutions) is bool: @@ -2054,8 +2057,8 @@ def run(self): if stop_run: break - - time.sleep(self.delay_after_gen) + if self.delay_after_gen is not None: + time.sleep(self.delay_after_gen) # Save the fitness of the last generation. if self.save_solutions: