From 1a51f2e919ad645baa951bed9276b2784c749f57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Miguel=20Neves?= Date: Sun, 14 Jun 2020 21:35:19 +0100 Subject: [PATCH 1/3] fix deploy with --no_venv --- zappa/cli.py | 3 ++- zappa/core.py | 47 ++++++++++++++++++++++++++--------------------- 2 files changed, 28 insertions(+), 22 deletions(-) diff --git a/zappa/cli.py b/zappa/cli.py index 2820eacba..9e448518a 100755 --- a/zappa/cli.py +++ b/zappa/cli.py @@ -2122,7 +2122,8 @@ def load_settings(self, settings_file=None, session=None): runtime=self.runtime, tags=self.tags, endpoint_urls=self.stage_config.get('aws_endpoint_urls',{}), - xray_tracing=self.xray_tracing + xray_tracing=self.xray_tracing, + no_venv=self.vargs.get("no_venv") ) for setting in CUSTOM_SETTINGS: diff --git a/zappa/core.py b/zappa/core.py index faa8779fb..b34f8f155 100644 --- a/zappa/core.py +++ b/zappa/core.py @@ -250,7 +250,8 @@ def __init__(self, runtime='python3.6', # Detected at runtime in CLI tags=(), endpoint_urls={}, - xray_tracing=False + xray_tracing=False, + no_venv=False ): """ Instantiate this new Zappa instance, loading any custom credentials if necessary. @@ -289,6 +290,7 @@ def __init__(self, self.endpoint_urls = endpoint_urls self.xray_tracing = xray_tracing + self.no_venv = no_venv # Some common invocations, such as DB migrations, # can take longer than the default. @@ -522,34 +524,37 @@ def create_lambda_zip( self, if not 'concurrent' in exclude: exclude.append('concurrent') - def splitpath(path): - parts = [] - (path, tail) = os.path.split(path) - while path and tail: - parts.append(tail) + to_exclude = [] + if not self.no_venv: + def splitpath(path): + parts = [] (path, tail) = os.path.split(path) - parts.append(os.path.join(path, tail)) - return list(map(os.path.normpath, parts))[::-1] - split_venv = splitpath(venv) - split_cwd = splitpath(cwd) - - # Ideally this should be avoided automatically, - # but this serves as an okay stop-gap measure. - if split_venv[-1] == split_cwd[-1]: # pragma: no cover - print( - "Warning! Your project and virtualenv have the same name! You may want " - "to re-create your venv with a new name, or explicitly define a " - "'project_name', as this may cause errors." - ) + while path and tail: + parts.append(tail) + (path, tail) = os.path.split(path) + parts.append(os.path.join(path, tail)) + return list(map(os.path.normpath, parts))[::-1] + split_venv = splitpath(venv) + split_cwd = splitpath(cwd) + + # Ideally this should be avoided automatically, + # but this serves as an okay stop-gap measure. + if split_venv[-1] == split_cwd[-1]: # pragma: no cover + print( + "Warning! Your project and virtualenv have the same name! You may want " + "to re-create your venv with a new name, or explicitly define a " + "'project_name', as this may cause errors." + ) + to_exclude = [split_env[-1]] # First, do the project.. - temp_project_path = tempfile.mkdtemp(prefix='zappa-project') + temp_project_path = tempfile.mkdtemp(prefix='zappa-project') if not slim_handler: # Slim handler does not take the project files. if minify: # Related: https://github.com/Miserlou/Zappa/issues/744 - excludes = ZIP_EXCLUDES + exclude + [split_venv[-1]] + excludes = ZIP_EXCLUDES + exclude + to_exclude copytree(cwd, temp_project_path, metadata=False, symlinks=False, ignore=shutil.ignore_patterns(*excludes)) else: copytree(cwd, temp_project_path, metadata=False, symlinks=False) From 0adb7041359f7bea2b97cdf1962ba7d6116b4053 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Miguel=20Neves?= Date: Tue, 14 Jul 2020 19:23:04 +0100 Subject: [PATCH 2/3] fix typo --- zappa/core.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zappa/core.py b/zappa/core.py index b34f8f155..bd74373fe 100644 --- a/zappa/core.py +++ b/zappa/core.py @@ -545,7 +545,7 @@ def splitpath(path): "to re-create your venv with a new name, or explicitly define a " "'project_name', as this may cause errors." ) - to_exclude = [split_env[-1]] + to_exclude = [split_venv[-1]] # First, do the project.. temp_project_path = tempfile.mkdtemp(prefix='zappa-project') From 5923b0efa6f6ead2fdebce67677a21d050dcfc2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Miguel=20Neves?= Date: Tue, 14 Jul 2020 21:15:55 +0100 Subject: [PATCH 3/3] vargs might not be there --- zappa/cli.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zappa/cli.py b/zappa/cli.py index 9e448518a..6a410818a 100755 --- a/zappa/cli.py +++ b/zappa/cli.py @@ -2123,7 +2123,7 @@ def load_settings(self, settings_file=None, session=None): tags=self.tags, endpoint_urls=self.stage_config.get('aws_endpoint_urls',{}), xray_tracing=self.xray_tracing, - no_venv=self.vargs.get("no_venv") + no_venv=self.vargs.get("no_venv") if self.vargs else None ) for setting in CUSTOM_SETTINGS: