aws-lambda-builders 1.55.0__tar.gz → 1.57.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. {aws_lambda_builders-1.55.0/aws_lambda_builders.egg-info → aws_lambda_builders-1.57.0}/PKG-INFO +3 -3
  2. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/__init__.py +1 -1
  3. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/java_gradle/gradle.py +2 -2
  4. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/java_gradle/resources/lambda-build-init.gradle +2 -1
  5. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/python_pip/packager.py +77 -11
  6. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0/aws_lambda_builders.egg-info}/PKG-INFO +3 -3
  7. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders.egg-info/requires.txt +2 -2
  8. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/requirements/dev.txt +2 -2
  9. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/LICENSE +0 -0
  10. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/MANIFEST.in +0 -0
  11. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/NOTICE +0 -0
  12. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/README.md +0 -0
  13. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/__main__.py +0 -0
  14. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/actions.py +0 -0
  15. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/architecture.py +0 -0
  16. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/binary_path.py +0 -0
  17. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/builder.py +0 -0
  18. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/exceptions.py +0 -0
  19. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/path_resolver.py +0 -0
  20. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/registry.py +0 -0
  21. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/utils.py +0 -0
  22. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/validator.py +0 -0
  23. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflow.py +0 -0
  24. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/__init__.py +0 -0
  25. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/custom_make/DESIGN.md +0 -0
  26. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/custom_make/__init__.py +0 -0
  27. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/custom_make/actions.py +0 -0
  28. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/custom_make/exceptions.py +0 -0
  29. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/custom_make/make.py +0 -0
  30. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/custom_make/utils.py +0 -0
  31. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/custom_make/validator.py +0 -0
  32. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/custom_make/workflow.py +0 -0
  33. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/dotnet_clipackage/DESIGN.md +0 -0
  34. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/dotnet_clipackage/__init__.py +0 -0
  35. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/dotnet_clipackage/actions.py +0 -0
  36. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/dotnet_clipackage/dotnetcli.py +0 -0
  37. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/dotnet_clipackage/dotnetcli_resolver.py +0 -0
  38. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/dotnet_clipackage/utils.py +0 -0
  39. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/dotnet_clipackage/workflow.py +0 -0
  40. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/go_modules/DESIGN.md +0 -0
  41. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/go_modules/__init__.py +0 -0
  42. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/go_modules/actions.py +0 -0
  43. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/go_modules/builder.py +0 -0
  44. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/go_modules/utils.py +0 -0
  45. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/go_modules/validator.py +0 -0
  46. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/go_modules/workflow.py +0 -0
  47. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/java/__init__.py +0 -0
  48. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/java/actions.py +0 -0
  49. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/java/utils.py +0 -0
  50. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/java_gradle/DESIGN.md +0 -0
  51. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/java_gradle/__init__.py +0 -0
  52. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/java_gradle/actions.py +0 -0
  53. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/java_gradle/gradle_resolver.py +0 -0
  54. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/java_gradle/gradle_validator.py +0 -0
  55. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/java_gradle/workflow.py +0 -0
  56. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/java_maven/DESIGN.md +0 -0
  57. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/java_maven/__init__.py +0 -0
  58. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/java_maven/actions.py +0 -0
  59. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/java_maven/maven.py +0 -0
  60. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/java_maven/maven_resolver.py +0 -0
  61. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/java_maven/maven_validator.py +0 -0
  62. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/java_maven/workflow.py +0 -0
  63. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/nodejs_npm/DESIGN.md +0 -0
  64. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/nodejs_npm/__init__.py +0 -0
  65. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/nodejs_npm/actions.py +0 -0
  66. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/nodejs_npm/exceptions.py +0 -0
  67. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/nodejs_npm/npm.py +0 -0
  68. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/nodejs_npm/utils.py +0 -0
  69. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/nodejs_npm/workflow.py +0 -0
  70. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/nodejs_npm_esbuild/DESIGN.md +0 -0
  71. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/nodejs_npm_esbuild/__init__.py +0 -0
  72. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/nodejs_npm_esbuild/actions.py +0 -0
  73. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/nodejs_npm_esbuild/esbuild.py +0 -0
  74. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/nodejs_npm_esbuild/exceptions.py +0 -0
  75. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/nodejs_npm_esbuild/workflow.py +0 -0
  76. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/python_pip/DESIGN.md +0 -0
  77. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/python_pip/__init__.py +0 -0
  78. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/python_pip/actions.py +0 -0
  79. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/python_pip/compat.py +0 -0
  80. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/python_pip/exceptions.py +0 -0
  81. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/python_pip/utils.py +0 -0
  82. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/python_pip/validator.py +0 -0
  83. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/python_pip/workflow.py +0 -0
  84. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/ruby_bundler/DESIGN.md +0 -0
  85. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/ruby_bundler/__init__.py +0 -0
  86. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/ruby_bundler/actions.py +0 -0
  87. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/ruby_bundler/bundler.py +0 -0
  88. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/ruby_bundler/utils.py +0 -0
  89. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/ruby_bundler/workflow.py +0 -0
  90. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/rust_cargo/DESIGN.md +0 -0
  91. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/rust_cargo/__init__.py +0 -0
  92. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/rust_cargo/actions.py +0 -0
  93. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/rust_cargo/cargo_lambda.py +0 -0
  94. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/rust_cargo/exceptions.py +0 -0
  95. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/rust_cargo/feature_flag.py +0 -0
  96. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/rust_cargo/utils.py +0 -0
  97. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders/workflows/rust_cargo/workflow.py +0 -0
  98. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders.egg-info/SOURCES.txt +0 -0
  99. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders.egg-info/dependency_links.txt +0 -0
  100. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders.egg-info/entry_points.txt +0 -0
  101. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/aws_lambda_builders.egg-info/top_level.txt +0 -0
  102. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/pyproject.toml +0 -0
  103. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/requirements/base.txt +0 -0
  104. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/requirements/python_pip.txt +0 -0
  105. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/setup.cfg +0 -0
  106. {aws_lambda_builders-1.55.0 → aws_lambda_builders-1.57.0}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aws_lambda_builders
3
- Version: 1.55.0
3
+ Version: 1.57.0
4
4
  Summary: Python library to compile, build & package AWS Lambda functions for several runtimes & frameworks.
5
5
  Home-page: https://github.com/awslabs/aws-lambda-builders
6
6
  Author: Amazon Web Services
@@ -30,10 +30,10 @@ License-File: NOTICE
30
30
  Requires-Dist: setuptools
31
31
  Requires-Dist: wheel
32
32
  Provides-Extra: dev
33
- Requires-Dist: coverage==7.8.2; python_version >= "3.9" and extra == "dev"
33
+ Requires-Dist: coverage==7.9.2; python_version >= "3.9" and extra == "dev"
34
34
  Requires-Dist: coverage==7.6.1; python_version < "3.9" and extra == "dev"
35
35
  Requires-Dist: flake8==3.8.4; extra == "dev"
36
- Requires-Dist: pytest-cov==6.1.1; python_version >= "3.9" and extra == "dev"
36
+ Requires-Dist: pytest-cov==6.2.1; python_version >= "3.9" and extra == "dev"
37
37
  Requires-Dist: pytest-cov==5.0.0; python_version < "3.9" and extra == "dev"
38
38
  Requires-Dist: pytest>=6.1.1; extra == "dev"
39
39
  Requires-Dist: parameterized==0.9.0; extra == "dev"
@@ -5,5 +5,5 @@ AWS Lambda Builder Library
5
5
  # Changing version will trigger a new release!
6
6
  # Please make the version change as the last step of your development.
7
7
 
8
- __version__ = "1.55.0"
8
+ __version__ = "1.57.0"
9
9
  RPC_PROTOCOL_VERSION = "0.3"
@@ -30,10 +30,10 @@ class SubprocessGradle(object):
30
30
  self.os_utils = os_utils
31
31
 
32
32
  def build(self, source_dir, build_file, cache_dir=None, init_script_path=None, properties=None):
33
+ ## Note: build_file parameter is not supported anymore, but kept for backward compatibility
33
34
  if not self.os_utils.exists(build_file):
34
35
  raise BuildFileNotFoundError(build_file)
35
-
36
- args = ["build", "--build-file", build_file]
36
+ args = ["build"]
37
37
  if cache_dir is not None:
38
38
  args.extend(["--project-cache-dir", cache_dir])
39
39
  if properties is not None:
@@ -54,7 +54,8 @@ def assertExpectedBuildDir(p) {
54
54
  }
55
55
 
56
56
  def createArtifactDir(project) {
57
- def distsDir = project.buildDir.toPath().resolve(project.distsDirName).resolve('lambda-build')
57
+ // In Gradle 9, distsDirName was removed. Use 'distributions' as the default directory name
58
+ def distsDir = project.buildDir.toPath().resolve('distributions').resolve('lambda-build')
58
59
  return makeDirs(distsDir)
59
60
  }
60
61
 
@@ -2,11 +2,12 @@
2
2
  Installs packages using PIP
3
3
  """
4
4
 
5
+ import itertools
5
6
  import logging
6
7
  import re
7
8
  import subprocess
8
9
  from email.parser import FeedParser
9
- from typing import Tuple
10
+ from typing import List, Tuple
10
11
 
11
12
  from aws_lambda_builders.architecture import ARM64, X86_64
12
13
  from aws_lambda_builders.utils import extract_tarfile
@@ -171,19 +172,25 @@ class DependencyBuilder(object):
171
172
  packager.
172
173
  """
173
174
 
174
- _COMPATIBLE_PLATFORM_ARM64 = {
175
+ _COMPATIBLE_PLATFORM_ARM64 = [
175
176
  "any",
176
177
  "linux_aarch64",
177
178
  "manylinux2014_aarch64",
178
- }
179
+ "manylinux_2_17_aarch64",
180
+ "manylinux_2_28_aarch64",
181
+ "manylinux_2_34_aarch64",
182
+ ]
179
183
 
180
- _COMPATIBLE_PLATFORM_X86_64 = {
184
+ _COMPATIBLE_PLATFORM_X86_64 = [
181
185
  "any",
182
186
  "linux_x86_64",
183
187
  "manylinux1_x86_64",
184
188
  "manylinux2010_x86_64",
185
189
  "manylinux2014_x86_64",
186
- }
190
+ "manylinux_2_17_x86_64",
191
+ "manylinux_2_28_x86_64",
192
+ "manylinux_2_34_x86_64",
193
+ ]
187
194
 
188
195
  _COMPATIBLE_PLATFORMS = {
189
196
  ARM64: _COMPATIBLE_PLATFORM_ARM64,
@@ -214,6 +221,14 @@ class DependencyBuilder(object):
214
221
  # Unlikely to hit this case.
215
222
  _DEFAULT_GLIBC = (2, 17)
216
223
 
224
+ # Mapping of glibc version to the most recent manylinux version compatible.
225
+ # The offically supported manylinux versions are 2_17, 2_28 and 2_34 as per https://github.com/pypa/manylinux
226
+ _GLIBC_TO_LATEST_MANYLINUX = {
227
+ (2, 17): "manylinux_2_17",
228
+ (2, 26): "manylinux_2_17",
229
+ (2, 34): "manylinux_2_34",
230
+ }
231
+
217
232
  def __init__(self, osutils, runtime, python_exe, pip_runner=None, architecture=X86_64):
218
233
  """Initialize a DependencyBuilder.
219
234
 
@@ -379,8 +394,60 @@ class DependencyBuilder(object):
379
394
  # Try to get binary wheels for each package that isn't compatible.
380
395
  LOG.debug("Downloading missing wheels: %s", packages)
381
396
  lambda_abi = get_lambda_abi(self.runtime)
382
- platform = "manylinux2014_aarch64" if self.architecture == ARM64 else "manylinux2014_x86_64"
383
- self._pip.download_manylinux_wheels([pkg.identifier for pkg in packages], directory, lambda_abi, platform)
397
+ self._pip.download_manylinux_wheels(
398
+ [pkg.identifier for pkg in packages], directory, lambda_abi, self.compatible_platforms
399
+ )
400
+
401
+ @property
402
+ def compatible_platforms(self) -> List[str]:
403
+ """Get the list of all compatible platforms for the current architecture.
404
+
405
+ Examples:
406
+ ```python
407
+ # Return value with python 3.11 on x86_64
408
+ [
409
+ 'any',
410
+ 'linux_x86_64',
411
+ 'manylinux1_x86_64',
412
+ 'manylinux2010_x86_64',
413
+ 'manylinux2014_x86_64',
414
+ 'manylinux_2_17_x86_64'
415
+ ]
416
+
417
+ # Return value with python 3.12 on x86_64
418
+ [
419
+ 'any',
420
+ 'linux_x86_64',
421
+ 'manylinux1_x86_64',
422
+ 'manylinux2010_x86_64',
423
+ 'manylinux2014_x86_64',
424
+ 'manylinux_2_17_x86_64',
425
+ 'manylinux_2_28_x86_64',
426
+ 'manylinux_2_34_x86_64'
427
+ ]
428
+
429
+ # Return value with python 3.13 on ARM64
430
+ [
431
+ 'any',
432
+ 'linux_aarch64',
433
+ 'manylinux2014_aarch64',
434
+ 'manylinux_2_17_aarch64',
435
+ 'manylinux_2_28_aarch64',
436
+ 'manylinux_2_34_aarch64'
437
+ ]
438
+ ```
439
+ """
440
+ lambda_abi = get_lambda_abi(self.runtime)
441
+ manylinux_prefix = self._GLIBC_TO_LATEST_MANYLINUX.get(self._RUNTIME_GLIBC.get(lambda_abi, self._DEFAULT_GLIBC))
442
+ architecture = "aarch64" if self.architecture == ARM64 else "x86_64"
443
+
444
+ # Get the latest compatible platform tag for the current architecture,
445
+ # all the previous ones are also compatible.
446
+ latest_compatible_platform = f"{manylinux_prefix}_{architecture}"
447
+
448
+ all_platforms = self._COMPATIBLE_PLATFORMS[self.architecture]
449
+ max_index = all_platforms.index(latest_compatible_platform)
450
+ return all_platforms[: max_index + 1]
384
451
 
385
452
  def _build_sdists(self, sdists, directory, compile_c=True):
386
453
  LOG.debug("Build missing wheels from sdists " "(C compiling %s): %s", compile_c, sdists)
@@ -432,7 +499,7 @@ class DependencyBuilder(object):
432
499
 
433
500
  In addition to checking the tag pattern, we also need to verify the glibc version
434
501
  """
435
- if platform in self._COMPATIBLE_PLATFORMS[self.architecture]:
502
+ if platform in self.compatible_platforms:
436
503
  return True
437
504
 
438
505
  arch = "aarch64" if self.architecture == ARM64 else "x86_64"
@@ -832,7 +899,7 @@ class PipRunner(object):
832
899
  # complain at deployment time.
833
900
  self.build_wheel(wheel_package_path, directory)
834
901
 
835
- def download_manylinux_wheels(self, packages, directory, lambda_abi, platform="manylinux2014_x86_64"):
902
+ def download_manylinux_wheels(self, packages, directory, lambda_abi, platforms):
836
903
  """Download wheel files for manylinux for all the given packages."""
837
904
  # If any one of these dependencies fails pip will bail out. Since we
838
905
  # are only interested in all the ones we can download, we need to feed
@@ -846,8 +913,7 @@ class PipRunner(object):
846
913
  arguments = [
847
914
  "--only-binary=:all:",
848
915
  "--no-deps",
849
- "--platform",
850
- platform,
916
+ *list(itertools.chain.from_iterable(["--platform", element] for element in platforms)),
851
917
  "--implementation",
852
918
  "cp",
853
919
  "--abi",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aws_lambda_builders
3
- Version: 1.55.0
3
+ Version: 1.57.0
4
4
  Summary: Python library to compile, build & package AWS Lambda functions for several runtimes & frameworks.
5
5
  Home-page: https://github.com/awslabs/aws-lambda-builders
6
6
  Author: Amazon Web Services
@@ -30,10 +30,10 @@ License-File: NOTICE
30
30
  Requires-Dist: setuptools
31
31
  Requires-Dist: wheel
32
32
  Provides-Extra: dev
33
- Requires-Dist: coverage==7.8.2; python_version >= "3.9" and extra == "dev"
33
+ Requires-Dist: coverage==7.9.2; python_version >= "3.9" and extra == "dev"
34
34
  Requires-Dist: coverage==7.6.1; python_version < "3.9" and extra == "dev"
35
35
  Requires-Dist: flake8==3.8.4; extra == "dev"
36
- Requires-Dist: pytest-cov==6.1.1; python_version >= "3.9" and extra == "dev"
36
+ Requires-Dist: pytest-cov==6.2.1; python_version >= "3.9" and extra == "dev"
37
37
  Requires-Dist: pytest-cov==5.0.0; python_version < "3.9" and extra == "dev"
38
38
  Requires-Dist: pytest>=6.1.1; extra == "dev"
39
39
  Requires-Dist: parameterized==0.9.0; extra == "dev"
@@ -14,6 +14,6 @@ pytest-cov==5.0.0
14
14
  black==24.8.0
15
15
 
16
16
  [dev:python_version >= "3.9"]
17
- coverage==7.8.2
18
- pytest-cov==6.1.1
17
+ coverage==7.9.2
18
+ pytest-cov==6.2.1
19
19
  black==25.1.0
@@ -1,7 +1,7 @@
1
- coverage==7.8.2; python_version>="3.9"
1
+ coverage==7.9.2; python_version>="3.9"
2
2
  coverage==7.6.1; python_version<"3.9"
3
3
  flake8==3.8.4
4
- pytest-cov==6.1.1; python_version>="3.9"
4
+ pytest-cov==6.2.1; python_version>="3.9"
5
5
  pytest-cov==5.0.0; python_version<"3.9"
6
6
 
7
7
  # Test requirements