diff --git a/packages/abstractions/kiota_abstractions/serialization/parsable_factory.py b/packages/abstractions/kiota_abstractions/serialization/parsable_factory.py index 4e5694f..81be436 100644 --- a/packages/abstractions/kiota_abstractions/serialization/parsable_factory.py +++ b/packages/abstractions/kiota_abstractions/serialization/parsable_factory.py @@ -6,6 +6,7 @@ U = TypeVar("U", bound=Parsable) + class ParsableFactory(Parsable, Generic[U]): """Defines the factory for creating parsable objects. """ diff --git a/packages/http/httpx/kiota_http/httpx_request_adapter.py b/packages/http/httpx/kiota_http/httpx_request_adapter.py index 1b8972b..dad1162 100644 --- a/packages/http/httpx/kiota_http/httpx_request_adapter.py +++ b/packages/http/httpx/kiota_http/httpx_request_adapter.py @@ -232,7 +232,9 @@ async def send_collection_async( ) root_node = await self.get_root_parse_node(response, parent_span, parent_span) if root_node: - result:List[ModelType] = root_node.get_collection_of_object_values(parsable_factory) + result: List[ModelType] = root_node.get_collection_of_object_values( + parsable_factory + ) parent_span.set_attribute(DESERIALIZED_MODEL_NAME_KEY, result.__class__.__name__) _deserialized_span.end() return result @@ -282,7 +284,7 @@ async def send_collection_of_primitive_async( values = root_node.get_collection_of_primitive_values(response_type) parent_span.set_attribute(DESERIALIZED_MODEL_NAME_KEY, values.__class__.__name__) _deserialized_span.end() - return values # type: ignore + return values # type: ignore return None finally: parent_span.end() @@ -322,7 +324,7 @@ async def send_primitive_async( if self._should_return_none(response): return None if response_type == "bytes": - return response.content # type: ignore + return response.content # type: ignore _deserialized_span = self._start_local_tracing_span("get_root_parse_node", parent_span) root_node = await self.get_root_parse_node(response, parent_span, parent_span) if not root_node: @@ -341,7 +343,7 @@ async def send_primitive_async( if value is not None: parent_span.set_attribute(DESERIALIZED_MODEL_NAME_KEY, value.__class__.__name__) _deserialized_span.end() - return value # type: ignore + return value # type: ignore exc = TypeError(f"Error handling the response, unexpected type {response_type!r}") parent_span.record_exception(exc) @@ -484,6 +486,7 @@ async def throw_failed_responses( if not root_node: return None + error = None if error_class: error = root_node.get_object_value(error_class) if isinstance(error, APIError):