From 989275ffc229ab3762b15c12075975f682e6467d Mon Sep 17 00:00:00 2001 From: Rex Parsons <47549264+RWParsons@users.noreply.github.com> Date: Wed, 5 Jun 2024 14:12:51 +1000 Subject: [PATCH] go back to using scales from analyses pipeline and use withr$with_package("dplyr",...) to get around box issue. --- R/create-map-polygon.R | 2 +- R/save-app-scales.R | 6 +- _targets.R | 5 + _targets/meta/meta | 12 +- app/app/data/scale_fxs.rds | Bin 0 -> 25123 bytes app/app/logic/scales_and_palettes.R | 52 +- app/app/mapping/update_map_content.R | 3 +- app/app/view/main_map/page.R | 1 + app/renv.lock | 113 ---- app/renv/activate.R | 743 +++++++++++++-------------- app/update-data.R | 9 +- output/scale_fxs.rds | Bin 0 -> 25123 bytes 12 files changed, 388 insertions(+), 558 deletions(-) create mode 100644 app/app/data/scale_fxs.rds create mode 100644 output/scale_fxs.rds diff --git a/R/create-map-polygon.R b/R/create-map-polygon.R index c89530c..1b8c5ea 100644 --- a/R/create-map-polygon.R +++ b/R/create-map-polygon.R @@ -222,7 +222,7 @@ get_popup_glue <- function(asgs, care_type) { seifa_scale_to_text <- function(x) { - dplyr::case_when( + case_when( x == 1 ~ "Most disadvantaged", x == 2 ~ "Disadvantaged", x == 3 ~ "Middle socio-economic status", diff --git a/R/save-app-scales.R b/R/save-app-scales.R index 702390d..42b90ed 100644 --- a/R/save-app-scales.R +++ b/R/save-app-scales.R @@ -12,7 +12,7 @@ save_app_scale_fxs <- function(itraqi_list) { seifa_text_to_value <- function(x) { - dplyr::case_when( + case_when( x == "Most disadvantaged" ~ 1, x == "Disadvantaged" ~ 2, x == "Middle socio-economic status" ~ 3, @@ -22,7 +22,7 @@ seifa_text_to_value <- function(x) { } ra_scale_to_text <- function(x) { - dplyr::case_when( + case_when( x == 0 ~ "Major Cities of Australia", x == 1 ~ "Inner Regional Australia", x == 2 ~ "Outer Regional Australia", @@ -33,7 +33,7 @@ ra_scale_to_text <- function(x) { } ra_text_to_value <- function(x) { - dplyr::case_when( + case_when( x == "Major Cities of Australia" ~ 0, x == "Inner Regional Australia" ~ 1, x == "Outer Regional Australia" ~ 2, diff --git a/_targets.R b/_targets.R index c3a579f..2843ab3 100644 --- a/_targets.R +++ b/_targets.R @@ -524,5 +524,10 @@ list( app_palette, save_app_palette(itraqi_list), format = "file" + ), + tar_target( + app_scale_fxs, + save_app_scale_fxs(itraqi_list), + format = "file" ) ) diff --git a/_targets/meta/meta b/_targets/meta/meta index cad318e..00a5edf 100644 --- a/_targets/meta/meta +++ b/_targets/meta/meta @@ -6,7 +6,7 @@ app_palette|stem|cac570aeb87fb676|e24316a13bb70c3f|4344e541fc69628d|1089662940|C app_polygons|stem|e7d123b9aec4e861|5c835e7fc326dfb4|fac77f55835876ba|292954876|C:/Users/n10891277/R_projects/iTRAQI-analyses/output/stacked_SA1_and_SA2_polygons.rds|t19875.4977091281s|f5319271863f1aa5|1670214|file|local|vector|||30.531|repeating attributes for all subgeometries for which they may not be constant. repeating attributes for all subgeometries for which they may not be constant. repeating attributes for all subgeometries for which they may not be constant. repeating attributes for all subgeometries for which they may not be constant. repeating attributes for all subgeometries for which they may not be constant. repeating attributes for all subgeometries for which they may not be constant| app_raster|stem|c2cbf9546e160981|b13b86c57469fee5|b8786adeabdd75a5|-1751902619|C:/Users/n10891277/R_projects/iTRAQI-analyses/output/raster_points.rds|t19806.2605021909s||6312158|file|local|vector|||1.594||promise already under evaluation recursive default argument reference or earlier problems app_rasters|stem|c31f84f47f2831bd|b13b86c57469fee5|6e278b5c140235a8|1306936721||t0s|f4066a65ff755f48|0|file|local|vector|||2.203|| -app_scale_fxs|stem|c78b801dabb917c5|514b0a88839ebf2b|589a8b9a1196e788|-280546199|C:/Users/n10891277/R_projects/iTRAQI-analyses/output/scale_fxs.rds|t19879.0405234028s|502baa2af2ed0ba7|25261|file|local|vector|||1.563|| +app_scale_fxs|stem|20fe6b94c43f2e83|514b0a88839ebf2b|d097146eda55c46a|-280546199|C:/Users/n10891277/R_projects/iTRAQI-analyses/output/scale_fxs.rds|t19879.1712086769s|c2212432560d6336|25123|file|local|vector|||1.75|| breaks_to_labels|function|15aa190f0fc9cc8c||||||||||||||| cell_size_agg|object|e9200b1fe25d1e1c||||||||||||||| CELL_SIZE_METERS|object|42b194eec038fae9||||||||||||||| @@ -142,8 +142,8 @@ qas_locations_file|stem|47d8b576de70ef8e|fd3582224bc61473|ef46db3751d8e999|71835 qas_map|stem|e69241543175c797|eea5e9f0030edc9d|55f10a27542bd307|61823707||t19875.4978105361s|6aac70ce59868a33|131|rds|local|vector|||0.407|| qld_locations_file|stem|371950c86cc87bec|1ec6722829c44405|ef46db3751d8e999|1094260305|data/QLDLocations3422.csv|t19409.0793635134s|8e55589b30e156b7|15655|file|local|vector|||0.704|| quintile_from_decile|function|bc270d6e6e422eb2||||||||||||||| -ra_scale_to_text|function|c43f6624f5e459a7||||||||||||||| -ra_text_to_value|function|dd6b49691d4852aa||||||||||||||| +ra_scale_to_text|function|c1acc9ff04332e8b||||||||||||||| +ra_text_to_value|function|73d5d9d86704dc76||||||||||||||| read_acute_pathways|function|1a36ca8a0230d230||||||||||||||| read_rehab_data|function|a09cb307a4d6a798||||||||||||||| remoteness_files|pattern|98c703641e4cde89|d364f7500701dda5||-796710876||||6302502|file|local|vector||remoteness_files_82c12366*remoteness_files_2bb95249*remoteness_files_a8528819*remoteness_files_06e81f91|0|| @@ -156,15 +156,15 @@ rename_travel_time_df|function|82572c667aa9ceb3||||||||||||||| rsq_locations_file|stem|72685425b2fb4cb6|7c2c0922575a2b28|ef46db3751d8e999|-3892719|data/inputs-for-visualisations/rsq_locations.csv|t19221.9976706623s|17fd65357607abf9|576|file|local|vector|||1.297|| rsq_maps|stem|640a4e2523c1fca4|765ca2014d1ef285|7cf20ddf76bed36f|1296509518||t19875.497779303s|c303d0aa7a9c897f|156|rds|local|vector|||0.703|| save_app_palette|function|3e75f24dac6a9f85||||||||||||||| -save_app_scale_fxs|function|2a9b1b250e0153c4||||||||||||||| +save_app_scale_fxs|function|2229d381d8768cb5||||||||||||||| seifa_files|pattern|5cfc04b4c3634603|887c54425a6ada27||-1920692518||||112005632|file|local|vector||seifa_files_0fd258b0*seifa_files_3df8e749*seifa_files_b0acac7a*seifa_files_cab70577|0.016|| seifa_files_0fd258b0|branch|ca67916bf2742b10|887c54425a6ada27|ef46db3751d8e999|927023566|data/remoteness_and_seifa_data/2011_sa1_seifa.xls|t19409.0793720087s|c62dc507448a4207|53460992|file|local|vector|seifa_files||0|| seifa_files_3df8e749|branch|fbea7dee06d6d9d0|887c54425a6ada27|ef46db3751d8e999|56803531|data/remoteness_and_seifa_data/2011_sa2_seifa.xls|t19409.0793722171s|7c6c151c2bab7198|2412544|file|local|vector|seifa_files||0.016|| seifa_files_b0acac7a|branch|b5e556e507134893|887c54425a6ada27|ef46db3751d8e999|309424726|data/remoteness_and_seifa_data/2016_sa1_seifa.xls|t19409.07937518s|c28695aedb990632|54134784|file|local|vector|seifa_files||0|| seifa_files_cab70577|branch|41a0e4b1c1180c59|887c54425a6ada27|ef46db3751d8e999|-973884529|data/remoteness_and_seifa_data/2016_sa2_seifa.xls|t19409.0793753539s|a7fed4e7b47695f0|1997312|file|local|vector|seifa_files||0|| seifa_files_files|stem|92a6bd0e048be9f5|a03078bd0f3ea3f6|ef46db3751d8e999|1567115929||t19736.7001155751s|bf0d8caacacad815|112|rds|local|list||seifa_files_files_b8e0c22c*seifa_files_files_e491d188*seifa_files_files_62b7ff49*seifa_files_files_146326d6|0|| -seifa_scale_to_text|function|5d72251148e5bae2||||||||||||||| -seifa_text_to_value|function|6d61674a937af476||||||||||||||| +seifa_scale_to_text|function|9654adcfacd5dc4b||||||||||||||| +seifa_text_to_value|function|1b54a5c209cba897||||||||||||||| silver_locs|object|fc5aaa3d2a561f0c||||||||||||||| tbl_to_raster|function|bf64572f21350623||||||||||||||| template_files|stem|751da96a4f79949e|b6c543b3df6e354c|ef46db3751d8e999|-678564935||t19784.2317935203s|f3963c450082b208|143|rds|local|vector|||0.969|| diff --git a/app/app/data/scale_fxs.rds b/app/app/data/scale_fxs.rds new file mode 100644 index 0000000000000000000000000000000000000000..9069e1f5eeaccd86e47209d00fa66bbe491996b8 GIT binary patch literal 25123 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 Reading from a connection which does not supply a 'gzip' magic # > header is equivalent to reading from the original connection conn <- gzcon(file(bundle, open = "rb", raw = TRUE)) on.exit(close(conn)) - + # The default pax header is 512 bytes long and the first pax extended header # with the comment should be 51 bytes long # `52 comment=` (11 chars) + 40 byte SHA1 hash len <- 0x200 + 0x33 res <- rawToChar(readBin(conn, "raw", n = len)[0x201:len]) - + if (grepl("^52 comment=", res)) { sub("52 comment=", "", res) } else { NULL } } - + renv_bootstrap_install <- function(version, tarball, library) { - # attempt to install it into project library dir.create(library, showWarnings = FALSE, recursive = TRUE) output <- renv_bootstrap_install_impl(library, tarball) - + # check for successful install status <- attr(output, "status") - if (is.null(status) || identical(status, 0L)) + if (is.null(status) || identical(status, 0L)) { return(status) - + } + # an error occurred; report it header <- "installation of renv failed" lines <- paste(rep.int("=", nchar(header)), collapse = "") text <- paste(c(header, lines, output), collapse = "\n") stop(text) - } - + renv_bootstrap_install_impl <- function(library, tarball) { - # invoke using system2 so we can capture and report output bin <- R.home("bin") exe <- if (Sys.info()[["sysname"]] == "Windows") "R.exe" else "R" R <- file.path(bin, exe) - + args <- c( "--vanilla", "CMD", "INSTALL", "--no-multiarch", "-l", shQuote(path.expand(library)), shQuote(path.expand(tarball)) ) - + system2(R, args, stdout = TRUE, stderr = TRUE) - } - + renv_bootstrap_platform_prefix <- function() { - # construct version prefix version <- paste(R.version$major, R.version$minor, sep = ".") prefix <- paste("R", numeric_version(version)[1, 1:2], sep = "-") - + # include SVN revision for development versions of R # (to avoid sharing platform-specific artefacts with released versions of R) devel <- - identical(R.version[["status"]], "Under development (unstable)") || - identical(R.version[["nickname"]], "Unsuffered Consequences") - - if (devel) + identical(R.version[["status"]], "Under development (unstable)") || + identical(R.version[["nickname"]], "Unsuffered Consequences") + + if (devel) { prefix <- paste(prefix, R.version[["svn rev"]], sep = "-r") - + } + # build list of path components components <- c(prefix, R.version$platform) - + # include prefix if provided by user prefix <- renv_bootstrap_platform_prefix_impl() - if (!is.na(prefix) && nzchar(prefix)) + if (!is.na(prefix) && nzchar(prefix)) { components <- c(prefix, components) - + } + # build prefix paste(components, collapse = "/") - } - + renv_bootstrap_platform_prefix_impl <- function() { - # if an explicit prefix has been supplied, use it prefix <- Sys.getenv("RENV_PATHS_PREFIX", unset = NA) - if (!is.na(prefix)) + if (!is.na(prefix)) { return(prefix) - + } + # if the user has requested an automatic prefix, generate it auto <- Sys.getenv("RENV_PATHS_PREFIX_AUTO", unset = NA) - if (auto %in% c("TRUE", "True", "true", "1")) + if (auto %in% c("TRUE", "True", "true", "1")) { return(renv_bootstrap_platform_prefix_auto()) - + } + # empty string on failure "" - } - + renv_bootstrap_platform_prefix_auto <- function() { - prefix <- tryCatch(renv_bootstrap_platform_os(), error = identity) if (inherits(prefix, "error") || prefix %in% "unknown") { - msg <- paste( "failed to infer current operating system", "please file a bug report at https://github.com/rstudio/renv/issues", sep = "; " ) - + warning(msg) - } - + prefix - } - + renv_bootstrap_platform_os <- function() { - sysinfo <- Sys.info() sysname <- sysinfo[["sysname"]] - + # handle Windows + macOS up front - if (sysname == "Windows") + if (sysname == "Windows") { return("windows") - else if (sysname == "Darwin") + } else if (sysname == "Darwin") { return("macos") - + } + # check for os-release files - for (file in c("/etc/os-release", "/usr/lib/os-release")) - if (file.exists(file)) + for (file in c("/etc/os-release", "/usr/lib/os-release")) { + if (file.exists(file)) { return(renv_bootstrap_platform_os_via_os_release(file, sysinfo)) - + } + } + # check for redhat-release files - if (file.exists("/etc/redhat-release")) + if (file.exists("/etc/redhat-release")) { return(renv_bootstrap_platform_os_via_redhat_release()) - + } + "unknown" - } - + renv_bootstrap_platform_os_via_os_release <- function(file, sysinfo) { - # read /etc/os-release release <- utils::read.table( file = file, @@ -672,13 +653,13 @@ local({ comment.char = "#", stringsAsFactors = FALSE ) - + vars <- as.list(release$Value) names(vars) <- release$Key - + # get os name os <- tolower(sysinfo[["sysname"]]) - + # read id id <- "unknown" for (field in c("ID", "ID_LIKE")) { @@ -687,7 +668,7 @@ local({ break } } - + # read version version <- "unknown" for (field in c("UBUNTU_CODENAME", "VERSION_CODENAME", "VERSION_ID", "BUILD_ID")) { @@ -696,91 +677,84 @@ local({ break } } - + # join together paste(c(os, id, version), collapse = "-") - } - + renv_bootstrap_platform_os_via_redhat_release <- function() { - # read /etc/redhat-release contents <- readLines("/etc/redhat-release", warn = FALSE) - + # infer id - id <- if (grepl("centos", contents, ignore.case = TRUE)) + id <- if (grepl("centos", contents, ignore.case = TRUE)) { "centos" - else if (grepl("redhat", contents, ignore.case = TRUE)) + } else if (grepl("redhat", contents, ignore.case = TRUE)) { "redhat" - else + } else { "unknown" - + } + # try to find a version component (very hacky) version <- "unknown" - + parts <- strsplit(contents, "[[:space:]]")[[1L]] for (part in parts) { - nv <- tryCatch(numeric_version(part), error = identity) - if (inherits(nv, "error")) + if (inherits(nv, "error")) { next - + } + version <- nv[1, 1] break - } - + paste(c("linux", id, version), collapse = "-") - } - + renv_bootstrap_library_root_name <- function(project) { - # use project name as-is if requested asis <- Sys.getenv("RENV_PATHS_LIBRARY_ROOT_ASIS", unset = "FALSE") - if (asis) + if (asis) { return(basename(project)) - + } + # otherwise, disambiguate based on project's path id <- substring(renv_bootstrap_hash_text(project), 1L, 8L) paste(basename(project), id, sep = "-") - } - + renv_bootstrap_library_root <- function(project) { - prefix <- renv_bootstrap_profile_prefix() - + path <- Sys.getenv("RENV_PATHS_LIBRARY", unset = NA) - if (!is.na(path)) + if (!is.na(path)) { return(paste(c(path, prefix), collapse = "/")) - + } + path <- renv_bootstrap_library_root_impl(project) if (!is.null(path)) { name <- renv_bootstrap_library_root_name(project) return(paste(c(path, prefix, name), collapse = "/")) } - + renv_bootstrap_paths_renv("library", project = project) - } - + renv_bootstrap_library_root_impl <- function(project) { - root <- Sys.getenv("RENV_PATHS_LIBRARY_ROOT", unset = NA) - if (!is.na(root)) + if (!is.na(root)) { return(root) - + } + type <- renv_bootstrap_project_type(project) if (identical(type, "package")) { userdir <- renv_bootstrap_user_dir() return(file.path(userdir, "library")) } - } - + renv_bootstrap_validate_version <- function(version, description = NULL) { - # resolve description file # # avoid passing lib.loc to `packageDescription()` below, since R will @@ -788,17 +762,19 @@ local({ # this function should only be called after 'renv' is loaded # https://github.com/rstudio/renv/issues/1625 description <- description %||% packageDescription("renv") - + # check whether requested version 'version' matches loaded version of renv sha <- attr(version, "sha", exact = TRUE) - valid <- if (!is.null(sha)) + valid <- if (!is.null(sha)) { renv_bootstrap_validate_version_dev(sha, description) - else + } else { renv_bootstrap_validate_version_release(version, description) - - if (valid) + } + + if (valid) { return(TRUE) - + } + # the loaded version of renv doesn't match the requested version; # give the user instructions on how to proceed remote <- if (!is.null(description[["RemoteSha"]])) { @@ -806,13 +782,13 @@ local({ } else { paste("renv", description[["Version"]], sep = "@") } - + # display both loaded version + sha if available friendly <- renv_bootstrap_version_friendly( version = description[["Version"]], sha = description[["RemoteSha"]] ) - + fmt <- paste( "renv %1$s was loaded from project library, but this project is configured to use renv %2$s.", "- Use `renv::record(\"%3$s\")` to record renv %1$s in the lockfile.", @@ -820,116 +796,115 @@ local({ sep = "\n" ) catf(fmt, friendly, renv_bootstrap_version_friendly(version), remote) - + FALSE - } - + renv_bootstrap_validate_version_dev <- function(version, description) { expected <- description[["RemoteSha"]] is.character(expected) && startswith(expected, version) } - + renv_bootstrap_validate_version_release <- function(version, description) { expected <- description[["Version"]] is.character(expected) && identical(expected, version) } - + renv_bootstrap_hash_text <- function(text) { - hashfile <- tempfile("renv-hash-") on.exit(unlink(hashfile), add = TRUE) - + writeLines(text, con = hashfile) tools::md5sum(hashfile) - } - + renv_bootstrap_load <- function(project, libpath, version) { - # try to load renv from the project library - if (!requireNamespace("renv", lib.loc = libpath, quietly = TRUE)) + if (!requireNamespace("renv", lib.loc = libpath, quietly = TRUE)) { return(FALSE) - + } + # warn if the version of renv loaded does not match renv_bootstrap_validate_version(version) - + # execute renv load hooks, if any hooks <- getHook("renv::autoload") - for (hook in hooks) - if (is.function(hook)) + for (hook in hooks) { + if (is.function(hook)) { tryCatch(hook(), error = warnify) - + } + } + # load the project renv::load(project) - + TRUE - } - + renv_bootstrap_profile_load <- function(project) { - # if RENV_PROFILE is already set, just use that profile <- Sys.getenv("RENV_PROFILE", unset = NA) - if (!is.na(profile) && nzchar(profile)) + if (!is.na(profile) && nzchar(profile)) { return(profile) - + } + # check for a profile file (nothing to do if it doesn't exist) path <- renv_bootstrap_paths_renv("profile", profile = FALSE, project = project) - if (!file.exists(path)) + if (!file.exists(path)) { return(NULL) - + } + # read the profile, and set it if it exists contents <- readLines(path, warn = FALSE) - if (length(contents) == 0L) + if (length(contents) == 0L) { return(NULL) - + } + # set RENV_PROFILE profile <- contents[[1L]] - if (!profile %in% c("", "default")) + if (!profile %in% c("", "default")) { Sys.setenv(RENV_PROFILE = profile) - + } + profile - } - + renv_bootstrap_profile_prefix <- function() { profile <- renv_bootstrap_profile_get() - if (!is.null(profile)) + if (!is.null(profile)) { return(file.path("profiles", profile, "renv")) + } } - + renv_bootstrap_profile_get <- function() { profile <- Sys.getenv("RENV_PROFILE", unset = "") renv_bootstrap_profile_normalize(profile) } - + renv_bootstrap_profile_set <- function(profile) { profile <- renv_bootstrap_profile_normalize(profile) - if (is.null(profile)) + if (is.null(profile)) { Sys.unsetenv("RENV_PROFILE") - else + } else { Sys.setenv(RENV_PROFILE = profile) + } } - + renv_bootstrap_profile_normalize <- function(profile) { - - if (is.null(profile) || profile %in% c("", "default")) + if (is.null(profile) || profile %in% c("", "default")) { return(NULL) - + } + profile - } - + renv_bootstrap_path_absolute <- function(path) { - substr(path, 1L, 1L) %in% c("~", "/", "\\") || ( substr(path, 1L, 1L) %in% c(letters, LETTERS) && - substr(path, 2L, 3L) %in% c(":/", ":\\") + substr(path, 2L, 3L) %in% c(":/", ":\\") ) - } - + renv_bootstrap_paths_renv <- function(..., profile = TRUE, project = NULL) { renv <- Sys.getenv("RENV_PATHS_RENV", unset = "renv") root <- if (renv_bootstrap_path_absolute(renv)) NULL else project @@ -937,168 +912,168 @@ local({ components <- c(root, renv, prefix, ...) paste(components, collapse = "/") } - + renv_bootstrap_project_type <- function(path) { - descpath <- file.path(path, "DESCRIPTION") - if (!file.exists(descpath)) + if (!file.exists(descpath)) { return("unknown") - + } + desc <- tryCatch( read.dcf(descpath, all = TRUE), error = identity ) - - if (inherits(desc, "error")) + + if (inherits(desc, "error")) { return("unknown") - + } + type <- desc$Type - if (!is.null(type)) + if (!is.null(type)) { return(tolower(type)) - + } + package <- desc$Package - if (!is.null(package)) + if (!is.null(package)) { return("package") - + } + "unknown" - } - + renv_bootstrap_user_dir <- function() { dir <- renv_bootstrap_user_dir_impl() path.expand(chartr("\\", "/", dir)) } - + renv_bootstrap_user_dir_impl <- function() { - # use local override if set override <- getOption("renv.userdir.override") - if (!is.null(override)) + if (!is.null(override)) { return(override) - + } + # use R_user_dir if available tools <- asNamespace("tools") - if (is.function(tools$R_user_dir)) + if (is.function(tools$R_user_dir)) { return(tools$R_user_dir("renv", "cache")) - + } + # try using our own backfill for older versions of R envvars <- c("R_USER_CACHE_DIR", "XDG_CACHE_HOME") for (envvar in envvars) { root <- Sys.getenv(envvar, unset = NA) - if (!is.na(root)) + if (!is.na(root)) { return(file.path(root, "R/renv")) + } } - + # use platform-specific default fallbacks - if (Sys.info()[["sysname"]] == "Windows") + if (Sys.info()[["sysname"]] == "Windows") { file.path(Sys.getenv("LOCALAPPDATA"), "R/cache/R/renv") - else if (Sys.info()[["sysname"]] == "Darwin") + } else if (Sys.info()[["sysname"]] == "Darwin") { "~/Library/Caches/org.R-project.R/R/renv" - else + } else { "~/.cache/R/renv" - + } } - + renv_bootstrap_version_friendly <- function(version, shafmt = NULL, sha = NULL) { sha <- sha %||% attr(version, "sha", exact = TRUE) parts <- c(version, sprintf(shafmt %||% " [sha: %s]", substring(sha, 1L, 7L))) paste(parts, collapse = "") } - + renv_bootstrap_exec <- function(project, libpath, version) { - if (!renv_bootstrap_load(project, libpath, version)) + if (!renv_bootstrap_load(project, libpath, version)) { renv_bootstrap_run(version, libpath) + } } - + renv_bootstrap_run <- function(version, libpath) { - # perform bootstrap bootstrap(version, libpath) - + # exit early if we're just testing bootstrap - if (!is.na(Sys.getenv("RENV_BOOTSTRAP_INSTALL_ONLY", unset = NA))) + if (!is.na(Sys.getenv("RENV_BOOTSTRAP_INSTALL_ONLY", unset = NA))) { return(TRUE) - + } + # try again to load if (requireNamespace("renv", lib.loc = libpath, quietly = TRUE)) { return(renv::load(project = getwd())) } - + # failed to download or load renv; warn the user msg <- c( "Failed to find an renv installation: the project will not be loaded.", "Use `renv::activate()` to re-initialize the project." ) - + warning(paste(msg, collapse = "\n"), call. = FALSE) - } - + renv_json_read <- function(file = NULL, text = NULL) { - jlerr <- NULL - + # if jsonlite is loaded, use that instead if ("jsonlite" %in% loadedNamespaces()) { - json <- catch(renv_json_read_jsonlite(file, text)) - if (!inherits(json, "error")) + if (!inherits(json, "error")) { return(json) - + } + jlerr <- json - } - + # otherwise, fall back to the default JSON reader json <- catch(renv_json_read_default(file, text)) - if (!inherits(json, "error")) + if (!inherits(json, "error")) { return(json) - + } + # report an error - if (!is.null(jlerr)) + if (!is.null(jlerr)) { stop(jlerr) - else + } else { stop(json) - + } } - + renv_json_read_jsonlite <- function(file = NULL, text = NULL) { text <- paste(text %||% read(file), collapse = "\n") jsonlite::fromJSON(txt = text, simplifyVector = FALSE) } - + renv_json_read_default <- function(file = NULL, text = NULL) { - # find strings in the JSON text <- paste(text %||% read(file), collapse = "\n") pattern <- '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' locs <- gregexpr(pattern, text, perl = TRUE)[[1]] - + # if any are found, replace them with placeholders replaced <- text strings <- character() replacements <- character() - + if (!identical(c(locs), -1L)) { - # get the string values starts <- locs ends <- locs + attr(locs, "match.length") - 1L strings <- substring(text, starts, ends) - + # only keep those requiring escaping strings <- grep("[[\\]{}:]", strings, perl = TRUE, value = TRUE) - + # compute replacements replacements <- sprintf('"\032%i\032"', seq_along(strings)) - + # replace the strings mapply(function(string, replacement) { replaced <<- sub(string, replacement, replaced, fixed = TRUE) }, strings, replacements) - } - + # transform the JSON into something the R parser understands transformed <- replaced transformed <- gsub("{}", "`names<-`(list(), character())", transformed, fixed = TRUE) @@ -1106,58 +1081,57 @@ local({ transformed <- gsub("[]}]", ")", transformed, perl = TRUE) transformed <- gsub(":", "=", transformed, fixed = TRUE) text <- paste(transformed, collapse = "\n") - + # parse it json <- parse(text = text, keep.source = FALSE, srcfile = NULL)[[1L]] - + # construct map between source strings, replaced strings map <- as.character(parse(text = strings)) names(map) <- as.character(parse(text = replacements)) - + # convert to list map <- as.list(map) - + # remap strings in object remapped <- renv_json_remap(json, map) - + # evaluate eval(remapped, envir = baseenv()) - } - + renv_json_remap <- function(json, map) { - # fix names if (!is.null(names(json))) { lhs <- match(names(json), names(map), nomatch = 0L) rhs <- match(names(map), names(json), nomatch = 0L) names(json)[rhs] <- map[lhs] } - + # fix values - if (is.character(json)) + if (is.character(json)) { return(map[[json]] %||% json) - + } + # handle true, false, null if (is.name(json)) { text <- as.character(json) - if (text == "true") + if (text == "true") { return(TRUE) - else if (text == "false") + } else if (text == "false") { return(FALSE) - else if (text == "null") + } else if (text == "null") { return(NULL) + } } - + # recurse if (is.recursive(json)) { for (i in seq_along(json)) { json[i] <- list(renv_json_remap(json[[i]], map)) } } - + json - } # load the renv profile, if any @@ -1176,5 +1150,4 @@ local({ renv_bootstrap_exec(project, libpath, version) invisible() - }) diff --git a/app/update-data.R b/app/update-data.R index 29de501..f58d03b 100644 --- a/app/update-data.R +++ b/app/update-data.R @@ -10,7 +10,8 @@ outputs_to_move <- c( "stacked_SA1_and_SA2_polygons_geom.rds", "stacked_SA1_and_SA2_linestrings_geom.rds", "stacked_sa1_sa2_data.rds", - "palette_list.rds" + "palette_list.rds", + "scale_fxs.rds" ) x <- purrr::map( @@ -36,11 +37,5 @@ x <- purrr::map( to = file.path(app_data_dir, fname) ) } - } ) - -# remove files that aren't in list from data -input_data_files <- list.files(app_data_dir) - -purrr::map(input_data_files[!input_data_files %in% outputs_to_move], ~ file.remove(file.path(app_data_dir, .x))) diff --git a/output/scale_fxs.rds b/output/scale_fxs.rds new file mode 100644 index 0000000000000000000000000000000000000000..9069e1f5eeaccd86e47209d00fa66bbe491996b8 GIT binary patch literal 25123 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