aws-lambda-builders 1.42.0__tar.gz → 1.44.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.
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/PKG-INFO +16 -2
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/__init__.py +1 -1
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/actions.py +6 -1
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/utils.py +4 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/nodejs_npm/actions.py +44 -12
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/nodejs_npm/workflow.py +10 -8
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/nodejs_npm_esbuild/workflow.py +1 -1
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/python_pip/actions.py +9 -2
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/python_pip/packager.py +16 -11
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders.egg-info/PKG-INFO +16 -2
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders.egg-info/requires.txt +2 -2
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/requirements/dev.txt +2 -2
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/LICENSE +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/MANIFEST.in +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/NOTICE +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/README.md +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/__main__.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/architecture.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/binary_path.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/builder.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/exceptions.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/path_resolver.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/registry.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/validator.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflow.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/__init__.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/custom_make/DESIGN.md +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/custom_make/__init__.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/custom_make/actions.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/custom_make/exceptions.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/custom_make/make.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/custom_make/utils.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/custom_make/validator.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/custom_make/workflow.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/dotnet_clipackage/DESIGN.md +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/dotnet_clipackage/__init__.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/dotnet_clipackage/actions.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/dotnet_clipackage/dotnetcli.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/dotnet_clipackage/dotnetcli_resolver.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/dotnet_clipackage/utils.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/dotnet_clipackage/workflow.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/go_modules/DESIGN.md +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/go_modules/__init__.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/go_modules/actions.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/go_modules/builder.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/go_modules/utils.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/go_modules/validator.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/go_modules/workflow.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/java/__init__.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/java/actions.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/java/utils.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/java_gradle/DESIGN.md +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/java_gradle/__init__.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/java_gradle/actions.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/java_gradle/gradle.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/java_gradle/gradle_resolver.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/java_gradle/gradle_validator.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/java_gradle/resources/lambda-build-init.gradle +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/java_gradle/workflow.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/java_maven/DESIGN.md +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/java_maven/__init__.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/java_maven/actions.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/java_maven/maven.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/java_maven/maven_resolver.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/java_maven/maven_validator.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/java_maven/workflow.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/nodejs_npm/DESIGN.md +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/nodejs_npm/__init__.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/nodejs_npm/exceptions.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/nodejs_npm/npm.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/nodejs_npm/utils.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/nodejs_npm_esbuild/DESIGN.md +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/nodejs_npm_esbuild/__init__.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/nodejs_npm_esbuild/actions.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/nodejs_npm_esbuild/esbuild.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/nodejs_npm_esbuild/exceptions.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/python_pip/DESIGN.md +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/python_pip/__init__.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/python_pip/compat.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/python_pip/exceptions.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/python_pip/utils.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/python_pip/validator.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/python_pip/workflow.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/ruby_bundler/DESIGN.md +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/ruby_bundler/__init__.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/ruby_bundler/actions.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/ruby_bundler/bundler.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/ruby_bundler/utils.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/ruby_bundler/workflow.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/rust_cargo/DESIGN.md +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/rust_cargo/__init__.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/rust_cargo/actions.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/rust_cargo/cargo_lambda.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/rust_cargo/exceptions.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/rust_cargo/feature_flag.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/rust_cargo/utils.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/rust_cargo/workflow.py +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders.egg-info/SOURCES.txt +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders.egg-info/dependency_links.txt +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders.egg-info/entry_points.txt +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders.egg-info/top_level.txt +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/pyproject.toml +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/requirements/base.txt +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/requirements/python_pip.txt +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/setup.cfg +0 -0
- {aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: aws_lambda_builders
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.44.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
|
|
@@ -25,9 +25,23 @@ Classifier: Topic :: Internet
|
|
|
25
25
|
Classifier: Topic :: Software Development :: Build Tools
|
|
26
26
|
Classifier: Topic :: Utilities
|
|
27
27
|
Requires-Python: >=3.7
|
|
28
|
-
Provides-Extra: dev
|
|
29
28
|
License-File: LICENSE
|
|
30
29
|
License-File: NOTICE
|
|
30
|
+
Requires-Dist: setuptools
|
|
31
|
+
Requires-Dist: wheel
|
|
32
|
+
Provides-Extra: dev
|
|
33
|
+
Requires-Dist: coverage==7.2.7; python_version < "3.8" and extra == "dev"
|
|
34
|
+
Requires-Dist: coverage==7.3.2; python_version >= "3.8" and extra == "dev"
|
|
35
|
+
Requires-Dist: flake8==3.3.0; python_version < "3.8" and extra == "dev"
|
|
36
|
+
Requires-Dist: flake8==3.8.4; python_version >= "3.8" and extra == "dev"
|
|
37
|
+
Requires-Dist: pytest-cov==4.1.0; extra == "dev"
|
|
38
|
+
Requires-Dist: isort<5,>=4.2.5; python_version < "3.8" and extra == "dev"
|
|
39
|
+
Requires-Dist: pytest>=6.1.1; extra == "dev"
|
|
40
|
+
Requires-Dist: parameterized==0.9.0; extra == "dev"
|
|
41
|
+
Requires-Dist: pyelftools~=0.30; extra == "dev"
|
|
42
|
+
Requires-Dist: black==22.6.0; python_version < "3.8" and extra == "dev"
|
|
43
|
+
Requires-Dist: black==23.11.0; python_version >= "3.8" and extra == "dev"
|
|
44
|
+
Requires-Dist: ruff==0.1.7; extra == "dev"
|
|
31
45
|
|
|
32
46
|
## Lambda Builders
|
|
33
47
|
|
|
@@ -57,7 +57,7 @@ class _ActionMetaClass(type):
|
|
|
57
57
|
def __new__(mcs, name, bases, class_dict):
|
|
58
58
|
cls = type.__new__(mcs, name, bases, class_dict)
|
|
59
59
|
|
|
60
|
-
if cls.__name__
|
|
60
|
+
if cls.__name__ in ["BaseAction", "NodejsNpmInstallOrUpdateBaseAction"]:
|
|
61
61
|
return cls
|
|
62
62
|
|
|
63
63
|
# Validate class variables
|
|
@@ -156,7 +156,12 @@ class LinkSinglePathAction(BaseAction):
|
|
|
156
156
|
self._dest = dest
|
|
157
157
|
|
|
158
158
|
def execute(self):
|
|
159
|
+
source_path = Path(self._source)
|
|
159
160
|
destination_path = Path(self._dest)
|
|
161
|
+
if not source_path.exists():
|
|
162
|
+
# Source path doesn't exist, nothing to symlink
|
|
163
|
+
LOG.debug("Source path %s does not exist, skipping generating symlink", source_path)
|
|
164
|
+
return
|
|
160
165
|
if not destination_path.exists():
|
|
161
166
|
os.makedirs(destination_path.parent, exist_ok=True)
|
|
162
167
|
utils.create_symlink_or_copy(str(self._source), str(destination_path))
|
|
@@ -198,6 +198,10 @@ def create_symlink_or_copy(source: str, destination: str) -> None:
|
|
|
198
198
|
"""Tries to create symlink, if it fails it will copy source into destination"""
|
|
199
199
|
LOG.debug("Creating symlink; source: %s, destination: %s", source, destination)
|
|
200
200
|
try:
|
|
201
|
+
if Path(destination).exists() and Path(destination).is_symlink():
|
|
202
|
+
# The symlink is already in place, don't try re-creating it
|
|
203
|
+
LOG.debug("Symlink between %s and %s already exists, skipping generating symlink", source, destination)
|
|
204
|
+
return
|
|
201
205
|
os.symlink(Path(source).absolute(), Path(destination).absolute())
|
|
202
206
|
except OSError as ex:
|
|
203
207
|
LOG.warning(
|
|
@@ -72,17 +72,14 @@ class NodejsNpmPackAction(BaseAction):
|
|
|
72
72
|
raise ActionFailedError(str(ex))
|
|
73
73
|
|
|
74
74
|
|
|
75
|
-
class
|
|
76
|
-
|
|
75
|
+
class NodejsNpmInstallOrUpdateBaseAction(BaseAction):
|
|
77
76
|
"""
|
|
78
|
-
A Lambda Builder Action that installs NPM project dependencies
|
|
77
|
+
A base Lambda Builder Action that is used for installs or updating NPM project dependencies
|
|
79
78
|
"""
|
|
80
79
|
|
|
81
|
-
NAME = "NpmInstall"
|
|
82
|
-
DESCRIPTION = "Installing dependencies from NPM"
|
|
83
80
|
PURPOSE = Purpose.RESOLVE_DEPENDENCIES
|
|
84
81
|
|
|
85
|
-
def __init__(self, install_dir: str, subprocess_npm: SubprocessNpm
|
|
82
|
+
def __init__(self, install_dir: str, subprocess_npm: SubprocessNpm):
|
|
86
83
|
"""
|
|
87
84
|
Parameters
|
|
88
85
|
----------
|
|
@@ -90,14 +87,20 @@ class NodejsNpmInstallAction(BaseAction):
|
|
|
90
87
|
Dependencies will be installed in this directory.
|
|
91
88
|
subprocess_npm : SubprocessNpm
|
|
92
89
|
An instance of the NPM process wrapper
|
|
93
|
-
install_links : Optional[bool]
|
|
94
|
-
Uses the --install-links npm option if True, by default False
|
|
95
90
|
"""
|
|
96
91
|
|
|
97
|
-
super(
|
|
92
|
+
super().__init__()
|
|
98
93
|
self.install_dir = install_dir
|
|
99
94
|
self.subprocess_npm = subprocess_npm
|
|
100
|
-
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
class NodejsNpmInstallAction(NodejsNpmInstallOrUpdateBaseAction):
|
|
98
|
+
"""
|
|
99
|
+
A Lambda Builder Action that installs NPM project dependencies
|
|
100
|
+
"""
|
|
101
|
+
|
|
102
|
+
NAME = "NpmInstall"
|
|
103
|
+
DESCRIPTION = "Installing dependencies from NPM"
|
|
101
104
|
|
|
102
105
|
def execute(self):
|
|
103
106
|
"""
|
|
@@ -109,9 +112,38 @@ class NodejsNpmInstallAction(BaseAction):
|
|
|
109
112
|
LOG.debug("NODEJS installing in: %s", self.install_dir)
|
|
110
113
|
|
|
111
114
|
command = ["install", "-q", "--no-audit", "--no-save", "--unsafe-perm", "--production"]
|
|
112
|
-
|
|
113
|
-
|
|
115
|
+
self.subprocess_npm.run(command, cwd=self.install_dir)
|
|
116
|
+
|
|
117
|
+
except NpmExecutionError as ex:
|
|
118
|
+
raise ActionFailedError(str(ex))
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
class NodejsNpmUpdateAction(NodejsNpmInstallOrUpdateBaseAction):
|
|
122
|
+
"""
|
|
123
|
+
A Lambda Builder Action that installs NPM project dependencies
|
|
124
|
+
"""
|
|
114
125
|
|
|
126
|
+
NAME = "NpmUpdate"
|
|
127
|
+
DESCRIPTION = "Updating dependencies from NPM"
|
|
128
|
+
|
|
129
|
+
def execute(self):
|
|
130
|
+
"""
|
|
131
|
+
Runs the action.
|
|
132
|
+
|
|
133
|
+
:raises lambda_builders.actions.ActionFailedError: when NPM execution fails
|
|
134
|
+
"""
|
|
135
|
+
try:
|
|
136
|
+
LOG.debug("NODEJS updating in: %s", self.install_dir)
|
|
137
|
+
|
|
138
|
+
command = [
|
|
139
|
+
"update",
|
|
140
|
+
"--no-audit",
|
|
141
|
+
"--no-save",
|
|
142
|
+
"--unsafe-perm",
|
|
143
|
+
"--production",
|
|
144
|
+
"--no-package-lock",
|
|
145
|
+
"--install-links",
|
|
146
|
+
]
|
|
115
147
|
self.subprocess_npm.run(command, cwd=self.install_dir)
|
|
116
148
|
|
|
117
149
|
except NpmExecutionError as ex:
|
|
@@ -22,6 +22,7 @@ from aws_lambda_builders.workflows.nodejs_npm.actions import (
|
|
|
22
22
|
NodejsNpmPackAction,
|
|
23
23
|
NodejsNpmrcAndLockfileCopyAction,
|
|
24
24
|
NodejsNpmrcCleanUpAction,
|
|
25
|
+
NodejsNpmUpdateAction,
|
|
25
26
|
)
|
|
26
27
|
from aws_lambda_builders.workflows.nodejs_npm.npm import SubprocessNpm
|
|
27
28
|
from aws_lambda_builders.workflows.nodejs_npm.utils import OSUtils
|
|
@@ -119,7 +120,7 @@ class NodejsNpmWorkflow(BaseWorkflow):
|
|
|
119
120
|
subprocess_npm=subprocess_npm,
|
|
120
121
|
osutils=osutils,
|
|
121
122
|
build_options=self.options,
|
|
122
|
-
|
|
123
|
+
is_building_in_source=is_building_in_source,
|
|
123
124
|
)
|
|
124
125
|
)
|
|
125
126
|
|
|
@@ -211,7 +212,7 @@ class NodejsNpmWorkflow(BaseWorkflow):
|
|
|
211
212
|
subprocess_npm: SubprocessNpm,
|
|
212
213
|
osutils: OSUtils,
|
|
213
214
|
build_options: Optional[dict],
|
|
214
|
-
|
|
215
|
+
is_building_in_source: Optional[bool] = False,
|
|
215
216
|
):
|
|
216
217
|
"""
|
|
217
218
|
Get the install action used to install dependencies.
|
|
@@ -228,8 +229,8 @@ class NodejsNpmWorkflow(BaseWorkflow):
|
|
|
228
229
|
An instance of OS Utilities for file manipulation
|
|
229
230
|
build_options : Optional[dict]
|
|
230
231
|
Object containing build options configurations
|
|
231
|
-
|
|
232
|
-
|
|
232
|
+
is_building_in_source : Optional[bool]
|
|
233
|
+
States whether --build-in-source flag is set or not
|
|
233
234
|
|
|
234
235
|
Returns
|
|
235
236
|
-------
|
|
@@ -245,12 +246,13 @@ class NodejsNpmWorkflow(BaseWorkflow):
|
|
|
245
246
|
|
|
246
247
|
if (osutils.file_exists(lockfile_path) or osutils.file_exists(shrinkwrap_path)) and npm_ci_option:
|
|
247
248
|
return NodejsNpmCIAction(
|
|
248
|
-
install_dir=install_dir, subprocess_npm=subprocess_npm, install_links=
|
|
249
|
+
install_dir=install_dir, subprocess_npm=subprocess_npm, install_links=is_building_in_source
|
|
249
250
|
)
|
|
250
251
|
|
|
251
|
-
|
|
252
|
-
install_dir=install_dir, subprocess_npm=subprocess_npm
|
|
253
|
-
|
|
252
|
+
if is_building_in_source:
|
|
253
|
+
return NodejsNpmUpdateAction(install_dir=install_dir, subprocess_npm=subprocess_npm)
|
|
254
|
+
|
|
255
|
+
return NodejsNpmInstallAction(install_dir=install_dir, subprocess_npm=subprocess_npm)
|
|
254
256
|
|
|
255
257
|
@staticmethod
|
|
256
258
|
def can_use_install_links(npm_process: SubprocessNpm) -> bool:
|
|
@@ -49,11 +49,18 @@ class PythonPipBuildAction(BaseAction):
|
|
|
49
49
|
pip_runner = PipRunner(python_exe=python_with_pip, pip=pip)
|
|
50
50
|
|
|
51
51
|
dependency_builder = DependencyBuilder(
|
|
52
|
-
osutils=self._os_utils,
|
|
52
|
+
osutils=self._os_utils,
|
|
53
|
+
python_exe=python_with_pip,
|
|
54
|
+
pip_runner=pip_runner,
|
|
55
|
+
runtime=self.runtime,
|
|
56
|
+
architecture=self.architecture,
|
|
53
57
|
)
|
|
54
58
|
|
|
55
59
|
package_builder = PythonPipDependencyBuilder(
|
|
56
|
-
osutils=self._os_utils,
|
|
60
|
+
osutils=self._os_utils,
|
|
61
|
+
runtime=self.runtime,
|
|
62
|
+
python_exe=python_with_pip,
|
|
63
|
+
dependency_builder=dependency_builder,
|
|
57
64
|
)
|
|
58
65
|
try:
|
|
59
66
|
target_artifact_dir = self.artifacts_dir
|
|
@@ -5,7 +5,6 @@ Installs packages using PIP
|
|
|
5
5
|
import logging
|
|
6
6
|
import re
|
|
7
7
|
import subprocess
|
|
8
|
-
import sys
|
|
9
8
|
from email.parser import FeedParser
|
|
10
9
|
from typing import Tuple
|
|
11
10
|
|
|
@@ -97,7 +96,7 @@ def get_lambda_abi(runtime):
|
|
|
97
96
|
|
|
98
97
|
|
|
99
98
|
class PythonPipDependencyBuilder(object):
|
|
100
|
-
def __init__(self, runtime, osutils=None, dependency_builder=None, architecture=X86_64):
|
|
99
|
+
def __init__(self, runtime, python_exe, osutils=None, dependency_builder=None, architecture=X86_64):
|
|
101
100
|
"""Initialize a PythonPipDependencyBuilder.
|
|
102
101
|
|
|
103
102
|
:type runtime: str
|
|
@@ -122,7 +121,7 @@ class PythonPipDependencyBuilder(object):
|
|
|
122
121
|
self.osutils = OSUtils()
|
|
123
122
|
|
|
124
123
|
if dependency_builder is None:
|
|
125
|
-
dependency_builder = DependencyBuilder(self.osutils, runtime, architecture=architecture)
|
|
124
|
+
dependency_builder = DependencyBuilder(self.osutils, python_exe, runtime, architecture=architecture)
|
|
126
125
|
self._dependency_builder = dependency_builder
|
|
127
126
|
|
|
128
127
|
def build_dependencies(self, artifacts_dir_path, scratch_dir_path, requirements_path, ui=None, config=None):
|
|
@@ -211,7 +210,7 @@ class DependencyBuilder(object):
|
|
|
211
210
|
# Unlikely to hit this case.
|
|
212
211
|
_DEFAULT_GLIBC = (2, 17)
|
|
213
212
|
|
|
214
|
-
def __init__(self, osutils, runtime, pip_runner=None, architecture=X86_64):
|
|
213
|
+
def __init__(self, osutils, runtime, python_exe, pip_runner=None, architecture=X86_64):
|
|
215
214
|
"""Initialize a DependencyBuilder.
|
|
216
215
|
|
|
217
216
|
:type osutils: :class:`lambda_builders.utils.OSUtils`
|
|
@@ -229,8 +228,9 @@ class DependencyBuilder(object):
|
|
|
229
228
|
:param architecture: Architecture to build for.
|
|
230
229
|
"""
|
|
231
230
|
self._osutils = osutils
|
|
231
|
+
self.python_exe = python_exe
|
|
232
232
|
if pip_runner is None:
|
|
233
|
-
pip_runner = PipRunner(python_exe=
|
|
233
|
+
pip_runner = PipRunner(python_exe=python_exe, pip=SubprocessPip(osutils))
|
|
234
234
|
self._pip = pip_runner
|
|
235
235
|
self.runtime = runtime
|
|
236
236
|
self.architecture = architecture
|
|
@@ -364,7 +364,10 @@ class DependencyBuilder(object):
|
|
|
364
364
|
# which will serve as the primary list of dependencies needed to deploy
|
|
365
365
|
# successfully.
|
|
366
366
|
self._pip.download_all_dependencies(requirements_filename, directory)
|
|
367
|
-
deps = {
|
|
367
|
+
deps = {
|
|
368
|
+
Package(directory, filename, self.python_exe)
|
|
369
|
+
for filename in self._osutils.get_directory_contents(directory)
|
|
370
|
+
}
|
|
368
371
|
LOG.debug("Full dependency closure: %s", deps)
|
|
369
372
|
return deps
|
|
370
373
|
|
|
@@ -383,7 +386,7 @@ class DependencyBuilder(object):
|
|
|
383
386
|
|
|
384
387
|
def _categorize_wheel_files(self, directory):
|
|
385
388
|
final_wheels = [
|
|
386
|
-
Package(directory, filename)
|
|
389
|
+
Package(directory, filename, self.python_exe)
|
|
387
390
|
for filename in self._osutils.get_directory_contents(directory)
|
|
388
391
|
if filename.endswith(".whl")
|
|
389
392
|
]
|
|
@@ -506,13 +509,14 @@ class DependencyBuilder(object):
|
|
|
506
509
|
class Package(object):
|
|
507
510
|
"""A class to represent a package downloaded but not yet installed."""
|
|
508
511
|
|
|
509
|
-
def __init__(self, directory, filename, osutils=None):
|
|
512
|
+
def __init__(self, directory, filename, python_exe, osutils=None):
|
|
510
513
|
self.dist_type = "wheel" if filename.endswith(".whl") else "sdist"
|
|
511
514
|
self._directory = directory
|
|
512
515
|
self.filename = filename
|
|
513
516
|
if osutils is None:
|
|
514
517
|
osutils = OSUtils()
|
|
515
518
|
self._osutils = osutils
|
|
519
|
+
self.python_exe = python_exe
|
|
516
520
|
self._name, self._version = self._calculate_name_and_version()
|
|
517
521
|
|
|
518
522
|
@property
|
|
@@ -553,7 +557,7 @@ class Package(object):
|
|
|
553
557
|
# {platform tag}.whl
|
|
554
558
|
name, version = self.filename.split("-")[:2]
|
|
555
559
|
else:
|
|
556
|
-
info_fetcher = SDistMetadataFetcher(osutils=self._osutils)
|
|
560
|
+
info_fetcher = SDistMetadataFetcher(self.python_exe, osutils=self._osutils)
|
|
557
561
|
sdist_path = self._osutils.joinpath(self._directory, self.filename)
|
|
558
562
|
name, version = info_fetcher.get_package_name_and_version(sdist_path)
|
|
559
563
|
normalized_name = self._normalize_name(name)
|
|
@@ -572,10 +576,11 @@ class SDistMetadataFetcher(object):
|
|
|
572
576
|
"exec(compile(code, __file__, 'exec'))"
|
|
573
577
|
)
|
|
574
578
|
|
|
575
|
-
def __init__(self, osutils=None):
|
|
579
|
+
def __init__(self, python_exe, osutils=None):
|
|
576
580
|
if osutils is None:
|
|
577
581
|
osutils = OSUtils()
|
|
578
582
|
self._osutils = osutils
|
|
583
|
+
self.python_exe = python_exe
|
|
579
584
|
|
|
580
585
|
def _parse_pkg_info_file(self, filepath):
|
|
581
586
|
# The PKG-INFO generated by the egg-info command is in an email feed
|
|
@@ -590,7 +595,7 @@ class SDistMetadataFetcher(object):
|
|
|
590
595
|
setup_py = self._osutils.joinpath(package_dir, "setup.py")
|
|
591
596
|
script = self._SETUPTOOLS_SHIM % setup_py
|
|
592
597
|
|
|
593
|
-
cmd = [
|
|
598
|
+
cmd = [self.python_exe, "-c", script, "--no-user-cfg", "egg_info", "--egg-base", "egg-info"]
|
|
594
599
|
egg_info_dir = self._osutils.joinpath(package_dir, "egg-info")
|
|
595
600
|
self._osutils.makedirs(egg_info_dir)
|
|
596
601
|
p = subprocess.Popen(
|
{aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders.egg-info/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: aws-lambda-builders
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.44.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
|
|
@@ -25,9 +25,23 @@ Classifier: Topic :: Internet
|
|
|
25
25
|
Classifier: Topic :: Software Development :: Build Tools
|
|
26
26
|
Classifier: Topic :: Utilities
|
|
27
27
|
Requires-Python: >=3.7
|
|
28
|
-
Provides-Extra: dev
|
|
29
28
|
License-File: LICENSE
|
|
30
29
|
License-File: NOTICE
|
|
30
|
+
Requires-Dist: setuptools
|
|
31
|
+
Requires-Dist: wheel
|
|
32
|
+
Provides-Extra: dev
|
|
33
|
+
Requires-Dist: coverage==7.2.7; python_version < "3.8" and extra == "dev"
|
|
34
|
+
Requires-Dist: coverage==7.3.2; python_version >= "3.8" and extra == "dev"
|
|
35
|
+
Requires-Dist: flake8==3.3.0; python_version < "3.8" and extra == "dev"
|
|
36
|
+
Requires-Dist: flake8==3.8.4; python_version >= "3.8" and extra == "dev"
|
|
37
|
+
Requires-Dist: pytest-cov==4.1.0; extra == "dev"
|
|
38
|
+
Requires-Dist: isort<5,>=4.2.5; python_version < "3.8" and extra == "dev"
|
|
39
|
+
Requires-Dist: pytest>=6.1.1; extra == "dev"
|
|
40
|
+
Requires-Dist: parameterized==0.9.0; extra == "dev"
|
|
41
|
+
Requires-Dist: pyelftools~=0.30; extra == "dev"
|
|
42
|
+
Requires-Dist: black==22.6.0; python_version < "3.8" and extra == "dev"
|
|
43
|
+
Requires-Dist: black==23.11.0; python_version >= "3.8" and extra == "dev"
|
|
44
|
+
Requires-Dist: ruff==0.1.7; extra == "dev"
|
|
31
45
|
|
|
32
46
|
## Lambda Builders
|
|
33
47
|
|
{aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders.egg-info/requires.txt
RENAMED
|
@@ -6,7 +6,7 @@ pytest-cov==4.1.0
|
|
|
6
6
|
pytest>=6.1.1
|
|
7
7
|
parameterized==0.9.0
|
|
8
8
|
pyelftools~=0.30
|
|
9
|
-
ruff==0.1.
|
|
9
|
+
ruff==0.1.7
|
|
10
10
|
|
|
11
11
|
[dev:python_version < "3.8"]
|
|
12
12
|
coverage==7.2.7
|
|
@@ -17,4 +17,4 @@ black==22.6.0
|
|
|
17
17
|
[dev:python_version >= "3.8"]
|
|
18
18
|
coverage==7.3.2
|
|
19
19
|
flake8==3.8.4
|
|
20
|
-
black==23.
|
|
20
|
+
black==23.11.0
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/architecture.py
RENAMED
|
File without changes
|
{aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/binary_path.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/path_resolver.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders/workflows/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aws_lambda_builders-1.42.0 → aws_lambda_builders-1.44.0}/aws_lambda_builders.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|