Skip to content

Commit 0124acd

Browse files
committed
fix: formatting issues
1 parent 3d6e884 commit 0124acd

File tree

11 files changed

+78
-84
lines changed

11 files changed

+78
-84
lines changed

src/sagemaker/image_uris.py

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -155,22 +155,14 @@ def retrieve(
155155

156156
if is_jumpstart_model_input(model_id, model_version):
157157
return artifacts._retrieve_image_uri(
158-
model_id,
159-
model_version,
160-
image_scope,
161-
hub_arn,
162-
framework,
163-
region,
164-
version,
165-
py_version,
166-
instance_type,
167-
accelerator_type,
168-
container_version,
169-
distribution,
170-
base_framework_version,
171-
training_compiler_config,
172-
tolerate_vulnerable_model,
173-
tolerate_deprecated_model,
158+
model_id=model_id,
159+
model_version=model_version,
160+
image_scope=image_scope,
161+
hub_arn=hub_arn,
162+
region=region,
163+
instance_type=instance_type,
164+
tolerate_vulnerable_model=tolerate_vulnerable_model,
165+
tolerate_deprecated_model=tolerate_deprecated_model,
174166
sagemaker_session=sagemaker_session,
175167
config_name=config_name,
176168
model_type=model_type,

src/sagemaker/jumpstart/artifacts/image_uris.py

Lines changed: 3 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -33,16 +33,8 @@ def _retrieve_image_uri(
3333
model_version: str,
3434
image_scope: str,
3535
hub_arn: Optional[str] = None,
36-
framework: Optional[str] = None,
3736
region: Optional[str] = None,
38-
version: Optional[str] = None,
39-
py_version: Optional[str] = None,
4037
instance_type: Optional[str] = None,
41-
accelerator_type: Optional[str] = None,
42-
container_version: Optional[str] = None,
43-
distribution: Optional[str] = None,
44-
base_framework_version: Optional[str] = None,
45-
training_compiler_config: Optional[str] = None,
4638
tolerate_vulnerable_model: bool = False,
4739
tolerate_deprecated_model: bool = False,
4840
sagemaker_session: Session = DEFAULT_JUMPSTART_SAGEMAKER_SESSION,
@@ -64,30 +56,11 @@ def _retrieve_image_uri(
6456
image_scope (str): The image type, i.e. what it is used for.
6557
Valid values: "training", "inference", "eia". If ``accelerator_type`` is set,
6658
``image_scope`` is ignored.
67-
framework (str): The name of the framework or algorithm.
6859
region (str): The AWS region. (Default: None).
69-
version (str): The framework or algorithm version. This is required if there is
70-
more than one supported version for the given framework or algorithm.
71-
(Default: None).
72-
py_version (str): The Python version. This is required if there is
73-
more than one supported Python version for the given framework version.
7460
instance_type (str): The SageMaker instance type. For supported types, see
7561
https://aws.amazon.com/sagemaker/pricing/instance-types. This is required if
7662
there are different images for different processor types.
7763
(Default: None).
78-
accelerator_type (str): Elastic Inference accelerator type. For more, see
79-
https://docs.aws.amazon.com/sagemaker/latest/dg/ei.html.
80-
(Default: None).
81-
container_version (str): the version of docker image.
82-
Ideally the value of parameter should be created inside the framework.
83-
For custom use, see the list of supported container versions:
84-
https://github.com/aws/deep-learning-containers/blob/master/available_images.md.
85-
(Default: None).
86-
distribution (dict): A dictionary with information on how to run distributed training.
87-
(Default: None).
88-
training_compiler_config (:class:`~sagemaker.training_compiler.TrainingCompilerConfig`):
89-
A configuration class for the SageMaker Training Compiler.
90-
(Default: None).
9164
tolerate_vulnerable_model (bool): True if vulnerable versions of model
9265
specifications should be tolerated (exception not raised). If False, raises an
9366
exception if the script used by this version of the model has dependencies with known
@@ -145,7 +118,7 @@ def _retrieve_image_uri(
145118
f"with {instance_type} instance type in {region}. "
146119
"Please try another instance type or region."
147120
)
148-
elif image_scope == JumpStartScriptScope.TRAINING:
121+
if image_scope == JumpStartScriptScope.TRAINING:
149122
training_instance_type_variants = model_specs.training_instance_type_variants
150123
if training_instance_type_variants:
151124
image_uri = training_instance_type_variants.get_image_uri(
@@ -162,3 +135,5 @@ def _retrieve_image_uri(
162135
f"with {instance_type} instance type in {region}. "
163136
"Please try another instance type or region."
164137
)
138+
139+
raise ValueError(f"Invalid scope: {image_scope}")

tests/unit/sagemaker/hyperparameters/jumpstart/test_validate.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
from sagemaker.jumpstart.exceptions import JumpStartHyperparametersError
2222
from sagemaker.jumpstart.types import JumpStartHyperparameter
2323

24-
from tests.unit.sagemaker.jumpstart.utils import get_prototype_model_spec, get_spec_from_base_spec
24+
from tests.unit.sagemaker.jumpstart.utils import get_prototype_model_spec
2525

2626
region = "us-west-2"
2727
mock_client = boto3.client("s3")

tests/unit/sagemaker/image_uris/jumpstart/test_sklearn.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -53,14 +53,15 @@ def test_jumpstart_sklearn_image_uri(patched_get_model_specs, session):
5353
sagemaker_session=session,
5454
).serving_image_uri(region, instance_type)
5555

56-
## framework classes dont use digest.
56+
# framework classes dont use digest.
5757
assert (
5858
framework_class_uri
59-
== "246618743249.dkr.ecr.us-west-2.amazonaws.com/sagemaker-scikit-learn:1.2-1-cpu-py3"
59+
== "246618743249.dkr.ecr.us-west-2.amazonaws.com/sagemaker-scikit-learn:1.2-1"
60+
"-cpu-py3"
6061
)
6162
assert (
62-
uri
63-
== "246618743249.dkr.ecr.us-west-2.amazonaws.com/sagemaker-scikit-learn@sha256:e09bbb7686077a1db23d316b699020a786a6e1636b2b89384be9651368c40f95"
63+
uri == "246618743249.dkr.ecr.us-west-2.amazonaws.com/sagemaker-scikit-learn@"
64+
"sha256:e09bbb7686077a1db23d316b699020a786a6e1636b2b89384be9651368c40f95"
6465
)
6566

6667
# training
@@ -84,14 +85,14 @@ def test_jumpstart_sklearn_image_uri(patched_get_model_specs, session):
8485
sagemaker_session=session,
8586
).training_image_uri(region=region)
8687

87-
## framework classes dont use digest.
88+
# framework classes dont use digest.
8889
assert (
8990
framework_class_uri
9091
== "246618743249.dkr.ecr.us-west-2.amazonaws.com/sagemaker-scikit-learn:1.2-1-cpu-py3"
9192
)
9293
assert (
93-
uri
94-
== "246618743249.dkr.ecr.us-west-2.amazonaws.com/sagemaker-scikit-learn@sha256:e09bbb7686077a1db23d316b699020a786a6e1636b2b89384be9651368c40f95"
94+
uri == "246618743249.dkr.ecr.us-west-2.amazonaws.com/sagemaker-scikit-learn"
95+
"@sha256:e09bbb7686077a1db23d316b699020a786a6e1636b2b89384be9651368c40f95"
9596
)
9697

9798
with pytest.raises(ValueError):

tests/unit/sagemaker/image_uris/jumpstart/test_xgboost.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,8 @@ def test_jumpstart_xgboost_image_uri(patched_get_model_specs, session):
5858
== "246618743249.dkr.ecr.us-west-2.amazonaws.com/sagemaker-xgboost:1.7-1"
5959
)
6060
assert (
61-
uri
62-
== "246618743249.dkr.ecr.us-west-2.amazonaws.com/sagemaker-xgboost@sha256:ba417ec6d8d3e0c6b5f463bc9202e3b498b42260a29b61875f34beb6d99d8444"
61+
uri == "246618743249.dkr.ecr.us-west-2.amazonaws.com/sagemaker-xgboost@sha256:"
62+
"ba417ec6d8d3e0c6b5f463bc9202e3b498b42260a29b61875f34beb6d99d8444"
6363
)
6464

6565
# training
@@ -89,6 +89,6 @@ def test_jumpstart_xgboost_image_uri(patched_get_model_specs, session):
8989
== "246618743249.dkr.ecr.us-west-2.amazonaws.com/sagemaker-xgboost:1.7-1"
9090
)
9191
assert (
92-
uri
93-
== "246618743249.dkr.ecr.us-west-2.amazonaws.com/sagemaker-xgboost@sha256:ba417ec6d8d3e0c6b5f463bc9202e3b498b42260a29b61875f34beb6d99d8444"
92+
uri == "246618743249.dkr.ecr.us-west-2.amazonaws.com/sagemaker-xgboost"
93+
"@sha256:ba417ec6d8d3e0c6b5f463bc9202e3b498b42260a29b61875f34beb6d99d8444"
9494
)

tests/unit/sagemaker/jumpstart/constants.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
# language governing permissions and limitations under the License.
1313
from __future__ import absolute_import
1414

15+
# flake8: noqa: E501
1516

1617
SPECIAL_MODEL_SPECS_DICT = {
1718
"js-model-class-model-prepacked": {

tests/unit/sagemaker/jumpstart/estimator/test_estimator.py

Lines changed: 28 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -243,10 +243,13 @@ def test_prepacked(
243243
mock_estimator_init.assert_called_once_with(
244244
instance_type="ml.p3.16xlarge",
245245
instance_count=1,
246-
image_uri="763104351884.dkr.ecr.us-west-2.amazonaws.com/huggingface-pytorch-training:2.0.0-transformers4.28.1-gpu-py310-cu118-ubuntu20.04",
247-
model_uri="s3://jumpstart-cache-prod-us-west-2/huggingface-training/train-huggingface"
246+
image_uri="763104351884.dkr.ecr.us-west-2.amazonaws.com/huggingface"
247+
"-pytorch-training:2.0.0-transformers4.28.1-gpu-py310-cu118-ubuntu20.04",
248+
model_uri="s3://jumpstart-cache-prod-us-west-2/huggingface-training"
249+
"/train-huggingface"
248250
"-text2text-flan-t5-base.tar.gz",
249-
source_dir="s3://jumpstart-cache-prod-us-west-2/source-directory-tarballs/huggingface/transfer_learning/text2text/prepack/v2.0.0/sourcedir.tar.gz",
251+
source_dir="s3://jumpstart-cache-prod-us-west-2/source-directory-tarballs"
252+
"/huggingface/transfer_learning/text2text/prepack/v2.0.0/sourcedir.tar.gz",
250253
entry_point="transfer_learning.py",
251254
hyperparameters={
252255
"epochs": "1",
@@ -323,7 +326,8 @@ def test_prepacked(
323326
mock_estimator_deploy.assert_called_once_with(
324327
instance_type="ml.g5.2xlarge",
325328
initial_instance_count=1,
326-
image_uri="763104351884.dkr.ecr.us-west-2.amazonaws.com/huggingface-pytorch-tgi-inference:2.1.1-tgi1.4.0-gpu-py310-cu121-ubuntu20.04",
329+
image_uri="763104351884.dkr.ecr.us-west-2.amazonaws.com/"
330+
"huggingface-pytorch-tgi-inference:2.1.1-tgi1.4.0-gpu-py310-cu121-ubuntu20.04",
327331
env={
328332
"SAGEMAKER_PROGRAM": "inference.py",
329333
"ENDPOINT_SERVER_TIMEOUT": "3600",
@@ -412,8 +416,10 @@ def test_gated_model_s3_uri(
412416
mock_estimator_init.assert_called_once_with(
413417
instance_type="ml.g5.12xlarge",
414418
instance_count=1,
415-
image_uri="763104351884.dkr.ecr.us-west-2.amazonaws.com/huggingface-pytorch-training:2.0.0-transformers4.28.1-gpu-py310-cu118-ubuntu20.04",
416-
source_dir="s3://jumpstart-cache-prod-us-west-2/source-directory-tarballs/meta/transfer_learning/textgeneration/v1.0.6/sourcedir.tar.gz",
419+
image_uri="763104351884.dkr.ecr.us-west-2.amazonaws.com/huggingface-"
420+
"pytorch-training:2.0.0-transformers4.28.1-gpu-py310-cu118-ubuntu20.04",
421+
source_dir="s3://jumpstart-cache-prod-us-west-2/source-directory-tarballs/"
422+
"meta/transfer_learning/textgeneration/v1.0.6/sourcedir.tar.gz",
417423
entry_point="transfer_learning.py",
418424
hyperparameters={
419425
"int8_quantization": "False",
@@ -457,7 +463,8 @@ def test_gated_model_s3_uri(
457463
encrypt_inter_container_traffic=True,
458464
environment={
459465
"accept_eula": "true",
460-
"SageMakerGatedModelS3Uri": "s3://sagemaker-repository-pdx/model-data-model-package_llama2-7b-f-v4-71eeccf76ddf33f2a18d2e16b9c7f302",
466+
"SageMakerGatedModelS3Uri": "s3://sagemaker-repository-pdx/"
467+
"model-data-model-package_llama2-7b-f-v4-71eeccf76ddf33f2a18d2e16b9c7f302",
461468
},
462469
tags=[
463470
{
@@ -1919,7 +1926,8 @@ def test_model_artifact_variant_estimator(
19191926
instance_count=1,
19201927
image_uri="763104351884.dkr.ecr.us-west-2.amazonaws.com/pytorch-training:1.10.0-cpu-py38",
19211928
model_uri="s3://jumpstart-cache-prod-us-west-2/hello-world-1",
1922-
source_dir="s3://jumpstart-cache-prod-us-west-2/source-directory-tarballs/pytorch/transfer_learning/ic/prepack/v1.1.0/sourcedir.tar.gz",
1929+
source_dir="s3://jumpstart-cache-prod-us-west-2/source-directory-tarballs/"
1930+
"pytorch/transfer_learning/ic/prepack/v1.1.0/sourcedir.tar.gz",
19231931
entry_point="transfer_learning.py",
19241932
hyperparameters={
19251933
"train_only_top_layer": "True",
@@ -1950,8 +1958,10 @@ def test_model_artifact_variant_estimator(
19501958
instance_type="ml.p3.2xlarge",
19511959
instance_count=1,
19521960
image_uri="763104351884.dkr.ecr.us-west-2.amazonaws.com/pytorch-training:1.10.0-gpu-py38",
1953-
model_uri="s3://jumpstart-cache-prod-us-west-2/pytorch-training/v2.0.0/train-pytorch-ic-mobilenet-v2.tar.gz",
1954-
source_dir="s3://jumpstart-cache-prod-us-west-2/source-directory-tarballs/pytorch/transfer_learning/ic/prepack/v1.1.0/sourcedir.tar.gz",
1961+
model_uri="s3://jumpstart-cache-prod-us-west-2/pytorch-training/"
1962+
"v2.0.0/train-pytorch-ic-mobilenet-v2.tar.gz",
1963+
source_dir="s3://jumpstart-cache-prod-us-west-2/source-directory-tarballs/"
1964+
"pytorch/transfer_learning/ic/prepack/v1.1.0/sourcedir.tar.gz",
19551965
entry_point="transfer_learning.py",
19561966
hyperparameters={
19571967
"train_only_top_layer": "True",
@@ -2061,9 +2071,12 @@ def test_estimator_initialization_with_config_name(
20612071
mock_estimator_init.assert_called_with(
20622072
instance_type="ml.p2.xlarge",
20632073
instance_count=1,
2064-
image_uri="763104351884.dkr.ecr.us-west-2.amazonaws.com/huggingface-pytorch-training:1.13.1-neuronx-py310-sdk2.14.1-ubuntu20.04",
2065-
model_uri="s3://jumpstart-cache-prod-us-west-2/artifacts/meta-textgeneration-llama-2-7b/gpu-training/model/",
2066-
source_dir="s3://jumpstart-cache-prod-us-west-2/source-directory-tarballs/pytorch/transfer_learning/ic/prepack/v1.1.0/sourcedir.tar.gz",
2074+
image_uri="763104351884.dkr.ecr.us-west-2.amazonaws.com/"
2075+
"huggingface-pytorch-training:1.13.1-neuronx-py310-sdk2.14.1-ubuntu20.04",
2076+
model_uri="s3://jumpstart-cache-prod-us-west-2/artifacts/"
2077+
"meta-textgeneration-llama-2-7b/gpu-training/model/",
2078+
source_dir="s3://jumpstart-cache-prod-us-west-2/source-directory-tarballs/"
2079+
"pytorch/transfer_learning/ic/prepack/v1.1.0/sourcedir.tar.gz",
20672080
entry_point="transfer_learning.py",
20682081
hyperparameters={
20692082
"train_only_top_layer": "True",
@@ -2131,7 +2144,8 @@ def test_estimator_set_config_name(
21312144
"pytorch-training:1.13.1-py310-sdk2.14.1-ubuntu20.04",
21322145
model_uri="s3://jumpstart-cache-prod-us-west-2/artifacts/meta-textgeneration-llama-2-7b/"
21332146
"gpu-training-budget/model/",
2134-
source_dir="s3://jumpstart-cache-prod-us-west-2/source-directory-tarballs/pytorch/transfer_learning/ic/prepack/v1.1.0/sourcedir.tar.gz",
2147+
source_dir="s3://jumpstart-cache-prod-us-west-2/source-directory-tarballs/"
2148+
"pytorch/transfer_learning/ic/prepack/v1.1.0/sourcedir.tar.gz",
21352149
entry_point="transfer_learning.py",
21362150
hyperparameters={
21372151
"train_only_top_layer": "True",

tests/unit/sagemaker/jumpstart/model/test_model.py

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,9 @@ def test_non_prepacked_inference_component_based_endpoint_no_default_pass_custom
282282
"1.10.2-transformers4.17.0-gpu-py38-cu113-ubuntu20.04",
283283
model_data={
284284
"S3DataSource": {
285-
"S3Uri": "s3://jumpstart-cache-prod-us-west-2/huggingface-txt2img/huggingface-txt2img-conflictx-complex-lineart/artifacts/inference-prepack/v1.0.0/",
285+
"S3Uri": "s3://jumpstart-cache-prod-us-west-2/"
286+
"huggingface-txt2img/huggingface-txt2img-conflictx"
287+
"-complex-lineart/artifacts/inference-prepack/v1.0.0/",
286288
"S3DataType": "S3Prefix",
287289
"CompressionType": "None",
288290
}
@@ -370,7 +372,9 @@ def test_prepacked(
370372
"1.10.2-transformers4.17.0-gpu-py38-cu113-ubuntu20.04",
371373
model_data={
372374
"S3DataSource": {
373-
"S3Uri": "s3://jumpstart-cache-prod-us-west-2/huggingface-txt2img/huggingface-txt2img-conflictx-complex-lineart/artifacts/inference-prepack/v1.0.0/",
375+
"S3Uri": "s3://jumpstart-cache-prod-us-west-2/"
376+
"huggingface-txt2img/huggingface-txt2img-conflictx"
377+
"-complex-lineart/artifacts/inference-prepack/v1.0.0/",
374378
"S3DataType": "S3Prefix",
375379
"CompressionType": "None",
376380
}
@@ -1188,7 +1192,8 @@ def test_jumpstart_model_package_arn(
11881192
self.assertEqual(
11891193
mock_session.create_model.call_args[0][2],
11901194
{
1191-
"ModelPackageName": "arn:aws:sagemaker:us-west-2:594846645681:model-package/llama2-7b-f-v4-71eeccf76ddf33f2a18d2e16b9c7f302"
1195+
"ModelPackageName": "arn:aws:sagemaker:us-west-2:594846645681:"
1196+
"model-package/llama2-7b-f-v4-71eeccf76ddf33f2a18d2e16b9c7f302"
11921197
},
11931198
)
11941199

@@ -1269,7 +1274,8 @@ def test_jumpstart_model_package_arn_unsupported_region(
12691274
JumpStartModel(model_id=model_id, region="us-west-1")
12701275
assert (
12711276
str(e.value) == "Model package arn for 'js-model-package-arn' not supported in "
1272-
"us-west-1. Please try one of the following regions: us-west-2, us-east-2, us-east-1, eu-west-1, ap-southeast-1, ap-southeast-2."
1277+
"us-west-1. Please try one of the following regions: "
1278+
"us-west-2, us-east-2, us-east-1, eu-west-1, ap-southeast-1, ap-southeast-2."
12731279
)
12741280

12751281
@mock.patch(
@@ -1383,8 +1389,10 @@ def test_model_data_s3_prefix_model(
13831389
JumpStartModel(model_id=model_id, instance_type="ml.p2.xlarge")
13841390

13851391
mock_model_init.assert_called_once_with(
1386-
image_uri="763104351884.dkr.ecr.us-west-2.amazonaws.com/huggingface-pytorch-inference:1.13.1-transformers4.26.0-gpu-py39-cu117-ubuntu20.04",
1387-
model_data="s3://jumpstart-cache-prod-us-west-2/huggingface-infer/prepack/v1.1.2/infer-prepack-huggingface-text2text-flan-t5-xxl-fp16.tar.gz",
1392+
image_uri="763104351884.dkr.ecr.us-west-2.amazonaws.com/huggingface-"
1393+
"pytorch-inference:1.13.1-transformers4.26.0-gpu-py39-cu117-ubuntu20.04",
1394+
model_data="s3://jumpstart-cache-prod-us-west-2/huggingface-infer/"
1395+
"prepack/v1.1.2/infer-prepack-huggingface-text2text-flan-t5-xxl-fp16.tar.gz",
13881396
env={
13891397
"SAGEMAKER_PROGRAM": "inference.py",
13901398
"ENDPOINT_SERVER_TIMEOUT": "3600",
@@ -1463,10 +1471,12 @@ def test_model_artifact_variant_model(
14631471
JumpStartModel(model_id=model_id, instance_type="ml.p3.2xlarge")
14641472

14651473
mock_model_init.assert_called_once_with(
1466-
image_uri="763104351884.dkr.ecr.us-west-2.amazonaws.com/pytorch-inference:1.10.0-gpu-py38",
1474+
image_uri="763104351884.dkr.ecr.us-west-2.amazonaws.com/"
1475+
"pytorch-inference:1.10.0-gpu-py38",
14671476
model_data={
14681477
"S3DataSource": {
1469-
"S3Uri": "s3://jumpstart-cache-prod-us-west-2/pytorch-ic/pytorch-ic-mobilenet-v2/artifacts/inference-prepack/v1.0.0/",
1478+
"S3Uri": "s3://jumpstart-cache-prod-us-west-2/"
1479+
"pytorch-ic/pytorch-ic-mobilenet-v2/artifacts/inference-prepack/v1.0.0/",
14701480
"S3DataType": "S3Prefix",
14711481
"CompressionType": "None",
14721482
}
@@ -1949,7 +1959,8 @@ def test_model_deployment_config_additional_model_data_source(
19491959
image_uri="763104351884.dkr.ecr.us-west-2.amazonaws.com/pytorch-inference:1.10.0-cpu-py38",
19501960
model_data={
19511961
"S3DataSource": {
1952-
"S3Uri": "s3://jumpstart-cache-prod-us-west-2/pytorch-ic/pytorch-ic-mobilenet-v2/artifacts/inference-prepack/v1.0.0/",
1962+
"S3Uri": "s3://jumpstart-cache-prod-us-west-2/pytorch-ic"
1963+
"/pytorch-ic-mobilenet-v2/artifacts/inference-prepack/v1.0.0/",
19531964
"S3DataType": "S3Prefix",
19541965
"CompressionType": "None",
19551966
}

tests/unit/sagemaker/jumpstart/test_artifacts.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
from sagemaker.jumpstart.artifacts.model_uris import _retrieve_model_uri
3535
from sagemaker.jumpstart.enums import JumpStartScriptScope, JumpStartModelType
3636

37-
from tests.unit.sagemaker.jumpstart.utils import get_spec_from_base_spec, get_special_model_spec
37+
from tests.unit.sagemaker.jumpstart.utils import get_special_model_spec
3838
from tests.unit.sagemaker.workflow.conftest import mock_client
3939

4040

0 commit comments

Comments
 (0)