conditional dependencies & loading
Kynn Jones wrote:
Hi! I'm working on a package that must convert data to and from JSON. For this, it can use either the rjson package, or preferably, the faster RJSONIO package. I have two related questions about this. First, how can I specify that the package depends on *either* RJSONIO *or* rjson? (I.e. both are not required.)
I don't think you can do that. You can say it suggests both, but it will not automatically fail to install if they are not found. You need to put a check into your .onLoad function to fail with an error if neither is found.
Second, what's the best-practice R idiom for such conditional loading? I.e. I'm looking for R's equivalent of Python's
try:
... import json ... except ImportError: ... import simplejson as json
You would use something like
if (!require(RJSONIO) && !require(rjson)) stop("Need one of RJSONIO or
rjson")
in your .onLoad function.
Duncan Murdoch
Thanks! kynn [[alternative HTML version deleted]]
______________________________________________ R-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel