From 2be9926643466b9f04e653ae6db66ea9e2b684fe Mon Sep 17 00:00:00 2001 From: Nadia Yakimakha <32335935+nadiaya@users.noreply.github.com> Date: Tue, 19 Nov 2019 14:15:22 -0800 Subject: [PATCH 1/3] Remove docker-compose as a required dependency. Throw an error if it is not installed. --- setup.py | 2 +- src/sagemaker/local/image.py | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 4ac8ee8212..fa587fcecd 100644 --- a/setup.py +++ b/setup.py @@ -40,7 +40,6 @@ def read_version(): "scipy>=0.19.0", "urllib3>=1.21, <1.25", "protobuf3-to-dict>=0.1.5", - "docker-compose>=1.23.0", "requests>=2.20.0, <2.21", "fabric>=2.0", ] @@ -87,6 +86,7 @@ def read_version(): "black==19.3b0 ; python_version >= '3.6'", "stopit==1.1.2", "apache-airflow==1.10.5", + "docker-compose>=1.23.0" ] }, entry_points={"console_scripts": ["sagemaker=sagemaker.cli.main:main"]}, diff --git a/src/sagemaker/local/image.py b/src/sagemaker/local/image.py index 5a42a10f4c..a61a4c522a 100644 --- a/src/sagemaker/local/image.py +++ b/src/sagemaker/local/image.py @@ -77,6 +77,14 @@ def __init__(self, instance_type, instance_count, image, sagemaker_session=None) """ from sagemaker.local.local_session import LocalSession + # check if docker-compose is installed + if shutil.which('docker-compose') is None: + raise ImportError( + "'docker-compose' is not installed. Local mode feature will be broken. " + + "For more information on how to install 'docker-compose', please, see " + + "https://docs.docker.com/compose/install/" + ) + self.sagemaker_session = sagemaker_session or LocalSession() self.instance_type = instance_type self.instance_count = instance_count From 6abfcf7938f0fc6515af4d738320c3bc4ca452f0 Mon Sep 17 00:00:00 2001 From: Nadia Yakimakha <32335935+nadiaya@users.noreply.github.com> Date: Tue, 19 Nov 2019 15:56:17 -0800 Subject: [PATCH 2/3] Use distutils instead of shutil to support python2. --- src/sagemaker/local/image.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/sagemaker/local/image.py b/src/sagemaker/local/image.py index a61a4c522a..25fb18549b 100644 --- a/src/sagemaker/local/image.py +++ b/src/sagemaker/local/image.py @@ -29,6 +29,7 @@ import tarfile import tempfile +from distutils.spawn import find_executable from threading import Thread from six.moves.urllib.parse import urlparse @@ -78,10 +79,11 @@ def __init__(self, instance_type, instance_count, image, sagemaker_session=None) from sagemaker.local.local_session import LocalSession # check if docker-compose is installed - if shutil.which('docker-compose') is None: + if find_executable('docker-compose') is None: raise ImportError( - "'docker-compose' is not installed. Local mode feature will be broken. " + - "For more information on how to install 'docker-compose', please, see " + + "'docker-compose' is not installed. " + "Local Mode features will not work without docker-compose. " + "For more information on how to install 'docker-compose', please, see " "https://docs.docker.com/compose/install/" ) From 4bb1d5c627299cf45aeba4841ea3efe79911b971 Mon Sep 17 00:00:00 2001 From: Nadia Yakimakha <32335935+nadiaya@users.noreply.github.com> Date: Tue, 19 Nov 2019 19:01:43 -0800 Subject: [PATCH 3/3] Fix formating using black-checker. --- setup.py | 2 +- src/sagemaker/local/image.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/setup.py b/setup.py index fa587fcecd..367b986857 100644 --- a/setup.py +++ b/setup.py @@ -86,7 +86,7 @@ def read_version(): "black==19.3b0 ; python_version >= '3.6'", "stopit==1.1.2", "apache-airflow==1.10.5", - "docker-compose>=1.23.0" + "docker-compose>=1.23.0", ] }, entry_points={"console_scripts": ["sagemaker=sagemaker.cli.main:main"]}, diff --git a/src/sagemaker/local/image.py b/src/sagemaker/local/image.py index 25fb18549b..dc32d7a40c 100644 --- a/src/sagemaker/local/image.py +++ b/src/sagemaker/local/image.py @@ -79,7 +79,7 @@ def __init__(self, instance_type, instance_count, image, sagemaker_session=None) from sagemaker.local.local_session import LocalSession # check if docker-compose is installed - if find_executable('docker-compose') is None: + if find_executable("docker-compose") is None: raise ImportError( "'docker-compose' is not installed. " "Local Mode features will not work without docker-compose. "