diff --git a/slate/slate.py b/slate/slate.py index a985e1c..01c8f2b 100644 --- a/slate/slate.py +++ b/slate/slate.py @@ -126,16 +126,18 @@ class Slate(): child_keys = '.'.join(keys_arr[1:]) return self.consume(child, child_keys, default=default, **kwargs) - def _calc_num_jobs(self, schedulerC): - reps = schedulerC.get('repetitions', 1) - agents_per_job = schedulerC.get('agents_per_job', 1) - reps_per_agent = schedulerC.get('reps_per_agent', 1) + def _calc_num_jobs(self, schedC): + schedulerC = copy.deepcopy(schedC) + reps = schedulerC.consume('repetitions', 1) + agents_per_job = schedulerC.consume('agents_per_job', 1) + reps_per_agent = schedulerC.consume('reps_per_agent', 1) reps_per_job = reps_per_agent * agents_per_job jobs_needed = math.ceil(reps / reps_per_job) return jobs_needed - def _reps_for_job(self, schedulerC, job_id): - reps = schedulerC.get('repetitions', 1) + def _reps_for_job(self, schedC, job_id): + schedulerC = copy.deepcopy(schedC) + reps = schedulerC.consume('repetitions', 1) if job_id == None: return list(range(0, reps)) num_jobs = self._calc_num_jobs(schedulerC)