code: def create_e2e_components(
      csv_input_location: str,
  ) -> List[BaseComponent]:
      """Creates components for a simple Chicago Taxi TFX pipeline for testing.
  
         Because we don't need to run whole pipeline, we will make a very short
         toy pipeline.
  
      Args:
        csv_input_location: The location of the input data directory.
  
      Returns:
        A list of TFX components that constitutes an end-to-end test pipeline.
      """
  
      example_gen = components.CsvExampleGen(
          input_base=csv_input_location
      )
      statistics_gen = components.StatisticsGen(
          examples=example_gen.outputs["examples"]
      )
      schema_gen = components.SchemaGen(
          statistics=statistics_gen.outputs["statistics"],
          infer_feature_shape=False,
      )
  
      return [example_gen, statistics_gen, schema_gen]
  
file_path: tfx/tfx/tools/cli/e2e/test_utils.py
imports: import datetime
  import random
  import string
  import subprocess
  from typing import Any, List
  from absl import logging
  from tfx import components
  from tfx.dsl.components.base.base_component import BaseComponent
  from tfx.utils import io_utils
label_desc: Use image node_id 1 for calling a global function with example usage: create_e2e_components(csv_input_location) and returns: list