Skip to content

Commit 74cacd5

Browse files
authored
fix: Fix key prefix preventing jumpstart model repack (#3943)
1 parent 3d61dd5 commit 74cacd5

File tree

2 files changed

+24
-1
lines changed

2 files changed

+24
-1
lines changed

src/sagemaker/model.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -592,7 +592,11 @@ def prepare_container_def(
592592
deploy_env = copy.deepcopy(self.env)
593593
if self.source_dir or self.dependencies or self.entry_point or self.git_config:
594594
is_repack = (
595-
self.source_dir and self.entry_point and not (self.key_prefix or self.git_config)
595+
self.source_dir
596+
and self.entry_point
597+
and not (
598+
(self.key_prefix and issubclass(type(self), FrameworkModel)) or self.git_config
599+
)
596600
)
597601
self._upload_code(deploy_key_prefix, repack=is_repack)
598602
deploy_env.update(self._script_mode_env_vars())

tests/unit/sagemaker/model/test_model.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -686,6 +686,25 @@ def test_script_mode_model_uses_jumpstart_base_name(repack_model, sagemaker_sess
686686
].startswith(JUMPSTART_RESOURCE_BASE_NAME)
687687

688688

689+
@patch("sagemaker.utils.repack_model")
690+
def test_repack_code_location_with_key_prefix(repack_model, sagemaker_session):
691+
692+
code_location = "s3://my-bucket/code/location/"
693+
694+
t = Model(
695+
entry_point=ENTRY_POINT_INFERENCE,
696+
role=ROLE,
697+
sagemaker_session=sagemaker_session,
698+
source_dir=SCRIPT_URI,
699+
image_uri=IMAGE_URI,
700+
model_data=MODEL_DATA,
701+
code_location=code_location,
702+
)
703+
t.deploy(instance_type=INSTANCE_TYPE, initial_instance_count=INSTANCE_COUNT)
704+
705+
repack_model.assert_called_once()
706+
707+
689708
@patch("sagemaker.utils.repack_model")
690709
@patch("sagemaker.fw_utils.tar_and_upload_dir")
691710
def test_all_framework_models_add_jumpstart_base_name(

0 commit comments

Comments
 (0)