insightsengineering / insightsengineering/teal.transform

[Feature Request]: Remove unused functions

Open
#196 0 comments 0 reactions 0 assignees View on GitHub
core enhancement
Dominant language
R
Stars
2
Forks
3
PR merge metrics
No merged PRs in 30d

Description

### Feature description

List of unused functions in `{teal.transform}`:

note: functions being referenced on this list don't necessarily mean that they "should" be removed. They should be assessed case-by-case.

- `call_condition_logical`
- `call_condition_range_date`
- `call_condition_range_posixct`
- `call_extract_array`
- `get_initial_filter_values`
- `check_data_extract_spec_react`
- `extract_choices_labels`

Functions only used in `@examples`

- `call_extract_list`
- `call_condition_range`
- `call_with_colon`

#### Methods

Functions were detected with script below that uses `grep` and enhanced with `{crayon}` for better readability.

🔎 R script

```r
# Get all the functions in the namespace
all_ns <- ls(getNamespace("teal.transform"))

# Get only exported functions
all_exported <- getNamespaceExports("teal.transform")

# Determine S3Methods to exclude
s3_methods <- all_ns |> vapply(isS3method, logical(1)) |> which() |> names()

# Filter out all exported functions and S3 methods
non_exported <- setdiff(setdiff(all_ns, s3_methods), all_exported)

# Use native `grep` to find occurences in source folder
output_path <- withr::local_file("non_exported.txt")

output_con <- file(output_path, open = "wt")

non_exported |>
sort() |>
purrr::walk(
function(x) {
writeLines("----------------------------------", output_con)
writeLines("", output_con)
writeLines("", output_con)
writeLines(glue::glue(" {x} "), output_con)
writeLines("", output_con)
writeLines("", output_con)

result <- system2(
"grep",
c(
"-n",
glue::glue("\"{x}\""),
"-R R/ tests/ vignettes/ data-raw/ inst/"
),
stdout = TRUE
) |>
stringr::str_replace_all(
glue::glue(":(.+?){x}(.+)"),
glue::glue(":\\1", crayon::red(x), "\\2")
) |>
stringr::str_replace_all(
"^(.+?):([0-9]+):",
glue::glue(crayon::green("\\1"), ":", crayon::magenta("\\2"), ":")
)

writeLines(result, output_con)
flush(output_con)
}
)
close(output_con)
readLines(output_path) |> cat(sep = "\n")
```

### Code of Conduct

- [X] I agree to follow this project's Code of Conduct.

### Contribution Guidelines

- [X] I agree to follow this project's Contribution Guidelines.

### Security Policy

- [X] I agree to follow this project's Security Policy.

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.