Merge pull request 'Phase R1: cog_manifest() accessor + CPI coverage pins' (#4) from feat/phase-r1-forward into main
R-CMD-check / check (push) Successful in 2m40s
R-CMD-check / check (push) Successful in 2m40s
Reviewed-on: #4
This commit was merged in pull request #4.
This commit is contained in:
@@ -7,6 +7,7 @@ export(cog_explain)
|
||||
export(cog_find_peers)
|
||||
export(cog_geographic_rollup)
|
||||
export(cog_gov_search)
|
||||
export(cog_manifest)
|
||||
export(cog_mirror)
|
||||
export(cog_peer_compare)
|
||||
export(cog_revenue)
|
||||
|
||||
@@ -146,3 +146,18 @@
|
||||
}
|
||||
|
||||
`%||%` <- function(a, b) if (is.null(a) || (length(a) == 1 && is.na(a))) b else a
|
||||
|
||||
#' Return the parsed corpus manifest for the active session.
|
||||
#'
|
||||
#' Opens a session (connecting to the configured corpus) if none is active,
|
||||
#' then returns the manifest exactly as parsed from `manifest.json`. Useful
|
||||
#' for consumers that need the published year range (`years` block, schema
|
||||
#' v5+) or the partition list without issuing a data query.
|
||||
#'
|
||||
#' @return Named list: `schema_version`, `built_at`, `pipeline_commit`,
|
||||
#' `data_vintage`, `scope`, `years` (schema v5+), `schema`, `files`.
|
||||
#' @export
|
||||
cog_manifest <- function() {
|
||||
.ensure_session()
|
||||
.uscogdata_env$manifest
|
||||
}
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/manifest.R
|
||||
\name{cog_manifest}
|
||||
\alias{cog_manifest}
|
||||
\title{Return the parsed corpus manifest for the active session.}
|
||||
\usage{
|
||||
cog_manifest()
|
||||
}
|
||||
\value{
|
||||
Named list: `schema_version`, `built_at`, `pipeline_commit`,
|
||||
`data_vintage`, `scope`, `years` (schema v5+), `schema`, `files`.
|
||||
}
|
||||
\description{
|
||||
Opens a session (connecting to the configured corpus) if none is active,
|
||||
then returns the manifest exactly as parsed from `manifest.json`. Useful
|
||||
for consumers that need the published year range (`years` block, schema
|
||||
v5+) or the partition list without issuing a data query.
|
||||
}
|
||||
@@ -41,3 +41,10 @@ test_that(".inflate preserves NA amounts", {
|
||||
expect_true(is.na(result[2]))
|
||||
expect_false(any(is.na(result[c(1, 3)])))
|
||||
})
|
||||
|
||||
test_that("bundled CPI covers the full 1967+ corpus era through this year", {
|
||||
cpi <- .cpi_table()
|
||||
expect_lte(min(cpi$year), 1967L)
|
||||
expect_gte(max(cpi$year), as.integer(format(Sys.Date(), "%Y")))
|
||||
expect_false(any(is.na(cpi$cpi)))
|
||||
})
|
||||
|
||||
@@ -99,3 +99,14 @@ test_that("remote manifest fetch does not poison cache when response is HTML", {
|
||||
0L
|
||||
)
|
||||
})
|
||||
|
||||
test_that("cog_manifest returns the active session's parsed manifest", {
|
||||
with_fixture_corpus({
|
||||
m <- cog_manifest()
|
||||
expect_type(m, "list")
|
||||
expect_true(m$schema_version >= 4L)
|
||||
yrs <- vapply(m$files$long_partitions, function(p) as.integer(p$year),
|
||||
integer(1))
|
||||
expect_setequal(yrs, c(2019L, 2020L))
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user