class_docstr: A data analyzer suite that allows users to add multiple data analyzers and analyze specified according to data type
class_docstr_tok: ["A","data","analyzer","suite","that","allows","users","to","add","multiple","data","analyzers","and","analyze","specified","according","to","data","type"]
docstr: Initialize data analyzer suite
  
  Args:
      data_type_list: list, a list of pre-defined data type.
                      If column_names is not provided, data_type_list should for all the columns.
      column_names: list, a list of column names.
      sequence_names: list, a list of feature names that is considered sequence data.
docstr_tok: ["Initialize","data","analyzer","suite","Args",":","data_type_list",":","list",",","a","list","of","pre-defined","data","type",".","If","column_names","is","not","provided",",","data_type_list","should","for","all","the","columns",".","column_names",":","list",",","a","list","of","column","names",".","sequence_names",":","list",",","a","list","of","feature","names","that","is","considered","sequence","data","."]
code: def __init__(
      self,
      data_type_list: List,
      column_names: List = None,
      sequence_names: List = None,
  ):
      """
      Initialize data analyzer suite
  
      Args:
          data_type_list: list, a list of pre-defined data type.
                          If column_names is not provided, data_type_list should for all the columns.
          column_names: list, a list of column names.
          sequence_names: list, a list of feature names that is considered sequence data.
      """
      if column_names is not None:
          if type(column_names) == list:
              if len(column_names) != len(data_type_list):
                  raise InconsistentSize(
                      "data_type_list",
                      "column_name",
                      len(column_names),
                      len(data_type_list),
                  )
          else:
              raise InvalidTypeError(
                  data_type_list, type(data_type_list), "<list>"
              )
  
      else:
          column_names = list(range(len(data_type_list)))
  
      self.schema = dict(zip(column_names, data_type_list))
  
      self.analyzers = dict()
  
      if sequence_names is None:
          sequence_names = []
  
      for key, data_type in self.schema.items():
          if data_type == DATATYPE.CATEGORY:
              analyzer = LabelledCategoricalDataAnalyzer()
          elif data_type == DATATYPE.NUMBER:
              analyzer = LabelledNumericalDataAnalyzer()
          elif data_type == DATATYPE.FREETEXT:
              analyzer = LabelledTextDataAnalyzer()
          elif data_type == DATATYPE.DATETIME:
              analyzer = LabelledDatetimeDataAnalyzer()
          else:
              raise AnalyzerDataTypeNotSupported(data_type)
  
          if key in sequence_names:
              self.analyzers[key] = SequenceAnalyzer(analyzer=analyzer)
          else:
              self.analyzers[key] = analyzer
  
file_path: contextual-ai/xai/data/explorer/data_analyzer_suite.py
imports: from typing import Optional, Dict, Union, List
  from xai.data.abstract_stats import AbstractStats
  from xai.data.constants import DATATYPE
  from xai.data.exceptions import AttributeNotFound, InconsistentSize, AnalyzerDataTypeNotSupported
  from xai.data.exceptions import InvalidTypeError
  from xai.data.explorer.categorical.labelled_categorical_analyzer import LabelledCategoricalDataAnalyzer
  from xai.data.explorer.datetime.labelled_datetime_analyzer import LabelledDatetimeDataAnalyzer
  from xai.data.explorer.numerical.labelled_numerical_analyzer import LabelledNumericalDataAnalyzer
  from xai.data.explorer.sequence_analyzer import SequenceAnalyzer
  from xai.data.explorer.text.labelled_text_analyzer import LabelledTextDataAnalyzer
label_desc: Use image node_id 1 to create a new DataAnalyzerSuite object  with example: obj = DataAnalyzerSuite(data_type_list, column_names, sequence_names)