code: def generic(self, input_string, **kwargs):
          
          kwargs_copy = self.base_dict.copy()
          kwargs_copy.update(**kwargs)
          kwargs_copy['dataset'] = kwargs.get('dataset', self.dataset(**kwargs))
          kwargs_copy['component'] = kwargs.get(
              'component', self.component(**kwargs))
          self._replace_none(kwargs_copy)        
          return input_string.format(**kwargs_copy)
docs: return a generic filename for a given dataset and component