Skip to content
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
Closed

Can't reprex code that deals in srcrefs #152

yonicd opened this issue Jan 5, 2018 · 6 comments

Comments

@yonicd
Copy link

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
Copy link
Contributor

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
Copy link
Author

yonicd commented Jan 5, 2018

screen shot 2018-01-05 at 10 26 17

@jennybc
Copy link
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
Copy link
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
Copy link
Author

yonicd commented Jan 5, 2018

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

@yonicd
Copy link
Author

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 SO not printing output Can't reprex code that deals in srcrefs Jan 6, 2018
@jennybc jennybc closed this as completed in c61aae3 Jan 6, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants