R/TransformReturnValues.R

Defines functions pyTransformReturn

##  -----------------------------------------------------------
##  pyTransformReturn
##  =================
##
##  Is used to transform the return values it is not integrated
##  into pyGet so it can be reused for pyCall.
##
## -----------------------------------------------------------

pyTransformReturn <- function(obj) obj

setGeneric("pyTransformReturn")

setClass("PythonObject")
setMethod("pyTransformReturn", signature(obj = "PythonObject"),
          function(obj){
    variableName <- sprintf("__R__.namespace[%i]", obj$id)
    if (obj$isCallable){
        return(pyFunction(variableName, regFinalizer = TRUE))
    }else if ( obj$type == "list" ){
        return(pyList(variableName, regFinalizer = TRUE))
    }else if ( obj$type == "dict" ){
        return(pyDict(variableName, regFinalizer = TRUE))
    }else{
        return(pyObject(variableName, regFinalizer = TRUE))
    }
})

Try the PythonInR package in your browser

Any scripts or data that you put into this service are public.

PythonInR documentation built on July 1, 2020, 6:05 p.m.