ошибочник : тот, кто придерживается и распространяет ошибки
— Мерриам Вебстер
Цель errorist
— автоматически искать ошибки и предупреждения в момент их возникновения.
Пакет errorist
доступен как на CRAN, так и на GitHub. Версия CRAN считается стабильной, тогда как версия GitHub находится в стадии разработки и может сломаться. Вы можете установить стабильную версию пакета errorist
с помощью:
install.packages( " errorist " )
Для версии для разработчиков вы можете выбрать:
if ( ! requireNamespace( " remotes " )) { install.packages( " remotes " ) }
remotes :: install_github( " coatless-rpkg/errorist " )
library( errorist )
При загрузке пакета errorist
автоматически устанавливаются два обработчика для перехвата сообщений об ошибках и предупреждений, возникающих во время выполнения кода. Перехваченные сообщения затем направляются в заранее определенные поисковые системы в Интернете с использованием предпочтительного системного веб-браузера пользователя. По умолчанию поисковой системой, используемой для поиска сообщений, является Google.
Вы можете указать другой обработчик поисковой системы, установив значения по умолчанию:
errorist.warning
: Предупреждение портала поисковой системы. По умолчанию используется searcher::search_google
.errorist.error
: Ошибка портала поисковой системы. По умолчанию используется searcher::search_google
.errorist.autoload
: Автоматический поиск ошибок. По умолчанию установлено значение TRUE
. Если пакет используется часто, рассмотрите возможность добавления различных обработчиков поиска в качестве опции в ваш .Rprofile
:
# Add custom options
.First <- function () {
options(
errorist.warning = searcher :: search_google ,
errorist.error = searcher :: search_google
)
}
# Load the package if in RStudio or R GUI
if (interactive()) {
suppressMessages(require( errorist ))
}
Идея errorist
возникла в результате разговора между Дирком Эддельбюттелем, Барри Роулингсоном и мной, когда мы размышляли о том, чтобы компиляторы предоставляли ссылку, объясняющую, что означает ошибка и как ее решить. Этот разговор возник из-за наложения мыши на комикс XKCD 1185: Неэффективные сортировки.
StackSort подключается к StackOverflow, выполняет поиск по запросу «отсортировать список», а также загружает и запускает фрагменты кода, пока список не будет отсортирован.
Этот тип поиска кода был реализован:
https://gkoberger.github.io/stacksort/
Идея трансформировалась от оценки случайных фрагментов кода к обеспечению поддержки поиска ошибок, возникших во время выполнения.
addTaskCallback()
как на способ создания обработчика предупреждений и за краткое обсуждение объектов «вызова».last.warning
, который R заполняет предупреждающими сообщениями.Лицензионная лицензия (>= 2)