-
Notifications
You must be signed in to change notification settings - Fork 505
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' into pending_calls
* main: Remove bad test script in package.json Use faster versions of system.file()/packageVersion()/is_installed() (#768) Patch leaflet.css with missing rule about <img> in pane (#770)
- Loading branch information
Showing
17 changed files
with
153 additions
and
20 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,107 @@ | ||
# Generated by staticimports; do not edit by hand. | ||
# ====================================================================== | ||
# Imported from pkg:staticimports | ||
# ====================================================================== | ||
|
||
# Borrowed from pkgload:::dev_meta, with some modifications. | ||
# Returns TRUE if `pkg` was loaded with `devtools::load_all()`. | ||
devtools_loaded <- function(pkg) { | ||
ns <- .getNamespace(pkg) | ||
if (is.null(ns) || is.null(ns$.__DEVTOOLS__)) { | ||
return(FALSE) | ||
} | ||
TRUE | ||
} | ||
|
||
get_package_version <- function(pkg) { | ||
# `utils::packageVersion()` can be slow, so first try the fast path of | ||
# checking if the package is already loaded. | ||
ns <- .getNamespace(pkg) | ||
if (is.null(ns)) { | ||
utils::packageVersion(pkg) | ||
} else { | ||
as.package_version(ns$.__NAMESPACE__.$spec[["version"]]) | ||
} | ||
} | ||
|
||
is_installed <- function(pkg, version = NULL) { | ||
installed <- isNamespaceLoaded(pkg) || nzchar(system_file_cached(package = pkg)) | ||
if (is.null(version)) { | ||
return(installed) | ||
} | ||
installed && isTRUE(get_package_version(pkg) >= version) | ||
} | ||
|
||
# Borrowed from pkgload::shim_system.file, with some modifications. This behaves | ||
# like `system.file()`, except that (1) for packages loaded with | ||
# `devtools::load_all()`, it will return the path to files in the package's | ||
# inst/ directory, and (2) for other packages, the directory lookup is cached. | ||
# Also, to keep the implementation simple, it doesn't support specification of | ||
# lib.loc or mustWork. | ||
system_file <- function(..., package = "base") { | ||
if (!devtools_loaded(package)) { | ||
return(system_file_cached(..., package = package)) | ||
} | ||
|
||
if (!is.null(names(list(...)))) { | ||
stop("All arguments other than `package` must be unnamed.") | ||
} | ||
|
||
# If package was loaded with devtools (the package loaded with load_all), | ||
# also search for files under inst/, and don't cache the results (it seems | ||
# more likely that the package path will change during the development | ||
# process) | ||
pkg_path <- find.package(package) | ||
|
||
# First look in inst/ | ||
files_inst <- file.path(pkg_path, "inst", ...) | ||
present_inst <- file.exists(files_inst) | ||
|
||
# For any files that weren't present in inst/, look in the base path | ||
files_top <- file.path(pkg_path, ...) | ||
present_top <- file.exists(files_top) | ||
|
||
# Merge them together. Here are the different possible conditions, and the | ||
# desired result. NULL means to drop that element from the result. | ||
# | ||
# files_inst: /inst/A /inst/B /inst/C /inst/D | ||
# present_inst: T T F F | ||
# files_top: /A /B /C /D | ||
# present_top: T F T F | ||
# result: /inst/A /inst/B /C NULL | ||
# | ||
files <- files_top | ||
files[present_inst] <- files_inst[present_inst] | ||
# Drop cases where not present in either location | ||
files <- files[present_inst | present_top] | ||
if (length(files) == 0) { | ||
return("") | ||
} | ||
# Make sure backslashes are replaced with slashes on Windows | ||
normalizePath(files, winslash = "/") | ||
} | ||
|
||
# A wrapper for `system.file()`, which caches the results, because | ||
# `system.file()` can be slow. Note that because of caching, if | ||
# `system_file_cached()` is called on a package that isn't installed, then the | ||
# package is installed, and then `system_file_cached()` is called again, it will | ||
# still return "". | ||
system_file_cached <- local({ | ||
pkg_dir_cache <- character() | ||
|
||
function(..., package = "base") { | ||
if (!is.null(names(list(...)))) { | ||
stop("All arguments other than `package` must be unnamed.") | ||
} | ||
|
||
not_cached <- is.na(match(package, names(pkg_dir_cache))) | ||
if (not_cached) { | ||
pkg_dir <- system.file(package = package) | ||
pkg_dir_cache[[package]] <<- pkg_dir | ||
} else { | ||
pkg_dir <- pkg_dir_cache[[package]] | ||
} | ||
|
||
file.path(pkg_dir, ...) | ||
} | ||
}) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters