  
      def __init__(self, nlp: Language, names: List[str]) -> None:
          self.nlp = nlp
          self.names = names
          # Important! Not deep copy -- we just want the container (but we also
          # want to support people providing arbitrarily typed nlp.pipeline
          # objects.)
          self.original_pipeline = copy(nlp.pipeline)
          self.metas = {name: nlp.get_pipe_meta(name) for name in names}
          self.configs = {name: nlp.get_pipe_config(name) for name in names}
          list.__init__(self)
          self.extend(nlp.remove_pipe(name) for name in names)
  
      def __enter__(self):
          return self
 
</s> remove         self.extend(nlp.remove_pipe(name) for name in names)
 </s> add         self.extend(self.names) </s> remove         current, self.nlp.pipeline = self.nlp.pipeline, self.original_pipeline
        unexpected = [name for name, pipe in current if not self.nlp.has_pipe(name)]
        if unexpected:
            # Don't change the pipeline if we're raising an error.
            self.nlp.pipeline = current
            raise ValueError(Errors.E008.format(names=unexpected))
        self.nlp._pipe_meta.update(self.metas)
        self.nlp._pipe_configs.update(self.configs)
 </s> add         for name in self.names:
            self.nlp.enable_pipe(name)
        # TODO: maybe add some more checks / catch errors that may occur if
        # user removes a disabled pipe in the with block </s> remove         for pipe_name in self.pipe_names:
 </s> add         for pipe_name in self._pipe_names: </s> remove         if name in self.pipe_names:
            raise ValueError(Errors.E007.format(name=name, opts=self.pipe_names))
 </s> add         if name in self._pipe_names:
            raise ValueError(Errors.E007.format(name=name, opts=self._pipe_names)) </s> remove         for name, proc in self.pipeline:
            if not hasattr(proc, "name"):
                continue
 </s> add         for name, proc in self._pipeline:
            # TODO: why did we add this?
            # if not hasattr(proc, "name"):
            #     continue
        for name in self.names:
            self.nlp.disable_pipe(name)
  
      def __init__(self, nlp: Language, names: List[str]) -> None:
          self.nlp = nlp
          self.names = names
        for name in self.names:
            self.nlp.disable_pipe(name)
        for name in self.names:
            self.nlp.disable_pipe(name)
        for name in self.names:
            self.nlp.disable_pipe(name)
        for name in self.names:
            self.nlp.disable_pipe(name)
        for name in self.names:
            self.nlp.disable_pipe(name)
        for name in self.names:
            self.nlp.disable_pipe(name)
          list.__init__(self)
          self.extend(nlp.remove_pipe(name) for name in names)
  
      def __enter__(self):
          return self
keep keep keep keep replace replace replace replace replace replace keep keep keep keep keep
 Allow loaded but disabled components 
spacy/language.py