Skip to content

Resolving #283 user warning when delay_after_gen is not in use #297

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 1 commit into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 16 additions & 13 deletions pygad/pygad.py
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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:
Expand Down Expand Up @@ -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:
Expand Down