Skip to content

Commit 0d02b83

Browse files
committed
adding ast api
1 parent d6e83c8 commit 0d02b83

2 files changed

Lines changed: 14 additions & 5 deletions

File tree

wolframclient/utils/api.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,15 @@
22

33
from wolframclient.utils.importutils import API
44

5+
ast = API(
6+
Module = 'ast.Module',
7+
PyCF_ONLY_AST = 'ast.PyCF_ONLY_AST',
8+
Expr = 'ast.Expr',
9+
Expression = 'ast.Expression',
10+
FunctionDef = 'ast.FunctionDef',
11+
ClassDef = 'ast.ClassDef',
12+
)
13+
514
pytz = API(
615
FixedOffset="pytz.FixedOffset",
716
timezone="pytz.timezone",

wolframclient/utils/externalevaluate.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
from __future__ import absolute_import, print_function, unicode_literals
22

3-
import ast
43
import logging
54
import os
65
import sys
@@ -11,7 +10,7 @@
1110
from wolframclient.language.side_effects import side_effect_logger
1211
from wolframclient.serializers import export
1312
from wolframclient.utils import six
14-
from wolframclient.utils.api import zmq
13+
from wolframclient.utils.api import ast, zmq
1514
from wolframclient.utils.datastructures import Settings
1615
from wolframclient.utils.encoding import force_text
1716
from wolframclient.utils.functional import last
@@ -34,13 +33,14 @@
3433
# https://github.com/ipython/ipython/issues/11590
3534
# PY_38 requires type_ignores to be a list, other versions are not accepting a second argument
3635

37-
def Module(code):
38-
return ast.Module(code, [])
36+
def Module(code, type_ignores = []):
37+
return ast.Module(code, type_ignores)
3938

4039

4140
else:
4241

43-
Module = ast.Module
42+
def Module(code):
43+
return ast.Module(code)
4444

4545

4646
def EvaluationEnvironment(code, session_data={}, constants=None, **extra):

0 commit comments

Comments
 (0)