code: def pipe(self, methodname, first_arg, *args, **kwargs):
          
  
          for plugin in self._plugins:
              method = getattr(plugin, methodname, None)
              if method is None:
                  continue
              r = method(first_arg, *args, **kwargs)
              if r is not None:
                  first_arg = r
          return r
docs: Call a common method on all the plugins, if it exists. The return
          value of each call becomes the replaces the first argument in the given
          argument list to pass to the next.
  
          Useful to utilize plugins as sets of filters.