aws-lambda-builders 1.57.0__tar.gz → 1.58.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.57.0/aws_lambda_builders.egg-info → aws_lambda_builders-1.58.0}/PKG-INFO +1 -1
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/__init__.py +1 -1
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/builder.py +1 -1
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflow.py +1 -1
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/python_pip/DESIGN.md +44 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/python_pip/actions.py +49 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/python_pip/workflow.py +29 -7
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0/aws_lambda_builders.egg-info}/PKG-INFO +1 -1
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/LICENSE +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/MANIFEST.in +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/NOTICE +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/README.md +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/__main__.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/actions.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/architecture.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/binary_path.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/exceptions.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/path_resolver.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/registry.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/utils.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/validator.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/__init__.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/custom_make/DESIGN.md +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/custom_make/__init__.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/custom_make/actions.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/custom_make/exceptions.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/custom_make/make.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/custom_make/utils.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/custom_make/validator.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/custom_make/workflow.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/dotnet_clipackage/DESIGN.md +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/dotnet_clipackage/__init__.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/dotnet_clipackage/actions.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/dotnet_clipackage/dotnetcli.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/dotnet_clipackage/dotnetcli_resolver.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/dotnet_clipackage/utils.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/dotnet_clipackage/workflow.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/go_modules/DESIGN.md +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/go_modules/__init__.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/go_modules/actions.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/go_modules/builder.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/go_modules/utils.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/go_modules/validator.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/go_modules/workflow.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/java/__init__.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/java/actions.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/java/utils.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/java_gradle/DESIGN.md +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/java_gradle/__init__.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/java_gradle/actions.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/java_gradle/gradle.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/java_gradle/gradle_resolver.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/java_gradle/gradle_validator.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/java_gradle/resources/lambda-build-init.gradle +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/java_gradle/workflow.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/java_maven/DESIGN.md +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/java_maven/__init__.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/java_maven/actions.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/java_maven/maven.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/java_maven/maven_resolver.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/java_maven/maven_validator.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/java_maven/workflow.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/nodejs_npm/DESIGN.md +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/nodejs_npm/__init__.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/nodejs_npm/actions.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/nodejs_npm/exceptions.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/nodejs_npm/npm.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/nodejs_npm/utils.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/nodejs_npm/workflow.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/nodejs_npm_esbuild/DESIGN.md +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/nodejs_npm_esbuild/__init__.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/nodejs_npm_esbuild/actions.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/nodejs_npm_esbuild/esbuild.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/nodejs_npm_esbuild/exceptions.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/nodejs_npm_esbuild/workflow.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/python_pip/__init__.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/python_pip/compat.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/python_pip/exceptions.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/python_pip/packager.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/python_pip/utils.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/python_pip/validator.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/ruby_bundler/DESIGN.md +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/ruby_bundler/__init__.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/ruby_bundler/actions.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/ruby_bundler/bundler.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/ruby_bundler/utils.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/ruby_bundler/workflow.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/rust_cargo/DESIGN.md +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/rust_cargo/__init__.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/rust_cargo/actions.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/rust_cargo/cargo_lambda.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/rust_cargo/exceptions.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/rust_cargo/feature_flag.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/rust_cargo/utils.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/workflows/rust_cargo/workflow.py +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders.egg-info/SOURCES.txt +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders.egg-info/dependency_links.txt +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders.egg-info/entry_points.txt +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders.egg-info/requires.txt +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders.egg-info/top_level.txt +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/pyproject.toml +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/requirements/base.txt +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/requirements/dev.txt +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/requirements/python_pip.txt +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/setup.cfg +0 -0
- {aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/setup.py +0 -0
{aws_lambda_builders-1.57.0/aws_lambda_builders.egg-info → aws_lambda_builders-1.58.0}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: aws_lambda_builders
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.58.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
|
|
@@ -105,7 +105,7 @@ class LambdaBuilder(object):
|
|
|
105
105
|
|
|
106
106
|
:type options: dict
|
|
107
107
|
:param options:
|
|
108
|
-
Optional dictionary of options
|
|
108
|
+
Optional dictionary of options to pass to build action.
|
|
109
109
|
|
|
110
110
|
:type executable_search_paths: list
|
|
111
111
|
:param executable_search_paths:
|
|
@@ -227,7 +227,7 @@ class BaseWorkflow(object, metaclass=_WorkflowMetaClass):
|
|
|
227
227
|
optimizations : dict, optional
|
|
228
228
|
dictionary of optimization flags to pass to the build action. **Not supported**, by default None
|
|
229
229
|
options : dict, optional
|
|
230
|
-
dictionary of options
|
|
230
|
+
dictionary of options to pass to build action. By default None
|
|
231
231
|
mode : str, optional
|
|
232
232
|
Mode the build should produce, by default BuildMode.RELEASE
|
|
233
233
|
download_dependencies: bool, optional
|
|
@@ -147,3 +147,47 @@ bundle has an `__init__.py` and is on the `PYTHONPATH`.
|
|
|
147
147
|
The dependencies should now be succesfully installed in the target directory.
|
|
148
148
|
All the temporary/intermediate files can now be deleting including all the
|
|
149
149
|
wheel files and sdists.
|
|
150
|
+
|
|
151
|
+
### Configuring the builder
|
|
152
|
+
|
|
153
|
+
The Lambda builder supports the following optional sub-properties of the `aws_sam` configuration property.
|
|
154
|
+
|
|
155
|
+
#### `parent_python_packages`
|
|
156
|
+
|
|
157
|
+
`parent_python_packages` must be a string, corresponding to a dot-separated list of parent packages to create in the destination directory. This is useful when the source code has a package structure that needs to be preserved in the built artifacts.
|
|
158
|
+
|
|
159
|
+
For example, if your source code is structured like this:
|
|
160
|
+
|
|
161
|
+
```
|
|
162
|
+
├── app
|
|
163
|
+
| ├── main.py
|
|
164
|
+
| └── utils
|
|
165
|
+
| └── logger.py
|
|
166
|
+
└── tests
|
|
167
|
+
└── unit/test_handler.py
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
Then the SAM build output will look like this:
|
|
171
|
+
|
|
172
|
+
```
|
|
173
|
+
└── .aws-sam
|
|
174
|
+
└── build
|
|
175
|
+
└── AppLogicalId
|
|
176
|
+
├── main.py
|
|
177
|
+
└── utils
|
|
178
|
+
└── logger.py
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
The tests would break because `main.py` is importing `logger` as `from .utils import logger`, but the built artifacts would not have the `app` package.
|
|
182
|
+
|
|
183
|
+
To fix this, you can set the `parent_python_packages` property to `app` and the SAM build output will look like this:
|
|
184
|
+
|
|
185
|
+
```
|
|
186
|
+
└── .aws-sam
|
|
187
|
+
└── build
|
|
188
|
+
└── AppLogicalId
|
|
189
|
+
└── app
|
|
190
|
+
├── main.py
|
|
191
|
+
└── utils
|
|
192
|
+
└── logger.py
|
|
193
|
+
```
|
|
@@ -3,6 +3,7 @@ Action to resolve Python dependencies using PIP
|
|
|
3
3
|
"""
|
|
4
4
|
|
|
5
5
|
import logging
|
|
6
|
+
from pathlib import Path
|
|
6
7
|
from typing import Optional, Tuple
|
|
7
8
|
|
|
8
9
|
from aws_lambda_builders.actions import ActionFailedError, BaseAction, Purpose
|
|
@@ -21,6 +22,8 @@ from aws_lambda_builders.workflows.python_pip.utils import OSUtils
|
|
|
21
22
|
|
|
22
23
|
LOG = logging.getLogger(__name__)
|
|
23
24
|
|
|
25
|
+
PARENT_PYTHON_PKGS_KEY = "parent_python_packages"
|
|
26
|
+
|
|
24
27
|
|
|
25
28
|
class PythonPipBuildAction(BaseAction):
|
|
26
29
|
NAME = "ResolveDependencies"
|
|
@@ -115,3 +118,49 @@ class PythonPipBuildAction(BaseAction):
|
|
|
115
118
|
LOG.debug(f"Python runtime path '{python_path}' does not contain pip")
|
|
116
119
|
|
|
117
120
|
raise ActionFailedError("Failed to find a Python runtime containing pip on the PATH.")
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
class PythonCreateParentPackagesAction(BaseAction):
|
|
124
|
+
NAME = "CreateParentPackages"
|
|
125
|
+
DESCRIPTION = "Creating parent Python packages"
|
|
126
|
+
PURPOSE = Purpose.COPY_SOURCE
|
|
127
|
+
LANGUAGE = "python"
|
|
128
|
+
|
|
129
|
+
def __init__(self, source_dir, dest_dir, options=None):
|
|
130
|
+
self.source_dir = source_dir
|
|
131
|
+
self.dest_dir = dest_dir
|
|
132
|
+
self.options = options or {}
|
|
133
|
+
|
|
134
|
+
def execute(self):
|
|
135
|
+
pkg_parts = self._get_parent_python_packages()
|
|
136
|
+
if not pkg_parts:
|
|
137
|
+
return
|
|
138
|
+
|
|
139
|
+
source_path = Path(self.source_dir)
|
|
140
|
+
dest_path = Path(self.dest_dir)
|
|
141
|
+
|
|
142
|
+
target_pkg_path = dest_path.joinpath(*pkg_parts)
|
|
143
|
+
try:
|
|
144
|
+
target_pkg_path.mkdir(parents=True, exist_ok=False)
|
|
145
|
+
except FileExistsError:
|
|
146
|
+
LOG.warning("Skipping creating package %s as it would overwrite existing folder", target_pkg_path)
|
|
147
|
+
return
|
|
148
|
+
|
|
149
|
+
for item in source_path.glob(pattern="*"):
|
|
150
|
+
if (dest_path / item.name).exists():
|
|
151
|
+
(dest_path / item.name).rename(target_pkg_path / item.name)
|
|
152
|
+
else:
|
|
153
|
+
LOG.debug(f"{item} does not exist in the build path, skipping.")
|
|
154
|
+
|
|
155
|
+
def _get_parent_python_packages(self) -> Optional[list]:
|
|
156
|
+
"""
|
|
157
|
+
Returns the parent Python packages to be created.
|
|
158
|
+
"""
|
|
159
|
+
if not isinstance(self.options, dict):
|
|
160
|
+
return None
|
|
161
|
+
|
|
162
|
+
parent_python_pkgs = self.options.get(PARENT_PYTHON_PKGS_KEY)
|
|
163
|
+
if isinstance(parent_python_pkgs, str) and len(parent_python_pkgs) > 0:
|
|
164
|
+
return parent_python_pkgs.split(".")
|
|
165
|
+
|
|
166
|
+
return None
|
|
@@ -9,7 +9,7 @@ from aws_lambda_builders.path_resolver import PathResolver
|
|
|
9
9
|
from aws_lambda_builders.workflow import BaseWorkflow, BuildDirectory, BuildInSourceSupport, Capability
|
|
10
10
|
from aws_lambda_builders.workflows.python_pip.validator import PythonRuntimeValidator
|
|
11
11
|
|
|
12
|
-
from .actions import PythonPipBuildAction
|
|
12
|
+
from .actions import PARENT_PYTHON_PKGS_KEY, PythonCreateParentPackagesAction, PythonPipBuildAction
|
|
13
13
|
from .utils import OSUtils, is_experimental_build_improvements_enabled
|
|
14
14
|
|
|
15
15
|
LOG = logging.getLogger(__name__)
|
|
@@ -87,15 +87,15 @@ class PythonPipWorkflow(BaseWorkflow):
|
|
|
87
87
|
self.actions = []
|
|
88
88
|
if not osutils.file_exists(manifest_path):
|
|
89
89
|
LOG.warning("requirements.txt file not found. Continuing the build without dependencies.")
|
|
90
|
-
self.
|
|
90
|
+
self._actions.append(CopySourceAction(source_dir, artifacts_dir, excludes=self.EXCLUDED_FILES))
|
|
91
91
|
return
|
|
92
92
|
|
|
93
93
|
# If a requirements.txt exists, run pip builder before copy action.
|
|
94
94
|
if self.download_dependencies:
|
|
95
95
|
if self.dependencies_dir:
|
|
96
96
|
# clean up the dependencies folder before installing
|
|
97
|
-
self.
|
|
98
|
-
self.
|
|
97
|
+
self._actions.append(CleanUpAction(self.dependencies_dir))
|
|
98
|
+
self._actions.append(
|
|
99
99
|
PythonPipBuildAction(
|
|
100
100
|
artifacts_dir,
|
|
101
101
|
scratch_dir,
|
|
@@ -113,11 +113,25 @@ class PythonPipWorkflow(BaseWorkflow):
|
|
|
113
113
|
# when copying downloaded dependencies back to artifacts folder, don't exclude anything
|
|
114
114
|
# symlinking python dependencies is disabled for now since it is breaking sam local commands
|
|
115
115
|
if False and is_experimental_build_improvements_enabled(self.experimental_flags):
|
|
116
|
-
self.
|
|
116
|
+
self._actions.append(LinkSourceAction(self.dependencies_dir, artifacts_dir))
|
|
117
117
|
else:
|
|
118
|
-
self.
|
|
118
|
+
self._actions.append(CopySourceAction(self.dependencies_dir, artifacts_dir))
|
|
119
119
|
|
|
120
|
-
self.
|
|
120
|
+
self._actions.append(CopySourceAction(source_dir, artifacts_dir, excludes=self.EXCLUDED_FILES))
|
|
121
|
+
|
|
122
|
+
@property
|
|
123
|
+
def actions(self):
|
|
124
|
+
"""
|
|
125
|
+
Returns the list of actions to be executed in this workflow.
|
|
126
|
+
If required, creating the parent package(s) must be executed last.
|
|
127
|
+
"""
|
|
128
|
+
if self._should_create_parent_packages():
|
|
129
|
+
return self._actions + [PythonCreateParentPackagesAction(self.source_dir, self.artifacts_dir, self.options)]
|
|
130
|
+
return self._actions
|
|
131
|
+
|
|
132
|
+
@actions.setter
|
|
133
|
+
def actions(self, value):
|
|
134
|
+
self._actions = value
|
|
121
135
|
|
|
122
136
|
def get_resolvers(self):
|
|
123
137
|
"""
|
|
@@ -138,5 +152,13 @@ class PythonPipWorkflow(BaseWorkflow):
|
|
|
138
152
|
major, _ = self.runtime.replace(self.CAPABILITY.language, "").split(".")
|
|
139
153
|
return [f"{self.CAPABILITY.language}{major}"] if major == self.PYTHON_VERSION_THREE else None
|
|
140
154
|
|
|
155
|
+
def _should_create_parent_packages(self):
|
|
156
|
+
"""
|
|
157
|
+
Determines if the parent package(s) should be created based on the options provided.
|
|
158
|
+
"""
|
|
159
|
+
if isinstance(self.options, dict):
|
|
160
|
+
return PARENT_PYTHON_PKGS_KEY in self.options
|
|
161
|
+
return False
|
|
162
|
+
|
|
141
163
|
def get_validators(self):
|
|
142
164
|
return [PythonRuntimeValidator(runtime=self.runtime, architecture=self.architecture)]
|
{aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0/aws_lambda_builders.egg-info}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: aws_lambda_builders
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.58.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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/architecture.py
RENAMED
|
File without changes
|
{aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/binary_path.py
RENAMED
|
File without changes
|
|
File without changes
|
{aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders/path_resolver.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.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
|
|
File without changes
|
|
File without changes
|
{aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.0}/aws_lambda_builders.egg-info/requires.txt
RENAMED
|
File without changes
|
{aws_lambda_builders-1.57.0 → aws_lambda_builders-1.58.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
|
|
File without changes
|