From 3ec88bc5dbca77513d4451c5bdebb4326568a977 Mon Sep 17 00:00:00 2001 From: Lauren Yu <6631887+laurenyu@users.noreply.github.com> Date: Wed, 27 May 2020 15:30:05 -0700 Subject: [PATCH 1/2] change: add v2 migration script to console_scripts in setup.py --- setup.py | 7 ++++++- .../sagemaker/cli}/compatibility/__init__.py | 0 .../sagemaker/cli}/compatibility/v2/__init__.py | 0 .../cli}/compatibility/v2/ast_transformer.py | 2 +- .../sagemaker/cli}/compatibility/v2/files.py | 2 +- .../cli}/compatibility/v2/modifiers/__init__.py | 0 .../v2/modifiers/framework_version.py | 2 +- .../cli}/compatibility/v2/modifiers/modifier.py | 0 .../cli}/compatibility/v2/sagemaker_upgrade_v2.py | 6 +++--- tools/__init__.py | 14 -------------- 10 files changed, 12 insertions(+), 21 deletions(-) rename {tools => src/sagemaker/cli}/compatibility/__init__.py (100%) rename {tools => src/sagemaker/cli}/compatibility/v2/__init__.py (100%) rename {tools => src/sagemaker/cli}/compatibility/v2/ast_transformer.py (95%) rename {tools => src/sagemaker/cli}/compatibility/v2/files.py (98%) rename {tools => src/sagemaker/cli}/compatibility/v2/modifiers/__init__.py (100%) rename {tools => src/sagemaker/cli}/compatibility/v2/modifiers/framework_version.py (98%) rename {tools => src/sagemaker/cli}/compatibility/v2/modifiers/modifier.py (100%) rename {tools => src/sagemaker/cli}/compatibility/v2/sagemaker_upgrade_v2.py (94%) delete mode 100644 tools/__init__.py diff --git a/setup.py b/setup.py index 3921b6f2ae..12588afce5 100644 --- a/setup.py +++ b/setup.py @@ -105,6 +105,11 @@ def read_version(): ], install_requires=required_packages, extras_require=extras, - entry_points={"console_scripts": ["sagemaker=sagemaker.cli.main:main"]}, + entry_points={ + "console_scripts": [ + "sagemaker=sagemaker.cli.main:main", + "sagemaker-upgrade-v2=sagemaker.cli.compatibility.v2.sagemaker_upgrade_v2:main", + ] + }, include_package_data=True, # TODO-reinvent-2019 [knakad]: Remove after rule_configs is in PyPI ) diff --git a/tools/compatibility/__init__.py b/src/sagemaker/cli/compatibility/__init__.py similarity index 100% rename from tools/compatibility/__init__.py rename to src/sagemaker/cli/compatibility/__init__.py diff --git a/tools/compatibility/v2/__init__.py b/src/sagemaker/cli/compatibility/v2/__init__.py similarity index 100% rename from tools/compatibility/v2/__init__.py rename to src/sagemaker/cli/compatibility/v2/__init__.py diff --git a/tools/compatibility/v2/ast_transformer.py b/src/sagemaker/cli/compatibility/v2/ast_transformer.py similarity index 95% rename from tools/compatibility/v2/ast_transformer.py rename to src/sagemaker/cli/compatibility/v2/ast_transformer.py index 87d7dddcb7..17eb53f9d8 100644 --- a/tools/compatibility/v2/ast_transformer.py +++ b/src/sagemaker/cli/compatibility/v2/ast_transformer.py @@ -15,7 +15,7 @@ import ast -from modifiers import framework_version +from sagemaker.cli.compatibility.v2.modifiers import framework_version FUNCTION_CALL_MODIFIERS = [framework_version.FrameworkVersionEnforcer()] diff --git a/tools/compatibility/v2/files.py b/src/sagemaker/cli/compatibility/v2/files.py similarity index 98% rename from tools/compatibility/v2/files.py rename to src/sagemaker/cli/compatibility/v2/files.py index b385274093..e00bf35245 100644 --- a/tools/compatibility/v2/files.py +++ b/src/sagemaker/cli/compatibility/v2/files.py @@ -20,7 +20,7 @@ import pasta -from ast_transformer import ASTTransformer +from sagemaker.cli.compatibility.v2.ast_transformer import ASTTransformer LOGGER = logging.getLogger(__name__) diff --git a/tools/compatibility/v2/modifiers/__init__.py b/src/sagemaker/cli/compatibility/v2/modifiers/__init__.py similarity index 100% rename from tools/compatibility/v2/modifiers/__init__.py rename to src/sagemaker/cli/compatibility/v2/modifiers/__init__.py diff --git a/tools/compatibility/v2/modifiers/framework_version.py b/src/sagemaker/cli/compatibility/v2/modifiers/framework_version.py similarity index 98% rename from tools/compatibility/v2/modifiers/framework_version.py rename to src/sagemaker/cli/compatibility/v2/modifiers/framework_version.py index 2c2a440ba7..2e081e885d 100644 --- a/tools/compatibility/v2/modifiers/framework_version.py +++ b/src/sagemaker/cli/compatibility/v2/modifiers/framework_version.py @@ -15,7 +15,7 @@ import ast -from modifiers.modifier import Modifier +from sagemaker.cli.compatibility.v2.modifiers.modifier import Modifier FRAMEWORK_DEFAULTS = { "Chainer": "4.1.0", diff --git a/tools/compatibility/v2/modifiers/modifier.py b/src/sagemaker/cli/compatibility/v2/modifiers/modifier.py similarity index 100% rename from tools/compatibility/v2/modifiers/modifier.py rename to src/sagemaker/cli/compatibility/v2/modifiers/modifier.py diff --git a/tools/compatibility/v2/sagemaker_upgrade_v2.py b/src/sagemaker/cli/compatibility/v2/sagemaker_upgrade_v2.py similarity index 94% rename from tools/compatibility/v2/sagemaker_upgrade_v2.py rename to src/sagemaker/cli/compatibility/v2/sagemaker_upgrade_v2.py index 2238775e1a..1298903e11 100644 --- a/tools/compatibility/v2/sagemaker_upgrade_v2.py +++ b/src/sagemaker/cli/compatibility/v2/sagemaker_upgrade_v2.py @@ -16,7 +16,7 @@ import argparse import os -import files +from sagemaker.cli.compatibility.v2 import files _EXT_TO_UPDATER_CLS = {".py": files.PyFileUpdater, ".ipynb": files.JupyterNotebookFileUpdater} @@ -54,7 +54,7 @@ def _parse_args(): """Parses CLI arguments""" parser = argparse.ArgumentParser( description="A tool to convert files to be compatible with v2 of the SageMaker Python SDK. " - "Simple usage: sagemaker_upgrade_v2.py --in-file foo.py --out-file bar.py" + "Simple usage: sagemaker-upgrade-v2 --in-file foo.py --out-file bar.py" ) parser.add_argument( "--in-file", @@ -71,6 +71,6 @@ def _parse_args(): return parser.parse_args() -if __name__ == "__main__": +def main(): args = _parse_args() _update_file(args.in_file, args.out_file) diff --git a/tools/__init__.py b/tools/__init__.py deleted file mode 100644 index 96abea2567..0000000000 --- a/tools/__init__.py +++ /dev/null @@ -1,14 +0,0 @@ -# Copyright 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"). You -# may not use this file except in compliance with the License. A copy of -# the License is located at -# -# http://aws.amazon.com/apache2.0/ -# -# or in the "license" file accompanying this file. This file is -# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF -# ANY KIND, either express or implied. See the License for the specific -# language governing permissions and limitations under the License. -"""Tools to assist with using the SageMake Python SDK.""" -from __future__ import absolute_import From c39ab4e66455556dd5ffb1eb50425ff2b7ff215c Mon Sep 17 00:00:00 2001 From: Lauren Yu <6631887+laurenyu@users.noreply.github.com> Date: Wed, 27 May 2020 16:26:18 -0700 Subject: [PATCH 2/2] address pylint --- src/sagemaker/cli/compatibility/v2/sagemaker_upgrade_v2.py | 5 +++-- tox.ini | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/sagemaker/cli/compatibility/v2/sagemaker_upgrade_v2.py b/src/sagemaker/cli/compatibility/v2/sagemaker_upgrade_v2.py index 1298903e11..e00f96cc0b 100644 --- a/src/sagemaker/cli/compatibility/v2/sagemaker_upgrade_v2.py +++ b/src/sagemaker/cli/compatibility/v2/sagemaker_upgrade_v2.py @@ -22,7 +22,7 @@ def _update_file(input_file, output_file): - """Update a file to be compatible with v2 of the SageMaker Python SDK, + """Updates a file to be compatible with v2 of the SageMaker Python SDK, and write the updated source to the output file. Args: @@ -51,7 +51,7 @@ def _update_file(input_file, output_file): def _parse_args(): - """Parses CLI arguments""" + """Parses CLI arguments.""" parser = argparse.ArgumentParser( description="A tool to convert files to be compatible with v2 of the SageMaker Python SDK. " "Simple usage: sagemaker-upgrade-v2 --in-file foo.py --out-file bar.py" @@ -72,5 +72,6 @@ def _parse_args(): def main(): + """Parses the CLI arguments and executes the file update.""" args = _parse_args() _update_file(args.in_file, args.out_file) diff --git a/tox.ini b/tox.ini index 785ef17582..78cd0f1d4a 100644 --- a/tox.ini +++ b/tox.ini @@ -82,7 +82,7 @@ skip_install = true deps = pylint==2.3.1 commands = - python -m pylint --rcfile=.pylintrc -j 0 src/sagemaker tools + python -m pylint --rcfile=.pylintrc -j 0 src/sagemaker [testenv:twine] basepython = python3