code: def filter(self, obj, *args, **kwargs):
          
          for _, _, func in self._filter_order:
              obj = func(obj, *args, **kwargs)
              if obj is None:
                  return None
          return obj
docs: Filter the given object through the filter chain.
  
          :param obj: The object to filter
          :param args: Additional arguments to pass to each filter function.
          :param kwargs: Additional keyword arguments to pass to each filter
                         function.
          :return: The filtered object or :data:`None`
  
          See the documentation of :class:`Filter` on how filtering operates.
  
          Returns the object returned by the last function in the filter chain or
          :data:`None` if any function returned :data:`None`.