code: def test_marketplace_attach(sagemaker_session, cpu_instance_type):
      with timeout(minutes=15):
          data_path = os.path.join(DATA_DIR, "marketplace", "training")
          region = sagemaker_session.boto_region_name
          account = REGION_ACCOUNT_MAP[region]
          algorithm_arn = ALGORITHM_ARN.format(
              partition=_aws_partition(region),
              region=region,
              account=account,
          )
  
          mktplace = AlgorithmEstimator(
              algorithm_arn=algorithm_arn,
              role="SageMakerRole",
              instance_count=1,
              instance_type=cpu_instance_type,
              sagemaker_session=sagemaker_session,
              base_job_name=unique_name_from_base("test-marketplace"),
          )
  
          train_input = mktplace.sagemaker_session.upload_data(
              path=data_path,
              key_prefix="integ-test-data/marketplace/train",
          )
  
          mktplace.fit({"training": train_input}, wait=False)
          training_job_name = mktplace.latest_training_job.name
  
          print(
              "Waiting to re-attach to the training job: %s"
              % training_job_name
          )
          time.sleep(20)
          endpoint_name = "test-marketplace-estimator{}".format(
              sagemaker_timestamp()
          )
  
      with timeout_and_delete_endpoint_by_name(
          endpoint_name, sagemaker_session, minutes=20
      ):
          print("Re-attaching now to: %s" % training_job_name)
          estimator = AlgorithmEstimator.attach(
              training_job_name=training_job_name,
              sagemaker_session=sagemaker_session,
          )
          predictor = estimator.deploy(
              1,
              cpu_instance_type,
              endpoint_name=endpoint_name,
              serializer=CSVSerializer(),
          )
          shape = pandas.read_csv(
              os.path.join(data_path, "iris.csv"), header=None
          )
          a = [50 * i for i in range(3)]
          b = [40 + i for i in range(10)]
          indices = [i + j for i, j in itertools.product(a, b)]
  
          test_data = shape.iloc[indices[:-1]]
          test_x = test_data.iloc[:, 1:]
  
          print(predictor.predict(test_x.values).decode("utf-8"))
  
imports: from __future__ import absolute_import
  import itertools
  import os
  import time
  import requests
  import pandas
  import pytest
  import docker
  import sagemaker
  import tests.integ
  from tests.integ.utils import create_repository
  from sagemaker import AlgorithmEstimator, ModelPackage, Model
  from sagemaker.serializers import CSVSerializer
  from sagemaker.tuner import IntegerParameter, HyperparameterTuner
  from sagemaker.utils import sagemaker_timestamp, _aws_partition, unique_name_from_base
  from tests.integ import DATA_DIR
  from tests.integ.timeout import timeout, timeout_and_delete_endpoint_by_name
  from tests.integ.marketplace_utils import REGION_ACCOUNT_MAP
  from tests.integ.test_multidatamodel import _ecr_image_uri, _ecr_login, _delete_repository
  from tests.integ.retry import retries
  import logging
label_desc: Use image node_id 2 for calling a global function with example usage: test_marketplace_attach(sagemaker_session, cpu_instance_type) without return types