code: def testStaticRangeResolverFn_E2E_SkipRaised(self):
      channel = canned_resolver_functions.static_range(
          channel_utils.artifact_query(
              artifact_type=test_utils.DummyArtifact
          ),
          start_span_number=0,
          end_span_number=5,
          keep_all_versions=True,
          exclude_span_numbers=[0, 1, 2],
      )
      pipeline_node = test_utils.compile_inputs({"x": channel})
  
      spans = [0, 1, 2]
      versions = [0, 0, 0]
      self._insert_artifacts_into_mlmd(spans, versions)
  
      resolved = inputs_utils.resolve_input_artifacts(
          pipeline_node=pipeline_node, metadata_handle=self.mlmd_handle
      )
  
      # min_spans = 5 - 0 + 1 - 3 = 2, so a SkipSignal will be raised.
      self.assertIsInstance(resolved, inputs_utils.Skip)
  
imports: from typing import Sequence
  import tensorflow
  from tfx import types
  from tfx.dsl.control_flow import for_each
  from tfx.dsl.input_resolution import canned_resolver_functions
  from tfx.dsl.input_resolution import resolver_op
  from tfx.dsl.input_resolution.ops import test_utils
  from tfx.orchestration import pipeline
  from tfx.orchestration.portable import inputs_utils
  from tfx.orchestration.portable.input_resolution import exceptions
  from tfx.types import channel_utils
  from tfx.types import resolved_channel
  from ml_metadata.proto import metadata_store_pb2
label_desc: Use image node_id 9 for calling the CannedResolverFunctionsTest obj's underlying member method code with example usage: obj.testStaticRangeResolverFn_E2E_SkipRaised() without return types