class_docstr: Data source for session based data, the input data is organized in sessions,
  each session may have multiple rows. The first column is always the session id.
  Raw input rows are consolidated by session id and returned as one session
  per example
docstr: Make sure the input schema are all list type, which is the return value
  type, and convert it to the actual type (e.g List[T] -> T) when reading the
  raw data from file.
code: def _validate_schema(self):
      """Make sure the input schema are all list type, which is the return value
      type, and convert it to the actual type (e.g List[T] -> T) when reading the
      raw data from file.
      """
      for k, v in self.schema.items():
          if k != self.id_col:
              assert (
                  _get_class_type(v) is list
              ), f"{k} is not a list type!"
              self.schema[k] = v.__args__[0]
  
file_path: pytext/pytext/data/sources/session.py
imports: from itertools import chain
  from typing import List
  from pytext.config.serialize import _get_class_type
  from pytext.data.sources.data_source import RootDataSource
label_desc: Use image node_id 2 for calling the SessionDataSource obj's underlying member method code with example usage: obj._validate_schema() without return types