[R-pkg-devel] Usage of internet resources in examples

Andy Teucher @ndy@teucher @end|ng |rom gm@||@com
Wed Oct 21 19:38:55 CEST 2020


Thanks Martin,

I agree that the example should run for a user when calling example() - hence I am going with a simple try() around the function calls in the examples. I agree your more sophisticated version has better behaviour, but I don’t want to clutter the examples with code that might just confuse a user.

Andy

> On Oct 21, 2020, at 12:08 AM, Martin Maechler <maechler using stat.math.ethz.ch> wrote:
> 
>>>>>> Ben Bolker 
>>>>>>    on Tue, 20 Oct 2020 17:07:10 -0400 writes:
> 
>> On 10/20/20 4:51 PM, Gábor Csárdi wrote:
>>> On Tue, Oct 20, 2020 at 9:45 PM Ben Bolker <bbolker using gmail.com> wrote:
>>> [...]
>>>> if (testthat::skip_on_cran())
>>>> 
>>>> all seem like reasonable solutions.
>>> 
>>> I don't think you can use `testthat::skip_on_cran()` for this, it does
>>> not return a logical flag:
>>> 
>>> ❯ isTRUE(testthat::skip_on_cran())
>>> Error: Reason: On CRAN
>>> 
>>> It only works in testthat tests.
>>> 
>>> Gabor
>>> 
>>> [...]
>>> 
> 
>> oh OK, sorry.  The guts of the function are (in testthat:::on_cran(), 
>> which can't be used because it's not exported)
> 
>> !identical(Sys.getenv("NOT_CRAN"), "true")
> 
> I still disagree with that part of your recommendations, for this reason:
> I think a "perfect" solution would keep the example(s) running
> fine when the user calls
> 
>     example(<topic>)
> 
> (hence it is very good recommendation to  *not* misuse \dontrun{.} here)
> *and* have the   example(.)  call  *not* stop on error, but (say)
> produce a warning in the case the internet connection isn't
> stable at the time the user calls   example(.),
> e.g., myself in a train ride in the Swiss alps ..
> 
> Hence, your (Ben's) first two suggestions make more sense to me,
> and I'd clearly favor
> 
> 	try(.)
> 
> or possibly slightly more sophsticated versions such as
> 
>      if(inherits(try({
>         .......
>         }), "try-error"))  warning(....)
> 
> Or then your 2nd suggestion,  if(interactive())
> in the case (as it seems here) where the package author
> really wants the user to get an error when the internet
> connection fails.
> 
> 
> Martin
> 
> ______________________________________________
> R-package-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-package-devel



More information about the R-package-devel mailing list