docs: def get_enabled_features(self, user_id, attributes=None):
      """ Returns the list of features that are enabled for the user.
  
      Args:
        user_id: ID for user.
        attributes: Dict representing user attributes.
  
      Returns:
        A list of the keys of the features that are enabled for the user.
      """
  
      enabled_features = []
      if not self.is_valid:
        self.logger.error(enums.Errors.INVALID_DATAFILE.format('get_enabled_features'))
        return enabled_features
  
      if not isinstance(user_id, string_types):
        self.logger.error(enums.Errors.INVALID_INPUT_ERROR.format('user_id'))
        return enabled_features
  
      if not self._validate_user_inputs(attributes):
        return enabled_features
  
      for feature in self.config.feature_key_map.values():
        if self.is_feature_enabled(feature.key, user_id, attributes):
          enabled_features.append(feature.key)
  
      return enabled_features