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

Reply via email to