From a338dde3a61b6f3c35fa42f1eb863c367626a91d Mon Sep 17 00:00:00 2001 From: virtual-josh Date: Wed, 12 Feb 2020 17:57:26 -0800 Subject: [PATCH 1/2] Fixes #534 --- .../botbuilder/core/teams/teams_helper.py | 37 +++++++------------ 1 file changed, 13 insertions(+), 24 deletions(-) diff --git a/libraries/botbuilder-core/botbuilder/core/teams/teams_helper.py b/libraries/botbuilder-core/botbuilder/core/teams/teams_helper.py index f9d294c39..f9b6a30ac 100644 --- a/libraries/botbuilder-core/botbuilder/core/teams/teams_helper.py +++ b/libraries/botbuilder-core/botbuilder/core/teams/teams_helper.py @@ -12,21 +12,21 @@ # Optimization: The dependencies dictionary could be cached here, # and shared between the two methods. +DEPENDICIES = [ + schema_cls + for key, schema_cls in getmembers(schema) + if isinstance(schema_cls, type) and issubclass(schema_cls, (Model, Enum)) +] +DEPENDICIES += [ + schema_cls + for key, schema_cls in getmembers(teams_schema) + if isinstance(schema_cls, type) and issubclass(schema_cls, (Model, Enum)) +] +DEPENDICIES_DICT = {dependency.__name__: dependency for dependency in DEPENDICIES} def deserializer_helper(msrest_cls: Type[Model], dict_to_deserialize: dict) -> Model: - dependencies = [ - schema_cls - for key, schema_cls in getmembers(schema) - if isinstance(schema_cls, type) and issubclass(schema_cls, (Model, Enum)) - ] - dependencies += [ - schema_cls - for key, schema_cls in getmembers(teams_schema) - if isinstance(schema_cls, type) and issubclass(schema_cls, (Model, Enum)) - ] - dependencies_dict = {dependency.__name__: dependency for dependency in dependencies} - deserializer = Deserializer(dependencies_dict) + deserializer = Deserializer(DEPENDICIES_DICT) return deserializer(msrest_cls.__name__, dict_to_deserialize) @@ -34,17 +34,6 @@ def serializer_helper(object_to_serialize: Model) -> dict: if object_to_serialize is None: return None - dependencies = [ - schema_cls - for key, schema_cls in getmembers(schema) - if isinstance(schema_cls, type) and issubclass(schema_cls, (Model, Enum)) - ] - dependencies += [ - schema_cls - for key, schema_cls in getmembers(teams_schema) - if isinstance(schema_cls, type) and issubclass(schema_cls, (Model, Enum)) - ] - dependencies_dict = {dependency.__name__: dependency for dependency in dependencies} - serializer = Serializer(dependencies_dict) + serializer = Serializer(DEPENDICIES_DICT) # pylint: disable=protected-access return serializer._serialize(object_to_serialize) From 7c9cb7ede751f388e41189877c1e01b16e8863f1 Mon Sep 17 00:00:00 2001 From: virtual-josh Date: Tue, 18 Feb 2020 09:17:22 -0800 Subject: [PATCH 2/2] removing comment text --- libraries/botbuilder-core/botbuilder/core/teams/teams_helper.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/libraries/botbuilder-core/botbuilder/core/teams/teams_helper.py b/libraries/botbuilder-core/botbuilder/core/teams/teams_helper.py index f9b6a30ac..766cd6291 100644 --- a/libraries/botbuilder-core/botbuilder/core/teams/teams_helper.py +++ b/libraries/botbuilder-core/botbuilder/core/teams/teams_helper.py @@ -10,8 +10,6 @@ import botbuilder.schema as schema import botbuilder.schema.teams as teams_schema -# Optimization: The dependencies dictionary could be cached here, -# and shared between the two methods. DEPENDICIES = [ schema_cls for key, schema_cls in getmembers(schema)