Поиск функций в пакете, не импортированных из других пакетов - PullRequest
0 голосов
/ 26 июня 2019

Я хочу получить список функций, определенных в пакете и экспортированных, но не тех, которые были импортированы из других пакетов?

Следующие решения хороши, но список также реэкспортирует функцию: Поиск функций в пакете

Ответы [ 2 ]

3 голосов
/ 26 июня 2019

getNamespaceExports() упоминается в одном из ответов на вопрос, который вы связали; к счастью, есть компаньон к этому, getNamespaceImports(). Тогда мы можем просто найти setdiff() между двумя. Например:

devtools_exports <- getNamespaceExports("devtools")
devtools_imports <- getNamespaceImports("devtools")
devtools_exported_not_imported <- setdiff(devtools_exports, devtools_imports)
"install_github" %in% devtools_exports
# [1] TRUE
"install_github" %in% devtools_exported_not_imported # comes from remotes
# [1] FALSE
1 голос
/ 26 июня 2019

На самом деле я нашел еще одно решение, которое, кажется, работает хорошо:

unclass(lsf.str(envir = asNamespace('myPackage')))

Преимущество заключается в том, что я не получаю следующие системные переменные:

 "system.file"          "library.dynam.unload" ".__global__"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...