Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/coatless-rpkg/errorist
Automatic Error and Warning Search from R
https://github.com/coatless-rpkg/errorist
error-handling errors r r-programming rstats search-engine warnings
Last synced: about 1 month ago
JSON representation
Automatic Error and Warning Search from R
- Host: GitHub
- URL: https://github.com/coatless-rpkg/errorist
- Owner: coatless-rpkg
- Created: 2018-01-03T01:23:16.000Z (almost 7 years ago)
- Default Branch: main
- Last Pushed: 2023-12-25T23:56:06.000Z (12 months ago)
- Last Synced: 2024-10-01T08:48:45.452Z (3 months ago)
- Topics: error-handling, errors, r, r-programming, rstats, search-engine, warnings
- Language: R
- Homepage: http://r-pkg.thecoatlessprofessor.com/errorist/
- Size: 3.95 MB
- Stars: 27
- Watchers: 2
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.Rmd
Awesome Lists containing this project
README
---
output: github_document
---```{r, echo = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.path = "README-"
)
```# errorist
[![R-CMD-check](https://github.com/coatless-rpkg/errorist/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/coatless-rpkg/errorist/actions/workflows/R-CMD-check.yaml)
[![CRAN\_Status\_Badge](https://www.r-pkg.org/badges/version/errorist)](https://cran.r-project.org/package=errorist)
[![CRAN RStudio mirror downloads](https://cranlogs.r-pkg.org/badges/errorist)](https://www.r-pkg.org/pkg/errorist)>
> _errorist_: one who holds to and propagates error
>
> --- [Merriam Webster](https://www.merriam-webster.com/dictionary/errorist)The goal of `errorist` is to automatically search errors and warnings the
second they arise.![](https://media.giphy.com/media/l1IBjB9qJ2jOnntOU/giphy.gif)
## Installation
The `errorist` package is available on both CRAN and GitHub. The CRAN
version is considered stable while the GitHub version is in a state of
development and may break. You can install the stable version of the
`errorist` package with:```r
install.packages("errorist")
```For the development version, you can opt for:
```r
if(!requireNamespace("remotes")) { install.packages("remotes") }
remotes::install_github("coatless-rpkg/errorist")
```## Usage
```r
library(errorist)
```## Details
When the `errorist` package is loaded, two handlers are automatically
established to intercept the error and warning messages that arise during
execution of code. The intercepted messages are then directed to pre-specified
search engines on the internet using the user's preferred system web browser.
By default, the search engine used to look up the messages is Google.You can specify a different search engine handler by setting default values:
- `errorist.warning`: Warning search engine portal. The default is `searcher::search_google`.
- `errorist.error`: Error search engine portal. The default is `searcher::search_google`.
- `errorist.autoload`: Automatically search errors. The default is `TRUE`.If frequent use of the package occurs, consider adding the different search
handlers as an option in your `.Rprofile`:```r
# 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))
}
```# Motivation
The idea for `errorist` came from a conversation among
[Dirk Eddelbuettel](http://dirk.eddelbuettel.com),
[Barry Rowlingson](http://barry.rowlingson.com), and myself musing about
having compilers provide a link explaining what the error meant and how to
solve it. This conversation was sprouted due to the mouse overtext of
[XKCD Comic 1185: Ineffective Sorts](https://xkcd.com/1185/).> StackSort connects to StackOverflow, searches for 'sort a list', and downloads
> and runs code snippets until the list is sorted.This type of code search was implemented by:
The idea morphed from evaluating random code chunks to providing search support
for errors that occurred at runtime.# Special Thanks
- [Dirk Eddelbuettel](http://dirk.eddelbuettel.com) for starting the discussion
on [XKCD Comic 1185: Ineffective Sorts](https://xkcd.com/1185/).
- [Barry Rowlingson](http://barry.rowlingson.com) for the package name and
remarks about functionality.
- [Brodie Gaslam](https://www.brodieg.com/) for pointing out
[`addTaskCallback()`](https://stat.ethz.ch/R-manual/R-devel/library/base/html/taskCallback.html)
as a way to create a warning handler and for a brief discussion on "call"
objects.
- [Joshua Ulrich](https://github.com/joshuaulrich/) for advise on incorporating
the semi-documented [`last.warning`](https://stat.ethz.ch/R-manual/R-devel/library/base/html/warning.html)
object that _R_ populates with warning messages.
# LicenseGPL (>= 2)