## ----include = FALSE---------------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ## ----setup-------------------------------------------------------------------- library(diseasystore) ## ----hidden_options, include = FALSE------------------------------------------ if (rlang::is_installed("withr")) { withr::local_options( "tibble.print_min" = 5, "diseasystore.verbose" = FALSE, "diseasystore.DiseasystoreEcdcRespiratoryViruses.pull" = FALSE ) } else { opts <- options( "tibble.print_min" = 5, "diseasystore.verbose" = FALSE, "diseasystore.DiseasystoreEcdcRespiratoryViruses.pull" = FALSE ) } # We have a "hard" dependency for duckdb to render parts of this vignette suggests_available <- rlang::is_installed("duckdb") not_on_cran <- interactive() || identical(Sys.getenv("NOT_CRAN"), "true") || identical(Sys.getenv("CI"), "true") ## ----download_data, eval = FALSE---------------------------------------------- # # First we set the path we want to use as an option # options( # "diseasystore.DiseasystoreEcdcRespiratoryViruses.source_conn" = # file.path("local", "path") # ) # # # Ensure folder exists # source_conn <- diseasyoption("source_conn", "DiseasystoreEcdcRespiratoryViruses") # if (!dir.exists(source_conn)) { # dir.create(source_conn, recursive = TRUE, showWarnings = FALSE) # } # # # Clone the repository # system2( # "git", # args = c( # paste("-C", source_conn), # "clone https://github.com/EU-ECDC/Respiratory_viruses_weekly_data" # ), # stdout = TRUE # ) ## ----download_data_hidden, include = FALSE, eval = not_on_cran---------------- # In practice, it is best to make a local copy of the data which is # stored in the "vignette_data" folder. # This folder can either be in the package folder # (preferred, please create the folder) or in the tempdir(). local_conn <- purrr::detect( "vignette_data", checkmate::test_directory_exists, .default = tempdir() ) if (rlang::is_installed("withr")) { withr::local_options( "diseasystore.DiseasystoreEcdcRespiratoryViruses.source_conn" = local_conn, "diseasystore.DiseasystoreEcdcRespiratoryViruses.n_max" = 1000 ) } else { opts <- c( opts, options( "diseasystore.DiseasystoreEcdcRespiratoryViruses.source_conn" = local_conn, "diseasystore.DiseasystoreEcdcRespiratoryViruses.n_max" = 1000 ) ) } # Define the ECDC file to download test_file <- "data/snapshots/2023-11-24_ILIARIRates.csv" # Create folder and download file dir.create( dirname(file.path(local_conn, test_file)), recursive = TRUE, showWarnings = FALSE ) if (!file.exists(file.path(local_conn, test_file))) { remote_file <- source_conn_github( diseasyoption("remote_conn", "DiseasystoreEcdcRespiratoryViruses"), test_file ) readr::read_csv( remote_file, n_max = 1000, show_col_types = FALSE, progress = FALSE ) |> readr::write_csv(file.path(local_conn, test_file)) } # Check that the files are available after attempting to download files_missing <- purrr::some( test_file, ~ !checkmate::test_file_exists(file.path(local_conn, .)) ) if (files_missing) { data_available <- FALSE } else { data_available <- TRUE } ## ----configure_diseasystore, eval = FALSE------------------------------------- # # We define target_conn as a function that opens a DBIconnection to the DB # target_conn <- \() DBI::dbConnect(duckdb::duckdb()) # options( # "diseasystore.DiseasystoreEcdcRespiratoryViruses.target_conn" = target_conn # ) ## ----configure_diseasystore_hidden, include = FALSE, eval = not_on_cran && suggests_available && data_available---- target_conn <- \() DBI::dbConnect(duckdb::duckdb()) if (rlang::is_installed("withr")) { withr::local_options( "diseasystore.DiseasystoreEcdcRespiratoryViruses.target_conn" = target_conn ) } else { opts <- c( opts, options( "diseasystore.DiseasystoreEcdcRespiratoryViruses.target_conn" = target_conn ) ) } ## ----initializing_diseasystore, eval = not_on_cran && suggests_available && data_available---- ds <- DiseasystoreEcdcRespiratoryViruses$new() ## ----using_diseasystore_example_1, eval = not_on_cran && suggests_available && data_available---- # We can see all the available features in the feature store ds$available_features ## ----using_diseasystore_example_2, eval = FALSE------------------------------- # # Manually update the repository # system2( # "git", # args = paste( # "-C", # diseasyoption("source_conn", "DiseasystoreEcdcRespiratoryViruses") # ), # stdout = TRUE # ) # # # Disable automatic pulls # options("diseasystore.DiseasystoreEcdcRespiratoryViruses.pull" = FALSE) ## ----using_diseasystore_example_3, eval = not_on_cran && suggests_available && data_available---- # And then retrieve a feature from the feature store ds$get_feature( feature = "iliari_rates", start_date = as.Date("2023-01-01"), end_date = as.Date("2023-03-01") ) ## ----cleanup, include = FALSE------------------------------------------------- if (exists("ds")) rm(ds) gc() if (!rlang::is_installed("withr")) { options(opts) }