From 18a0fcd67b61c6beadd14ef1e57c3e05a35b7270 Mon Sep 17 00:00:00 2001 From: TinWoodman92 Date: Mon, 26 Jun 2023 17:14:41 -0500 Subject: added evaluate_expression handling with argss --- dialoguer/__init__.py | 8 ++++++-- 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() -- cgit v1.2.3