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<e...@debian.org>  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: hpa...@fhcrc.org
|>  | 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

______________________________________________
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