Skip to content

fix: update py2 warning message since python 2 is deprecated #1224

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 7 commits into from
Jan 20, 2020
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/sagemaker/chainer/defaults.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,5 @@

LATEST_VERSION = "5.0.0"
"""The latest version of Chainer included in the SageMaker pre-built Docker images."""

LATEST_PY2_VERSION = "5.0.0"
14 changes: 9 additions & 5 deletions src/sagemaker/chainer/estimator.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
empty_framework_version_warning,
python_deprecation_warning,
)
from sagemaker.chainer.defaults import CHAINER_VERSION, LATEST_VERSION
from sagemaker.chainer import defaults
from sagemaker.chainer.model import ChainerModel
from sagemaker.vpc_utils import VPC_CONFIG_DEFAULT

Expand All @@ -40,7 +40,7 @@ class Chainer(Framework):
_process_slots_per_host = "sagemaker_process_slots_per_host"
_additional_mpi_options = "sagemaker_additional_mpi_options"

LATEST_VERSION = LATEST_VERSION
LATEST_VERSION = defaults.LATEST_VERSION

def __init__(
self,
Expand Down Expand Up @@ -126,15 +126,19 @@ def __init__(
:class:`~sagemaker.estimator.EstimatorBase`.
"""
if framework_version is None:
logger.warning(empty_framework_version_warning(CHAINER_VERSION, self.LATEST_VERSION))
self.framework_version = framework_version or CHAINER_VERSION
logger.warning(
empty_framework_version_warning(defaults.CHAINER_VERSION, self.LATEST_VERSION)
)
self.framework_version = framework_version or defaults.CHAINER_VERSION

super(Chainer, self).__init__(
entry_point, source_dir, hyperparameters, image_name=image_name, **kwargs
)

if py_version == "py2":
logger.warning(python_deprecation_warning(self.__framework_name__))
logger.warning(
python_deprecation_warning(self.__framework_name__, defaults.LATEST_PY2_VERSION)
)

self.py_version = py_version
self.use_mpi = use_mpi
Expand Down
13 changes: 9 additions & 4 deletions src/sagemaker/chainer/model.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
empty_framework_version_warning,
)
from sagemaker.model import FrameworkModel, MODEL_SERVER_WORKERS_PARAM_NAME
from sagemaker.chainer.defaults import CHAINER_VERSION, LATEST_VERSION
from sagemaker.chainer import defaults
from sagemaker.predictor import RealTimePredictor, npy_serializer, numpy_deserializer

logger = logging.getLogger("sagemaker")
Expand Down Expand Up @@ -111,12 +111,17 @@ def __init__(
model_data, image, role, entry_point, predictor_cls=predictor_cls, **kwargs
)
if py_version == "py2":
logger.warning(python_deprecation_warning(self.__framework_name__))
logger.warning(
python_deprecation_warning(self.__framework_name__, defaults.LATEST_PY2_VERSION)
)

if framework_version is None:
logger.warning(empty_framework_version_warning(CHAINER_VERSION, LATEST_VERSION))
logger.warning(
empty_framework_version_warning(defaults.CHAINER_VERSION, defaults.LATEST_VERSION)
)

self.py_version = py_version
self.framework_version = framework_version or CHAINER_VERSION
self.framework_version = framework_version or defaults.CHAINER_VERSION
self.model_server_workers = model_server_workers

def prepare_container_def(self, instance_type, accelerator_type=None):
Expand Down
11 changes: 7 additions & 4 deletions src/sagemaker/fw_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,8 @@
"please add framework_version={latest} to your constructor."
)
PYTHON_2_DEPRECATION_WARNING = (
"The Python 2 {framework} images will be soon deprecated and may not be "
"supported for newer upcoming versions of the {framework} images.\n"
"{latest_supported_version} is the latest version of {framework} that supports "
"Python 2. Newer versions of {framework} will only be available for Python 3."
"Please set the argument \"py_version='py3'\" to use the Python 3 {framework} image."
)

Expand Down Expand Up @@ -495,9 +495,12 @@ def get_unsupported_framework_version_error(
)


def python_deprecation_warning(framework):
def python_deprecation_warning(framework, latest_supported_version):
"""
Args:
framework:
latest_supported_version:
"""
return PYTHON_2_DEPRECATION_WARNING.format(framework=framework)
return PYTHON_2_DEPRECATION_WARNING.format(
framework=framework, latest_supported_version=latest_supported_version
)
2 changes: 2 additions & 0 deletions src/sagemaker/mxnet/defaults.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,5 @@

LATEST_VERSION = "1.6.0"
"""The latest version of MXNet included in the SageMaker pre-built Docker images."""

LATEST_PY2_VERSION = "1.6.0"
14 changes: 9 additions & 5 deletions src/sagemaker/mxnet/estimator.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
python_deprecation_warning,
is_version_equal_or_higher,
)
from sagemaker.mxnet.defaults import MXNET_VERSION, LATEST_VERSION
from sagemaker.mxnet import defaults
from sagemaker.mxnet.model import MXNetModel
from sagemaker.vpc_utils import VPC_CONFIG_DEFAULT

Expand All @@ -36,7 +36,7 @@ class MXNet(Framework):
__framework_name__ = "mxnet"
_LOWEST_SCRIPT_MODE_VERSION = ["1", "3"]

LATEST_VERSION = LATEST_VERSION
LATEST_VERSION = defaults.LATEST_VERSION

def __init__(
self,
Expand Down Expand Up @@ -107,8 +107,10 @@ def __init__(
:class:`~sagemaker.estimator.EstimatorBase`.
"""
if framework_version is None:
logger.warning(empty_framework_version_warning(MXNET_VERSION, self.LATEST_VERSION))
self.framework_version = framework_version or MXNET_VERSION
logger.warning(
empty_framework_version_warning(defaults.MXNET_VERSION, self.LATEST_VERSION)
)
self.framework_version = framework_version or defaults.MXNET_VERSION

if "enable_sagemaker_metrics" not in kwargs:
# enable sagemaker metrics for MXNet v1.6 or greater:
Expand All @@ -120,7 +122,9 @@ def __init__(
)

if py_version == "py2":
logger.warning(python_deprecation_warning(self.__framework_name__))
logger.warning(
python_deprecation_warning(self.__framework_name__, defaults.LATEST_PY2_VERSION)
)

self.py_version = py_version
self._configure_distribution(distributions)
Expand Down
13 changes: 9 additions & 4 deletions src/sagemaker/mxnet/model.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
empty_framework_version_warning,
)
from sagemaker.model import FrameworkModel, MODEL_SERVER_WORKERS_PARAM_NAME
from sagemaker.mxnet.defaults import MXNET_VERSION, LATEST_VERSION
from sagemaker.mxnet import defaults
from sagemaker.predictor import RealTimePredictor, json_serializer, json_deserializer

logger = logging.getLogger("sagemaker")
Expand Down Expand Up @@ -113,12 +113,17 @@ def __init__(
)

if py_version == "py2":
logger.warning(python_deprecation_warning(self.__framework_name__))
logger.warning(
python_deprecation_warning(self.__framework_name__, defaults.LATEST_PY2_VERSION)
)

if framework_version is None:
logger.warning(empty_framework_version_warning(MXNET_VERSION, LATEST_VERSION))
logger.warning(
empty_framework_version_warning(defaults.MXNET_VERSION, defaults.LATEST_VERSION)
)

self.py_version = py_version
self.framework_version = framework_version or MXNET_VERSION
self.framework_version = framework_version or defaults.MXNET_VERSION
self.model_server_workers = model_server_workers

def prepare_container_def(self, instance_type, accelerator_type=None):
Expand Down
2 changes: 2 additions & 0 deletions src/sagemaker/pytorch/defaults.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,5 @@
"""The latest version of PyTorch included in the SageMaker pre-built Docker images."""

PYTHON_VERSION = "py3"

LATEST_PY2_VERSION = "1.3.1"
16 changes: 10 additions & 6 deletions src/sagemaker/pytorch/estimator.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
python_deprecation_warning,
is_version_equal_or_higher,
)
from sagemaker.pytorch.defaults import PYTORCH_VERSION, PYTHON_VERSION, LATEST_VERSION
from sagemaker.pytorch import defaults
from sagemaker.pytorch.model import PyTorchModel
from sagemaker.vpc_utils import VPC_CONFIG_DEFAULT

Expand All @@ -35,14 +35,14 @@ class PyTorch(Framework):

__framework_name__ = "pytorch"

LATEST_VERSION = LATEST_VERSION
LATEST_VERSION = defaults.LATEST_VERSION

def __init__(
self,
entry_point,
source_dir=None,
hyperparameters=None,
py_version=PYTHON_VERSION,
py_version=defaults.PYTHON_VERSION,
framework_version=None,
image_name=None,
**kwargs
Expand Down Expand Up @@ -103,8 +103,10 @@ def __init__(
:class:`~sagemaker.estimator.EstimatorBase`.
"""
if framework_version is None:
logger.warning(empty_framework_version_warning(PYTORCH_VERSION, self.LATEST_VERSION))
self.framework_version = framework_version or PYTORCH_VERSION
logger.warning(
empty_framework_version_warning(defaults.PYTORCH_VERSION, self.LATEST_VERSION)
)
self.framework_version = framework_version or defaults.PYTORCH_VERSION

if "enable_sagemaker_metrics" not in kwargs:
# enable sagemaker metrics for PT v1.3 or greater:
Expand All @@ -116,7 +118,9 @@ def __init__(
)

if py_version == "py2":
logger.warning(python_deprecation_warning(self.__framework_name__))
logger.warning(
python_deprecation_warning(self.__framework_name__, defaults.LATEST_PY2_VERSION)
)

self.py_version = py_version

Expand Down
15 changes: 10 additions & 5 deletions src/sagemaker/pytorch/model.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
empty_framework_version_warning,
)
from sagemaker.model import FrameworkModel, MODEL_SERVER_WORKERS_PARAM_NAME
from sagemaker.pytorch.defaults import PYTORCH_VERSION, PYTHON_VERSION, LATEST_VERSION
from sagemaker.pytorch import defaults
from sagemaker.predictor import RealTimePredictor, npy_serializer, numpy_deserializer

logger = logging.getLogger("sagemaker")
Expand Down Expand Up @@ -67,7 +67,7 @@ def __init__(
role,
entry_point,
image=None,
py_version=PYTHON_VERSION,
py_version=defaults.PYTHON_VERSION,
framework_version=None,
predictor_cls=PyTorchPredictor,
model_server_workers=None,
Expand Down Expand Up @@ -114,12 +114,17 @@ def __init__(
)

if py_version == "py2":
logger.warning(python_deprecation_warning(self.__framework_name__))
logger.warning(
python_deprecation_warning(self.__framework_name__, defaults.LATEST_PY2_VERSION)
)

if framework_version is None:
logger.warning(empty_framework_version_warning(PYTORCH_VERSION, LATEST_VERSION))
logger.warning(
empty_framework_version_warning(defaults.PYTORCH_VERSION, defaults.LATEST_VERSION)
)

self.py_version = py_version
self.framework_version = framework_version or PYTORCH_VERSION
self.framework_version = framework_version or defaults.PYTORCH_VERSION
self.model_server_workers = model_server_workers

def prepare_container_def(self, instance_type, accelerator_type=None):
Expand Down
2 changes: 2 additions & 0 deletions src/sagemaker/sklearn/defaults.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,5 @@
SKLEARN_NAME = "scikit-learn"

SKLEARN_VERSION = "0.20.0"

LATEST_PY2_VERSION = "0.20.0"
16 changes: 10 additions & 6 deletions src/sagemaker/sklearn/estimator.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
empty_framework_version_warning,
python_deprecation_warning,
)
from sagemaker.sklearn.defaults import SKLEARN_VERSION, SKLEARN_NAME
from sagemaker.sklearn import defaults
from sagemaker.sklearn.model import SKLearnModel
from sagemaker.vpc_utils import VPC_CONFIG_DEFAULT

Expand All @@ -32,12 +32,12 @@
class SKLearn(Framework):
"""Handle end-to-end training and deployment of custom Scikit-learn code."""

__framework_name__ = SKLEARN_NAME
__framework_name__ = defaults.SKLEARN_NAME

def __init__(
self,
entry_point,
framework_version=SKLEARN_VERSION,
framework_version=defaults.SKLEARN_VERSION,
source_dir=None,
hyperparameters=None,
py_version="py3",
Expand Down Expand Up @@ -119,13 +119,17 @@ def __init__(
)

if py_version == "py2":
logger.warning(python_deprecation_warning(self.__framework_name__))
logger.warning(
python_deprecation_warning(self.__framework_name__, defaults.LATEST_PY2_VERSION)
)

self.py_version = py_version

if framework_version is None:
logger.warning(empty_framework_version_warning(SKLEARN_VERSION, SKLEARN_VERSION))
self.framework_version = framework_version or SKLEARN_VERSION
logger.warning(
empty_framework_version_warning(defaults.SKLEARN_VERSION, defaults.SKLEARN_VERSION)
)
self.framework_version = framework_version or defaults.SKLEARN_VERSION

if image_name is None:
image_tag = "{}-{}-{}".format(framework_version, "cpu", py_version)
Expand Down
10 changes: 6 additions & 4 deletions src/sagemaker/sklearn/model.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
from sagemaker.fw_registry import default_framework_uri
from sagemaker.model import FrameworkModel, MODEL_SERVER_WORKERS_PARAM_NAME
from sagemaker.predictor import RealTimePredictor, npy_serializer, numpy_deserializer
from sagemaker.sklearn.defaults import SKLEARN_VERSION, SKLEARN_NAME
from sagemaker.sklearn import defaults

logger = logging.getLogger("sagemaker")

Expand Down Expand Up @@ -53,7 +53,7 @@ class SKLearnModel(FrameworkModel):
``Endpoint``.
"""

__framework_name__ = SKLEARN_NAME
__framework_name__ = defaults.SKLEARN_NAME

def __init__(
self,
Expand All @@ -62,7 +62,7 @@ def __init__(
entry_point,
image=None,
py_version="py3",
framework_version=SKLEARN_VERSION,
framework_version=defaults.SKLEARN_VERSION,
predictor_cls=SKLearnPredictor,
model_server_workers=None,
**kwargs
Expand Down Expand Up @@ -108,7 +108,9 @@ def __init__(
)

if py_version == "py2":
logger.warning(python_deprecation_warning(self.__framework_name__))
logger.warning(
python_deprecation_warning(self.__framework_name__, defaults.LATEST_PY2_VERSION)
)

self.py_version = py_version
self.framework_version = framework_version
Expand Down
2 changes: 2 additions & 0 deletions src/sagemaker/tensorflow/defaults.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,5 @@

LATEST_VERSION = "2.0.0"
"""The latest version of TensorFlow included in the SageMaker pre-built Docker images."""

LATEST_PY2_VERSION = "2.0.0"
Loading