code: def filter_empty_parameters(func):
      
      @wraps(func)
      def func_wrapper(self, *args, **kwargs):
          my_kwargs = {key: value for key, value in kwargs.items()
                       if value not in EMPTIES}
          args_is_empty = all(arg in EMPTIES for arg in args)
  
          if (
                  {'source', 'material'}.issuperset(my_kwargs) or not my_kwargs
          ) and args_is_empty:
              return
          return func(self, *args, **my_kwargs)
  
      return func_wrapper
docs: Decorator that is filtering empty parameters.
  
      :param func: function that you want wrapping
      :type func: function