epiverse-trace / epiverse-trace/epitkit

Automatically extract list of cleanepi & epiparameter functions used in this lesson

Open
#32 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
R
Stars
0
Forks
5
PR merge metrics
No merged PRs in 30d

Description

This can be achieved with the following code:

```r
extract_functions_from_package <- function(episode, package) {

stopifnot(
length(episode) == 1,
length(package) == 1
)

code <- knitr::purl(episode, output = tempfile(fileext = ".R"), quiet = TRUE)

parse(file = code) |>
xmlparsedata::xml_parse_data() |>
xml2::as_xml_document() |>
xml2::xml_find_all(
glue::glue("//SYMBOL_PACKAGE[text() = '{package}']/parent::expr")
) |>
xml2::xml_text() |>
unique()

}

episodes <- fs::dir_ls("episodes", type = "file")
packages <- c("cleanepi", "epiparameter")

used_fcts <- expand.grid(episode = episodes, package = packages, stringsAsFactors = FALSE) |>
dplyr::mutate(functions = purrr::map2(episode, package, extract_functions_from_package))

# Get full list of cleanepi functions
used_fcts |>
dplyr::filter(package == "cleanepi") |>
dplyr::pull(functions) |>
unlist() |>
unique()
```

@lgbermeo, how should the output be formatted? Where should it be stored or displayed?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.