ns-internals
Namespace Internals
Internal namespace support functions. Not intended to be called directly, and only visible because of the special nature of the base namespace.
- Keywords
- internal
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, …, 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
- ns
string or namespace environment.
- base.OK
logical.
- impenv
environment.
- expenv
namespace environment.
- vars
character vector.
- generics
optional character vector.
- self
namespace environment.
- package
string naming the package/namespace to load.
- packages
vector of package names parallel to
generics
.- package.lib
character vector specifying library.
- mustExist
logical.
- genname
character.
- class
character.
- envir, env
environment.
- info
a 3-column character matrix.
- which
character.
- val
any object.
- …
character arguments.
- metaname
the methods table name.
- name
symbol: name of namespace
- except
character vector naming symbols to exclude from the import, particularly useful when
vars
is missing.
Details
packageHasNamespace
does not indicate if the package has a
namespace (all now do), rather if it has a NAMESPACE
file,
which base and some legacy packages do not. But then you are
not intended to be using it ….
See Also
loadNamespace
or getNamespace
are somewhat
higher level namespace related functions.
Examples
library(base)
# NOT RUN {
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"
# }
# NOT RUN {
## 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"))
# }