On 06/25/2013 01:19 PM, Duncan Murdoch wrote:
On 13-06-25 7:14 AM, Søren Højsgaard wrote:
Dear Duncan,

Excellent, thanks!

Maybe this is worth a remark in a future version of "Writing R Extensions"
(including that those "local copies" are not exported again with
exportPattern("^[[:alpha:]]+")).

It is mentioned that they can be exported.  The fact that exportPattern doesn't
see them might be a bug.

In some ways I would have expected R CMD check to complain that maxClique was not documented, because after all the user can have access to maxClique (after library(gRbase)) but not have access to it's documentation

> library(PkgA) ## Imports: RBGL; importFrom(RBGL, maxClique); export(maxClique)
> ?maxClique
No documentation for 'maxClique' in specified packages and libraries:
you could try '??maxClique'
> R.version.string
[1] "R Under development (unstable) (2013-06-25 r63053)"

Personally, if the intention is to make functionality of RBGL available to the end user (even a small part) then I would have Depends: RBGL. Regardless of whether RBGL appears in the Depends: or Imports: field of the DESCRIPTION, I would have import'ed maxClique into the gRbase name space (so that function resolution occurs correctly within the package, even when gRbase is import'ed into another package). Having two apparent ways of arriving at the same function (gRbase::maxClique, RBGL::maxClique) seems to be inviting confusion.

Martin


Duncan


Thanks!

Søren

-----Original Message-----
From: Duncan Murdoch [mailto:murdoch.dun...@gmail.com]
Sent: 25. juni 2013 13:02
To: Søren Højsgaard
Cc: R hELP (r-h...@stat.math.ethz.ch)
Subject: Re: [R] Issue with Imports in NAMESPACE

On 13-06-25 6:50 AM, Søren Højsgaard wrote:
Dear all,
In my gRbase package I have up until now "Depend"-ed on RBGL (from
Bioconductor), but good people have convinced me that I should use
"Import"-it instead because I only use few functions from RBGL.

In DESCRIPTION I therefore now have
Imports: Matrix,RBGL

In NAMESPACE I now have
importFrom(RBGL, maxClique, is.triangulated, separates)

The package compiles without complaints, but I have noticed that if I start a
fresh R-session, then maxClique etc. from RBGL is NOT available for
"interactive use" in my session:
library(gRbase)
maxClique
Error: object 'maxClique' not found

1) Is this as it should be?

2) If yes, is there any other way in which maxClique can be imported for
interactive use without Depend-ing the whole RBGL package?

The importFrom directive effectively makes local copies of those functions in
your package (with the usual caveats that copies aren't as inefficient as you
might think).  If you want to export them, you need to add them to the exports
list.

Duncan Murdoch


______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.


--
Computational Biology / Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N.
PO Box 19024 Seattle, WA 98109

Location: Arnold Building M1 B861
Phone: (206) 667-2793

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to