From 1ed44c36e86699b8443bf4c0b98a4fa42f157060 Mon Sep 17 00:00:00 2001 From: Richard Gilmore Date: Mon, 11 Nov 2024 22:27:54 +0000 Subject: [PATCH 1/7] more debugging --- package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/package.py b/package.py index 620be347..72faddce 100644 --- a/package.py +++ b/package.py @@ -1193,6 +1193,7 @@ def copy_file_to_target(file, temp_dir): poetry_exec = "poetry" python_exec = runtime subproc_env = None + log.info("Dir contents: %s",os.listdir(temp_dir)) if not docker: if WINDOWS: From 401e546734e54aec531832e8dbbacabbe9384047 Mon Sep 17 00:00:00 2001 From: Richard Gilmore Date: Mon, 11 Nov 2024 23:10:55 +0000 Subject: [PATCH 2/7] allow better temp dir poetry --- package.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/package.py b/package.py index 72faddce..9bdc3b57 100644 --- a/package.py +++ b/package.py @@ -695,7 +695,7 @@ def pip_requirements_step(path, prefix=None, required=False, tmp_dir=None): hash(requirements) def poetry_install_step( - path, poetry_export_extra_args=[], prefix=None, required=False + path, poetry_export_extra_args=[], prefix=None, required=False, tmp_dir=None ): pyproject_file = path if os.path.isdir(path): @@ -706,7 +706,7 @@ def poetry_install_step( "poetry configuration not found: {}".format(pyproject_file) ) else: - step("poetry", runtime, path, poetry_export_extra_args, prefix) + step("poetry", runtime, path, poetry_export_extra_args, prefix, tmp_dir) hash(pyproject_file) pyproject_path = os.path.dirname(pyproject_file) poetry_lock_file = os.path.join(pyproject_path, "poetry.lock") @@ -840,6 +840,7 @@ def commands_step(path, commands): prefix=prefix, poetry_export_extra_args=poetry_export_extra_args, required=True, + tmp_dir=claim.get("poetry_tmp_dir") ) if npm_requirements and runtime.startswith("nodejs"): @@ -915,10 +916,11 @@ def execute(self, build_plan, zip_stream, query): path, poetry_export_extra_args, prefix, + tmp_dir ) = action[1:] log.info("poetry_export_extra_args: %s", poetry_export_extra_args) with install_poetry_dependencies( - query, path, poetry_export_extra_args + query, path, poetry_export_extra_args, tmp_dir ) as rd: if rd: if pf: @@ -1114,7 +1116,7 @@ def install_pip_requirements(query, requirements_file, tmp_dir): @contextmanager -def install_poetry_dependencies(query, path, poetry_export_extra_args): +def install_poetry_dependencies(query, path, poetry_export_extra_args, tmp_dir): # TODO: # 1. Emit files instead of temp_dir @@ -1168,7 +1170,7 @@ def install_poetry_dependencies(query, path, poetry_export_extra_args): working_dir = os.getcwd() log.info("Installing python dependencies with poetry & pip: %s", poetry_lock_file) - with tempdir() as temp_dir: + with tempdir(tmp_dir) as temp_dir: def copy_file_to_target(file, temp_dir): filename = os.path.basename(file) From 1c29563e6f2ef5b33e2224cc499221dfbc0f2b2d Mon Sep 17 00:00:00 2001 From: Richard Gilmore Date: Mon, 11 Nov 2024 23:19:27 +0000 Subject: [PATCH 3/7] remove testing line --- package.py | 1 - 1 file changed, 1 deletion(-) diff --git a/package.py b/package.py index 9bdc3b57..e6c64587 100644 --- a/package.py +++ b/package.py @@ -1195,7 +1195,6 @@ def copy_file_to_target(file, temp_dir): poetry_exec = "poetry" python_exec = runtime subproc_env = None - log.info("Dir contents: %s",os.listdir(temp_dir)) if not docker: if WINDOWS: From f6a8cdc85f845e44d3cfbd3f44d4b89eeee887b8 Mon Sep 17 00:00:00 2001 From: Richard Gilmore Date: Mon, 11 Nov 2024 23:35:30 +0000 Subject: [PATCH 4/7] update an example --- examples/build-package/main.tf | 1 + 1 file changed, 1 insertion(+) diff --git a/examples/build-package/main.tf b/examples/build-package/main.tf index 7119a5d5..7dd68eb5 100644 --- a/examples/build-package/main.tf +++ b/examples/build-package/main.tf @@ -426,6 +426,7 @@ module "lambda_layer_poetry" { { path = "${path.module}/../fixtures/python-app-poetry" poetry_install = true + poetry_tmp_dir = "${path.root}/builds/" } ] hash_extra = "extra-hash-to-prevent-conflicts-with-module.package_dir" From 52c5654f45c89b7a2a3f7f4179d4ec0536932856 Mon Sep 17 00:00:00 2001 From: richard gilmore Date: Mon, 11 Nov 2024 23:44:39 +0000 Subject: [PATCH 5/7] ruff formatting --- package.py | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/package.py b/package.py index e6c64587..2d9da4a5 100644 --- a/package.py +++ b/package.py @@ -840,7 +840,7 @@ def commands_step(path, commands): prefix=prefix, poetry_export_extra_args=poetry_export_extra_args, required=True, - tmp_dir=claim.get("poetry_tmp_dir") + tmp_dir=claim.get("poetry_tmp_dir"), ) if npm_requirements and runtime.startswith("nodejs"): @@ -911,13 +911,7 @@ def execute(self, build_plan, zip_stream, query): # XXX: timestamp=0 - what actually do with it? zs.write_dirs(rd, prefix=prefix, timestamp=0) elif cmd == "poetry": - ( - runtime, - path, - poetry_export_extra_args, - prefix, - tmp_dir - ) = action[1:] + (runtime, path, poetry_export_extra_args, prefix, tmp_dir) = action[1:] log.info("poetry_export_extra_args: %s", poetry_export_extra_args) with install_poetry_dependencies( query, path, poetry_export_extra_args, tmp_dir From 18085e21d9d989594f394ba816ce1453cf717188 Mon Sep 17 00:00:00 2001 From: richard gilmore Date: Fri, 29 Nov 2024 16:48:30 +0000 Subject: [PATCH 6/7] style: reformat with ruff --- package.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/package.py b/package.py index 5c1ba353..1297725f 100644 --- a/package.py +++ b/package.py @@ -948,14 +948,18 @@ def execute(self, build_plan, zip_stream, query): # XXX: timestamp=0 - what actually do with it? zs.write_dirs(rd, prefix=prefix, timestamp=0) elif cmd == "poetry": - (runtime, path, poetry_export_extra_args, prefix, tmp_dir) = action[1:] + (runtime, path, poetry_export_extra_args, prefix, tmp_dir) = action[ + 1: + ] log.info("poetry_export_extra_args: %s", poetry_export_extra_args) with install_poetry_dependencies( query, path, poetry_export_extra_args, tmp_dir ) as rd: if rd: if pf: - self._zip_write_with_filter(zs, pf, rd, prefix, timestamp=0) + self._zip_write_with_filter( + zs, pf, rd, prefix, timestamp=0 + ) else: # XXX: timestamp=0 - what actually do with it? zs.write_dirs(rd, prefix=prefix, timestamp=0) From 3c40b51a6256c891240aafee5ee15319fde00af4 Mon Sep 17 00:00:00 2001 From: Richard Gilmore Date: Tue, 3 Dec 2024 17:52:59 +0000 Subject: [PATCH 7/7] review comments --- examples/build-package/main.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/build-package/main.tf b/examples/build-package/main.tf index 7dd68eb5..2afce855 100644 --- a/examples/build-package/main.tf +++ b/examples/build-package/main.tf @@ -426,7 +426,7 @@ module "lambda_layer_poetry" { { path = "${path.module}/../fixtures/python-app-poetry" poetry_install = true - poetry_tmp_dir = "${path.root}/builds/" + poetry_tmp_dir = "${path.cwd}/../fixtures" } ] hash_extra = "extra-hash-to-prevent-conflicts-with-module.package_dir"