def _set_run_dirs(self): """ Sets the relative run directories as instance variables for all runs """ def run_number(number): return str(number).zfill(5) def get_shard_dir(shard_number): first_run = self.shard_size * (shard_number - 1) + 1 last_run = self.shard_size * (shard_number) return 'runs-%s-%s' % (run_number(first_run), run_number(last_run)) current_run = 0 shards = tools.divide_list(self.runs, self.shard_size) for shard_number, shard in enumerate(shards, start=1): shard_dir = os.path.join(self.path, get_shard_dir(shard_number)) for run in shard: current_run += 1 rel_dir = os.path.join(get_shard_dir(shard_number), run_number(current_run)) run.dir = self._get_abs_path(rel_dir)