Skip to content

Commit fcb9b53

Browse files
kddejongmumblepins
andauthored
chore(lifecycle) - Add support for to create resource extensions in Python 3.8 and 3.9 (#198)
* feat: add support for python 3.8 and 3.9, switched docker image to mlupin/docker-lambda * Remove python 3.6 Co-authored-by: Daniel Sullivan <[email protected]>
1 parent 7b8be39 commit fcb9b53

File tree

5 files changed

+65
-8
lines changed

5 files changed

+65
-8
lines changed

.github/workflows/pr-ci.yml

+5-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
strategy:
1414
matrix:
1515
os: [ubuntu-latest, macos-latest, windows-latest]
16-
python: [ 3.6, 3.7, 3.8, 3.9 ]
16+
python: [ 3.7, 3.8, 3.9 ]
1717
steps:
1818
- uses: actions/checkout@v3
1919
- name: Set up Python ${{ matrix.python }}
@@ -38,3 +38,7 @@ jobs:
3838
run: ./e2e-test.sh python36
3939
- name: End to End Resource Packaging Test Python 3.7
4040
run: ./e2e-test.sh python37
41+
- name: End to End Resource Packaging Test Python 3.8
42+
run: ./e2e-test.sh python38
43+
- name: End to End Resource Packaging Test Python 3.9
44+
run: ./e2e-test.sh python39

python/rpdk/python/codegen.py

+12
Original file line numberDiff line numberDiff line change
@@ -354,3 +354,15 @@ class Python37LanguagePlugin(Python36LanguagePlugin):
354354
NAME = "python37"
355355
RUNTIME = "python3.7"
356356
DOCKER_TAG = 3.7
357+
358+
359+
class Python38LanguagePlugin(Python36LanguagePlugin):
360+
NAME = "python38"
361+
RUNTIME = "python3.8"
362+
DOCKER_TAG = 3.8
363+
364+
365+
class Python39LanguagePlugin(Python36LanguagePlugin):
366+
NAME = "python39"
367+
RUNTIME = "python3.9"
368+
DOCKER_TAG = 3.9

python/rpdk/python/parser.py

+14-6
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
def setup_subparser(subparsers, parents, python_version):
1+
def setup_subparser(subparsers, parents, python_version, python_version_number):
22
parser = subparsers.add_parser(
33
python_version,
4-
description="""This sub command generates IDE and build files for Python {}
5-
""".format(
6-
"3.6" if python_version == "python36" else "3.7"
4+
description=(
5+
"This sub command generates IDE and build files for Python "
6+
"{}".format(python_version_number)
77
),
88
parents=parents,
99
)
@@ -22,8 +22,16 @@ def setup_subparser(subparsers, parents, python_version):
2222

2323

2424
def setup_subparser_python36(subparsers, parents):
25-
return setup_subparser(subparsers, parents, "python36")
25+
return setup_subparser(subparsers, parents, "python36", "3.6")
2626

2727

2828
def setup_subparser_python37(subparsers, parents):
29-
return setup_subparser(subparsers, parents, "python37")
29+
return setup_subparser(subparsers, parents, "python37", "3.7")
30+
31+
32+
def setup_subparser_python38(subparsers, parents):
33+
return setup_subparser(subparsers, parents, "python38", "3.8")
34+
35+
36+
def setup_subparser_python39(subparsers, parents):
37+
return setup_subparser(subparsers, parents, "python39", "3.9")

setup.py

+4
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,14 @@ def find_version(*file_paths):
4040
install_requires=["cloudformation-cli>=0.2.26", "types-dataclasses>=0.1.5"],
4141
entry_points={
4242
"rpdk.v1.languages": [
43+
"python39 = rpdk.python.codegen:Python39LanguagePlugin",
44+
"python38 = rpdk.python.codegen:Python38LanguagePlugin",
4345
"python37 = rpdk.python.codegen:Python37LanguagePlugin",
4446
"python36 = rpdk.python.codegen:Python36LanguagePlugin",
4547
],
4648
"rpdk.v1.parsers": [
49+
"python39 = rpdk.python.parser:setup_subparser_python39",
50+
"python38 = rpdk.python.parser:setup_subparser_python38",
4751
"python37 = rpdk.python.parser:setup_subparser_python37",
4852
"python36 = rpdk.python.parser:setup_subparser_python36",
4953
],

tests/plugin/parser_test.py

+30-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
import argparse
2-
from rpdk.python.parser import setup_subparser_python36, setup_subparser_python37
2+
from rpdk.python.parser import (
3+
setup_subparser_python36,
4+
setup_subparser_python37,
5+
setup_subparser_python38,
6+
setup_subparser_python39,
7+
)
38

49

510
def test_setup_subparser_python36():
@@ -24,3 +29,27 @@ def test_setup_subparser_python37():
2429

2530
assert args.language == "python37"
2631
assert args.use_docker is False
32+
33+
34+
def test_setup_subparser_python38():
35+
parser = argparse.ArgumentParser()
36+
subparsers = parser.add_subparsers(dest="subparser_name")
37+
38+
sub_parser = setup_subparser_python38(subparsers, [])
39+
40+
args = sub_parser.parse_args([])
41+
42+
assert args.language == "python38"
43+
assert args.use_docker is False
44+
45+
46+
def test_setup_subparser_python39():
47+
parser = argparse.ArgumentParser()
48+
subparsers = parser.add_subparsers(dest="subparser_name")
49+
50+
sub_parser = setup_subparser_python39(subparsers, [])
51+
52+
args = sub_parser.parse_args([])
53+
54+
assert args.language == "python39"
55+
assert args.use_docker is False

0 commit comments

Comments
 (0)