Skip to content

Commit 1bfdb0e

Browse files
authored
Merge pull request #416 from ropensci/POSIXct
Return a POSIXct timestamp instead of a non-standard locale dependent date
2 parents 68bfc9c + 8e9ea25 commit 1bfdb0e

File tree

4 files changed

+19
-6
lines changed

4 files changed

+19
-6
lines changed

DESCRIPTION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Package: osmdata
22
Title: Import 'OpenStreetMap' Data as Simple Features or Spatial Objects
3-
Version: 0.3.0.9025
3+
Version: 0.3.0.9026
44
Authors@R: c(
55
person("Joan", "Maspons", , "joanmaspons@gmail.com", role = c("aut", "cre"),
66
comment = c(ORCID = "0000-0003-2286-8727")),

NEWS.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
## Breaking changes
55

66
- `getbb()` throws a warning instead of an error for empty results and return the (empty) result with the expected type according to `format_out` parameter (#394).
7+
- Timestamp in metadata has a POSIXct time. Before it was character with a non-standard locale dependent date format (#416).
78

89
## Major changes
910

R/get-osmdata.R

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ timestamp_fmt_iso8601 <- "%Y-%m-%dT%H:%M:%SZ" # ISO 8601. Z indicates tz = "UTC"
44
#'
55
#' @param doc OSM XML document. If missing, `Sys.time()` is used.
66
#'
7-
#' @return An R timestamp object
7+
#' @return A POSIXct timestamp
88
#'
99
#' @note This defines the timestamp format for \pkg{osmdata} objects, which
1010
#' includes months as text to ensure umambiguous timestamps
@@ -28,10 +28,7 @@ get_timestamp <- function (doc) {
2828
tstmp <- Sys.time ()
2929
}
3030

31-
## TODO: avoid a non-standard date string, return a POSIXct value
32-
out <- paste ("[", format (tstmp, format = "%a %e %b %Y %T"), "]")
33-
out <- gsub (" ", " ", out) # remove extra space in %e for single digit days
34-
out <- gsub ("\\.", "\\\\.", out) # Escape dots
31+
tstmp
3532
}
3633

3734

tests/testthat/test-osmdata.R

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,10 @@ test_that ("make_query", {
284284
})
285285
)
286286
expect_equal (doc, doc2)
287+
timestamp <- as.POSIXct (
288+
xml2::xml_attr (xml2::xml_child (doc, "meta"), attr = "osm_base"),
289+
tz = "UTC"
290+
)
287291

288292

289293
res <- with_mock_dir ("mock_osm_sp", {
@@ -293,11 +297,14 @@ test_that ("make_query", {
293297
expect_silent (
294298
expect_warning (res <- osmdata_sp (qry, doc), "Deprecated")
295299
)
300+
expect_identical (res$meta$timestamp, timestamp)
296301
expect_message (print (res), "Object of class 'osmdata' with")
297302
expect_silent (expect_warning (res <- osmdata_sp (qry, "junk.osm"), "Deprecated"))
303+
expect_identical (res$meta$timestamp, timestamp)
298304
expect_message (
299305
expect_warning (res <- osmdata_sp (qry, "junk.osm", quiet = FALSE), "Deprecated")
300306
)
307+
expect_identical (res$meta$timestamp, timestamp)
301308

302309
expect_s3_class (res, "osmdata")
303310
nms <- c (
@@ -309,14 +316,18 @@ test_that ("make_query", {
309316
nms <- c ("timestamp", "OSM_version", "overpass_version")
310317
expect_named (res$meta, expected = nms)
311318

319+
312320
res <- with_mock_dir ("mock_osm_sf", {
313321
osmdata_sf (qry)
314322
})
323+
expect_identical (res$meta$timestamp, timestamp)
315324
expect_message (print (res), "Object of class 'osmdata' with")
316325
expect_silent (res <- osmdata_sf (qry, doc))
326+
expect_identical (res$meta$timestamp, timestamp)
317327
expect_message (print (res), "Object of class 'osmdata' with")
318328
expect_silent (res <- osmdata_sf (qry, "junk.osm"))
319329
expect_message (res <- osmdata_sf (qry, "junk.osm", quiet = FALSE))
330+
expect_identical (res$meta$timestamp, timestamp)
320331
expect_s3_class (res, "osmdata")
321332
nms <- c (
322333
"bbox", "overpass_call", "meta", "osm_points",
@@ -325,14 +336,18 @@ test_that ("make_query", {
325336
)
326337
expect_named (res, expected = nms, ignore.order = FALSE)
327338

339+
328340
res <- with_mock_dir ("mock_osm_df", {
329341
osmdata_data_frame (qry)
330342
})
331343
expect_s3_class (res, "data.frame")
344+
expect_identical (attr (res, "meta")$timestamp, timestamp)
332345
expect_silent (res <- osmdata_data_frame (qry, doc))
333346
expect_s3_class (res, "data.frame")
347+
expect_identical (attr (res, "meta")$timestamp, timestamp)
334348
expect_silent (res <- osmdata_data_frame (qry, "junk.osm"))
335349
expect_message (res <- osmdata_data_frame (qry, "junk.osm", quiet = FALSE))
350+
expect_identical (attr (res, "meta")$timestamp, timestamp)
336351

337352
nms <- c (
338353
"names", "row.names", "class", "bbox", "overpass_call", "meta"

0 commit comments

Comments
 (0)