[docs]classPythonDeploymentPackage(DeploymentPackage["PythonProject"]):"""AWS Lambda Python Deployment Package."""project:PythonProject@cached_propertydefgitignore_filter(self)->IgnoreParser|None:"""Filter to use when zipping dependencies. This should be overridden by subclasses if a filter should be used. """ifself.project.args.slim:gitignore_filter=IgnoreParser()gitignore_filter.add_rule("**/*.dist-info*",self.project.dependency_directory)gitignore_filter.add_rule("**/*.py[c|d|i|o]",self.project.dependency_directory)gitignore_filter.add_rule("**/__pycache__*",self.project.dependency_directory)ifself.project.args.strip:gitignore_filter.add_rule("**/*.so",self.project.dependency_directory)returngitignore_filterreturnNone
[docs]@staticmethoddefinsert_layer_dir(file_path:Path,relative_to:Path)->Path:"""Insert ``python`` directory into local file path for layer archive. Args: file_path: Path to local file. relative_to: Path to a directory that the file_path will be relative to in the deployment package. """returnrelative_to/f"python/{file_path.relative_to(relative_to)}"