aws-lambda-builders 1.58.0__tar.gz → 1.59.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.58.0/aws_lambda_builders.egg-info → aws_lambda_builders-1.59.0}/PKG-INFO +5 -4
  2. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/__init__.py +1 -1
  3. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/validator.py +2 -0
  4. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/python_pip/DESIGN.md +1 -1
  5. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/python_pip/packager.py +53 -4
  6. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0/aws_lambda_builders.egg-info}/PKG-INFO +5 -4
  7. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders.egg-info/requires.txt +3 -3
  8. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/pyproject.toml +1 -1
  9. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/requirements/dev.txt +3 -3
  10. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/setup.py +1 -0
  11. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/LICENSE +0 -0
  12. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/MANIFEST.in +0 -0
  13. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/NOTICE +0 -0
  14. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/README.md +0 -0
  15. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/__main__.py +0 -0
  16. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/actions.py +0 -0
  17. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/architecture.py +0 -0
  18. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/binary_path.py +0 -0
  19. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/builder.py +0 -0
  20. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/exceptions.py +0 -0
  21. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/path_resolver.py +0 -0
  22. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/registry.py +0 -0
  23. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/utils.py +0 -0
  24. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflow.py +0 -0
  25. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/__init__.py +0 -0
  26. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/custom_make/DESIGN.md +0 -0
  27. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/custom_make/__init__.py +0 -0
  28. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/custom_make/actions.py +0 -0
  29. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/custom_make/exceptions.py +0 -0
  30. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/custom_make/make.py +0 -0
  31. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/custom_make/utils.py +0 -0
  32. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/custom_make/validator.py +0 -0
  33. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/custom_make/workflow.py +0 -0
  34. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/dotnet_clipackage/DESIGN.md +0 -0
  35. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/dotnet_clipackage/__init__.py +0 -0
  36. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/dotnet_clipackage/actions.py +0 -0
  37. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/dotnet_clipackage/dotnetcli.py +0 -0
  38. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/dotnet_clipackage/dotnetcli_resolver.py +0 -0
  39. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/dotnet_clipackage/utils.py +0 -0
  40. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/dotnet_clipackage/workflow.py +0 -0
  41. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/go_modules/DESIGN.md +0 -0
  42. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/go_modules/__init__.py +0 -0
  43. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/go_modules/actions.py +0 -0
  44. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/go_modules/builder.py +0 -0
  45. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/go_modules/utils.py +0 -0
  46. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/go_modules/validator.py +0 -0
  47. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/go_modules/workflow.py +0 -0
  48. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/java/__init__.py +0 -0
  49. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/java/actions.py +0 -0
  50. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/java/utils.py +0 -0
  51. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/java_gradle/DESIGN.md +0 -0
  52. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/java_gradle/__init__.py +0 -0
  53. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/java_gradle/actions.py +0 -0
  54. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/java_gradle/gradle.py +0 -0
  55. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/java_gradle/gradle_resolver.py +0 -0
  56. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/java_gradle/gradle_validator.py +0 -0
  57. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/java_gradle/resources/lambda-build-init.gradle +0 -0
  58. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/java_gradle/workflow.py +0 -0
  59. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/java_maven/DESIGN.md +0 -0
  60. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/java_maven/__init__.py +0 -0
  61. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/java_maven/actions.py +0 -0
  62. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/java_maven/maven.py +0 -0
  63. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/java_maven/maven_resolver.py +0 -0
  64. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/java_maven/maven_validator.py +0 -0
  65. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/java_maven/workflow.py +0 -0
  66. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/nodejs_npm/DESIGN.md +0 -0
  67. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/nodejs_npm/__init__.py +0 -0
  68. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/nodejs_npm/actions.py +0 -0
  69. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/nodejs_npm/exceptions.py +0 -0
  70. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/nodejs_npm/npm.py +0 -0
  71. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/nodejs_npm/utils.py +0 -0
  72. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/nodejs_npm/workflow.py +0 -0
  73. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/nodejs_npm_esbuild/DESIGN.md +0 -0
  74. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/nodejs_npm_esbuild/__init__.py +0 -0
  75. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/nodejs_npm_esbuild/actions.py +0 -0
  76. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/nodejs_npm_esbuild/esbuild.py +0 -0
  77. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/nodejs_npm_esbuild/exceptions.py +0 -0
  78. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/nodejs_npm_esbuild/workflow.py +0 -0
  79. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/python_pip/__init__.py +0 -0
  80. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/python_pip/actions.py +0 -0
  81. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/python_pip/compat.py +0 -0
  82. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/python_pip/exceptions.py +0 -0
  83. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/python_pip/utils.py +0 -0
  84. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/python_pip/validator.py +0 -0
  85. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/python_pip/workflow.py +0 -0
  86. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/ruby_bundler/DESIGN.md +0 -0
  87. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/ruby_bundler/__init__.py +0 -0
  88. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/ruby_bundler/actions.py +0 -0
  89. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/ruby_bundler/bundler.py +0 -0
  90. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/ruby_bundler/utils.py +0 -0
  91. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/ruby_bundler/workflow.py +0 -0
  92. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/rust_cargo/DESIGN.md +0 -0
  93. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/rust_cargo/__init__.py +0 -0
  94. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/rust_cargo/actions.py +0 -0
  95. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/rust_cargo/cargo_lambda.py +0 -0
  96. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/rust_cargo/exceptions.py +0 -0
  97. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/rust_cargo/feature_flag.py +0 -0
  98. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/rust_cargo/utils.py +0 -0
  99. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders/workflows/rust_cargo/workflow.py +0 -0
  100. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders.egg-info/SOURCES.txt +0 -0
  101. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders.egg-info/dependency_links.txt +0 -0
  102. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders.egg-info/entry_points.txt +0 -0
  103. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/aws_lambda_builders.egg-info/top_level.txt +0 -0
  104. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/requirements/base.txt +0 -0
  105. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/requirements/python_pip.txt +0 -0
  106. {aws_lambda_builders-1.58.0 → aws_lambda_builders-1.59.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aws_lambda_builders
3
- Version: 1.58.0
3
+ Version: 1.59.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
@@ -21,6 +21,7 @@ Classifier: Programming Language :: Python :: 3.10
21
21
  Classifier: Programming Language :: Python :: 3.11
22
22
  Classifier: Programming Language :: Python :: 3.12
23
23
  Classifier: Programming Language :: Python :: 3.13
24
+ Classifier: Programming Language :: Python :: 3.14
24
25
  Classifier: Topic :: Internet
25
26
  Classifier: Topic :: Software Development :: Build Tools
26
27
  Classifier: Topic :: Utilities
@@ -30,15 +31,15 @@ License-File: NOTICE
30
31
  Requires-Dist: setuptools
31
32
  Requires-Dist: wheel
32
33
  Provides-Extra: dev
33
- Requires-Dist: coverage==7.9.2; python_version >= "3.9" and extra == "dev"
34
+ Requires-Dist: coverage==7.10.7; python_version >= "3.9" and extra == "dev"
34
35
  Requires-Dist: coverage==7.6.1; python_version < "3.9" and extra == "dev"
35
36
  Requires-Dist: flake8==3.8.4; extra == "dev"
36
- Requires-Dist: pytest-cov==6.2.1; python_version >= "3.9" and extra == "dev"
37
+ Requires-Dist: pytest-cov==6.3.0; python_version >= "3.9" and extra == "dev"
37
38
  Requires-Dist: pytest-cov==5.0.0; python_version < "3.9" and extra == "dev"
38
39
  Requires-Dist: pytest>=6.1.1; extra == "dev"
39
40
  Requires-Dist: parameterized==0.9.0; extra == "dev"
40
41
  Requires-Dist: pyelftools~=0.32; extra == "dev"
41
- Requires-Dist: black==25.1.0; python_version >= "3.9" and extra == "dev"
42
+ Requires-Dist: black==25.9.0; python_version >= "3.9" and extra == "dev"
42
43
  Requires-Dist: black==24.8.0; python_version < "3.9" and extra == "dev"
43
44
  Requires-Dist: ruff==0.11.13; extra == "dev"
44
45
  Dynamic: author
@@ -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.58.0"
8
+ __version__ = "1.59.0"
9
9
  RPC_PROTOCOL_VERSION = "0.3"
@@ -20,6 +20,7 @@ SUPPORTED_RUNTIMES = {
20
20
  "python3.11": [ARM64, X86_64],
21
21
  "python3.12": [ARM64, X86_64],
22
22
  "python3.13": [ARM64, X86_64],
23
+ "python3.14": [ARM64, X86_64],
23
24
  "ruby3.2": [ARM64, X86_64],
24
25
  "ruby3.3": [ARM64, X86_64],
25
26
  "ruby3.4": [ARM64, X86_64],
@@ -27,6 +28,7 @@ SUPPORTED_RUNTIMES = {
27
28
  "java11": [ARM64, X86_64],
28
29
  "java17": [ARM64, X86_64],
29
30
  "java21": [ARM64, X86_64],
31
+ "java25": [ARM64, X86_64],
30
32
  "go1.x": [ARM64, X86_64],
31
33
  "dotnet6": [ARM64, X86_64],
32
34
  "dotnet8": [ARM64, X86_64],
@@ -49,7 +49,7 @@ def build_dependencies(artifacts_dir_path,
49
49
 
50
50
  :type runtime: str
51
51
  :param runtime: Python version to build dependencies for. This can
52
- either be python3.8, python3.9, python3.10, python3.11, python3.12 or python3.13. These are
52
+ either be python3.8, python3.9, python3.10, python3.11, python3.12, python3.13 or python3.14. These are
53
53
  currently the only supported values.
54
54
 
55
55
  :type ui: :class:`lambda_builders.actions.python_pip.utils.UI`
@@ -88,6 +88,7 @@ def get_lambda_abi(runtime):
88
88
  "python3.11": "cp311",
89
89
  "python3.12": "cp312",
90
90
  "python3.13": "cp313",
91
+ "python3.14": "cp314",
91
92
  }
92
93
 
93
94
  if runtime not in supported:
@@ -102,8 +103,8 @@ class PythonPipDependencyBuilder(object):
102
103
 
103
104
  :type runtime: str
104
105
  :param runtime: Python version to build dependencies for. This can
105
- either be python3.8, python3.9, python3.10, python3.11, python3.12 or python3.13. These are currently the
106
- only supported values.
106
+ either be python3.8, python3.9, python3.10, python3.11, python3.12, python3.13 or python3.14.
107
+ These are currently the only supported values.
107
108
 
108
109
  :type osutils: :class:`lambda_builders.utils.OSUtils`
109
110
  :param osutils: A class used for all interactions with the
@@ -215,6 +216,7 @@ class DependencyBuilder(object):
215
216
  "cp311": (2, 26),
216
217
  "cp312": (2, 34),
217
218
  "cp313": (2, 34),
219
+ "cp314": (2, 34),
218
220
  }
219
221
  # Fallback version if we're on an unknown python version
220
222
  # not in _RUNTIME_GLIBC.
@@ -664,8 +666,22 @@ class SDistMetadataFetcher(object):
664
666
 
665
667
  def _get_pkg_info_filepath(self, package_dir):
666
668
  setup_py = self._osutils.joinpath(package_dir, "setup.py")
667
- script = self._SETUPTOOLS_SHIM % setup_py
668
669
 
670
+ # First, try to ensure setuptools is available for the subprocess
671
+ # In Python 3.12+, setuptools might not be available by default
672
+ try:
673
+ # Check if setuptools is available in the current environment
674
+ check_cmd = [self.python_exe, "-c", "import setuptools"]
675
+ result = subprocess.run(check_cmd, capture_output=True, timeout=10, check=False)
676
+ if result.returncode != 0:
677
+ LOG.debug(
678
+ "setuptools not available in Python environment. "
679
+ "PKG-INFO fallback will be used if setup.py fails."
680
+ )
681
+ except Exception as e:
682
+ LOG.debug("Could not check setuptools availability: %s", e)
683
+
684
+ script = self._SETUPTOOLS_SHIM % setup_py
669
685
  cmd = [self.python_exe, "-c", script, "--no-user-cfg", "egg_info", "--egg-base", "egg-info"]
670
686
  egg_info_dir = self._osutils.joinpath(package_dir, "egg-info")
671
687
  self._osutils.makedirs(egg_info_dir)
@@ -676,6 +692,13 @@ class SDistMetadataFetcher(object):
676
692
  info_contents = self._osutils.get_directory_contents(egg_info_dir)
677
693
  if p.returncode != 0:
678
694
  LOG.debug("Non zero rc (%s) from the setup.py egg_info command: %s", p.returncode, stderr)
695
+ # Check if the error is due to missing setuptools/distutils in Python 3.12+
696
+ if b"setuptools" in stderr or b"distutils" in stderr:
697
+ LOG.debug(
698
+ "Setup.py failed likely due to missing setuptools/distutils in Python 3.12+. "
699
+ "Trying fallback PKG-INFO."
700
+ )
701
+
679
702
  if info_contents:
680
703
  pkg_info_path = self._osutils.joinpath(egg_info_dir, info_contents[0], "PKG-INFO")
681
704
  else:
@@ -683,8 +706,34 @@ class SDistMetadataFetcher(object):
683
706
  # should be available right in the top level directory of the sdist
684
707
  # in the case where the egg_info command fails.
685
708
  pkg_info_path = self._get_fallback_pkg_info_filepath(package_dir)
709
+ LOG.debug("Using fallback PKG-INFO path: %s", pkg_info_path)
710
+
686
711
  if not self._osutils.file_exists(pkg_info_path):
687
- raise UnsupportedPackageError(self._osutils.basename(package_dir))
712
+ LOG.debug("PKG-INFO file not found at: %s", pkg_info_path)
713
+
714
+ # Look for any .egg-info directories that might already exist
715
+ try:
716
+ package_contents = self._osutils.get_directory_contents(package_dir)
717
+ for item in package_contents:
718
+ if item.endswith(".egg-info") and self._osutils.directory_exists(
719
+ self._osutils.joinpath(package_dir, item)
720
+ ):
721
+ potential_pkg_info = self._osutils.joinpath(package_dir, item, "PKG-INFO")
722
+ if self._osutils.file_exists(potential_pkg_info):
723
+ LOG.debug("Found PKG-INFO in existing .egg-info directory: %s", potential_pkg_info)
724
+ pkg_info_path = potential_pkg_info
725
+ break
726
+ except Exception as e:
727
+ LOG.debug("Error while searching for existing .egg-info directories: %s", e)
728
+
729
+ if not self._osutils.file_exists(pkg_info_path):
730
+ LOG.warning(
731
+ "Unable to find PKG-INFO file for package in %s. "
732
+ "This may be due to missing setuptools/distutils in Python 3.12+ "
733
+ "or an incomplete sdist package.",
734
+ package_dir,
735
+ )
736
+ raise UnsupportedPackageError(self._osutils.basename(package_dir))
688
737
  return pkg_info_path
689
738
 
690
739
  def _get_fallback_pkg_info_filepath(self, package_dir: str) -> str:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aws_lambda_builders
3
- Version: 1.58.0
3
+ Version: 1.59.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
@@ -21,6 +21,7 @@ Classifier: Programming Language :: Python :: 3.10
21
21
  Classifier: Programming Language :: Python :: 3.11
22
22
  Classifier: Programming Language :: Python :: 3.12
23
23
  Classifier: Programming Language :: Python :: 3.13
24
+ Classifier: Programming Language :: Python :: 3.14
24
25
  Classifier: Topic :: Internet
25
26
  Classifier: Topic :: Software Development :: Build Tools
26
27
  Classifier: Topic :: Utilities
@@ -30,15 +31,15 @@ License-File: NOTICE
30
31
  Requires-Dist: setuptools
31
32
  Requires-Dist: wheel
32
33
  Provides-Extra: dev
33
- Requires-Dist: coverage==7.9.2; python_version >= "3.9" and extra == "dev"
34
+ Requires-Dist: coverage==7.10.7; python_version >= "3.9" and extra == "dev"
34
35
  Requires-Dist: coverage==7.6.1; python_version < "3.9" and extra == "dev"
35
36
  Requires-Dist: flake8==3.8.4; extra == "dev"
36
- Requires-Dist: pytest-cov==6.2.1; python_version >= "3.9" and extra == "dev"
37
+ Requires-Dist: pytest-cov==6.3.0; python_version >= "3.9" and extra == "dev"
37
38
  Requires-Dist: pytest-cov==5.0.0; python_version < "3.9" and extra == "dev"
38
39
  Requires-Dist: pytest>=6.1.1; extra == "dev"
39
40
  Requires-Dist: parameterized==0.9.0; extra == "dev"
40
41
  Requires-Dist: pyelftools~=0.32; extra == "dev"
41
- Requires-Dist: black==25.1.0; python_version >= "3.9" and extra == "dev"
42
+ Requires-Dist: black==25.9.0; python_version >= "3.9" and extra == "dev"
42
43
  Requires-Dist: black==24.8.0; python_version < "3.9" and extra == "dev"
43
44
  Requires-Dist: ruff==0.11.13; extra == "dev"
44
45
  Dynamic: author
@@ -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.9.2
18
- pytest-cov==6.2.1
19
- black==25.1.0
17
+ coverage==7.10.7
18
+ pytest-cov==6.3.0
19
+ black==25.9.0
@@ -9,7 +9,7 @@ select = [
9
9
  "PL", # pylint
10
10
  "I", # isort
11
11
  ]
12
- ignore = ["PLR0913"]
12
+ ignore = ["PLR0913", "PLC0415"]
13
13
 
14
14
  [tool.ruff.lint.pylint]
15
15
  max-branches = 13
@@ -1,7 +1,7 @@
1
- coverage==7.9.2; python_version>="3.9"
1
+ coverage==7.10.7; python_version>="3.9"
2
2
  coverage==7.6.1; python_version<"3.9"
3
3
  flake8==3.8.4
4
- pytest-cov==6.2.1; python_version>="3.9"
4
+ pytest-cov==6.3.0; python_version>="3.9"
5
5
  pytest-cov==5.0.0; python_version<"3.9"
6
6
 
7
7
  # Test requirements
@@ -10,6 +10,6 @@ parameterized==0.9.0
10
10
  pyelftools~=0.32 # Used to verify the generated Go binary architecture in integration tests (utils.py)
11
11
 
12
12
  # formatter
13
- black==25.1.0; python_version>="3.9"
13
+ black==25.9.0; python_version>="3.9"
14
14
  black==24.8.0; python_version<"3.9"
15
15
  ruff==0.11.13
@@ -64,6 +64,7 @@ setup(
64
64
  "Programming Language :: Python :: 3.11",
65
65
  "Programming Language :: Python :: 3.12",
66
66
  "Programming Language :: Python :: 3.13",
67
+ "Programming Language :: Python :: 3.14",
67
68
  "Topic :: Internet",
68
69
  "Topic :: Software Development :: Build Tools",
69
70
  "Topic :: Utilities",