On 23.02.2012 06:40, Suraj Gupta wrote:
Dirk - I'm having the same issue. Could you provide the details of your solution?
By moving the startup message generation to .onAttach? Uwe Ligges
On Sat, Jan 28, 2012 at 11:15 AM, Dirk Eddelbuettel<[email protected]> wrote:On 28 January 2012 at 16:52, Uwe Ligges wrote: | | | On 27.01.2012 15:57, Dirk Eddelbuettel wrote: |> |> On 12 January 2012 at 12:12, Hervé Pagès wrote: |> | Hi Dirk, |> | |> | On 01/11/2012 11:42 AM, Dirk Eddelbuettel wrote: |> |> |> |> R CMD check really hates it when my .onLoad() function contains |> |> suppressMessages(library(foo)) |> | |> | Note that you can always fool 'R CMD check' by doing something like: |> | |> | sillyname<- library |> | suppressMessages(sillyname("foo")) |> | |> | Also isn't suppressPackageStartupMessages() more appropriate? |> | |> |> |> |> However, _and for non-public packages not going to CRAN_ I prefer doing this |> |> over using explicit Depends or import statements in the NAMESPACE file as the |> |> latter do not give me an ability to make the loading less verbose. With the |> |> R universe of packages being as vast as at is, a simple (non-public) package |> |> I have loads about five or six other packages explicitly, each of which loads |> |> even more. The net result is totally intimidating _sixty lines full_ of |> |> verbose noise that is meaningful to me as an R programmer, but not for the |> |> colleagues expected to use the packages. It looks rather uninviting, frankly. |> |> |> |> How do I use imports via NAMESPACE, and yet keep the noise level down to zero? |> | |> | If you only need to import foo (i.e. and actually don't need to attach |> | it to the search path) then putting foo in Imports and using import |> | statements in NAMESPACE will keep the noise level down to zero. |> |> I don't think so. |> |> I have an internal package, call it fooUtils, that (among other things) needs |> to figure at startup whether it runs on this or that OS. |> |> So that package fooUtils does |> |> .onLoad<- function(libname, pkgname) { |> |> if (.Platform$OS.type == "windows") { |> packageStartupMessage("Running on Windows") |> # [... more stuff here ... ] |> } else if (.Platform$OS.type == "unix") { |> packageStartupMessage("Running on Linux") |> # [... more stuff here ... ] |> } else { |> warning("Platform ", .Platform$OS.type, " not recognised") |> drives<- NULL |> } |> |> # .... |> |> } | | Are you sure you want the messages in .onLoad rather than .onAttach? Thanks Uwe -- looks like that was exactly the hint I needed. By splitting the task across onLoad and onAttach I seem to be able to get want I need even if the package is "tickled" via NAMESPACE's importFrom. Dirk | See ?.onLoad and its "Good practice" section: | | "Loading a namespace should where possible be silent, with startup | messages given by .onAttach. These messages (and any essential ones from | .onLoad) should use packageStartupMessage so they can be silenced where | they would be a distraction." | | Best, | Uwe | | | |> |> and contrary to your claim, this is not silent as soon as I do |> |> |> importFrom(fooUtils, someThing) |> |> |> the messages above pop up. While I can suppress them for 'normal' loads via |> |> suppressMessages(library(fooUtils)) |> |> or |> |> suppressPackageStartupMessages(library(fooUtils)) |> |> |> I cannot suppress them via NAMESPACE imports. |> |> Dirk |> |> | So I guess your question is: how do we suppress package startup messages |> | for packages listed in Depends? |> | |> | Cheers, |> | H. |> | |> |> |> |> Dirk |> |> |> | |> | |> | -- |> | Hervé Pagès |> | |> | Program in Computational Biology |> | Division of Public Health Sciences |> | Fred Hutchinson Cancer Research Center |> | 1100 Fairview Ave. N, M1-B514 |> | P.O. Box 19024 |> | Seattle, WA 98109-1024 |> | |> | E-mail: [email protected] |> | Phone: (206) 667-5791 |> | Fax: (206) 667-1319 |> -- "Outside of a dog, a book is a man's best friend. Inside of a dog, it is too dark to read." -- Groucho Marx ______________________________________________ [email protected] mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
______________________________________________ [email protected] mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
