Jonathan Greenberg
2013-Oct-20 20:43 UTC
[Rd] Question about selective importing of package functions...
I'm working on an update for my CRAN package "spatial.tools" and I noticed a new warning when running R CMD CHECK --as-cran: * checking CRAN incoming feasibility ... NOTE Maintainer: 'Jonathan Asher Greenberg <spatial-tools@estarcion.net>' Depends: includes the non-default packages: 'sp' 'raster' 'rgdal' 'mmap' 'abind' 'parallel' 'foreach' 'doParallel' 'rgeos' Adding so many packages to the search path is excessive and importing selectively is preferable. Is this a warning that would need to be fixed pre-CRAN (not really sure how, since I need functions from all of those packages)? Is there a way to import only a single function from a package, if that function is a dependency? --j -- Jonathan A. Greenberg, PhD Assistant Professor Global Environmental Analysis and Remote Sensing (GEARS) Laboratory Department of Geography and Geographic Information Science University of Illinois at Urbana-Champaign 259 Computing Applications Building, MC-150 605 East Springfield Avenue Champaign, IL 61820-6371 Phone: 217-300-1924 http://www.geog.illinois.edu/~jgrn/ AIM: jgrn307, MSN: jgrn307@hotmail.com, Gchat: jgrn307, Skype: jgrn3007 [[alternative HTML version deleted]]
Duncan Murdoch
2013-Oct-20 20:49 UTC
[Rd] Question about selective importing of package functions...
On 13-10-20 4:43 PM, Jonathan Greenberg wrote:> I'm working on an update for my CRAN package "spatial.tools" and I noticed > a new warning when running R CMD CHECK --as-cran: > > * checking CRAN incoming feasibility ... NOTE > Maintainer: 'Jonathan Asher Greenberg <spatial-tools at estarcion.net>' > Depends: includes the non-default packages: > 'sp' 'raster' 'rgdal' 'mmap' 'abind' 'parallel' 'foreach' > 'doParallel' 'rgeos' > Adding so many packages to the search path is excessive > and importing selectively is preferable. > > Is this a warning that would need to be fixed pre-CRAN (not really sure > how, since I need functions from all of those packages)? Is there a way to > import only a single function from a package, if that function is a > dependency?You really want to use imports. Those are defined in the NAMESPACE file; you can import everything from a package if you want, but the best style is in fact to just import exactly what you need. This is more robust than using Depends, and it doesn't add so much to the user's search path, so it's less likely to break something else (e.g. by putting a package on the path that masks some function the user already had there.) Duncan Murdoch