class_docstr: The result of a single model analysis run.
  
  Attributes:
    slicing_metrics: a list of `tfma.SlicedMetrics`, containing metric values
      for each slice.
    plots: List of slice-plot pairs.
    attributions: List of SlicedAttributions containing attribution values for
      each slice.
    config: The config containing slicing and metrics specification.
    data_location: Optional location for data used with config.
    file_format: Optional format for data used with config.
    model_location: Optional location(s) for model(s) used with config.
docstr: Get attribution features names and values for a slice.
  
  Args:
    slice_name: A tuple of the form (column, value), indicating which slice to
      get attributions from. Optional; if excluded, use overall slice.
    metric_name: Name of metric to get attributions for. Optional if only one
      metric used.
    output_name: The name of the output. Optional, only used for multi-output
      models.
    class_id: Used with multi-class models to identify a specific class ID.
    k: Used with multi-class models to identify the kth predicted value.
    top_k: Used with multi-class models to identify top-k attribution values.
  
  Returns:
    Dictionary containing feature keys and values for the specified slice.
  
  Raises:
    ValueError: If metric_name is required.
docstr_tok: ["Get","attribution","features","names","and","values","for","a","slice",".","Args",":","slice_name",":","A","tuple","of","the","form","(","column",",","value",")",",","indicating","which","slice","to","get","attributions","from",".","Optional",";","if","excluded",",","use","overall","slice",".","metric_name",":","Name","of","metric","to","get","attributions","for",".","Optional","if","only","one","metric","used",".","output_name",":","The","name","of","the","output",".","Optional",",","only","used","for","multi-output","models",".","class_id",":","Used","with","multi-class","models","to","identify","a","specific","class","ID",".","k",":","Used","with","multi-class","models","to","identify","the","kth","predicted","value",".","top_k",":","Used","with","multi-class","models","to","identify","top-k","attribution","values",".","Returns",":","Dictionary","containing","feature","keys","and","values","for","the","specified","slice",".","Raises",":","ValueError",":","If","metric_name","is","required","."]
code: def get_attributions_for_slice(
      self,
      slice_name: slicer.SliceKeyType = (),
      metric_name: str = "",
      output_name: str = "",
      class_id: Optional[int] = None,
      k: Optional[int] = None,
      top_k: Optional[int] = None,
  ) -> Union[AttributionsByFeatureKey, None]:
      """Get attribution features names and values for a slice.
  
      Args:
        slice_name: A tuple of the form (column, value), indicating which slice to
          get attributions from. Optional; if excluded, use overall slice.
        metric_name: Name of metric to get attributions for. Optional if only one
          metric used.
        output_name: The name of the output. Optional, only used for multi-output
          models.
        class_id: Used with multi-class models to identify a specific class ID.
        k: Used with multi-class models to identify the kth predicted value.
        top_k: Used with multi-class models to identify top-k attribution values.
  
      Returns:
        Dictionary containing feature keys and values for the specified slice.
  
      Raises:
        ValueError: If metric_name is required.
      """
  
      if class_id or k or top_k:
          sub_key = str(metric_types.SubKey(class_id, k, top_k))
      else:
          sub_key = ""
  
      def equals_slice_name(slice_key):
          if not slice_key:
              return not slice_name
          else:
              return slice_key == slice_name
  
      for sliced_attributions in self.attributions:
          slice_key = sliced_attributions[0]
          slice_val = sliced_attributions[1]
          if equals_slice_name(slice_key):
              if metric_name:
                  return slice_val[output_name][sub_key][metric_name]
              elif len(slice_val[output_name][sub_key]) == 1:
                  return list(slice_val[output_name][sub_key].values())[
                      0
                  ]
              else:
                  raise ValueError(
                      "metric_name must be one of the following: {}".format(
                          slice_val[output_name][sub_key].keys()
                      )
                  )
  
      # if slice could not be found, return None
      return None
  
imports: import copy
  from typing import Any, Dict, List, Sequence, NamedTuple, Optional, Union
  from tensorflow_model_analysis import constants
  from tensorflow_model_analysis.metrics import metric_types
  from tensorflow_model_analysis.proto import config_pb2
  from tensorflow_model_analysis.proto import metrics_for_slice_pb2
  from tensorflow_model_analysis.slicer import slicer_lib
label_desc: Use image node_id 4 for calling the EvalResult obj's underlying member method code with example usage: obj.get_attributions_for_slice(slice_name, metric_name, output_name, class_id, k, top_k) and returns: None, unknown, unknown, slice_val, list