New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can't reprex code that deals in srcrefs #152

Closed
yonicd opened this Issue Jan 5, 2018 · 6 comments

Comments

Projects
None yet
3 participants
@yonicd

yonicd commented Jan 5, 2018

using reprex::reprex_addin with SO output


tf <- tempfile()
cat('do.call(knitr::kable,args=args)',file = tf)
parsed <- utils::getParseData(parse(tf))
print(parsed)
#> NULL


devtools::session_info()
#> Session info -------------------------------------------------------------
#>  setting  value                       
#>  version  R version 3.3.3 (2017-03-06)
#>  system   x86_64, darwin13.4.0        
#>  ui       X11                         
#>  language (EN)                        
#>  collate  en_US.UTF-8                 
#>  tz       America/New_York            
#>  date     2018-01-05
#> Packages -----------------------------------------------------------------
#>  package   * version    date       source                          
#>  backports   1.1.1      2017-09-25 CRAN (R 3.3.2)                  
#>  base      * 3.3.3      2017-03-07 local                           
#>  datasets  * 3.3.3      2017-03-07 local                           
#>  devtools    1.13.3     2017-08-02 CRAN (R 3.3.2)                  
#>  digest      0.6.12     2017-01-27 CRAN (R 3.3.2)                  
#>  evaluate    0.10.1     2017-06-24 CRAN (R 3.3.2)                  
#>  graphics  * 3.3.3      2017-03-07 local                           
#>  grDevices * 3.3.3      2017-03-07 local                           
#>  htmltools   0.3.6      2017-04-28 CRAN (R 3.3.2)                  
#>  knitr       1.17       2017-08-10 CRAN (R 3.3.2)                  
#>  magrittr    1.5        2014-11-22 CRAN (R 3.3.0)                  
#>  memoise     1.1.0      2017-04-21 CRAN (R 3.3.2)                  
#>  methods   * 3.3.3      2017-03-07 local                           
#>  Rcpp        0.12.14    2017-11-23 CRAN (R 3.3.2)                  
#>  rmarkdown   1.6        2017-06-15 CRAN (R 3.3.2)                  
#>  rprojroot   1.2        2017-01-16 CRAN (R 3.3.2)                  
#>  stats     * 3.3.3      2017-03-07 local                           
#>  stringi     1.1.6      2017-11-17 CRAN (R 3.3.2)                  
#>  stringr     1.2.0      2017-02-18 CRAN (R 3.3.2)                  
#>  tools       3.3.3      2017-03-07 local                           
#>  utils     * 3.3.3      2017-03-07 local                           
#>  withr       2.1.0.9000 2017-11-16 Github (jimhester/withr@daf5a8c)
#>  yaml        2.1.14     2016-11-12 CRAN (R 3.3.2)
@batpigandme

This comment has been minimized.

Member

batpigandme commented Jan 5, 2018

What's your selected source and output? It's working for me rendering SO-styled output to clipboard from selection, and active file.

library(tidyverse)
dput(mtcars)
#> structure(list(mpg = c(21, 21, 22.8, 21.4, 18.7, 18.1, 14.3, 
#> 24.4, 22.8, 19.2, 17.8, 16.4, 17.3, 15.2, 10.4, 10.4, 14.7, 32.4, 
#> 30.4, 33.9, 21.5, 15.5, 15.2, 13.3, 19.2, 27.3, 26, 30.4, 15.8, 
#> 19.7, 15, 21.4), cyl = c(6, 6, 4, 6, 8, 6, 8, 4, 4, 6, 6, 8, 
#> 8, 8, 8, 8, 8, 4, 4, 4, 4, 8, 8, 8, 8, 4, 4, 4, 8, 6, 8, 4), 
#>     disp = c(160, 160, 108, 258, 360, 225, 360, 146.7, 140.8, 
#>     167.6, 167.6, 275.8, 275.8, 275.8, 472, 460, 440, 78.7, 75.7, 
#>     71.1, 120.1, 318, 304, 350, 400, 79, 120.3, 95.1, 351, 145, 
#>     301, 121), hp = c(110, 110, 93, 110, 175, 105, 245, 62, 95, 
#>     123, 123, 180, 180, 180, 205, 215, 230, 66, 52, 65, 97, 150, 
#>     150, 245, 175, 66, 91, 113, 264, 175, 335, 109), drat = c(3.9, 
#>     3.9, 3.85, 3.08, 3.15, 2.76, 3.21, 3.69, 3.92, 3.92, 3.92, 
#>     3.07, 3.07, 3.07, 2.93, 3, 3.23, 4.08, 4.93, 4.22, 3.7, 2.76, 
#>     3.15, 3.73, 3.08, 4.08, 4.43, 3.77, 4.22, 3.62, 3.54, 4.11
#>     ), wt = c(2.62, 2.875, 2.32, 3.215, 3.44, 3.46, 3.57, 3.19, 
#>     3.15, 3.44, 3.44, 4.07, 3.73, 3.78, 5.25, 5.424, 5.345, 2.2, 
#>     1.615, 1.835, 2.465, 3.52, 3.435, 3.84, 3.845, 1.935, 2.14, 
#>     1.513, 3.17, 2.77, 3.57, 2.78), qsec = c(16.46, 17.02, 18.61, 
#>     19.44, 17.02, 20.22, 15.84, 20, 22.9, 18.3, 18.9, 17.4, 17.6, 
#>     18, 17.98, 17.82, 17.42, 19.47, 18.52, 19.9, 20.01, 16.87, 
#>     17.3, 15.41, 17.05, 18.9, 16.7, 16.9, 14.5, 15.5, 14.6, 18.6
#>     ), vs = c(0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 
#>     0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1), am = c(1, 
#>     1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 
#>     0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1), gear = c(4, 4, 4, 3, 
#>     3, 3, 3, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 4, 4, 4, 3, 3, 3, 
#>     3, 3, 4, 5, 5, 5, 5, 5, 4), carb = c(4, 4, 1, 1, 2, 1, 4, 
#>     2, 2, 4, 4, 3, 3, 3, 4, 4, 4, 1, 2, 1, 1, 2, 2, 4, 2, 1, 
#>     2, 2, 4, 6, 8, 2)), .Names = c("mpg", "cyl", "disp", "hp", 
#> "drat", "wt", "qsec", "vs", "am", "gear", "carb"), row.names = c("Mazda RX4", 
#> "Mazda RX4 Wag", "Datsun 710", "Hornet 4 Drive", "Hornet Sportabout", 
#> "Valiant", "Duster 360", "Merc 240D", "Merc 230", "Merc 280", 
#> "Merc 280C", "Merc 450SE", "Merc 450SL", "Merc 450SLC", "Cadillac Fleetwood", 
#> "Lincoln Continental", "Chrysler Imperial", "Fiat 128", "Honda Civic", 
#> "Toyota Corolla", "Toyota Corona", "Dodge Challenger", "AMC Javelin", 
#> "Camaro Z28", "Pontiac Firebird", "Fiat X1-9", "Porsche 914-2", 
#> "Lotus Europa", "Ford Pantera L", "Ferrari Dino", "Maserati Bora", 
#> "Volvo 142E"), class = "data.frame")

Created on 2018-01-05 by the reprex package (v0.1.1.9000).

@yonicd

This comment has been minimized.

yonicd commented Jan 5, 2018

screen shot 2018-01-05 at 10 26 17

@jennybc

This comment has been minimized.

Member

jennybc commented Jan 5, 2018

It doesn't have anything to do with the venue or the addin. It's something to do with the code itself, probably utils::getParseData().

tf <- tempfile()
cat('do.call(knitr::kable,args=args)',file = tf)
head(readLines(tf))
#> Warning in readLines(tf): incomplete final line found on '/var/folders/vr/
#> gzrbtprx6ybg85y5pvwm1ct40000gn/T//RtmptlczMl/file15162203344aa'
#> [1] "do.call(knitr::kable,args=args)"
parsed <- utils::getParseData(parse(tf))
print(parsed)
#> NULL

Created on 2018-01-05 by the reprex package (v0.1.1.9000).

I have found it tricky to work with srcrefs inside testthat and I suspect this is some variant of that phenomenon.

@jennybc

This comment has been minimized.

Member

jennybc commented Jan 5, 2018

If you save that code in a plain .R script and call rmarkdown::render() on it, it works. Not sure what to make of that, but that is what I would do in this case, in the meantime.

@yonicd

This comment has been minimized.

yonicd commented Jan 5, 2018

ok. thanks. seems to be hinting that the vanilla run is not handling the tempfile properly

@yonicd

This comment has been minimized.

yonicd commented Jan 5, 2018

tf <- tempfile()
cat('do.call(knitr::kable,args=args)',file = tf)
utils::getParseData(parse(tf))
#> NULL

@jennybc jennybc changed the title from SO not printing output to Can't reprex code that deals in srcrefs Jan 6, 2018

jennybc added a commit that referenced this issue Jan 6, 2018

@jennybc jennybc closed this in c61aae3 Jan 6, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment