| % File src/library/base/man/ns-internal.Rd |
| % Part of the R package, https://www.R-project.org |
| % Copyright 1995-2015 R Core Team |
| % Distributed under GPL 2 or later |
| |
| \name{ns-internals} |
| \title{Namespace Internals} |
| |
| \alias{asNamespace} |
| \alias{getNamespaceInfo} |
| \alias{.getNamespaceInfo} |
| \alias{importIntoEnv} |
| \alias{isBaseNamespace} |
| \alias{isNamespace} |
| \alias{namespaceExport} |
| \alias{namespaceImport} |
| \alias{namespaceImportClasses} |
| \alias{namespaceImportFrom} |
| \alias{namespaceImportMethods} |
| \alias{packageHasNamespace} |
| \alias{parseNamespaceFile} |
| \alias{registerS3method} |
| \alias{registerS3methods} |
| \alias{setNamespaceInfo} |
| \alias{.__S3MethodsTable__.} |
| \alias{.mergeExportMethods} |
| \alias{.mergeImportMethods} |
| \alias{.knownS3Generics} |
| \alias{loadingNamespaceInfo} |
| \alias{.getNamespace} |
| \alias{.getNamespaceInfo} |
| \alias{..getNamespace} |
| \alias{.S3_methods_table} |
| \usage{ |
| asNamespace(ns, base.OK = TRUE) |
| getNamespaceInfo (ns, which) |
| .getNamespaceInfo(ns, which) |
| importIntoEnv(impenv, impnames, expenv, expnames) |
| isBaseNamespace(ns) |
| isNamespace(ns) |
| namespaceExport(ns, vars) |
| namespaceImport(self, \dots, from = NULL, except = character(0L)) |
| namespaceImportFrom(self, ns, vars, generics, packages, |
| from = "non-package environment", |
| except = character(0L)) |
| namespaceImportClasses(self, ns, vars, from = NULL) |
| namespaceImportMethods(self, ns, vars, from = NULL) |
| packageHasNamespace(package, package.lib) |
| parseNamespaceFile(package, package.lib, mustExist = TRUE) |
| registerS3method(genname, class, method, envir = parent.frame()) |
| registerS3methods(info, package, env) |
| setNamespaceInfo(ns, which, val) |
| .mergeExportMethods(new, ns) |
| .mergeImportMethods(impenv, expenv, metaname) |
| .knownS3Generics |
| loadingNamespaceInfo() |
| .getNamespace(name) |
| ..getNamespace(name, where) |
| } |
| |
| \arguments{ |
| \item{ns}{string or namespace environment.} |
| \item{base.OK}{logical.} |
| \item{impenv}{environment.} |
| \item{expenv}{namespace environment.} |
| \item{vars}{character vector.} |
| \item{generics}{optional character vector.} |
| \item{self}{namespace environment.} |
| \item{package}{string naming the package/namespace to load.} |
| \item{packages}{vector of package names parallel to \code{generics}.} |
| \item{package.lib}{character vector specifying library.} |
| \item{mustExist}{logical.} |
| \item{genname}{character.} |
| \item{class}{character.} |
| \item{envir, env}{environment.} |
| \item{info}{a 3-column character matrix.} |
| \item{which}{character.} |
| \item{val}{any object.} |
| \item{\dots}{character arguments.} |
| \item{metaname}{the methods table name.} |
| \item{name}{symbol: name of namespace} |
| \item{except}{character vector naming symbols to exclude from the |
| import, particularly useful when \code{vars} is missing. |
| } |
| } |
| \description{ |
| Internal namespace support functions. Not intended to be called |
| directly, and only visible because of the special nature of the |
| \pkg{base} namespace. |
| } |
| \details{ |
| \code{packageHasNamespace} does not indicate if the package has a |
| namespace (all now do), rather if it has a \file{NAMESPACE} file, |
| which \pkg{base} and some legacy packages do not. But then you are |
| not intended to be using it \dots. |
| } |
| \seealso{ |
| \code{\link{loadNamespace}} or \code{\link{getNamespace}} are somewhat |
| higher level namespace related functions. |
| } |
| \author{ |
| Luke Tierney and other members of the R Core Team. |
| } |
| \examples{ |
| nsName <- "stats" |
| (ns <- asNamespace(nsName)) # <environment: namespace:stats> |
| |
| ## Inverse function of asNamespace() : |
| environmentName(asNamespace("stats")) # "stats" |
| environmentName(asNamespace("base")) # "base" |
| getNamespaceInfo(ns, "spec")[["name"]] ## -> "stats" |
| \dontshow{stopifnot(identical(nsName, |
| getNamespaceInfo(ns, "spec")[["name"]]))} |
| |
| ## Only for for the daring ones, trying to get into the bowels : |
| |
| lsNamespaceInfo <- function(ns, ...) { |
| ns <- asNamespace(ns, base.OK = FALSE) |
| ls(..., envir = get(".__NAMESPACE__.", envir = ns, inherits = FALSE)) |
| } |
| allinfoNS <- function(ns) sapply(lsNamespaceInfo(ns), getNamespaceInfo, ns=ns) |
| |
| utils::str(allinfoNS("stats")) |
| utils::str(allinfoNS("stats4")) |
| } |
| \keyword{internal} |