Version: | 0.1.1 |
Title: | Automatic Generation of @importFrom Tags |
Description: | A toolbox to read all R files inside a package and automatically generate @importFrom 'roxygen2' tags in the right place. Includes a 'shiny' application to review the changes before applying them. |
License: | GPL-3 |
URL: | https://github.com/DanChaltiel/autoimport, https://danchaltiel.github.io/autoimport/ |
BugReports: | https://github.com/DanChaltiel/autoimport/issues |
Depends: | R (≥ 3.6.0) |
Imports: | cli, desc, diffviewer, digest, dplyr, fs, glue, purrr, readr, rlang, shiny, stringr, tibble, tidyr, utils |
Suggests: | callr, covr, devtools, knitr, pkgload, rstudioapi, testthat (≥ 3.0.0), tidyverse |
Encoding: | UTF-8 |
RoxygenNote: | 7.3.2 |
Config/testthat/edition: | 3 |
NeedsCompilation: | no |
Packaged: | 2025-02-01 09:31:57 UTC; Dan |
Author: | Dan Chaltiel |
Maintainer: | Dan Chaltiel <dan.chaltiel@gmail.com> |
Repository: | CRAN |
Date/Publication: | 2025-02-03 12:00:02 UTC |
autoimport: Automatic Generation of @importFrom Tags
Description
A toolbox to read all R files inside a package and automatically generate @importFrom 'roxygen2' tags in the right place. Includes a shiny application to review the changes before applying them.
Author(s)
Maintainer: Dan Chaltiel dan.chaltiel@gmail.com (ORCID)
See Also
Useful links:
Report bugs at https://github.com/DanChaltiel/autoimport/issues
Automatically compute @importFrom
tags
Description
Automatically read all R
files and compute appropriate @importFrom
tags in the roxygen2 headers.
The tags can be added to the source files using the import_review()
shiny app afterward.
Usage
autoimport(
root = ".",
...,
location = c("function", "package"),
files = get_R_dir(root),
namespace_file = "NAMESPACE",
description_file = "DESCRIPTION",
use_cache = TRUE,
ignore_package = TRUE,
verbose = 2
)
Arguments
root |
Path to the root of the package. |
... |
unused |
location |
Whether to add |
files |
Files to read. Default to the |
namespace_file |
Path to the NAMESPACE file |
description_file |
Path to the DESCRIPTION file |
use_cache |
Whether to use the cache system. Can only be "read" or "write". |
ignore_package |
Whether to ignore files ending with |
verbose |
The higher, the more output printed. May slow the process a bit. |
Value
Mostly used for side effects. Invisibly returns a dataframe summarizing the function imports, with input arguments as attributes.
Limitations
Autoimport is based on utils::getSrcref()
and share the same limits.
Therefore, some function syntaxes are not recognized and autoimport
will try to remove their @importFrom
from individual functions:
Operators (
@importFrom dplyr %>%
,@importFrom rlang :=
, ...)Functions called by name (e.g.
sapply(x, my_fun))
Functions used inside strings (e.g.
glue("my_fun={my_fun(x)}")
)
To keep them imported, you should either use a prefix (pkg::my_fun
) or import them in your package-level documentation, as this file is ignored by default (with ignore_package=TRUE
).
Decision management
Description
Opens a Shiny app that shows a visual diff of each modified file.
Usage
import_review(
source_path = "R/",
output_path = get_target_dir(),
background = getOption("autoimport_background", FALSE)
)
Arguments
source_path |
path to the original R files |
output_path |
path to the updated R files |
background |
whether to run the app in a background process. Default to |
Value
nothing if background==FALSE
, the (callr::process) object if background==TRUE
Warning
Beware that using background=TRUE
can bloat your system with multiple R session!
You should probably kill the process when you are done:
p=import_review(background=TRUE) p$kill()
Source
inspired by testthat::snapshot_review()
Update the IMPORTLIST
file
Description
Update the IMPORTLIST
file, which forces the import of some packages without asking.
Usage
update_importlist(imports, path = NULL)
get_importlist(path = NULL)
Arguments
imports |
a list of imports with |
path |
path to the |
Value
nothing