It was my intuitive way of getting two things separated. The init process and later application. The reason i saw is that the info dict must be preprocessed by the constructor before the self.dict lookups work, also acessing self.data.

My goal was to keep the number of arguments passed to the new method as low as possible.
Makes sense? If you see another way I'm happy to learn abput it.

On 25.02.2013, at 21:59, Eric89GXL <notifications@github.com> wrote:

> In mne/fiff/evoked.py:
> 
> > -                logger.info('The projection vectors do not apply to these'
> > -                            ' channels')
> > -                self.proj = None
> > -            else:
> > -                logger.info('Created an SSP operator (subspace dimension '
> > -                            '= %d)' % nproj)
> > -                self.proj = proj
> > -
> > -            #   The projection items have been activated
> > -            info['projs'] = activate_proj(info['projs'], copy=False)
> > -
> > -        if self.proj is not None:
> > -            logger.info("SSP projectors applied...")
> > -            all_data = np.dot(self.proj, all_data)
> > -
> > +        all_data = self._apply_projector(data=all_data, proj=proj, info=info)
> I think this method _apply_projector() could be easily combined with the apply_projector() function. Is there a reason to have them be separate?
> 
> —
> Reply to this email directly or view it on GitHub.
>