'Add SSP projection vectors.
Parameters
projs : list
List with projection vectors.
remove_existing : bool
Remove the projection vectors currently in the file.
verbose : bool, str, int, or None
If not None, override default verbose level (see
:func:`mne.verbose` and :ref:`Logging documentation <tut_logging>`
for more).
Returns
self : instance of Raw | Epochs | Evoked
The data container.'

@verbose
def add_proj(self, projs, remove_existing=False, verbose=None):

    if isinstance(projs, Projection):
        projs = [projs]
    if ((not isinstance(projs, list)) and (not all((isinstance(p, Projection) for p in projs)))):
        raise ValueError('Only    projs    can    be    added.    You    supplied    something    else.')
    projs = deactivate_proj(projs, copy=True, verbose=self.verbose)
    if remove_existing:
        if any((p['active'] for p in self.info['projs'])):
            raise ValueError('Cannot    remove    projectors    that    have    already    been    applied')
        self.info['projs'] = projs
    else:
        self.info['projs'].extend(projs)
    self.info['projs'] = _uniquify_projs(self.info['projs'], check_active=False, sort=False)
    return self
