From 137e79702e2c0660e60d21b04e67e222a435894f Mon Sep 17 00:00:00 2001 From: Rodrigo Brandao Date: Wed, 19 Aug 2026 15:11:08 -0700 Subject: [PATCH 1/4] Expanding typing argument type for load_configuration_from_env --- .../activity/config/_load_configuration.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/libraries/microsoft-agents-activity/microsoft_agents/activity/config/_load_configuration.py b/libraries/microsoft-agents-activity/microsoft_agents/activity/config/_load_configuration.py index 9d54c740..66d216dd 100644 --- a/libraries/microsoft-agents-activity/microsoft_agents/activity/config/_load_configuration.py +++ b/libraries/microsoft-agents-activity/microsoft_agents/activity/config/_load_configuration.py @@ -1,18 +1,19 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. -from typing import Any +from typing import Any, Mapping +from copy import copy from ._configure_logging import _configure_logging -def load_configuration_from_env(env_vars: dict[str, Any]) -> dict: +def load_configuration_from_env(env_vars: Mapping[str, Any]) -> dict: """ Parses environment variables and returns a dictionary with the relevant configuration. """ - vars = env_vars.copy() + local_vars = copy(env_vars) result = {} - for key, value in vars.items(): + for key, value in local_vars.items(): levels = key.split("__") current_level = result last_level = None From c4ba3a1640be36f5a820f7d3df70aabec492b7ce Mon Sep 17 00:00:00 2001 From: Rodrigo Brandao Date: Wed, 19 Aug 2026 15:16:51 -0700 Subject: [PATCH 2/4] Fix' --- .../microsoft_agents/activity/config/_load_configuration.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libraries/microsoft-agents-activity/microsoft_agents/activity/config/_load_configuration.py b/libraries/microsoft-agents-activity/microsoft_agents/activity/config/_load_configuration.py index 66d216dd..8c851fc8 100644 --- a/libraries/microsoft-agents-activity/microsoft_agents/activity/config/_load_configuration.py +++ b/libraries/microsoft-agents-activity/microsoft_agents/activity/config/_load_configuration.py @@ -2,7 +2,6 @@ # Licensed under the MIT License. from typing import Any, Mapping -from copy import copy from ._configure_logging import _configure_logging @@ -11,7 +10,7 @@ def load_configuration_from_env(env_vars: Mapping[str, Any]) -> dict: """ Parses environment variables and returns a dictionary with the relevant configuration. """ - local_vars = copy(env_vars) + local_vars = dict(env_vars) result = {} for key, value in local_vars.items(): levels = key.split("__") From 5ec987345e9224ef1110daf4827405accb8620d1 Mon Sep 17 00:00:00 2001 From: Rodrigo Brandao Date: Wed, 19 Aug 2026 15:18:51 -0700 Subject: [PATCH 3/4] Improving coverage --- .../config/test_load_configuration.py | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/tests/activity/config/test_load_configuration.py b/tests/activity/config/test_load_configuration.py index 26b881b1..aba83ad1 100644 --- a/tests/activity/config/test_load_configuration.py +++ b/tests/activity/config/test_load_configuration.py @@ -1,3 +1,5 @@ +from types import MappingProxyType + from microsoft_agents.activity import load_configuration_from_env from tests._common import create_env_var_dict @@ -101,3 +103,21 @@ def test_load_configuration_from_env(): input_dict = create_env_var_dict(ENV_RAW) config = load_configuration_from_env(input_dict) assert config == ENV_DICT + + +def test_load_configuration_from_read_only_mapping(): + input_mapping = MappingProxyType(create_env_var_dict(ENV_RAW)) + + config = load_configuration_from_env(input_mapping) + + assert config == ENV_DICT + + +def test_load_configuration_from_empty_mapping(): + config = load_configuration_from_env({}) + + assert config == { + "AGENTAPPLICATION": {}, + "CONNECTIONS": {}, + "CONNECTIONSMAP": [], + } From 01eed86b70359010ef1ef78b02ecf044156e57ef Mon Sep 17 00:00:00 2001 From: Rodrigo Brandao Date: Wed, 19 Aug 2026 15:19:44 -0700 Subject: [PATCH 4/4] Updated changelog.md --- changelog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/changelog.md b/changelog.md index f8d47dfe..2dd03ba8 100644 --- a/changelog.md +++ b/changelog.md @@ -6,6 +6,7 @@ ## Developer Experience - **Authentication Configuration Validation**: Added validation for certificate, federated credential, and workload identity authentication settings +- **Configuration Loading**: Expanded `load_configuration_from_env` to accept any mapping type ---