Skip to content

Commit acba636

Browse files
author
Cloud User
committed
Fix astore register model for performance charts, add python wrapper code to py register models
1 parent c3dea2f commit acba636

File tree

3 files changed

+14
-2
lines changed

3 files changed

+14
-2
lines changed

src/sasctl/tasks.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,8 @@ def get_version(x):
247247
files.append({'name': 'dmcas_epscorecode.sas',
248248
'file': mas_module.score_code(dest='CAS'),
249249
'role': 'score'})
250+
files.append({'name': 'python_wrappercode.py',
251+
'file': mas_module.score_code(dest='PY')})
250252

251253
model['inputVariables'] = [var.as_model_metadata()
252254
for var in mas_module.variables

src/sasctl/utils/astore.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,12 @@ def create_files_from_astore(table):
148148
raise RuntimeError(result)
149149

150150
astore_key = result.Key.Key[0].strip()
151-
ep_ds2 = result.epcode
151+
152+
# Remove "Keep" sas code from CAS/EP code so full table plus output are returned
153+
# This is so the MM performance charts and test work
154+
keepstart=result.epcode.find("Keep")
155+
keepend=result.epcode.find(";",keepstart)
156+
ep_ds2 = result.epcode[0:keepstart] + result.epcode[keepend+1:]
152157
package_ds2 = _generate_package_code(result)
153158
model_properties = _get_model_properties(result)
154159
input_vars = [get_variable_properties(var)
@@ -163,7 +168,7 @@ def create_files_from_astore(table):
163168
table.save(name=astore_filename, caslib='ModelStore', replace=True)
164169

165170
file_metadata = [{'role': 'analyticStore', 'name': ''},
166-
{'role': 'score', 'name': 'dmcas_packagescorecode.sas'}]
171+
{'role': 'score', 'name': 'dmcas_epscorecode.sas'}]
167172

168173
astore_metadata = [{'name': astore_filename,
169174
'caslib': 'ModelStore',

src/sasctl/utils/pymas/core.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -332,6 +332,7 @@ def __init__(self, target_function, variables, python_source,
332332
# Lines of Python code to be embedded in DS2
333333
python_source = list(self.wrapper)
334334

335+
self.python_source = python_source
335336
self.variables = variables
336337
self.return_code = return_code
337338
self.return_message = return_msg
@@ -358,6 +359,10 @@ def score_code(self, input_table=None, output_table=None, columns=None, dest='MA
358359

359360
dest = dest.upper()
360361

362+
# Python code return
363+
if dest == 'PY':
364+
return '\n'.join(map(str, self.python_source))
365+
361366
# Check for names that could result in DS2 errors.
362367
DS2_KEYWORDS = ['input', 'output']
363368
for k in DS2_KEYWORDS:

0 commit comments

Comments
 (0)