|
5 | 5 | import json |
6 | 6 | import logging |
7 | 7 | import os |
| 8 | +import re |
| 9 | +import subprocess |
8 | 10 | import sys |
9 | 11 | import time |
10 | 12 | from collections import defaultdict |
|
25 | 27 | from .helpers import read |
26 | 28 | from .helpers import timestamp |
27 | 29 |
|
28 | | - |
29 | 30 | ARN_PREFIXES = { |
30 | 31 | 'us-gov-west-1': 'aws-us-gov', |
31 | 32 | } |
@@ -83,9 +84,9 @@ def cleanup_old_versions( |
83 | 84 |
|
84 | 85 |
|
85 | 86 | def deploy( |
86 | | - src, requirements=None, local_package=None, |
87 | | - config_file='config.yaml', profile_name=None, |
88 | | - preserve_vpc=False |
| 87 | + src, requirements=None, local_package=None, |
| 88 | + config_file='config.yaml', profile_name=None, |
| 89 | + preserve_vpc=False |
89 | 90 | ): |
90 | 91 | """Deploys a new function to AWS Lambda. |
91 | 92 |
|
@@ -155,8 +156,8 @@ def deploy_s3( |
155 | 156 |
|
156 | 157 |
|
157 | 158 | def upload( |
158 | | - src, requirements=None, local_package=None, |
159 | | - config_file='config.yaml', profile_name=None, |
| 159 | + src, requirements=None, local_package=None, |
| 160 | + config_file='config.yaml', profile_name=None, |
160 | 161 | ): |
161 | 162 | """Uploads a new function to AWS S3. |
162 | 163 |
|
@@ -400,21 +401,16 @@ def _install_packages(path, packages): |
400 | 401 | :param list packages: |
401 | 402 | A list of packages to be installed via pip. |
402 | 403 | """ |
403 | | - def _filter_blacklist(package): |
404 | | - blacklist = ['-i', '#', 'Python==', 'python-lambda=='] |
405 | | - return all(package.startswith(entry) is False for entry in blacklist) |
406 | | - filtered_packages = filter(_filter_blacklist, packages) |
| 404 | + bad_packages = ['-i', '#', 'Python==', 'python-lambda'] |
| 405 | + blacklist = re.compile('|'.join([re.escape(pack) for pack in bad_packages])) |
| 406 | + filtered_packages = [pack for pack in packages if not blacklist.search(pack)] |
| 407 | + |
407 | 408 | for package in filtered_packages: |
408 | 409 | if package.startswith('-e '): |
409 | 410 | package = package.replace('-e ', '') |
410 | 411 |
|
411 | 412 | print('Installing {package}'.format(package=package)) |
412 | | - pip_major_version = [int(v) for v in pip.__version__.split('.')][0] |
413 | | - if pip_major_version >= 10: |
414 | | - from pip._internal import main |
415 | | - main(['install', package, '-t', path, '--ignore-installed']) |
416 | | - else: |
417 | | - pip.main(['install', package, '-t', path, '--ignore-installed']) |
| 413 | + subprocess.check_call([sys.executable, '-m', 'pip', 'install', package, '-t', path, '--ignore-installed']) |
418 | 414 |
|
419 | 415 |
|
420 | 416 | def pip_install_to_target(path, requirements=None, local_package=None): |
@@ -587,7 +583,7 @@ def create_function(cfg, path_to_zip_file, use_s3=False, s3_file=None): |
587 | 583 |
|
588 | 584 |
|
589 | 585 | def update_function( |
590 | | - cfg, path_to_zip_file, existing_cfg, use_s3=False, s3_file=None, preserve_vpc=False |
| 586 | + cfg, path_to_zip_file, existing_cfg, use_s3=False, s3_file=None, preserve_vpc=False |
591 | 587 | ): |
592 | 588 | """Updates the code of an existing Lambda function""" |
593 | 589 |
|
|
0 commit comments