簡體   English   中英

R package 命名空間中的`.__DEVTOOLS__.` 環境是什么?

[英]What is `.__DEVTOOLS__.` environment in R package namespace?

在閱讀 R 包的源代碼時,我注意到它們有時會引用.__DEVTOOLS__. 環境。 但是我在野外的任何package命名空間都沒有遇到過這個環境,也無法成功找到任何相關信息。

我確實了解其他環境。 我的第一個猜測是這與 {devtools} package 有關,但即使是 package 在其命名空間中也沒有此環境。

get_env_from_ns <- function(x) {
  ns <- .getNamespace(x)
  
  c(
    rlang::env_has(ns, ".__NAMESPACE__."),
    rlang::env_has(ns, ".__S3MethodsTable__."),
    rlang::env_has(ns, ".__DEVTOOLS__.")
  )
}

library(devtools)
#> Loading required package: usethis
get_env_from_ns("devtools")
#>      .__NAMESPACE__. .__S3MethodsTable__.       .__DEVTOOLS__. 
#>                 TRUE                 TRUE                FALSE

reprex package (v2.0.1) 創建於 2022-06-15

所以我有兩個問題:

  • 這是什么環境?
  • 是否有使用此環境的 package 的示例?

.__DEVTOOLS__. 是由devtools package 創建的環境的名稱。如果您在 `devtools package NEWS中搜索它,您會發現它說

使用 load_all 加載的包現在將 devtools 元數據存儲在其名稱空間環境中的一個名為.__DEVTOOLS__. 這可以通過 dev_meta function 訪問。(Winston Chang。修復 #128)

它出現在metatdata.R 文件中。 package 似乎不再使用此環境來跟蹤元數據,因此 function 似乎是為與 package 的舊版本一起使用而編寫的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM