diff --git a/Pipfile b/Pipfile index 1ce6f3f4db..926fbe2a7d 100644 --- a/Pipfile +++ b/Pipfile @@ -42,7 +42,6 @@ types-colorama = "<0.5.0,>=0.4.3" # # REMINDER: Update "install_requires" deps on setup.py when changing # -bc-python-hcl2 = "==0.4.2" bc-jsonpath-ng = "==1.6.1" pycep-parser = "==0.5.1" tabulate = ">=0.9.0,<0.10.0" @@ -86,6 +85,7 @@ pydantic = ">=2.0.0,<3.0.0" asteval = "==1.0.5" bc-detect-secrets = "==1.5.44" urllib3 = "==1.26.20" +bc-python-hcl2 = "==0.4.3" [requires] python_version = "3.8" diff --git a/Pipfile.lock b/Pipfile.lock index b37d34949a..03fb7631a6 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "0d8dab84c6cd092789e58dd47d59e3906425930a8a98cf84b580b56fd0e10095" + "sha256": "364b8f0d37ac4b2bc694b1451050833a7012c99d63ad827ce1f5b7cb515f86d5" }, "pipfile-spec": 6, "requires": { @@ -178,7 +178,7 @@ "sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c", "sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3" ], - "markers": "python_version >= '3.8'", + "markers": "python_version < '3.11'", "version": "==5.0.1" }, "attrs": { @@ -209,12 +209,12 @@ }, "bc-python-hcl2": { "hashes": [ - "sha256:90d2afbaa2c7e77b7b30bf58180084e11d95287f7c3e19c5bfbdb54ab2fd80e9", - "sha256:ac8ff59fb9bd437ea29b89a7d7c507fd0a1e957845bae9aeac69f2892b8d681e" + "sha256:b0cce4cea16823f7da7fefa0f8177dfb91f51a1befe64ef59d8fe4d5ac616eec", + "sha256:fae62b2a41a675ad330d134d82576526db755f72bbd0e5a850de3d85fc24c40e" ], "index": "pypi", "markers": "python_version >= '3.8'", - "version": "==0.4.2" + "version": "==0.4.3" }, "beartype": { "hashes": [ @@ -275,11 +275,11 @@ }, "certifi": { "hashes": [ - "sha256:0a816057ea3cdefcef70270d2c515e4506bbc954f417fa5ade2021213bb8f0c6", - "sha256:30350364dfe371162649852c63336a15c70c6510c2ad5015b21c2345311805f3" + "sha256:6b31f564a415d79ee77df69d757bb49a5bb53bd9f756cbbe24394ffd6fc1f4b2", + "sha256:8ea99dbdfaaf2ba2f9bac77b9249ef62ec5218e7c2b2e903378ed5fccf765995" ], - "markers": "python_version >= '3.6'", - "version": "==2025.4.26" + "markers": "python_version >= '3.7'", + "version": "==2025.7.14" }, "cffi": { "hashes": [ @@ -694,7 +694,7 @@ "sha256:980862a1d16c9e147a59603677fa2aa5fd82b87f223b6cb870695bcfce830065", "sha256:ac29d5f956f01d5e4bb63102a5a19957f1b9175e45649977264a1416783bb717" ], - "markers": "python_version >= '3.8'", + "markers": "python_version < '3.9'", "version": "==6.4.5" }, "isodate": { @@ -702,7 +702,7 @@ "sha256:28009937d8031054830160fce6d409ed342816b543597cece116d966c6d99e15", "sha256:4cd1aa0f43ca76f4a6c6c0292a85f40b35ec2e43e315b59f06e6d32171a953e6" ], - "markers": "python_version >= '3.7'", + "markers": "python_version < '3.11'", "version": "==0.7.2" }, "jinja2": { @@ -1087,7 +1087,7 @@ "sha256:357d6c9e6a755653cfd78893817c0853af365dd51ec97f3d358a819373bbd174", "sha256:ca27cc078d25c5ad71a9de0a7a330146c4e014c2462d9af19c6b828280649c5e" ], - "markers": "python_version >= '3.6'", + "markers": "python_version < '3.9'", "version": "==1.3.10" }, "ply": { @@ -1472,7 +1472,7 @@ "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'", + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==2.9.0.post0" }, "pyyaml": { @@ -1817,7 +1817,7 @@ "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'", + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==1.17.0" }, "smmap": { @@ -2169,7 +2169,7 @@ "sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c", "sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3" ], - "markers": "python_version >= '3.8'", + "markers": "python_version < '3.11'", "version": "==5.0.1" }, "attrs": { @@ -2194,11 +2194,11 @@ "s3" ], "hashes": [ - "sha256:2cd9cd358874f8995aafdc2e64dde3e1ef7a84000f251dc6c199b895a3bafc57", - "sha256:acb46cef191268ea3242c73131d79a53b6b863d1e8921131745e8a0eade43340" + "sha256:1512ecd1c91bc8d9864993301820be8a34f8cb2fb57f44177b26a594784de3e9", + "sha256:6a041e9d9071b03e7f1eb4ffbf3e9348444371779ce7ada266e7ab6da64155bb" ], "markers": "python_version >= '3.8'", - "version": "==1.38.34" + "version": "==1.39.4" }, "botocore-stubs": { "hashes": [ @@ -2210,11 +2210,11 @@ }, "certifi": { "hashes": [ - "sha256:0a816057ea3cdefcef70270d2c515e4506bbc954f417fa5ade2021213bb8f0c6", - "sha256:30350364dfe371162649852c63336a15c70c6510c2ad5015b21c2345311805f3" + "sha256:6b31f564a415d79ee77df69d757bb49a5bb53bd9f756cbbe24394ffd6fc1f4b2", + "sha256:8ea99dbdfaaf2ba2f9bac77b9249ef62ec5218e7c2b2e903378ed5fccf765995" ], - "markers": "python_version >= '3.6'", - "version": "==2025.4.26" + "markers": "python_version >= '3.7'", + "version": "==2025.7.14" }, "cfgv": { "hashes": [ @@ -2433,7 +2433,7 @@ "sha256:4d111e6e0c13d0644cad6ddaa7ed0261a0b36971f6d23e7ec9b4b9097da78a10", "sha256:b241f5885f560bc56a59ee63ca4c6a8bfa46ae4ad651af316d4e81817bb9fd88" ], - "markers": "python_version >= '3.7'", + "markers": "python_version < '3.11'", "version": "==1.3.0" }, "execnet": { @@ -2589,7 +2589,7 @@ "sha256:980862a1d16c9e147a59603677fa2aa5fd82b87f223b6cb870695bcfce830065", "sha256:ac29d5f956f01d5e4bb63102a5a19957f1b9175e45649977264a1416783bb717" ], - "markers": "python_version >= '3.8'", + "markers": "python_version < '3.9'", "version": "==6.4.5" }, "iniconfig": { @@ -2786,11 +2786,11 @@ }, "mypy-boto3-s3": { "hashes": [ - "sha256:1129d64be1aee863e04f0c92ac8d315578f13ccae64fa199b20ad0950d2b9616", - "sha256:38a45dee5782d5c07ddea07ea50965c4d2ba7e77617c19f613b4c9f80f961b52" + "sha256:aa110de8944cc533babe5ae2dfae89a8fa13b961a7affa6a1c43c383228060e9", + "sha256:e1977ee93ad57a2d9533a397e6255a41ca1b206018762c1cf4614271e6fede89" ], "markers": "python_version >= '3.8'", - "version": "==1.38.26" + "version": "==1.39.2" }, "mypy-extensions": { "hashes": [ @@ -2839,7 +2839,7 @@ "sha256:357d6c9e6a755653cfd78893817c0853af365dd51ec97f3d358a819373bbd174", "sha256:ca27cc078d25c5ad71a9de0a7a330146c4e014c2462d9af19c6b828280649c5e" ], - "markers": "python_version >= '3.6'", + "markers": "python_version < '3.9'", "version": "==1.3.10" }, "platformdirs": { @@ -2989,11 +2989,11 @@ }, "pygments": { "hashes": [ - "sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f", - "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c" + "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887", + "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b" ], "markers": "python_version >= '3.8'", - "version": "==2.19.1" + "version": "==2.19.2" }, "pytest": { "hashes": [ @@ -3045,7 +3045,7 @@ "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'", + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==2.9.0.post0" }, "pyyaml": { @@ -3264,7 +3264,7 @@ "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'", + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==1.17.0" }, "stevedore": { @@ -3384,16 +3384,16 @@ "sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a", "sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7" ], - "markers": "python_version >= '3.8'", + "markers": "python_version < '3.11'", "version": "==2.2.1" }, "types-awscrt": { "hashes": [ - "sha256:49a045f25bbd5ad2865f314512afced933aed35ddbafc252e2268efa8a787e4e", - "sha256:acd04f57119eb15626ab0ba9157fc24672421de56e7bd7b9f61681fedee44e91" + "sha256:a8c4b9d9ae66d616755c322aba75ab9bd793c6fef448917e6de2e8b8cdf66fb4", + "sha256:c019ba91a097e8a31d6948f6176ede1312963f41cdcacf82482ac877cbbcf390" ], "markers": "python_version >= '3.8'", - "version": "==0.27.2" + "version": "==0.27.4" }, "types-cachetools": { "hashes": [ diff --git a/setup.py b/setup.py index 0a2c1d9341..20c741f1eb 100644 --- a/setup.py +++ b/setup.py @@ -65,7 +65,7 @@ def run(self) -> None: ] }, install_requires=[ - "bc-python-hcl2==0.4.2", + "bc-python-hcl2==0.4.3", "bc-detect-secrets==1.5.44", "bc-jsonpath-ng==1.6.1", "pycep-parser==0.5.1", diff --git a/tests/terraform/parser/test_hcl2_load_assumptions.py b/tests/terraform/parser/test_hcl2_load_assumptions.py index 371b80d525..b25ed1772b 100644 --- a/tests/terraform/parser/test_hcl2_load_assumptions.py +++ b/tests/terraform/parser/test_hcl2_load_assumptions.py @@ -323,3 +323,10 @@ def test_splat_expression(self): 'instances': ["${flatten(aws_instance.ubuntu[*].id)}"] } self.go(tf, expect) + + def test_provider_function(self): + tf = "name2 = provider::test2::test(\"a\")" + expect = { + "name2": ["${provider::test2::test(\"a\")}"], + } + self.go(tf, expect)