class_docstr: Create a ``FeatureSet`` instance from a CSV file.
  
  If example/instance IDs are included in the files, they
  must be specified in the ``id`` column.
  Also, there must be a column with the name specified by ``label_col`` if the
  data is labeled.
  
  Parameters
  ----------
  path_or_list : Union[:class:`skll.types.PathOrStr`, List[Dict[str, Any]]]
      The path to a comma-delimited file.
  
  replace_blanks_with : Optional[Union[Number, Dict[str, Number]]], default=None
      Specifies a new value with which to replace blank values.
      Options are:
  
      - ``Number`` : A (numeric) value with which to replace blank values.
      - ``dict`` : A dictionary specifying the replacement value for each column.
      - ``None`` : Blank values will be left as blanks, and not replaced.
  
      The replacement occurs after the data set is read into a ``pd.DataFrame``.
  
  drop_blanks : bool, default=False
      If ``True``, remove lines/rows that have any blank
      values. These lines/rows are removed after the
      the data set is read into a ``pd.DataFrame``.
  
  pandas_kwargs : Optional[Dict[str, Any]], default=None
      Arguments that will be passed directly to the ``pandas`` I/O reader.
  
  kwargs : Optional[Dict[str, Any]]
      Other arguments to the Reader object.
class_docstr_tok: ["Create","a","``","FeatureSet","``","instance","from","a","CSV","file",".","If","example\/instance","IDs","are","included","in","the","files",",","they","must","be","specified","in","the","``","id","``","column",".","Also",",","there","must","be","a","column","with","the","name","specified","by","``","label_col","``","if","the","data","is","labeled",".","Parameters","--","--","--","--","--","path_or_list",":","Union","[",":","class",":","`","skll.types.PathOrStr","`",",","List","[","Dict","[","str",",","Any","]","]","]","The","path","to","a","comma-delimited","file",".","replace_blanks_with",":","Optional","[","Union","[","Number",",","Dict","[","str",",","Number","]","]","]",",","default=None","Specifies","a","new","value","with","which","to","replace","blank","values",".","Options","are",":","-","``","Number","``",":","A","(","numeric",")","value","with","which","to","replace","blank","values",".","-","``","dict","``",":","A","dictionary","specifying","the","replacement","value","for","each","column",".","-","``","None","``",":","Blank","values","will","be","left","as","blanks",",","and","not","replaced",".","The","replacement","occurs","after","the","data","set","is","read","into","a","``","pd.DataFrame","``",".","drop_blanks",":","bool",",","default=False","If","``","True","``",",","remove","lines\/rows","that","have","any","blank","values",".","These","lines\/rows","are","removed","after","the","the","data","set","is","read","into","a","``","pd.DataFrame","``",".","pandas_kwargs",":","Optional","[","Dict","[","str",",","Any","]","]",",","default=None","Arguments","that","will","be","passed","directly","to","the","``","pandas","``","I\/O","reader",".","kwargs",":","Optional","[","Dict","[","str",",","Any","]","]","Other","arguments","to","the","Reader","object","."]
docstr: Parse rows of CSV file.
  
  Parameters
  ----------
  file : :class:`skll.types.PathOrStr`
      The path to the CSV file.
  
  Returns
  -------
  ids : numpy.ndarray of shape (n_ids,)
      The ids for the feature set.
  
  labels : numpy.ndarray of shape (n_labels,)
      The labels for the feature set.
  
  features : :class:`skll.types.FeatureDictList`
      The list of feature dictionaries for the feature set.
docstr_tok: ["Parse","rows","of","CSV","file",".","Parameters","--","--","--","--","--","file",":",":","class",":","`","skll.types.PathOrStr","`","The","path","to","the","CSV","file",".","Returns","--","--","--","-","ids",":","numpy.ndarray","of","shape","(","n_ids",",",")","The","ids","for","the","feature","set",".","labels",":","numpy.ndarray","of","shape","(","n_labels",",",")","The","labels","for","the","feature","set",".","features",":",":","class",":","`","skll.types.FeatureDictList","`","The","list","of","feature","dictionaries","for","the","feature","set","."]
code: def _sub_read(
      self, file: PathOrStr
  ) -> Tuple[np.ndarray, np.ndarray, FeatureDictList]:
      """
      Parse rows of CSV file.
  
      Parameters
      ----------
      file : :class:`skll.types.PathOrStr`
          The path to the CSV file.
  
      Returns
      -------
      ids : numpy.ndarray of shape (n_ids,)
          The ids for the feature set.
  
      labels : numpy.ndarray of shape (n_labels,)
          The labels for the feature set.
  
      features : :class:`skll.types.FeatureDictList`
          The list of feature dictionaries for the feature set.
      """
      df = pd.read_csv(
          file,
          sep=self._sep,
          engine=self._engine,
          **self._pandas_kwargs,
      )
      return self._parse_dataframe(
          df,
          self.id_col,
          self.label_col,
          replace_blanks_with=self._replace_blanks_with,
          drop_blanks=self._drop_blanks,
      )
  
imports: import csv
  import json
  import logging
  import re
  import sys
  from io import StringIO
  from itertools import chain
  from numbers import Number
  from pathlib import Path
  from typing import IO, Any, Dict, List, Optional, Tuple, Union
  import numpy
  import pandas
  from bs4 import UnicodeDammit
  from sklearn.feature_extraction import FeatureHasher
  from skll.data import FeatureSet
  from skll.data.dict_vectorizer import DictVectorizer
  from skll.types import ClassMap, FeatGenerator, FeatureDictList, IdType, LabelType, PathOrStr
label_desc: Use image node_id 2 for calling the CSVReader obj's underlying member method code with example usage: obj._sub_read(file) and returns: self