Skip to content

Commit 204fd85

Browse files
committed
updates to score code + score code tests (EDMMMX-11741)
1 parent d945855 commit 204fd85

File tree

2 files changed

+52
-5
lines changed

2 files changed

+52
-5
lines changed

src/sasctl/pzmm/write_score_code.py

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -497,7 +497,7 @@ def _write_imports(
497497
import codecs
498498
499499
binary_string = "<binary string>"
500-
model = pickle.load(codecs.decode(binary_string.encode(), "base64"))
500+
model = pickle.loads(codecs.decode(binary_string.encode(), "base64"))
501501
"""
502502

503503
def _viya35_model_load(
@@ -562,6 +562,26 @@ def _viya35_model_load(
562562
f'{model_id}/{model_file_name}")))'
563563
)
564564
else:
565+
if pickle_type.lower() == 'pickle':
566+
self.score_code += (
567+
f'model_path = Path("/models/resources/viya/{model_id}'
568+
f'")\nwith open(model_path / "{model_file_name}", '
569+
f"\"rb\") as pickle_model:\n{'':4}model = pd.read_pickle"
570+
"(pickle_model)\n\n"
571+
)
572+
"""
573+
model_path = Path("/models/resources/viya/<UUID>")
574+
with open(model_path / "model.pickle", "rb") as pickle_model:
575+
model = pd.read_pickle(pickle_model)
576+
577+
"""
578+
return (
579+
f"{'':8}model_path = Path(\"/models/resources/viya/{model_id}"
580+
f"\")\n{'':8}with open(model_path / \"{model_file_name}\", "
581+
f"\"rb\") as pickle_model:\n{'':12}model = pd.read_pickle"
582+
"(pickle_model)"
583+
)
584+
565585
self.score_code += (
566586
f'model_path = Path("/models/resources/viya/{model_id}'
567587
f'")\nwith open(model_path / "{model_file_name}", '
@@ -658,6 +678,23 @@ def _viya4_model_load(
658678
f"safe_mode=True)\n"
659679
)
660680
else:
681+
if pickle_type.lower() == "pickle":
682+
self.score_code += (
683+
f"with open(Path(settings.pickle_path) / "
684+
f'"{model_file_name}", "rb") as pickle_model:\n'
685+
f"{'':4}model = pd.read_pickle(pickle_model)\n\n"
686+
)
687+
"""
688+
with open(Path(settings.pickle_path) / "model.pickle", "rb") as pickle_model:
689+
model = pd.read_pickle(pickle_model)
690+
691+
"""
692+
return (
693+
f"{'':8}with open(Path(settings.pickle_path) / "
694+
f'"{model_file_name}", "rb") as pickle_model:\n'
695+
f"{'':12}model = pd.read_pickle(pickle_model)\n\n"
696+
)
697+
661698
self.score_code += (
662699
f"with open(Path(settings.pickle_path) / "
663700
f'"{model_file_name}", "rb") as pickle_model:\n'

tests/unit/test_write_score_code.py

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -118,8 +118,13 @@ def test_viya35_model_load():
118118
"""
119119
sc = ScoreCode()
120120
load_text = sc._viya35_model_load("1234", "normal")
121-
assert "pickle.load(pickle_model)" in sc.score_code
122-
assert "pickle.load(pickle_model)" in load_text
121+
assert "pd.read_pickle(pickle_model)" in sc.score_code
122+
assert "pd.read_pickle(pickle_model)" in load_text
123+
124+
sc = ScoreCode()
125+
load_text = sc._viya35_model_load("1234", "normal", pickle_type="dill")
126+
assert "dill.load(pickle_model)" in sc.score_code
127+
assert "dill.load(pickle_model)" in load_text
123128

124129
sc = ScoreCode()
125130
mojo_text = sc._viya35_model_load("2345", "mojo", mojo_model=True)
@@ -142,8 +147,13 @@ def test_viya4_model_load():
142147
"""
143148
sc = ScoreCode()
144149
load_text = sc._viya4_model_load("normal")
145-
assert "pickle.load(pickle_model)" in sc.score_code
146-
assert "pickle.load(pickle_model)" in load_text
150+
assert "pd.read_pickle(pickle_model)" in sc.score_code
151+
assert "pd.read_pickle(pickle_model)" in load_text
152+
153+
sc = ScoreCode()
154+
load_text = sc._viya35_model_load("1234", "normal", pickle_type="dill")
155+
assert "dill.load(pickle_model)" in sc.score_code
156+
assert "dill.load(pickle_model)" in load_text
147157

148158
sc = ScoreCode()
149159
mojo_text = sc._viya4_model_load("mojo", mojo_model=True)

0 commit comments

Comments
 (0)