diff options
author | TinWoodman92 <chrhodgden@gmail.com> | 2023-06-26 17:14:41 -0500 |
---|---|---|
committer | TinWoodman92 <chrhodgden@gmail.com> | 2023-06-26 17:14:41 -0500 |
commit | 18a0fcd67b61c6beadd14ef1e57c3e05a35b7270 (patch) | |
tree | ecb5835c6499c84d272b967c699d17589a90121e | |
parent | c0c32a7d2b9d0740521fed51dceff79b68d68f0a (diff) |
added evaluate_expression handling with argss
-rw-r--r-- | dialoguer/__init__.py | 8 | ||||
-rw-r--r-- | dialoguer/context_script.r | 14 |
2 files changed, 19 insertions, 3 deletions
diff --git a/dialoguer/__init__.py b/dialoguer/__init__.py index 5c4b3da..367e14b 100644 --- a/dialoguer/__init__.py +++ b/dialoguer/__init__.py @@ -102,8 +102,8 @@ class Dialogue: self.send(len(args)) recv_chk = self.recv(set_data_type=bool) #send number of keyword arguments - self.send(len(kwargs) - recv_chk = self.recv(set_data_type=bool) + # self.send(len(kwargs)) + # recv_chk = self.recv(set_data_type=bool) #send method name self.send(method_name) recv_chk = self.recv(set_data_type=bool) @@ -119,6 +119,10 @@ class Dialogue: #v = val(kwarg) #self.send(v, True) #recv_chk = self.recv(set_data_type=bool) + pass + result = self.recv(True) + return result + def close(self): self.send(0) diff --git a/dialoguer/context_script.r b/dialoguer/context_script.r index 1d59dd8..8629f2a 100644 --- a/dialoguer/context_script.r +++ b/dialoguer/context_script.r @@ -123,7 +123,19 @@ import_variable <- function() { } evaluate_expression <- function () { - + arg_count <- recv(con, FALSE, "integer") + send(con, TRUE) + method_name <- recv(con, FALSE, "character") + send(con, TRUE) + args <- list() + if (arg_count > 0) { + for (i in 1:arg_count) { + args <- c(args, recv(con, TRUE)) + send(con, TRUE) + } + } + result <- do.call(method_name, args) + send(con, result, TRUE) } con <- find_connection() |