summaryrefslogtreecommitdiff
path: root/ast2json/rpyc2json.py
diff options
context:
space:
mode:
Diffstat (limited to 'ast2json/rpyc2json.py')
-rwxr-xr-xast2json/rpyc2json.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/ast2json/rpyc2json.py b/ast2json/rpyc2json.py
index 7c8518b..ec4f4b8 100755
--- a/ast2json/rpyc2json.py
+++ b/ast2json/rpyc2json.py
@@ -66,16 +66,20 @@ def get_value(attr_value):
return attr_value
if isinstance(attr_value, (int, str, float, complex, bool)):
return attr_value
- if isinstance(attr_value, list) or isinstance(attr_value, tuple):
+ if isinstance(attr_value, (list, tuple)):
return [get_value(x) for x in attr_value]
if isinstance(attr_value, dict):
return attr_value
if isinstance(attr_value, renpy.ast.Node):
return node2json(attr_value)
+ if isinstance(attr_value, (renpy.ast.Python, renpy.ast.EarlyPython)):
+ attr_value.code.mode = 'exec'
+ if isinstance(attr_value, (renpy.ast.Image, renpy.ast.Define)):
+ attr_value.code.mode = 'eval'
if isinstance(attr_value, renpy.ast.PyCode):
return {
"source": attr_value.source,
- "ast": ast2json.str2json(attr_value.source)
+ "ast": ast2json.str2json(attr_value.source, attr_value.mode)
}
if isinstance(attr_value, renpy.ast.ArgumentInfo):
return list(map(lambda x: getattr(attr_value, x), ["arguments", "extrapos", "extrakw"]))