# NOTE: This code has been modified from AWS Sagemaker Python:
# https://github.com/aws/sagemaker-python-sdk/blob/master/src/sagemaker/deprecations.py
#' @include r_utils.R
V2_URL = "https://sagemaker.readthedocs.io/en/stable/v2.html"
.warn <- function(msg, sdk_version = NULL){
.sdk_version = sdk_version %||% "2"
full_msg = sprintf("%s to align with python sagemaker>=%s.\nSee: %s for details.", msg, .sdk_version, V2_URL)
warning(full_msg, call. = F)
LOGGER$warn(full_msg)
}
#' @title Raise a warning for a no-op in sagemaker>=2
#' @param phrase (str): the prefix phrase of the warning message.
#' @param sdk_version (str): the sdk version of removal of support.
#' @export
removed_warning <- function(phrase, sdk_version=NULL){
.warn(sprintf("%s is a no-op", phrase), sdk_version)
}
#' @title Raise a warning for a rename in sagemaker>=2
#' @param phrase (str): the prefix phrase of the warning message.
#' @export
renamed_warning <- function(phrase){
.warn(sprintf("%s has been renamed", phrase))
}
#' @title Checks if the deprecated argument is in kwargs
#' @description Raises warning, if present.
#' @param old_name (str): name of deprecated argument
#' @param new_name (str): name of the new argument
#' @param value (str): value associated with new name, if supplied
#' @param kwargs (list): keyword arguments dict
#' @return value of the keyword argument, if present
#' @export
renamed_kwargs <- function(old_name,
new_name,
value,
kwargs){
kwargs_name = deparse(substitute(kwargs))
if(old_name %in% names(kwargs)){
value = kwargs[[old_name]] %||% value
kwargs[[new_name]] = value
assign(kwargs_name, kwargs, envir = parent.frame())
renamed_warning(old_name)}
return(value)
}
#' @title Checks if the deprecated argument is populated.
#' @description Raises warning, if not None.
#' @param name (str): name of deprecated argument
#' @param arg (str): the argument to check
#' @export
remove_arg <- function(name,
arg = NULL){
if(!is.null(arg)){
removed_warning(name)
}
}
#' @title Checks if the deprecated argument is in kwargs
#' @description Raises warning, if present.
#' @param name (str): name of deprecated argument
#' @param kwargs (str): keyword arguments dict
#' @export
removed_kwargs <- function(name,
kwargs){
if (name %in% names(kwargs))
removed_warning(name)
}
#' @title Wrap a function with a deprecation warning.
#' @param func (str): Function to wrap in a deprecation warning.
#' @param name (str): The name that has been deprecated.
#' @return The modified function
#' @export
deprecated_function <- function(func, name){
deprecate <- function(...){
renamed_warning(sprintf("The %s", name))
return(do.call(func, list(...)))
}
return(deprecate)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.