Skip to content

Commit 511c5e3

Browse files
authored
Merge pull request #412 from cmu-delphi/ds/print
refactor: unclutter epi_archive print method
2 parents ce8b347 + 13873f2 commit 511c5e3

File tree

5 files changed

+34
-69
lines changed

5 files changed

+34
-69
lines changed

DESCRIPTION

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Type: Package
22
Package: epiprocess
33
Title: Tools for basic signal processing in epidemiology
4-
Version: 0.7.2
4+
Version: 0.7.3
55
Authors@R: c(
66
person("Jacob", "Bien", role = "ctb"),
77
person("Logan", "Brooks", role = "aut"),
@@ -56,7 +56,7 @@ Suggests:
5656
testthat (>= 3.1.5),
5757
waldo (>= 0.3.1),
5858
withr
59-
VignetteBuilder:
59+
VignetteBuilder:
6060
knitr
6161
Remotes:
6262
cmu-delphi/epidatr,
@@ -67,10 +67,10 @@ Encoding: UTF-8
6767
LazyData: true
6868
Roxygen: list(markdown = TRUE)
6969
RoxygenNote: 7.2.3
70-
Depends:
70+
Depends:
7171
R (>= 2.10)
7272
URL: https://cmu-delphi.github.io/epiprocess/
73-
Collate:
73+
Collate:
7474
'archive.R'
7575
'correlation.R'
7676
'data.R'

NAMESPACE

+1
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ export(slice)
6161
export(ungroup)
6262
export(unnest)
6363
importFrom(R6,R6Class)
64+
importFrom(cli,cli_inform)
6465
importFrom(data.table,":=")
6566
importFrom(data.table,address)
6667
importFrom(data.table,as.data.table)

NEWS.md

+2
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ Pre-1.0.0 numbering scheme: 0.x will indicate releases, while 0.x.y will indicat
1414
* changed approach to versioning, see DEVELOPMENT.md for details
1515
* `select` on grouped `epi_df`s now only drops `epi_df`ness if it makes sense; PR #390
1616
* Minor documentation updates; PR #393
17+
* Improved `epi_archive` print method. Compactified metadata and shows a snippet
18+
of the underlying `DT` (#341).
1719

1820
## Breaking changes
1921

R/archive.R

+18-56
Original file line numberDiff line numberDiff line change
@@ -443,64 +443,26 @@ epi_archive <-
443443
#' @param class Boolean; whether to print the class label header
444444
#' @param methods Boolean; whether to print all available methods of
445445
#' the archive
446+
#' @importFrom cli cli_inform
446447
print = function(class = TRUE, methods = TRUE) {
447-
if (class) cat("An `epi_archive` object, with metadata:\n")
448-
cat(sprintf("* %-9s = %s\n", "geo_type", self$geo_type))
449-
cat(sprintf("* %-9s = %s\n", "time_type", self$time_type))
450-
if (!is.null(self$additional_metadata)) {
451-
sapply(self$additional_metadata, function(m) {
452-
cat(sprintf("* %-9s = %s\n", names(m), m))
453-
})
454-
}
455-
cat("----------\n")
456-
if (length(self$DT$time_value) == 0 || all(is.na(self$DT$time_value))) {
457-
min_time <- max_time <- NA
458-
} else {
459-
min_time <- Min(self$DT$time_value)
460-
max_time <- Max(self$DT$time_value)
461-
}
462-
cat(sprintf("* %-14s = %s\n", "min time value", min_time))
463-
cat(sprintf("* %-14s = %s\n", "max time value", max_time))
464-
cat(sprintf(
465-
"* %-14s = %s\n", "first version with update",
466-
min(self$DT$version)
467-
))
468-
cat(sprintf(
469-
"* %-14s = %s\n", "last version with update",
470-
max(self$DT$version)
471-
))
472-
if (is.na(self$clobberable_versions_start)) {
473-
cat("* No clobberable versions\n")
474-
} else {
475-
cat(sprintf(
476-
"* %-14s = %s\n", "clobberable versions start",
477-
self$clobberable_versions_start
478-
))
479-
}
480-
cat(sprintf(
481-
"* %-14s = %s\n", "versions end",
482-
self$versions_end
483-
))
484-
cat("----------\n")
485-
cat(sprintf(
486-
"Data archive (stored in DT field): %i x %i\n",
487-
nrow(self$DT), ncol(self$DT)
488-
))
489-
cat(sprintf("Columns in DT: %s\n", paste(ifelse(length(
490-
colnames(self$DT)
491-
) <= 4, paste(colnames(self$DT), collapse = ", "),
492-
paste(
493-
paste(colnames(self$DT)[1:4], collapse = ", "), "and",
494-
length(colnames(self$DT)[5:length(colnames(self$DT))]), "more columns"
448+
cli_inform(
449+
c(
450+
">" = if (class) {"An `epi_archive` object, with metadata:"},
451+
"i" = if (length(setdiff(key(self$DT), c('geo_value', 'time_value', 'version'))) > 0) {
452+
"Non-standard DT keys: {setdiff(key(self$DT), c('geo_value', 'time_value', 'version'))}"
453+
},
454+
"i" = "Min/max time values: {min(self$DT$time_value)} / {max(self$DT$time_value)}",
455+
"i" = "First/last version with update: {min(self$DT$version)} / {max(self$DT$version)}",
456+
"i" = if (!is.na(self$clobberable_versions_start)) {
457+
"Clobberable versions start: {self$clobberable_versions_start}"
458+
},
459+
"i" = "Versions end: {self$versions_end}",
460+
"i" = if (methods) {"Public R6 methods: {names(epi_archive$public_methods)}"},
461+
"i" = "A preview of the table ({nrow(self$DT)} rows x {ncol(self$DT)} columns):"
462+
)
495463
)
496-
))))
497-
if (methods) {
498-
cat("----------\n")
499-
writeLines(wrap_varnames(
500-
initial = "Public R6 methods: ",
501-
names(epi_archive$public_methods)
502-
))
503-
}
464+
465+
return(invisible(self$DT %>% print))
504466
},
505467
#####
506468
#' @description Generates a snapshot in `epi_df` format as of a given version.

man/jhu_csse_daily_subset.Rd

+9-9
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)