Skip to content

Commit 844b45e

Browse files
committed
Added serialization type. 0 - str, 1 - repr. Defaults to str
1 parent cb75825 commit 844b45e

File tree

2 files changed

+12
-6
lines changed

2 files changed

+12
-6
lines changed

c/iscpython.c

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ int SimpleStringFull(char *command, double* result) {
110110
}
111111

112112
// Assumes initialized environment
113-
int SimpleString(char *command, char *resultVar, CACHE_EXSTRP result) {
113+
int SimpleString(char *command, char *resultVar, int serialization, CACHE_EXSTRP result) {
114114

115115
if (isInitialized == false) {
116116
Initialize();
@@ -122,9 +122,14 @@ int SimpleString(char *command, char *resultVar, CACHE_EXSTRP result) {
122122

123123
if (exists == 1) {
124124
PyObject *var = PyObject_GetAttrString(mainModule, resultVar);
125+
PyObject* varStr;
126+
127+
if (serialization==0) {
128+
varStr = PyObject_Str(var);
129+
} else {
130+
varStr = PyObject_Repr(var);
131+
}
125132

126-
//PyObject* varStr = PyObject_Repr(var);
127-
PyObject* varStr = PyObject_Str(var);
128133
char* str = PyUnicode_AsUTF8(varStr);
129134

130135
//sprintf(result, "%s", str);
@@ -168,5 +173,5 @@ ZFBEGIN
168173
ZFENTRY("GetRandom","D",GetRandom)
169174
ZFENTRY("GetRandomSimple","D",GetRandomSimple)
170175
ZFENTRY("SimpleStringFull","cD",SimpleStringFull)
171-
ZFENTRY("SimpleString","ccJ",SimpleString)
176+
ZFENTRY("SimpleString","cciJ",SimpleString)
172177
ZFEND

isc/py/Callout.cls

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,16 +84,17 @@ ClassMethod SimpleStringFull(code = {"import random;" _ $$$NL _ "x=random.random
8484

8585
/// Eval code vaiable in initialized context and
8686
/// return value of variable str evaluation
87+
/// serialization - currenlty: 0 - string serialization, 1 - repr serialization.
8788
/// TODO determine wide variable value.
8889
/// write ##class(isc.py.Callout).SimpleString()
89-
ClassMethod SimpleString(code As %String = "", variable As %String = "") As %Double
90+
ClassMethod SimpleString(code As %String = "", variable As %String = "", serialization As %Integer = 0) As %String
9091
{
9192
set converted = $$$NO
9293
if $ZISWIDE(code) {
9394
set code = $zcvt(code, "O", "UTF8")
9495
set converted = $$$YES
9596
}
96-
set result = $ZF(-6, ..#PyLibId, ..#SimpleString, code, variable)
97+
set result = $ZF(-6, ..#PyLibId, ..#SimpleString, code, variable, serialization)
9798

9899
set:converted result = $zcvt(result, "I", "UTF8")
99100
quit result

0 commit comments

Comments
 (0)