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 89% rename from tools/compatibility/v2/sagemaker_upgrade_v2.py rename to src/sagemaker/cli/compatibility/v2/sagemaker_upgrade_v2.py index 2238775e1a..e00f96cc0b 100644 --- a/tools/compatibility/v2/sagemaker_upgrade_v2.py +++ b/src/sagemaker/cli/compatibility/v2/sagemaker_upgrade_v2.py @@ -16,13 +16,13 @@ import argparse import os -import files +from sagemaker.cli.compatibility.v2 import files _EXT_TO_UPDATER_CLS = {".py": files.PyFileUpdater, ".ipynb": files.JupyterNotebookFileUpdater} 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,10 +51,10 @@ 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.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,7 @@ def _parse_args(): return parser.parse_args() -if __name__ == "__main__": +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/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 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