code: def test_csv_ignore_missing_paths(
      ray_start_regular_shared, local_path, ignore_missing_paths
  ):
      # Single file.
      df1 = pd.DataFrame({"one": [1, 2, 3], "two": ["a", "b", "c"]})
      path1 = os.path.join(local_path, "test1.csv")
      df1.to_csv(path1, index=False)
  
      paths = [
          path1,
          "missing.csv",
      ]
  
      if ignore_missing_paths:
          ds = ray.data.read_csv(
              paths, ignore_missing_paths=ignore_missing_paths
          )
          assert ds.input_files() == [path1]
      else:
          with pytest.raises(FileNotFoundError):
              ds = ray.data.read_csv(
                  paths, ignore_missing_paths=ignore_missing_paths
              )
              ds.materialize()
  
imports: import itertools
  import os
  import shutil
  from functools import partial
  import pandas
  import pyarrow
  import pyarrow.parquet
  import pytest
  from packaging.version import Version
  from pytest_lazyfixture import lazy_fixture
  import ray
  from ray.data.block import BlockAccessor
  from ray.data.datasource import BaseFileMetadataProvider, FastFileMetadataProvider, PartitionStyle, PathPartitionFilter
  from ray.data.datasource.file_based_datasource import FILE_SIZE_FETCH_PARALLELIZATION_THRESHOLD
  from ray.data.datasource.path_util import _unwrap_protocol
  from ray.data.tests.conftest import *
  from ray.data.tests.mock_http_server import *
  from ray.data.tests.test_partitioning import PathPartitionEncoder
  from ray.data.tests.util import Counter
  from ray.tests.conftest import *
label_desc: Use image node_id 4 for calling a global function with example usage: test_csv_ignore_missing_paths(ray_start_regular_shared, local_path, ignore_missing_paths) without return types