code: def add_filter_set(self, filter_name, filter_set, cached=True):
          
          try:
              hash(filter_name)
          except TypeError as err:
              raise ValueError('Filter set name must be as instance of hashable type: %s' % str(err))
  
          if not isinstance(filter_set, list):
              raise ValueError('Filters must be a list.')
  
          if len(filter_set) == 0:
              raise ValueError('Filters count must be greater than 0.')
  
          for filter_instance in filter_set:
              if not isinstance(filter_instance, ImagineFilterInterface):
                  raise ValueError('All filters must implement of ImagineFilterInterface.')
  
          if not isinstance(cached, bool):
              raise ValueError('Cached parameter must be a bool.')
  
          filter_config = {
              'filters': filter_set,
              'cached': cached
          }
  
          if filter_name not in self._filter_sets:
              self._filter_sets.update({filter_name: filter_config})
          else:
              raise ValueError('Duplicate filter set name.')
docs: Manual addition of filter set
          :param filter_name: str
          :param filter_set: list
          :param cached: bool