R: Namespace Internals

ns-internals {base} | R Documentation

## Namespace Internals

### Description

Internal namespace support functions. Not intended to be called directly, and only visible because of the special nature of the base namespace.

### 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 ....

### Author(s)

Luke Tierney and other members of the R Core Team.

### See Also

`loadNamespace` or `getNamespace` are somewhat higher level namespace related functions.

### 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"

    ## 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"))

[Package base version 4.0.5 Index]