class_docstr: Reads a dataset from a Petastorm dataset.
  
  :ivar last_row_consumed: True if the last row was already returned by the Reader.
class_docstr_tok: ["Reads","a","dataset","from","a","Petastorm","dataset",".",":","ivar","last_row_consumed",":","True","if","the","last","row","was","already","returned","by","the","Reader","."]
docstr: Filters the list of row group indexes using rowgroup selector object. Returns a modified list of rowgroup
  indexes.
docstr_tok: ["Filters","the","list","of","row","group","indexes","using","rowgroup","selector","object",".","Returns","a","modified","list","of","rowgroup","indexes","."]
code: def _apply_row_group_selector(
      self, dataset, rowgroup_selector, filtered_row_group_indexes
  ):
      """Filters the list of row group indexes using rowgroup selector object. Returns a modified list of rowgroup
      indexes."""
  
      if not isinstance(rowgroup_selector, RowGroupSelectorBase):
          raise ValueError(
              "rowgroup_selector parameter is expected to be derived from RowGroupSelectorBase"
          )
  
      # Load indexes from metadata
      available_row_group_indexes = (
          rowgroup_indexing.get_row_group_indexes(dataset)
      )
  
      required_indexes = rowgroup_selector.get_index_names()
      if not set(required_indexes).issubset(
          set(available_row_group_indexes.keys())
      ):
          raise ValueError(
              "Some of required indexes {} are not available in {}".format(
                  required_indexes,
                  list(available_row_group_indexes.keys()),
              )
          )
  
      selected_indexes = rowgroup_selector.select_row_groups(
          available_row_group_indexes
      )
  
      # include only selected_indexes but in filtered_row_group_indexes order
      filtered_row_group_indexes = [
          idx
          for idx in filtered_row_group_indexes
          if idx in selected_indexes
      ]
      return filtered_row_group_indexes
  
imports: import collections.abc
  import logging
  import warnings
  import six
  from pyarrow import parquet
  from petastorm.arrow_reader_worker import ArrowReaderWorker
  from petastorm.cache import NullCache
  from petastorm.errors import NoDataAvailableError
  from petastorm.etl import dataset_metadata, rowgroup_indexing
  from petastorm.etl.dataset_metadata import PetastormMetadataError, infer_or_load_unischema
  from petastorm.fs_utils import get_filesystem_and_path_or_paths, normalize_dir_url
  from petastorm.local_disk_cache import LocalDiskCache
  from petastorm.ngram import NGram
  from petastorm.predicates import PredicateBase
  from petastorm.py_dict_reader_worker import PyDictReaderWorker
  from petastorm.reader_impl.arrow_table_serializer import ArrowTableSerializer
  from petastorm.reader_impl.pickle_serializer import PickleSerializer
  from petastorm.selectors import RowGroupSelectorBase
  from petastorm.transform import transform_schema
  from petastorm.workers_pool.dummy_pool import DummyPool
  from petastorm.workers_pool.process_pool import ProcessPool
  from petastorm.workers_pool.thread_pool import ThreadPool
  from petastorm.workers_pool.ventilator import ConcurrentVentilator
label_desc: Use image node_id 6 for calling the Reader obj's underlying member method code with example usage: obj._apply_row_group_selector(dataset, rowgroup_selector, filtered_row_group_indexes) and returns: filtered_row_group_indexes