r-lib / debugme

Easy and efficient debugging for R packages
https://r-lib.github.io/debugme/
Other
147 stars 10 forks source link

debugme modifies data.frame to list inside R6 class field #42

Open samssann opened 4 years ago

samssann commented 4 years ago

enabling debugme through R environment variable (and building the package again), modifies data.frames in R6 class fields from data.frames to lists.

zzz.R

.onLoad <- function(libname, pkgname) {
  debugme::debugme()
}

testClass.R

library(R6)
testClass <- R6Class(
  classname = "testClass",
  public = list(
    initialize = function() {
      print(class(private$df))
      print(private$df)
    },
    df2 = data.frame(
      ID = c(0,1,2,3),
      name = c("a","b","c","d"),
      bool = c(T,F,F,F),
      stringsAsFactors = F
    )
  ),
  private = list(
    df = data.frame(
      ID = c(0,1,2,3),
      name = c("a","b","c","d"),
      bool = c(T,F,F,F),
      stringsAsFactors = F
    )
  )
)

output

> library(testpackage)
> testClass
<testClass> object generator
  Public:
    df2: data.frame
    initialize: function () 
    clone: function (deep = FALSE) 
  Private:
    df: data.frame
  Parent env: <environment: namespace:testpackage>
  Locked objects: TRUE
  Locked class: FALSE
  Portable: TRUE
> Sys.getenv("DEBUGME")
[1] ""
> Sys.setenv("DEBUGME" = "testpackage")

Restarting R session...

> library(testpackage)
> Sys.getenv("DEBUGME")
[1] "testpackage"
> testClass
<testClass> object generator
  Public:
    df2: list
    initialize: function () 
    clone: function (deep = FALSE) 
  Private:
    df: list
  Parent env: <environment: namespace:testpackage>
  Locked objects: TRUE
  Locked class: FALSE
  Portable: TRUE

session info

─ Session info ────────────────────────────────────────────────────────────────────────────────────────
 setting  value                       
 version  R version 3.6.0 (2019-04-26)
 os       Ubuntu 18.04.4 LTS          
 system   x86_64, linux-gnu           
 ui       RStudio                     
 language (EN)                        
 collate  C.UTF-8                     
 ctype    C.UTF-8                     
 tz       Etc/UTC                     
 date     2020-02-13                  

─ Packages ────────────────────────────────────────────────────────────────────────────────────────────
 ! package     * version date       lib source        
   assertthat    0.2.1   2019-03-21 [1] CRAN (R 3.6.0)
   cli           2.0.1   2020-01-08 [1] CRAN (R 3.6.0)
   crayon        1.3.4   2017-09-16 [1] CRAN (R 3.6.0)
   debugme       1.1.0   2017-10-22 [1] CRAN (R 3.6.0)
   fansi         0.4.1   2020-01-08 [1] CRAN (R 3.6.0)
   glue          1.3.1   2019-03-12 [1] CRAN (R 3.6.0)
 P packrat       0.5.0   2018-11-14 [?] CRAN (R 3.6.0)
   R6            2.4.1   2019-11-12 [1] CRAN (R 3.6.0)
   sessioninfo   1.1.1   2018-11-05 [1] CRAN (R 3.6.0)
   testpackage * 0.1.0   2020-02-13 [1] local         
   withr         2.1.2   2018-03-15 [1] CRAN (R 3.6.0)