Skip to content

Commit f0bd309

Browse files
committed
remove _adapt_to_ts_format fn
1 parent b571020 commit f0bd309

File tree

2 files changed

+9
-90
lines changed

2 files changed

+9
-90
lines changed

src/sagemaker_pytorch_serving_container/torchserve.py

Lines changed: 6 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,11 @@
4141
DEFAULT_TS_LOG_FILE = pkg_resources.resource_filename(
4242
sagemaker_pytorch_serving_container.__name__, "/etc/log4j2.xml"
4343
)
44-
DEFAULT_TS_MODEL_DIRECTORY = os.path.join(os.getcwd(), ".sagemaker", "ts", "models")
4544
DEFAULT_TS_MODEL_NAME = "model"
46-
DEFAULT_TS_CODE_DIR = "code"
4745
DEFAULT_HANDLER_SERVICE = "sagemaker_pytorch_serving_container.handler_service"
4846

4947
ENABLE_MULTI_MODEL = os.getenv("SAGEMAKER_MULTI_MODEL", "false") == "true"
50-
MODEL_STORE = "/" if ENABLE_MULTI_MODEL else DEFAULT_TS_MODEL_DIRECTORY
48+
MODEL_STORE = "/" if ENABLE_MULTI_MODEL else os.path.join(os.getcwd(), ".sagemaker", "ts", "models")
5149

5250
PYTHON_PATH_ENV = "PYTHONPATH"
5351
REQUIREMENTS_PATH = os.path.join(code_dir, "requirements.txt")
@@ -70,12 +68,10 @@ def start_torchserve(handler_service=DEFAULT_HANDLER_SERVICE):
7068
7169
"""
7270

73-
if ENABLE_MULTI_MODEL:
74-
if "SAGEMAKER_HANDLER" not in os.environ:
75-
os.environ["SAGEMAKER_HANDLER"] = handler_service
76-
_set_python_path()
77-
else:
78-
_adapt_to_ts_format(handler_service)
71+
if ENABLE_MULTI_MODEL and "SAGEMAKER_HANDLER" not in os.environ:
72+
os.environ["SAGEMAKER_HANDLER"] = handler_service
73+
74+
_set_python_path()
7975

8076
_create_torchserve_config_file()
8177

@@ -92,7 +88,7 @@ def start_torchserve(handler_service=DEFAULT_HANDLER_SERVICE):
9288
"--log-config",
9389
DEFAULT_TS_LOG_FILE,
9490
"--models",
95-
"model.mar"
91+
DEFAULT_TS_MODEL_NAME + "=" + environment.model_dir
9692
]
9793

9894
print(ts_torchserve_cmd)
@@ -107,30 +103,6 @@ def start_torchserve(handler_service=DEFAULT_HANDLER_SERVICE):
107103
ts_process.wait()
108104

109105

110-
def _adapt_to_ts_format(handler_service):
111-
if not os.path.exists(DEFAULT_TS_MODEL_DIRECTORY):
112-
os.makedirs(DEFAULT_TS_MODEL_DIRECTORY)
113-
114-
model_archiver_cmd = [
115-
"torch-model-archiver",
116-
"--model-name",
117-
DEFAULT_TS_MODEL_NAME,
118-
"--handler",
119-
handler_service,
120-
"--export-path",
121-
DEFAULT_TS_MODEL_DIRECTORY,
122-
"--version",
123-
"1",
124-
"--extra-files",
125-
os.path.join(environment.model_dir)
126-
]
127-
128-
logger.info(model_archiver_cmd)
129-
subprocess.check_call(model_archiver_cmd)
130-
131-
_set_python_path()
132-
133-
134106
def _set_python_path():
135107
# Torchserve handles code execution by appending the export path, provided
136108
# to the model archiver, to the PYTHONPATH env var.

test/unit/test_model_server.py

Lines changed: 3 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,7 @@
3434
@patch("sagemaker_pytorch_serving_container.torchserve._install_requirements")
3535
@patch("os.path.exists", return_value=True)
3636
@patch("sagemaker_pytorch_serving_container.torchserve._create_torchserve_config_file")
37-
@patch("sagemaker_pytorch_serving_container.torchserve._adapt_to_ts_format")
3837
def test_start_torchserve_default_service_handler(
39-
adapt,
4038
create_config,
4139
exists,
4240
install_requirements,
@@ -47,7 +45,6 @@ def test_start_torchserve_default_service_handler(
4745
):
4846
torchserve.start_torchserve()
4947

50-
adapt.assert_called_once_with(torchserve.DEFAULT_HANDLER_SERVICE)
5148
create_config.assert_called_once_with()
5249
exists.assert_called_once_with(REQUIREMENTS_PATH)
5350
install_requirements.assert_called_once_with()
@@ -62,7 +59,7 @@ def test_start_torchserve_default_service_handler(
6259
"--log-config",
6360
torchserve.DEFAULT_TS_LOG_FILE,
6461
"--models",
65-
"model.mar"
62+
"model=/opt/ml/model"
6663
]
6764

6865
subprocess_popen.assert_called_once_with(ts_model_server_cmd)
@@ -76,9 +73,7 @@ def test_start_torchserve_default_service_handler(
7673
@patch("sagemaker_pytorch_serving_container.torchserve._install_requirements")
7774
@patch("os.path.exists", return_value=True)
7875
@patch("sagemaker_pytorch_serving_container.torchserve._create_torchserve_config_file")
79-
@patch("sagemaker_pytorch_serving_container.torchserve._adapt_to_ts_format")
8076
def test_start_torchserve_default_service_handler_multi_model(
81-
adapt,
8277
create_config,
8378
exists,
8479
install_requirements,
@@ -104,7 +99,7 @@ def test_start_torchserve_default_service_handler_multi_model(
10499
"--log-config",
105100
torchserve.DEFAULT_TS_LOG_FILE,
106101
"--models",
107-
"model.mar"
102+
"model=/opt/ml/model"
108103
]
109104

110105
subprocess_popen.assert_called_once_with(ts_model_server_cmd)
@@ -116,61 +111,13 @@ def test_start_torchserve_default_service_handler_multi_model(
116111
@patch("sagemaker_pytorch_serving_container.torchserve._retrieve_ts_server_process")
117112
@patch("sagemaker_pytorch_serving_container.torchserve._add_sigterm_handler")
118113
@patch("sagemaker_pytorch_serving_container.torchserve._create_torchserve_config_file")
119-
@patch("sagemaker_pytorch_serving_container.torchserve._adapt_to_ts_format")
120114
def test_start_torchserve_custom_handler_service(
121-
adapt, create_config, sigterm, retrieve, subprocess_popen, subprocess_call
115+
create_config, sigterm, retrieve, subprocess_popen, subprocess_call
122116
):
123117
handler_service = Mock()
124118

125119
torchserve.start_torchserve(handler_service)
126120

127-
adapt.assert_called_once_with(handler_service)
128-
129-
130-
@patch("sagemaker_pytorch_serving_container.torchserve._set_python_path")
131-
@patch("subprocess.check_call")
132-
@patch("os.makedirs")
133-
@patch("os.path.exists", return_value=False)
134-
def test_adapt_to_ts_format(path_exists, make_dir, subprocess_check_call, set_python_path):
135-
handler_service = Mock()
136-
137-
torchserve._adapt_to_ts_format(handler_service)
138-
139-
path_exists.assert_called_once_with(torchserve.DEFAULT_TS_MODEL_DIRECTORY)
140-
make_dir.assert_called_once_with(torchserve.DEFAULT_TS_MODEL_DIRECTORY)
141-
142-
model_archiver_cmd = [
143-
"torch-model-archiver",
144-
"--model-name",
145-
torchserve.DEFAULT_TS_MODEL_NAME,
146-
"--handler",
147-
handler_service,
148-
"--export-path",
149-
torchserve.DEFAULT_TS_MODEL_DIRECTORY,
150-
"--version",
151-
"1",
152-
"--extra-files",
153-
environment.model_dir
154-
]
155-
156-
subprocess_check_call.assert_called_once_with(model_archiver_cmd)
157-
set_python_path.assert_called_once_with()
158-
159-
160-
@patch("sagemaker_pytorch_serving_container.torchserve._set_python_path")
161-
@patch("subprocess.check_call")
162-
@patch("os.makedirs")
163-
@patch("os.path.exists", return_value=True)
164-
def test_adapt_to_ts_format_existing_path(
165-
path_exists, make_dir, subprocess_check_call, set_python_path
166-
):
167-
handler_service = Mock()
168-
169-
torchserve._adapt_to_ts_format(handler_service)
170-
171-
path_exists.assert_called_once_with(torchserve.DEFAULT_TS_MODEL_DIRECTORY)
172-
make_dir.assert_not_called()
173-
174121

175122
@patch.dict(os.environ, {torchserve.PYTHON_PATH_ENV: PYTHON_PATH}, clear=True)
176123
def test_set_existing_python_path():

0 commit comments

Comments
 (0)