code: def test_retrieve_different_config_per_python_version(
      config_for_framework, caplog
  ):
      config = {
          "processors": ["cpu", "gpu"],
          "scope": ["training", "inference"],
          "versions": {
              "1.0.0": {
                  "py3": {
                      "registries": {"us-west-2": "123412341234"},
                      "repository": "foo",
                  },
                  "py37": {
                      "registries": {"us-west-2": "012345678901"},
                      "repository": "bar",
                  },
              },
          },
      }
      config_for_framework.return_value = config
  
      uri = image_uris.retrieve(
          framework="useless-string",
          version="1.0.0",
          py_version="py3",
          instance_type="ml.c4.xlarge",
          region="us-west-2",
          image_scope="training",
      )
      assert (
          "123412341234.dkr.ecr.us-west-2.amazonaws.com/foo:1.0.0-cpu-py3"
          == uri
      )
  
      uri = image_uris.retrieve(
          framework="useless-string",
          version="1.0.0",
          py_version="py37",
          instance_type="ml.c4.xlarge",
          region="us-west-2",
          image_scope="training",
      )
      assert (
          "012345678901.dkr.ecr.us-west-2.amazonaws.com/bar:1.0.0-cpu-py37"
          == uri
      )
  
imports: from __future__ import absolute_import
  import copy
  import logging
  import pytest
  from mock import patch
  from sagemaker import image_uris
  from sagemaker.workflow.functions import Join
  from sagemaker.workflow.parameters import ParameterString
label_desc: Use image node_id 12 for calling a global function with example usage: test_retrieve_different_config_per_python_version(config_for_framework, caplog) without return types