if (cp_filename and cp_frequency and
           gen % cp_frequency == 0 and
           (cp_period is None or time.time() - time_last_save > cp_period)):