class_docstr: ExcludeSpans operator.
docstr: Returns artifacts with spans not in denylist.
  
  Corresponds to exclude_span_numbers in RangeConfig in TFX.
  
  For example, if the artifacts have spans [1, 2, 2, 4], and
  denylist = [1, 2], then only the artifact [4] will be returned.
  
  Args:
    input_list: The list of Artifacts to parse.
  
  Returns:
    Artifacts with spans not in denylist.
docstr_tok: ["Returns","artifacts","with","spans","not","in","denylist",".","Corresponds","to","exclude_span_numbers","in","RangeConfig","in","TFX",".","For","example",",","if","the","artifacts","have","spans","[","1",",","2",",","2",",","4","]",",","and","denylist","=","[","1",",","2","]",",","then","only","the","artifact","[","4","]","will","be","returned",".","Args",":","input_list",":","The","list","of","Artifacts","to","parse",".","Returns",":","Artifacts","with","spans","not","in","denylist","."]
code: def apply(
      self,
      input_list: Sequence[types.Artifact],
  ) -> Sequence[types.Artifact]:
      """Returns artifacts with spans not in denylist.
  
      Corresponds to exclude_span_numbers in RangeConfig in TFX.
  
      For example, if the artifacts have spans [1, 2, 2, 4], and
      denylist = [1, 2], then only the artifact [4] will be returned.
  
      Args:
        input_list: The list of Artifacts to parse.
  
      Returns:
        Artifacts with spans not in denylist.
      """
      valid_artifacts = ops_utils.get_valid_artifacts(
          input_list, ops_utils.SPAN_PROPERTY
      )
  
      # Only return artifacts that do not have spans in denylist.
      return [
          a for a in valid_artifacts if a.span not in set(self.denylist)
      ]
  
imports: from typing import Sequence
  from tfx import types
  from tfx.dsl.input_resolution import resolver_op
  from tfx.dsl.input_resolution.ops import ops_utils
label_desc: Use image node_id 1 for calling the ExcludeSpans obj's underlying member method code with example usage: obj.apply(input_list) and returns: unknown