class_docstr: Pass Context to the pipeline which is accessible to each step via kwargs
class_docstr_tok: ["Pass","Context","to","the","pipeline","which","is","accessible","to","each","step","via","kwargs"]
code: def __init__(
      self,
      dfs: List[Union[DataFrameType, Any]],
      config: Optional[Union[Config, dict]] = None,
      memory: Optional[Memory] = None,
      skills: Optional[SkillsManager] = None,
      cache: Optional[Cache] = None,
      query_exec_tracker: Optional[QueryExecTracker] = None,
  ) -> None:
      from pandasai.smart_dataframe import load_smartdataframes
  
      if isinstance(config, dict):
          config = Config(**config)
  
      self._dfs = load_smartdataframes(dfs, config)
      self._memory = memory if memory is not None else Memory()
      self._skills = skills if skills is not None else SkillsManager()
      if config.enable_cache:
          self._cache = cache if cache is not None else Cache()
      else:
          self._cache = None
      self._config = config
      self._query_exec_tracker = query_exec_tracker
      self._intermediate_values = {}
  
file_path: pandas-ai/pandasai/pipelines/pipeline_context.py
imports: from typing import List, Optional, Union, Any
  from pandasai.helpers.cache import Cache
  from pandasai.helpers.df_info import DataFrameType
  from pandasai.helpers.memory import Memory
  from pandasai.helpers.query_exec_tracker import QueryExecTracker
  from pandasai.helpers.skills_manager import SkillsManager
  from pandasai.schemas.df_config import Config
label_desc: Use image node_id 1 to create a new PipelineContext object  with example: obj = PipelineContext(dfs, config, memory, skills, cache, query_exec_tracker)