On 12-08-24 11:56 AM, Yanming Di wrote:
First time posting on this forum.
The short version of the question is how to keep the documents of private
(unexported) functions private. It seems that the documents of the private
functions will be compiled into the user manual even if the corresponding
functions are not exported. Is there a solution to this? I want to have
documents for these functions for my own use, but I don’t want to release
them to distract end users.
You can't easily do that. Some base packages have a topic like
?"grid-internal" where internal documentation is collected, but it is
visible to users.
To provide some background, a more general question is how to manage unexported
(private) functions in an R package. I need to call them during the developing
phase or even after the package is released (e.g., for debugging purpose or
they may be needed by new functions), but I don’t want to export them (I’d
like to keep the number of exported (public) functions to a minimum and present
the users with only the functions that they need to know.)
I know I can call private functions by packagename:::fcn(), but that seems a
little bit tedious.
You could also attach the environment of an exported function (e.g.
attach(environment(grid::unit)), to put the whole internal environment
on the search list. But I usually use the ::: notation.
Duncan Murdoch
A solution I came up with is to prepare two NAMESPACE files and switch between
them. When releasing the codes, use the thin version; when developing the
package, use the version that export all functions. That works except if I have
documents (Rd files) for the private functions, they will be compiled to the
user manual even if the corresponding functions are not exported. Is there a
solution around this? (I think I can keep two separate man folders and switch
between them, but that seems a little bit tedious).
Thanks.
Yanming
[[alternative HTML version deleted]]
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel