-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDS2Pkg_PythonWrapper.sas
More file actions
52 lines (47 loc) · 2.18 KB
/
DS2Pkg_PythonWrapper.sas
File metadata and controls
52 lines (47 loc) · 2.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package pythonScore / overwrite=yes;
dcl package pymas pm;
dcl package logger logr('App.MM.Python.DS2');
dcl varchar(32767) character set utf8 pypgm;
dcl int resultCode revision;
method score(varchar(100) "input_data",
in_out double resultCode,
in_out varchar(10000) "access_token",
in_out varchar(9999) "score_response_json");
resultCode = revision = 0;
if null(pm) then do;
pm = _new_ pymas();
resultCode = pm.useModule('model_exec_739830ba-c128-4275-8dfd-d3e6eb2fa40a', 1);
if resultCode then do;
resultCode = pm.appendSrcLine('import sys');
resultCode = pm.appendSrcLine('sys.path.append("/models/resources/viya/386bd18e-ca5a-4e29-824f-b0d6fc630c53/")');
resultCode = pm.appendSrcLine('import settings_386bd18e_ca5a_4e29_824f_b0d6fc630c53');
resultCode = pm.appendSrcLine('settings_386bd18e_ca5a_4e29_824f_b0d6fc630c53.pickle_path = "/models/resources/viya/386bd18e-ca5a-4e29-824f-b0d6fc630c53/"');
resultCode = pm.appendSrcLine('import score_9f9de83d_ab95_4300_9646_63eec693dc46');
resultCode = pm.appendSrcLine('def score_model(input_data):');
resultCode = pm.appendSrcLine(' "Output: access_token, score_response_json"');
resultCode = pm.appendSrcLine(' return score_9f9de83d_ab95_4300_9646_63eec693dc46.score_model(input_data)');
revision = pm.publish(pm.getSource(), 'model_exec_739830ba-c128-4275-8dfd-d3e6eb2fa40a');
if ( revision < 1 ) then do;
logr.log( 'e', 'py.publish() failed.');
resultCode = -1;
return;
end;
end;
end;
resultCode = pm.useMethod('score_model');
if resultCode then do;
logr.log('E', 'useMethod() failed. resultCode=$s', resultCode);
return;
end;
resultCode = pm.setString('input_data', "input_data");
if resultCode then
logr.log('E', 'setString for input_data failed. resultCode=$s', resultCode);
resultCode = pm.execute();
if (resultCode) then
logr.log('E', 'Error: pm.execute failed. resultCode=$s', resultCode);
else do;
"access_token" = pm.getString('access_token');
"score_response_json" = pm.getString('score_response_json');
end;
end;
endpackage;