diff --git a/awslambdaric/lambda_config.py b/awslambdaric/lambda_config.py index b4e19f7..e49edbe 100644 --- a/awslambdaric/lambda_config.py +++ b/awslambdaric/lambda_config.py @@ -3,15 +3,10 @@ """ import os +import sys class LambdaConfigProvider: - SUPPORTED_THREADPOLLING_ENVS = { - "AWS_Lambda_python3.12", - "AWS_Lambda_python3.13", - "AWS_Lambda_python3.14", - "AWS_Lambda_python3.15", - } SOCKET_PATH_ENV = "_LAMBDA_TELEMETRY_LOG_FD_PROVIDER_SOCKET" AWS_LAMBDA_RUNTIME_API = "AWS_LAMBDA_RUNTIME_API" AWS_LAMBDA_MAX_CONCURRENCY = "AWS_LAMBDA_MAX_CONCURRENCY" @@ -38,10 +33,7 @@ def _parse_concurrency(self): return self._environ.get(self.AWS_LAMBDA_MAX_CONCURRENCY) def _parse_thread_polling(self): - return ( - self._environ.get(self.AWS_EXECUTION_ENV) - in self.SUPPORTED_THREADPOLLING_ENVS - ) + return sys.version_info >= (3, 10) def _parse_lmi_socket_path(self): return self._environ.get(self.SOCKET_PATH_ENV) diff --git a/tests/test_lambda_config.py b/tests/test_lambda_config.py index 6e33afd..616b54b 100644 --- a/tests/test_lambda_config.py +++ b/tests/test_lambda_config.py @@ -42,15 +42,20 @@ def test_concurrency_and_is_multi_concurrent(self): self.assertFalse(cfg2.is_multi_concurrent) def test_use_thread_polling_flag(self): + # Thread polling is enabled based on Python version (>= 3.10), + # not on AWS_EXECUTION_ENV + import sys + env = { "AWS_LAMBDA_RUNTIME_API": "a", - "AWS_EXECUTION_ENV": "AWS_Lambda_python3.12", + "AWS_EXECUTION_ENV": "AWS_Lambda_Image", } cfg = LambdaConfigProvider(["p", "h.fn"], environ=env) - self.assertTrue(cfg.use_thread_polling) - env2 = {"AWS_LAMBDA_RUNTIME_API": "a", "AWS_EXECUTION_ENV": "OTHER"} + self.assertEqual(cfg.use_thread_polling, sys.version_info >= (3, 10)) + + env2 = {"AWS_LAMBDA_RUNTIME_API": "a"} cfg2 = LambdaConfigProvider(["p", "h.fn"], environ=env2) - self.assertFalse(cfg2.use_thread_polling) + self.assertEqual(cfg2.use_thread_polling, sys.version_info >= (3, 10)) def test_lmi_socket_path_property(self): env = {