Skip to content

Commit ab8a61b

Browse files
committed
change 'm4ra_cache_dir' to accept 'city' param
to allow city data to exist in sub-directories
1 parent f8b18f5 commit ab8a61b

File tree

9 files changed

+30
-22
lines changed

9 files changed

+30
-22
lines changed

DESCRIPTION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Package: m4ra
22
Title: Many-to-Many Multi-Modal Routing Aggregator
3-
Version: 0.1.1.045
3+
Version: 0.1.1.046
44
Authors@R:
55
person(given = "Mark",
66
family = "Padgham",

R/cache.R

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ get_hash <- function (graph, contracted = FALSE, force = FALSE) {
1717
return (hash)
1818
}
1919

20-
#' Path to user cache directory
20+
#' Path to user cache directory, optionally for specified city
2121
#' @noRd
22-
m4ra_cache_dir <- function () {
22+
m4ra_cache_dir <- function (city = NULL) {
2323

2424
# use envvar is set, so tempdir can be used on CRAN checks
2525
cache_dir <- Sys.getenv ("M4RA_CACHE_DIR")
@@ -37,6 +37,18 @@ m4ra_cache_dir <- function () {
3737
}
3838
}
3939

40+
if (!is.null (city)) {
41+
checkmate::assert_character (city, len = 1L)
42+
flist <- fs::dir_ls (cache_dir, type = "directory", recurse = TRUE)
43+
cache_dir <- flist [which (basename (flist) == city)]
44+
if (length (cache_dir) == 0L) {
45+
cache_dir <- fs::path (Sys.getenv ("M4RA_CACHE_DIR"), city)
46+
}
47+
if (length (cache_dir) > 1L) {
48+
cli::cli_abort ("Ambiguous city directories at {city_dir}.")
49+
}
50+
}
51+
4052
return (cache_dir)
4153
}
4254

@@ -85,7 +97,7 @@ m4ra_cache_network <- function (graph, city) {
8597

8698
flist_out <- NULL
8799

88-
cache_dir <- fs::path (m4ra_cache_dir (), city)
100+
cache_dir <- m4ra_cache_dir (city)
89101
city <- gsub ("\\s+", "-", tolower (city))
90102

91103
# Full graph:
@@ -119,7 +131,7 @@ cache_one_graph <- function (graph, city) {
119131
hash <- substring (a$hash, 1, 6)
120132
mode <- a$wt_profile
121133

122-
cache_dir <- fs::path (m4ra_cache_dir (), city)
134+
cache_dir <- m4ra_cache_dir (city)
123135

124136
gname <- paste0 (
125137
"m4ra-", city, "-", mode, "-",
@@ -156,7 +168,7 @@ m4ra_load_cached_network <- function (city = NULL, mode = "foot",
156168
city <- dirs [length (dirs) - 1L]
157169
f <- filename
158170

159-
flist <- fs::dir_ls (fs::path (m4ra_cache_dir (), city), regexp = mode)
171+
flist <- fs::dir_ls (m4ra_cache_dir (city), regexp = mode)
160172

161173
} else {
162174

@@ -166,11 +178,7 @@ m4ra_load_cached_network <- function (city = NULL, mode = "foot",
166178

167179
mode <- match.arg (tolower (mode), c ("foot", "bicycle", "motorcar"))
168180

169-
flist <- fs::dir_ls (m4ra_cache_dir (), type = "directory", recurse = TRUE)
170-
city_dir <- flist [which (basename (flist) == city)]
171-
if (length (city_dir) > 1L) {
172-
cli::cli_abort ("Ambiguous city directories at {city_dir}.")
173-
}
181+
city_dir <- m4ra_cache_dir (city = city)
174182
flist <- fs::dir_ls (city_dir, regexp = mode)
175183

176184
f <- grep (ptn, flist, value = TRUE)

R/graph-contraction.R

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ m4ra_contract_graph <- function (graph, city) {
3535

3636
wt_profile <- attr (graph, "wt_profile")
3737

38-
cache_dir <- fs::path (m4ra_cache_dir (), city)
38+
cache_dir <- m4ra_cache_dir (city)
3939

4040
v <- m4ra_vertices (graph, city)
4141

R/parking.R

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ m4ra_parking <- function (bb,
4949

5050
v <- m4ra_vertices (graph_c, city_name)
5151

52-
cache_dir <- fs::path (m4ra_cache_dir (), city_name)
52+
cache_dir <- m4ra_cache_dir (city_name)
5353

5454
v_hash <- substring (digest::digest (v$id), 1, 6)
5555

R/prepare-data.R

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ m4ra_prepare_data <- function (net_sc = NULL,
8686

8787
city_name <- gsub ("\\s+", "-", tolower (city_name))
8888

89-
cache_dir <- fs::path (m4ra_cache_dir (), city_name)
89+
cache_dir <- m4ra_cache_dir (city_name)
9090

9191
if (!is.null (net_sc)) {
9292
# (Re-)generate weighted networks
@@ -467,7 +467,7 @@ times_gtfs_to_net <- function (files,
467467

468468
f_gtfs_to_net <- grep (
469469
paste0 (city, "\\-gtfs\\-to\\-net\\-"),
470-
fs::dir_ls (fs::path (m4ra_cache_dir (), city)),
470+
fs::dir_ls (m4ra_cache_dir (city)),
471471
value = TRUE
472472
)
473473
f_gtfs_to_net <- grep (
@@ -533,7 +533,7 @@ times_gtfs_to_net <- function (files,
533533
ifelse (fast, "fast", "slow"),
534534
".Rds"
535535
)
536-
fname <- fs::path (m4ra_cache_dir (), city, fname)
536+
fname <- fs::path (m4ra_cache_dir (city), fname)
537537

538538
if (!fs::file_exists (fname)) {
539539

R/times-multi-modal.R

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -431,7 +431,7 @@ m4ra_times_mm_car <- function (net_sc = NULL,
431431
#' @noRd
432432
add_parking_times <- function (car_times, verts_car, city) {
433433

434-
cache_dir <- fs::path (m4ra_cache_dir (), city)
434+
cache_dir <- m4ra_cache_dir (city)
435435
f_parking <- fs::dir_ls (cache_dir, regexp = "parking", fixed = TRUE)
436436

437437
if (length (f_parking) > 0) {

R/vertices.R

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
#' v <- m4ra_vertices (graph, "hampi")
2222
m4ra_vertices <- function (graph, city) {
2323

24-
cache_dir <- fs::path (m4ra_cache_dir (), city)
24+
cache_dir <- m4ra_cache_dir (city)
2525
if (!fs::dir_exists (cache_dir)) {
2626
fs::dir_create (cache_dir, recurse = TRUE)
2727
}

R/weight-networks.R

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ cache_networks <- function (net, city, wt_profiles, quiet = TRUE) {
4040

4141
hash <- m4ra_network_hash (net)
4242

43-
cache_dir <- fs::path (m4ra_cache_dir (), city)
43+
cache_dir <- m4ra_cache_dir (city)
4444
if (!dir.exists (cache_dir)) {
4545
dir.create (cache_dir, recursive = TRUE)
4646
}
@@ -107,7 +107,7 @@ cache_networks <- function (net, city, wt_profiles, quiet = TRUE) {
107107

108108
cache_vertex_indices <- function (city) {
109109

110-
cache_dir <- fs::path (m4ra_cache_dir (), city)
110+
cache_dir <- m4ra_cache_dir (city)
111111

112112
# Then cache the indices needed to match vertices between the different
113113
# networks:
@@ -160,7 +160,7 @@ cache_vertex_indices <- function (city) {
160160

161161
load_vert_index <- function (city, mode1, mode2) {
162162

163-
cache_dir <- fs::path (m4ra_cache_dir (), city)
163+
cache_dir <- m4ra_cache_dir (city)
164164
flist <- fs::dir_ls (cache_dir, regexp = "\\-vert\\-index\\-")
165165
f <- grep (paste0 ("\\-", mode1, "\\-", mode2, "\\-"), flist, value = TRUE)
166166
readRDS (f)

codemeta.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"codeRepository": "https://github.com/UrbanAnalyst/m4ra",
88
"issueTracker": "https://github.com/UrbanAnalyst/m4ra/issues",
99
"license": "https://spdx.org/licenses/GPL-3.0",
10-
"version": "0.1.1.045",
10+
"version": "0.1.1.046",
1111
"programmingLanguage": {
1212
"@type": "ComputerLanguage",
1313
"name": "R",

0 commit comments

Comments
 (0)