aws-lambda-builders 1.35.0__tar.gz → 1.36.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 (105) hide show
  1. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/PKG-INFO +1 -1
  2. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/__init__.py +1 -1
  3. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/python_pip/packager.py +91 -6
  4. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders.egg-info/PKG-INFO +1 -1
  5. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders.egg-info/requires.txt +1 -1
  6. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/requirements/dev.txt +1 -1
  7. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/LICENSE +0 -0
  8. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/MANIFEST.in +0 -0
  9. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/NOTICE +0 -0
  10. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/README.md +0 -0
  11. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/__main__.py +0 -0
  12. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/actions.py +0 -0
  13. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/architecture.py +0 -0
  14. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/binary_path.py +0 -0
  15. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/builder.py +0 -0
  16. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/exceptions.py +0 -0
  17. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/path_resolver.py +0 -0
  18. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/registry.py +0 -0
  19. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/utils.py +0 -0
  20. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/validator.py +0 -0
  21. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflow.py +0 -0
  22. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/__init__.py +0 -0
  23. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/custom_make/DESIGN.md +0 -0
  24. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/custom_make/__init__.py +0 -0
  25. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/custom_make/actions.py +0 -0
  26. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/custom_make/exceptions.py +0 -0
  27. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/custom_make/make.py +0 -0
  28. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/custom_make/utils.py +0 -0
  29. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/custom_make/validator.py +0 -0
  30. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/custom_make/workflow.py +0 -0
  31. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/dotnet_clipackage/DESIGN.md +0 -0
  32. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/dotnet_clipackage/__init__.py +0 -0
  33. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/dotnet_clipackage/actions.py +0 -0
  34. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/dotnet_clipackage/dotnetcli.py +0 -0
  35. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/dotnet_clipackage/dotnetcli_resolver.py +0 -0
  36. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/dotnet_clipackage/utils.py +0 -0
  37. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/dotnet_clipackage/workflow.py +0 -0
  38. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/go_modules/DESIGN.md +0 -0
  39. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/go_modules/__init__.py +0 -0
  40. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/go_modules/actions.py +0 -0
  41. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/go_modules/builder.py +0 -0
  42. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/go_modules/utils.py +0 -0
  43. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/go_modules/validator.py +0 -0
  44. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/go_modules/workflow.py +0 -0
  45. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/java/__init__.py +0 -0
  46. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/java/actions.py +0 -0
  47. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/java/utils.py +0 -0
  48. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/java_gradle/DESIGN.md +0 -0
  49. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/java_gradle/__init__.py +0 -0
  50. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/java_gradle/actions.py +0 -0
  51. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/java_gradle/gradle.py +0 -0
  52. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/java_gradle/gradle_resolver.py +0 -0
  53. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/java_gradle/gradle_validator.py +0 -0
  54. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/java_gradle/resources/lambda-build-init.gradle +0 -0
  55. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/java_gradle/workflow.py +0 -0
  56. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/java_maven/DESIGN.md +0 -0
  57. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/java_maven/__init__.py +0 -0
  58. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/java_maven/actions.py +0 -0
  59. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/java_maven/maven.py +0 -0
  60. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/java_maven/maven_resolver.py +0 -0
  61. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/java_maven/maven_validator.py +0 -0
  62. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/java_maven/workflow.py +0 -0
  63. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/nodejs_npm/DESIGN.md +0 -0
  64. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/nodejs_npm/__init__.py +0 -0
  65. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/nodejs_npm/actions.py +0 -0
  66. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/nodejs_npm/npm.py +0 -0
  67. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/nodejs_npm/utils.py +0 -0
  68. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/nodejs_npm/workflow.py +0 -0
  69. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/nodejs_npm_esbuild/DESIGN.md +0 -0
  70. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/nodejs_npm_esbuild/__init__.py +0 -0
  71. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/nodejs_npm_esbuild/actions.py +0 -0
  72. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/nodejs_npm_esbuild/esbuild.py +0 -0
  73. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/nodejs_npm_esbuild/exceptions.py +0 -0
  74. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/nodejs_npm_esbuild/workflow.py +0 -0
  75. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/python_pip/DESIGN.md +0 -0
  76. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/python_pip/__init__.py +0 -0
  77. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/python_pip/actions.py +0 -0
  78. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/python_pip/compat.py +0 -0
  79. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/python_pip/exceptions.py +0 -0
  80. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/python_pip/utils.py +0 -0
  81. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/python_pip/validator.py +0 -0
  82. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/python_pip/workflow.py +0 -0
  83. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/ruby_bundler/DESIGN.md +0 -0
  84. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/ruby_bundler/__init__.py +0 -0
  85. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/ruby_bundler/actions.py +0 -0
  86. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/ruby_bundler/bundler.py +0 -0
  87. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/ruby_bundler/utils.py +0 -0
  88. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/ruby_bundler/workflow.py +0 -0
  89. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/rust_cargo/DESIGN.md +0 -0
  90. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/rust_cargo/__init__.py +0 -0
  91. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/rust_cargo/actions.py +0 -0
  92. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/rust_cargo/cargo_lambda.py +0 -0
  93. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/rust_cargo/exceptions.py +0 -0
  94. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/rust_cargo/feature_flag.py +0 -0
  95. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/rust_cargo/utils.py +0 -0
  96. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders/workflows/rust_cargo/workflow.py +0 -0
  97. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders.egg-info/SOURCES.txt +0 -0
  98. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders.egg-info/dependency_links.txt +0 -0
  99. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders.egg-info/entry_points.txt +0 -0
  100. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/aws_lambda_builders.egg-info/top_level.txt +0 -0
  101. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/pyproject.toml +0 -0
  102. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/requirements/base.txt +0 -0
  103. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/requirements/python_pip.txt +0 -0
  104. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/setup.cfg +0 -0
  105. {aws_lambda_builders-1.35.0 → aws_lambda_builders-1.36.0}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: aws_lambda_builders
3
- Version: 1.35.0
3
+ Version: 1.36.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
@@ -4,5 +4,5 @@ AWS Lambda Builder Library
4
4
 
5
5
  # Changing version will trigger a new release!
6
6
  # Please make the version change as the last step of your development.
7
- __version__ = "1.35.0"
7
+ __version__ = "1.36.0"
8
8
  RPC_PROTOCOL_VERSION = "0.3"
@@ -7,6 +7,7 @@ import re
7
7
  import subprocess
8
8
  import sys
9
9
  from email.parser import FeedParser
10
+ from typing import Tuple
10
11
 
11
12
  from aws_lambda_builders.architecture import ARM64, X86_64
12
13
  from aws_lambda_builders.utils import extract_tarfile
@@ -603,12 +604,30 @@ class SDistMetadataFetcher(object):
603
604
  # This might be a pep 517 package in which case this PKG-INFO file
604
605
  # should be available right in the top level directory of the sdist
605
606
  # in the case where the egg_info command fails.
606
- LOG.debug("Using fallback location for PKG-INFO file in package directory: %s", package_dir)
607
- pkg_info_path = self._osutils.joinpath(package_dir, "PKG-INFO")
607
+ pkg_info_path = self._get_fallback_pkg_info_filepath(package_dir)
608
608
  if not self._osutils.file_exists(pkg_info_path):
609
609
  raise UnsupportedPackageError(self._osutils.basename(package_dir))
610
610
  return pkg_info_path
611
611
 
612
+ def _get_fallback_pkg_info_filepath(self, package_dir: str) -> str:
613
+ """
614
+ Gets the string path of the fallback PKG-INFO that is generated by pip
615
+
616
+ Parameters
617
+ ----------
618
+ package_dir: str
619
+ The path of the current working directory that has the package
620
+
621
+ Returns
622
+ -------
623
+ str
624
+ Path to a potential PKG-INFO
625
+ """
626
+ LOG.debug("Using fallback location for PKG-INFO file in package directory: %s", package_dir)
627
+ pkg_info_path = self._osutils.joinpath(package_dir, "PKG-INFO")
628
+
629
+ return pkg_info_path
630
+
612
631
  def _unpack_sdist_into_dir(self, sdist_path, unpack_dir):
613
632
  if sdist_path.endswith(".zip"):
614
633
  self._osutils.extract_zipfile(sdist_path, unpack_dir)
@@ -620,13 +639,79 @@ class SDistMetadataFetcher(object):
620
639
  contents = self._osutils.get_directory_contents(unpack_dir)
621
640
  return self._osutils.joinpath(unpack_dir, contents[0])
622
641
 
623
- def get_package_name_and_version(self, sdist_path):
642
+ def _get_name_version(self, pkg_info_filepath: str) -> Tuple[str, str]:
643
+ """
644
+ Extracts the name and the version from the PKG-INFO metadata file
645
+
646
+ Parameters
647
+ ----------
648
+ pkg_info_filepath: str
649
+ The path to the PKG-INFO file to get data from
650
+
651
+ Returns
652
+ -------
653
+ Tuple[str, str]
654
+ A tuple containing the name and version
655
+ """
656
+ metadata = self._parse_pkg_info_file(pkg_info_filepath)
657
+ return (metadata["Name"], metadata["Version"])
658
+
659
+ def _is_default_setuptools_values(self, name: str, version: str) -> bool:
660
+ """
661
+ Checks if the name or the version are the default values that are assigned by setuptools
662
+
663
+ Parameters
664
+ ----------
665
+ name: str
666
+ The name of the package
667
+ version: str
668
+ The version of the package as a string
669
+
670
+ Returns
671
+ -------
672
+ bool
673
+ True if either name or version are the default values
674
+ """
675
+ # default values logic:
676
+ # https://github.com/pypa/setuptools/blob/6083e18f4afc40316c0112134c205c336afbcdfd/setuptools/_distutils/dist.py#L1185-L1189
677
+ return name.lower() == "unknown" or version == "0.0.0"
678
+
679
+ def get_package_name_and_version(self, sdist_path: str) -> Tuple[str, str]:
680
+ """
681
+ Gets the package's name and version from the metadata file
682
+
683
+ Parameters
684
+ ----------
685
+ sdist_path: str
686
+ The string path of the downloaded source distribution artifact
687
+
688
+ Returns
689
+ -------
690
+ Tuple[str, str]
691
+ A tuple of the name and version of the package
692
+ """
624
693
  with self._osutils.tempdir() as tempdir:
625
694
  package_dir = self._unpack_sdist_into_dir(sdist_path, tempdir)
695
+
696
+ # get the name and version from the result setup.py
626
697
  pkg_info_filepath = self._get_pkg_info_filepath(package_dir)
627
- metadata = self._parse_pkg_info_file(pkg_info_filepath)
628
- name = metadata["Name"]
629
- version = metadata["Version"]
698
+ name, version = self._get_name_version(pkg_info_filepath)
699
+
700
+ # return values if it is not the default values
701
+ if not self._is_default_setuptools_values(name, version):
702
+ return name, version
703
+
704
+ # see if we can get the fallback PKG_INFO file from the sdist
705
+ fallback_pkg_info_fp = self._get_fallback_pkg_info_filepath(package_dir)
706
+
707
+ if self._osutils.file_exists(fallback_pkg_info_fp):
708
+ # use the fallback values instead of the ones we generated
709
+ fallback_name, fallback_version = self._get_name_version(fallback_pkg_info_fp)
710
+
711
+ if not self._is_default_setuptools_values(fallback_name, fallback_version):
712
+ name = fallback_name
713
+ version = fallback_version
714
+
630
715
  return name, version
631
716
 
632
717
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: aws-lambda-builders
3
- Version: 1.35.0
3
+ Version: 1.36.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
@@ -8,7 +8,7 @@ pytest>=6.1.1
8
8
  parameterized==0.9.0
9
9
  pyelftools~=0.29
10
10
  black==23.3.0
11
- ruff==0.0.277
11
+ ruff==0.0.278
12
12
 
13
13
  [dev:python_version < "3.8"]
14
14
  flake8==3.3.0
@@ -12,4 +12,4 @@ pyelftools~=0.29 # Used to verify the generated Go binary architecture in integr
12
12
 
13
13
  # formatter
14
14
  black==23.3.0
15
- ruff==0.0.277
15
+ ruff==0.0.278