code: def _filter_stripes(
      filters,
      filepath_or_buffer,
      stripes=None,
      skip_rows=None,
      num_rows=None,
  ):
      # Multiple sources are passed as a list. If a single source is passed,
      # wrap it in a list for unified processing downstream.
      if not is_list_like(filepath_or_buffer):
          filepath_or_buffer = [filepath_or_buffer]
  
      # Prepare filters
      filters = ioutils._prepare_filters(filters)
  
      # Get columns relevant to filtering
      columns_in_predicate = [
          col
          for conjunction in filters
          for (col, op, val) in conjunction
      ]
  
      # Read and parse file-level and stripe-level statistics
      file_statistics, stripes_statistics = read_orc_statistics(
          filepath_or_buffer, columns_in_predicate
      )
  
      file_stripe_map = []
      for file_stat in file_statistics:
          # Filter using file-level statistics
          if not ioutils._apply_filters(filters, file_stat):
              continue
  
          # Filter using stripe-level statistics
          selected_stripes = []
          num_rows_scanned = 0
          for i, stripe_statistics in enumerate(stripes_statistics):
              num_rows_before_stripe = num_rows_scanned
              num_rows_scanned += next(
                  iter(stripe_statistics.values())
              )["number_of_values"]
              if stripes is not None and i not in stripes:
                  continue
              if (
                  skip_rows is not None
                  and num_rows_scanned <= skip_rows
              ):
                  continue
              else:
                  skip_rows = 0
              if (
                  skip_rows is not None
                  and num_rows is not None
                  and num_rows_before_stripe >= skip_rows + num_rows
              ):
                  continue
              if ioutils._apply_filters(filters, stripe_statistics):
                  selected_stripes.append(i)
  
          file_stripe_map.append(selected_stripes)
  
      return file_stripe_map
  
file_path: cudf/python/cudf/cudf/io/orc.py
imports: import datetime
  import warnings
  import pyarrow
  from fsspec.utils import stringify_path
  import cudf
  from cudf._lib import orc
  from cudf.api.types import is_list_like
  from cudf.utils import ioutils
  from cudf.utils.metadata import orc_column_statistics_pb2
label_desc: Use image node_id 5 for calling a global function with example usage: _filter_stripes(filters, filepath_or_buffer, stripes, skip_rows, num_rows) and returns: file_stripe_map