code: def phases_with(self, **kwargs) -> [PhaseOutput]:
          
          return [phase for phase in self.phases if
                  all([getattr(phase, key) == value for key, value in kwargs.items()])]
docs: Filters phases. If no arguments are passed all phases are returned. Arguments must be key value pairs, with
          phase, data or pipeline as the key.
  
          Parameters
          ----------
          kwargs
              Filters, e.g. pipeline=pipeline1