code: def __init__(
      self,
      train_file=None,
      test_file=None,
      eval_file=None,
      field_names=None,
      **kwargs,
  ):
      # requires first column to be the session id
      assert len(field_names) >= 2, "should specify at least 2 columns"
      super().__init__(
          train_file=train_file,
          test_file=test_file,
          eval_file=eval_file,
          field_names=field_names,
          id_col=field_names[0],
          **kwargs,
      )
      self.schema[self.id_col] = str
      self.field_names = field_names
      self._validate_schema()
  
imports: import csv
  import logging
  import sys
  import threading
  from typing import Dict, List, Optional, Type
  from pytext.utils.path import get_absolute_path
  from .data_source import generator_property, RootDataSource, SafeFileWrapper, ShardedDataSource
  from .session import SessionDataSource
label_desc: Use image node_id 1 to create a new SessionTSVDataSource object from inherited base classes: TSVDataSource, SessionDataSource with example: obj = SessionTSVDataSource(train_file, test_file, eval_file, field_names)