From cb7a18a1e24113fc2913c32e618e01932410bcde Mon Sep 17 00:00:00 2001 From: Lukas Kluft Date: Tue, 18 Feb 2020 13:23:37 +0100 Subject: [PATCH 1/3] Fix backwards incompatible change in AST library Python 3.8 introduces a backwards incompatible change in `ast.Module`. Add working solutions for any Python 3.x version (with version check). See: https://bugs.python.org/issue35894#msg334808 --- typhon/arts/workspace/workspace.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/typhon/arts/workspace/workspace.py b/typhon/arts/workspace/workspace.py index cd1dd6f9..3a649681 100644 --- a/typhon/arts/workspace/workspace.py +++ b/typhon/arts/workspace/workspace.py @@ -11,6 +11,7 @@ """ import ctypes as c import logging +import sys import numpy as np import ast @@ -126,7 +127,11 @@ def callback_make_fun(body): Helper function that creates a wrapper function around python code to be executed withing an ARTS agenda. """ - m = Module(body) + if sys.version_info >= (3, 8): + # https://bugs.python.org/issue35894#msg334808 + m = Module(body, []) + else: + m = Module(body) def callback(ptr): try: From 4cc08c524554ed7222d04b40e1d1e1d711e81e8c Mon Sep 17 00:00:00 2001 From: Lukas Kluft Date: Tue, 18 Feb 2020 13:29:07 +0100 Subject: [PATCH 2/3] Remove unused imports --- typhon/arts/workspace/workspace.py | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/typhon/arts/workspace/workspace.py b/typhon/arts/workspace/workspace.py index 3a649681..2fa20f5a 100644 --- a/typhon/arts/workspace/workspace.py +++ b/typhon/arts/workspace/workspace.py @@ -12,25 +12,19 @@ import ctypes as c import logging import sys -import numpy as np -import ast -from ast import iter_child_nodes, parse, NodeVisitor, Call, Attribute, Name, \ - Expression, Expr, FunctionDef, Starred, Module, expr +from ast import parse, Call, Name, Expression, Expr, FunctionDef, Starred, Module from inspect import getsource, getclosurevars -from contextlib import contextmanager from copy import copy -from functools import wraps import os from typhon.arts.workspace.api import arts_api, VariableValueStruct, \ data_path_push, data_path_pop, \ include_path_push, include_path_pop -from typhon.arts.workspace.methods import WorkspaceMethod, workspace_methods +from typhon.arts.workspace.methods import workspace_methods from typhon.arts.workspace.variables import WorkspaceVariable, group_names, group_ids, \ workspace_variables from typhon.arts.workspace.agendas import Agenda -from typhon.arts.workspace import variables as V from typhon.arts.workspace.output import CoutCapture from typhon.arts.workspace.utility import unindent From 11c41660762c825b6c4b07c12fa801d87be41f41 Mon Sep 17 00:00:00 2001 From: Lukas Kluft Date: Tue, 18 Feb 2020 13:30:46 +0100 Subject: [PATCH 3/3] Reformat imports --- typhon/arts/workspace/workspace.py | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/typhon/arts/workspace/workspace.py b/typhon/arts/workspace/workspace.py index 2fa20f5a..666e242d 100644 --- a/typhon/arts/workspace/workspace.py +++ b/typhon/arts/workspace/workspace.py @@ -13,18 +13,27 @@ import logging import sys -from ast import parse, Call, Name, Expression, Expr, FunctionDef, Starred, Module -from inspect import getsource, getclosurevars -from copy import copy +from ast import parse, Call, Name, Expression, Expr, FunctionDef, Starred, Module +from inspect import getsource, getclosurevars +from copy import copy import os -from typhon.arts.workspace.api import arts_api, VariableValueStruct, \ - data_path_push, data_path_pop, \ - include_path_push, include_path_pop -from typhon.arts.workspace.methods import workspace_methods -from typhon.arts.workspace.variables import WorkspaceVariable, group_names, group_ids, \ - workspace_variables -from typhon.arts.workspace.agendas import Agenda +from typhon.arts.workspace.api import ( + arts_api, + VariableValueStruct, + data_path_push, + data_path_pop, + include_path_push, + include_path_pop, +) +from typhon.arts.workspace.methods import workspace_methods +from typhon.arts.workspace.variables import ( + WorkspaceVariable, + group_names, + group_ids, + workspace_variables, +) +from typhon.arts.workspace.agendas import Agenda from typhon.arts.workspace.output import CoutCapture from typhon.arts.workspace.utility import unindent