ropensci / readODS

Read ODS (OpenDocument Spreadsheet) into R as data frame. Also support writing data frame into ODS file.
https://docs.ropensci.org/readODS/
Other
55 stars 22 forks source link

Further reduce `readODS` dependencies #173

Open chainsawriot opened 1 year ago

chainsawriot commented 1 year ago

See the following issues

Current dependencies of readODS are: c("cellranger", "readr", "stringi", "tibble", "vctrs", "zip") See below when readr is no longer a dependency.

Should we try to spin off readr::type_convert() from readr?

deps <- c("cellranger", "readr", "stringi", "tibble", "vctrs", "zip", "cpp11")

ori <- rang::resolve(deps, snapshot_date = Sys.Date())
nrow(rang:::.generate_installation_order(ori))
#> [1] 29

rang:::.generate_installation_order(ori)
#>              x version source      handle  uid
#> 1          zip   2.3.0   cran         zip <NA>
#> 2      stringi  1.7.12   cran     stringi <NA>
#> 3        clipr   0.8.0   cran       clipr <NA>
#> 4          bit   4.0.5   cran         bit <NA>
#> 5       crayon   1.5.2   cran      crayon <NA>
#> 6        withr   2.5.0   cran       withr <NA>
#> 7  prettyunits   1.1.1   cran prettyunits <NA>
#> 8           R6   2.5.1   cran          R6 <NA>
#> 9        cpp11   0.4.6   cran       cpp11 <NA>
#> 10     rematch   2.0.0   cran     rematch <NA>
#> 11       fansi   1.0.4   cran       fansi <NA>
#> 12    magrittr   2.0.3   cran    magrittr <NA>
#> 13        utf8   1.2.3   cran        utf8 <NA>
#> 14   pkgconfig   2.0.3   cran   pkgconfig <NA>
#> 15       rlang   1.1.1   cran       rlang <NA>
#> 16         cli   3.6.1   cran         cli <NA>
#> 17        glue   1.6.2   cran        glue <NA>
#> 18       bit64   4.0.5   cran       bit64 <NA>
#> 19        tzdb   0.4.0   cran        tzdb <NA>
#> 20   lifecycle   1.0.3   cran   lifecycle <NA>
#> 21       vctrs   0.6.3   cran       vctrs <NA>
#> 22         hms   1.1.3   cran         hms <NA>
#> 23  tidyselect   1.2.0   cran  tidyselect <NA>
#> 24    progress   1.2.2   cran    progress <NA>
#> 25      pillar   1.9.0   cran      pillar <NA>
#> 26      tibble   3.2.1   cran      tibble <NA>
#> 27  cellranger   1.1.0   cran  cellranger <NA>
#> 28       vroom   1.6.3   cran       vroom <NA>
#> 29       readr   2.1.4   cran       readr <NA>

mod_deps <- c("cellranger", "stringi", "tibble", "vctrs", "zip", "cpp11")

mod <- rang::resolve(mod_deps, snapshot_date = Sys.Date())
nrow(rang:::.generate_installation_order(mod))
#> [1] 16

rang:::.generate_installation_order(mod)
#>             x version source     handle  uid
#> 1       cpp11   0.4.6   cran      cpp11 <NA>
#> 2         zip   2.3.0   cran        zip <NA>
#> 3     stringi  1.7.12   cran    stringi <NA>
#> 4     rematch   2.0.0   cran    rematch <NA>
#> 5       fansi   1.0.4   cran      fansi <NA>
#> 6    magrittr   2.0.3   cran   magrittr <NA>
#> 7        utf8   1.2.3   cran       utf8 <NA>
#> 8   pkgconfig   2.0.3   cran  pkgconfig <NA>
#> 9       rlang   1.1.1   cran      rlang <NA>
#> 10        cli   3.6.1   cran        cli <NA>
#> 11       glue   1.6.2   cran       glue <NA>
#> 12  lifecycle   1.0.3   cran  lifecycle <NA>
#> 13      vctrs   0.6.3   cran      vctrs <NA>
#> 14     pillar   1.9.0   cran     pillar <NA>
#> 15     tibble   3.2.1   cran     tibble <NA>
#> 16 cellranger   1.1.0   cran cellranger <NA>

Created on 2023-09-19 with reprex v2.0.2

chainsawriot commented 1 year ago

TODO

readODS v 2.1.0

chainsawriot commented 6 months ago

In progress chainsawriot/minty#2

chainsawriot commented 4 months ago

With compilation + Download R 4.4.0 7289c7d - 134s

chainsawriot commented 4 months ago

19 dependencies (10 less than the current CRAN version), not bad.

           x    version source           handle
1     rematch      2.0.0   cran          rematch
2       cpp11      0.4.7   cran            cpp11
3     stringi      1.8.4   cran          stringi
4       fansi      1.0.6   cran            fansi
5    magrittr      2.0.3   cran         magrittr
6        utf8      1.2.4   cran             utf8
7   pkgconfig      2.0.3   cran        pkgconfig
8         cli      3.6.2   cran              cli
9        glue      1.7.0   cran             glue
10      rlang      1.1.3   cran            rlang
11        zip      2.3.1   cran              zip
12       tzdb      0.4.0   cran             tzdb
13      minty      0.0.1   cran            minty
14  lifecycle      1.0.4   cran        lifecycle
15      vctrs      0.6.5   cran            vctrs
16     pillar      1.9.0   cran           pillar
17     tibble      3.2.1   cran           tibble
18 cellranger      1.1.0   cran       cellranger
19    readODS 2.2.0.9999 github ropensci/readODS