diff --git a/python/rpdk/python/codegen.py b/python/rpdk/python/codegen.py index 2f272fc..331c417 100644 --- a/python/rpdk/python/codegen.py +++ b/python/rpdk/python/codegen.py @@ -274,7 +274,7 @@ def _docker_build(cls, external_path): LOG.debug("command is '%s'", command) volumes = {str(external_path): {"bind": str(internal_path), "mode": "rw"}} - image = f"lambci/lambda:build-{cls.RUNTIME}" + image = f"mlupin/docker-lambda:{cls.RUNTIME}-build" LOG.warning( "Starting Docker build. This may take several minutes if the " "image '%s' needs to be pulled first.", @@ -325,3 +325,13 @@ def _pip_build(cls, base_path): class Python37LanguagePlugin(Python36LanguagePlugin): NAME = "python37" RUNTIME = "python3.7" + + +class Python38LanguagePlugin(Python36LanguagePlugin): + NAME = "python38" + RUNTIME = "python3.8" + + +class Python39LanguagePlugin(Python36LanguagePlugin): + NAME = "python39" + RUNTIME = "python3.9" diff --git a/python/rpdk/python/parser.py b/python/rpdk/python/parser.py index 01d398b..d2c0d88 100644 --- a/python/rpdk/python/parser.py +++ b/python/rpdk/python/parser.py @@ -27,3 +27,11 @@ def setup_subparser_python36(subparsers, parents): def setup_subparser_python37(subparsers, parents): return setup_subparser(subparsers, parents, "python37") + + +def setup_subparser_python38(subparsers, parents): + return setup_subparser(subparsers, parents, "python38") + + +def setup_subparser_python39(subparsers, parents): + return setup_subparser(subparsers, parents, "python39") diff --git a/setup.py b/setup.py index 284e988..85acbcc 100644 --- a/setup.py +++ b/setup.py @@ -41,10 +41,14 @@ def find_version(*file_paths): install_requires=["cloudformation-cli>=0.2.23", "types-dataclasses>=0.1.5"], entry_points={ "rpdk.v1.languages": [ + "python39 = rpdk.python.codegen:Python39LanguagePlugin", + "python38 = rpdk.python.codegen:Python38LanguagePlugin", "python37 = rpdk.python.codegen:Python37LanguagePlugin", "python36 = rpdk.python.codegen:Python36LanguagePlugin", ], "rpdk.v1.parsers": [ + "python39 = rpdk.python.parser:setup_subparser_python39", + "python38 = rpdk.python.parser:setup_subparser_python38", "python37 = rpdk.python.parser:setup_subparser_python37", "python36 = rpdk.python.parser:setup_subparser_python36", ], diff --git a/tests/plugin/parser_test.py b/tests/plugin/parser_test.py index 6a75d90..3feeaaf 100644 --- a/tests/plugin/parser_test.py +++ b/tests/plugin/parser_test.py @@ -1,6 +1,11 @@ import argparse -from rpdk.python.parser import setup_subparser_python36, setup_subparser_python37 +from rpdk.python.parser import ( + setup_subparser_python36, + setup_subparser_python37, + setup_subparser_python38, + setup_subparser_python39, +) def test_setup_subparser_python36(): @@ -25,3 +30,27 @@ def test_setup_subparser_python37(): assert args.language == "python37" assert args.use_docker is False + + +def test_setup_subparser_python38(): + parser = argparse.ArgumentParser() + subparsers = parser.add_subparsers(dest="subparser_name") + + sub_parser = setup_subparser_python38(subparsers, []) + + args = sub_parser.parse_args([]) + + assert args.language == "python38" + assert args.use_docker is False + + +def test_setup_subparser_python39(): + parser = argparse.ArgumentParser() + subparsers = parser.add_subparsers(dest="subparser_name") + + sub_parser = setup_subparser_python39(subparsers, []) + + args = sub_parser.parse_args([]) + + assert args.language == "python39" + assert args.use_docker is False