code: def import_project_from_zip(
      zip_path: str,
  ) -> Tuple[Pipeline, InputData, InputData, OptHistory]:
      """
      Unzipping zip file. Zip file should contain:
      - pipeline.json: json performance,
      - train_data.csv: csv with first line which contains task_type and data_type of train InputData object,
      - test_data.csv: csv with first line which contains task_type and data_type of test InputData object.
  
      Created Pipeline and InputData objects. Ready to work with it.
  
      :param zip_path: path to zip archive
      :return imported classes
      """
      log = default_log(prefix="fedot.utilities.project_import_export")
  
      folder_path, absolute_zip_path, _, zip_name = _prepare_paths(
          zip_path
      )
  
      zip_path = _check_zip_path(absolute_zip_path, log)
  
      if folder_path.exists():
          # ensure temporary folder is clear
          shutil.rmtree(folder_path)
      shutil.unpack_archive(zip_path, folder_path)
  
      message = f'The project "{zip_name}" was unpacked to the "{folder_path}".'
      log.info(message)
      pipeline, train_data, test_data, opt_history = [None] * 4
      for root, dirs, files in os.walk(folder_path):
          for file in files:
              if file == "pipeline.json":
                  pipeline = Pipeline.from_serialized(
                      os.path.join(root, file)
                  )
              elif file == "train_data.csv":
                  train_data = InputData.from_csv(
                      os.path.join(root, file)
                  )
              elif file == "test_data.csv":
                  test_data = InputData.from_csv(
                      os.path.join(root, file)
                  )
              elif file == "opt_history.json":
                  opt_history = OptHistory.load(
                      os.path.join(root, file)
                  )
  
      shutil.rmtree(folder_path)
      return pipeline, train_data, test_data, opt_history
  
file_path: FEDOT/fedot/utilities/project_import_export.py
imports: import os
  import shutil
  from pathlib import Path
  from typing import Optional, Tuple, Union
  import golem.core.paths
  from golem.core.log import LoggerAdapter, default_log
  from golem.core.optimisers.opt_history_objects.opt_history import OptHistory
  from fedot.core.data.data import InputData
  from fedot.core.pipelines.pipeline import Pipeline
label_desc: Use image node_id 2 for calling a global function with example usage: import_project_from_zip(zip_path) and returns: pipeline,  train_data,  test_data,  opt_history