def _make_iterator(self, start_run_idx, copy_data=False, **kwargs):
        """ Returns an iterator over all runs and yields the keyword arguments """
        if (not self._freeze_input) or (not self._multiproc):
            kwargs = self._make_kwargs(**kwargs)

        def _do_iter():
            if self._map_arguments:

                self._args = tuple(iter(arg) for arg in self._args)
                for key in compat.listkeys(self._kwargs):
                    self._kwargs[key] = iter(self._kwargs[key])

                for idx in self._make_index_iterator(start_run_idx):
                    iter_args = tuple(next(x) for x in self._args)
                    iter_kwargs = {}
                    for key in self._kwargs:
                        iter_kwargs[key] = next(self._kwargs[key])
                    kwargs['runargs'] = iter_args
                    kwargs['runkwargs'] = iter_kwargs
                    if self._freeze_input:
                        # Frozen pool needs current run index
                        kwargs['idx'] = idx
                    if copy_data:
                        copied_kwargs = kwargs.copy()
                        if not self._freeze_input:
                            copied_kwargs['traj'] = self._traj.f_copy(copy_leaves='explored',
                                                                  with_links=True)
                        yield copied_kwargs
                    else:
                        yield kwargs
            else:
                for idx in self._make_index_iterator(start_run_idx):
                    if self._freeze_input:
                        # Frozen pool needs current run index
                        kwargs['idx'] = idx
                    if copy_data:
                        copied_kwargs = kwargs.copy()
                        if not self._freeze_input:
                            copied_kwargs['traj'] = self._traj.f_copy(copy_leaves='explored',
                                                                  with_links=True)
                        yield copied_kwargs
                    else:
                        yield kwargs
        return _do_iter()
dataset/ETHPy150Open SmokinCaterpillar/pypet/pypet/environment.py/Environment._make_iterator/original