From d832cdcdb693288fadff62e4f867414cb1679de0 Mon Sep 17 00:00:00 2001 From: Vincent Biret Date: Thu, 26 Jun 2025 12:20:53 -0400 Subject: [PATCH 1/2] fix: optional type definition for on before event in parse node Signed-off-by: Vincent Biret --- .../abstractions/kiota_abstractions/serialization/parse_node.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/abstractions/kiota_abstractions/serialization/parse_node.py b/packages/abstractions/kiota_abstractions/serialization/parse_node.py index 8ba306ec..8248c022 100644 --- a/packages/abstractions/kiota_abstractions/serialization/parse_node.py +++ b/packages/abstractions/kiota_abstractions/serialization/parse_node.py @@ -177,7 +177,7 @@ def get_bytes_value(self) -> Optional[bytes]: @property @abstractmethod - def on_before_assign_field_values(self) -> Callable[[Parsable], None]: + def on_before_assign_field_values(self) -> Optional[Callable[[Parsable], None]]: """Gets the callback called before the node is deserialized. Returns: From 2bc29087d1860a6ad3212a18888e928930979cc2 Mon Sep 17 00:00:00 2001 From: Vincent Biret Date: Thu, 26 Jun 2025 12:24:45 -0400 Subject: [PATCH 2/2] fix: events assignments should be checked Signed-off-by: Vincent Biret --- .../form/kiota_serialization_form/form_parse_node.py | 6 ++++-- .../json/kiota_serialization_json/json_parse_node.py | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/serialization/form/kiota_serialization_form/form_parse_node.py b/packages/serialization/form/kiota_serialization_form/form_parse_node.py index 6f5bc5fa..60716391 100644 --- a/packages/serialization/form/kiota_serialization_form/form_parse_node.py +++ b/packages/serialization/form/kiota_serialization_form/form_parse_node.py @@ -330,8 +330,10 @@ def try_get_anything(self, value: Any) -> Any: def _create_new_node(self, node: Any) -> FormParseNode: new_node: FormParseNode = FormParseNode(node) - new_node.on_before_assign_field_values = self.on_before_assign_field_values - new_node.on_after_assign_field_values = self.on_after_assign_field_values + if self.on_before_assign_field_values: + new_node.on_before_assign_field_values = self.on_before_assign_field_values + if self.on_after_assign_field_values: + new_node.on_after_assign_field_values = self.on_after_assign_field_values return new_node def _get_fields(self, raw_value: str) -> dict[str, str]: diff --git a/packages/serialization/json/kiota_serialization_json/json_parse_node.py b/packages/serialization/json/kiota_serialization_json/json_parse_node.py index 4b2d548d..671d60fd 100644 --- a/packages/serialization/json/kiota_serialization_json/json_parse_node.py +++ b/packages/serialization/json/kiota_serialization_json/json_parse_node.py @@ -348,6 +348,8 @@ def try_get_anything(self, value: Any) -> Any: def _create_new_node(self, node: Any) -> JsonParseNode: new_node: JsonParseNode = JsonParseNode(node) - new_node.on_before_assign_field_values = self.on_before_assign_field_values - new_node.on_after_assign_field_values = self.on_after_assign_field_values + if self.on_before_assign_field_values: + new_node.on_before_assign_field_values = self.on_before_assign_field_values + if self.on_after_assign_field_values: + new_node.on_after_assign_field_values = self.on_after_assign_field_values return new_node