From 54e8b9d3af2e7602c7504fcbd39b4ec30131cbe5 Mon Sep 17 00:00:00 2001 From: Robert Chisholm Date: Wed, 8 Nov 2023 12:32:53 +0000 Subject: [PATCH] Remove Python 3.10+ req --- swig/python/codegen/__init__.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/swig/python/codegen/__init__.py b/swig/python/codegen/__init__.py index 5dba65306..9702b4ff8 100644 --- a/swig/python/codegen/__init__.py +++ b/swig/python/codegen/__init__.py @@ -37,14 +37,17 @@ def translate(function: Union[str, Callable]) -> str: # get source for each function for d_f in d_functions: prepend_source += inspect.getsource(d_f); - # get source for function and preprend device functions + # get source for function and prepend device functions function_source = prepend_source + inspect.getsource(function) tree = ast.parse(function_source) # Filter constants - module_annontations = inspect.get_annotations(module) # requires python 3.10 module_members = inspect.getmembers(module); - print(module_annontations) - print(module_members) + # Emulate inspect.get_annotations() (requires python 3.10+) + module_annontations = {} + for mem in module_members: + if mem[0] == "__annotations__": + module_annontations = mem[1] + break prepend_c_source = "" # Find all annotated variables for key, val in module_annontations.items():