Skip to content

Commit 3fad7ae

Browse files
Updated argument to accept additional poetry arguments
1 parent c6dd1f9 commit 3fad7ae

File tree

1 file changed

+17
-32
lines changed

1 file changed

+17
-32
lines changed

package.py

Lines changed: 17 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -693,7 +693,7 @@ def pip_requirements_step(path, prefix=None, required=False, tmp_dir=None):
693693
step("pip", runtime, requirements, prefix, tmp_dir)
694694
hash(requirements)
695695

696-
def poetry_install_step(path, poetry_groups=None, prefix=None, required=False):
696+
def poetry_install_step(path, poetry_args=[], prefix=None, required=False):
697697
pyproject_file = path
698698
if os.path.isdir(path):
699699
pyproject_file = os.path.join(path, "pyproject.toml")
@@ -703,7 +703,7 @@ def poetry_install_step(path, poetry_groups=None, prefix=None, required=False):
703703
"poetry configuration not found: {}".format(pyproject_file)
704704
)
705705
else:
706-
step("poetry", runtime, path, poetry_groups, prefix)
706+
step("poetry", runtime, path, poetry_args, prefix)
707707
hash(pyproject_file)
708708
pyproject_path = os.path.dirname(pyproject_file)
709709
poetry_lock_file = os.path.join(pyproject_path, "poetry.lock")
@@ -807,7 +807,7 @@ def commands_step(path, commands):
807807
prefix = claim.get("prefix_in_zip")
808808
pip_requirements = claim.get("pip_requirements")
809809
poetry_install = claim.get("poetry_install")
810-
poetry_groups = claim.get("poetry_groups")
810+
additional_poetry_arg = claim.get("additional_poetry_args", [])
811811
npm_requirements = claim.get("npm_package_json")
812812
runtime = claim.get("runtime", query.runtime)
813813

@@ -832,7 +832,7 @@ def commands_step(path, commands):
832832
poetry_install_step(
833833
path,
834834
prefix=prefix,
835-
poetry_groups=poetry_groups,
835+
poetry_args=additional_poetry_arg,
836836
required=True,
837837
)
838838

@@ -907,11 +907,11 @@ def execute(self, build_plan, zip_stream, query):
907907
(
908908
runtime,
909909
path,
910-
poetry_groups,
910+
poetry_args,
911911
prefix,
912912
) = action[1:]
913-
log.info("Poetry Groups: %s", poetry_groups)
914-
with install_poetry_dependencies(query, path, poetry_groups) as rd:
913+
log.info("Poetry arguments: %s", poetry_args)
914+
with install_poetry_dependencies(query, path, poetry_args) as rd:
915915
if rd:
916916
if pf:
917917
self._zip_write_with_filter(zs, pf, rd, prefix, timestamp=0)
@@ -1106,7 +1106,7 @@ def install_pip_requirements(query, requirements_file, tmp_dir):
11061106

11071107

11081108
@contextmanager
1109-
def install_poetry_dependencies(query, path, poetry_groups):
1109+
def install_poetry_dependencies(query, path, poetry_args):
11101110
# TODO:
11111111
# 1. Emit files instead of temp_dir
11121112

@@ -1195,31 +1195,16 @@ def copy_file_to_target(file, temp_dir):
11951195
# NOTE: poetry must be available in the build environment, which is the case with lambci/lambda:build-python* docker images but not public.ecr.aws/sam/build-python* docker images
11961196
# FIXME: poetry install does not currently allow to specify the target directory so we export the
11971197
# requirements then install them with "pip --no-deps" to avoid using pip dependency resolver
1198-
if poetry_groups is not None:
1199-
group_args = []
1200-
for group in poetry_groups:
1201-
group_args.append("--with")
1202-
group_args.append(group)
12031198

1204-
poetry_export = [
1205-
poetry_exec,
1206-
"export",
1207-
"--format",
1208-
"requirements.txt",
1209-
"--output",
1210-
"requirements.txt",
1211-
"--with-credentials",
1212-
] + group_args
1213-
else:
1214-
poetry_export = [
1215-
poetry_exec,
1216-
"export",
1217-
"--format",
1218-
"requirements.txt",
1219-
"--output",
1220-
"requirements.txt",
1221-
"--with-credentials",
1222-
]
1199+
poetry_export = [
1200+
poetry_exec,
1201+
"export",
1202+
"--format",
1203+
"requirements.txt",
1204+
"--output",
1205+
"requirements.txt",
1206+
"--with-credentials",
1207+
] + poetry_args
12231208

12241209
poetry_commands = [
12251210
[

0 commit comments

Comments
 (0)