From bec268e2d22e8749f3f38b8feef1102e8037d1ab Mon Sep 17 00:00:00 2001 From: Romulo Quidute Filho Date: Tue, 1 Sep 2026 09:21:22 -0300 Subject: [PATCH] Fix ApiClient.send() return type to include None (#1097) send() explicitly returns None for 204 responses / type_=None, but was declared -> T | str, which doesn't include None. Running mypy on a freshly generated client (scripts/generate_client.sh) fails with: api_client.py:117: error: Incompatible return value type (got "None", expected "T | str") [return-value] Fix the annotation in both the checked-in generated file and the generator template it comes from (scripts/datamodel_generate_client.py), so future regenerations don't reintroduce the error. Fixes #1097 --- scripts/datamodel_generate_client.py | 2 +- th_cli/api_lib_autogen/api_client.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/datamodel_generate_client.py b/scripts/datamodel_generate_client.py index 1ce959a..c207133 100755 --- a/scripts/datamodel_generate_client.py +++ b/scripts/datamodel_generate_client.py @@ -800,7 +800,7 @@ def request_sync(self, *, type_: Any, **kwargs: Any) -> Any: """ return get_event_loop().run_until_complete(self.request(type_=type_, **kwargs)) - async def send(self, request: Request, type_: Type[T]) -> T | str: + async def send(self, request: Request, type_: Type[T]) -> T | str | None: response = await self.middleware(request, self.send_inner) if response.status_code in [200, 201, 204]: try: diff --git a/th_cli/api_lib_autogen/api_client.py b/th_cli/api_lib_autogen/api_client.py index 4d7d04c..f5b905a 100644 --- a/th_cli/api_lib_autogen/api_client.py +++ b/th_cli/api_lib_autogen/api_client.py @@ -108,7 +108,7 @@ def request_sync(self, *, type_: Any, **kwargs: Any) -> Any: """ return get_event_loop().run_until_complete(self.request(type_=type_, **kwargs)) - async def send(self, request: Request, type_: Type[T]) -> T | str: + async def send(self, request: Request, type_: Type[T]) -> T | str | None: response = await self.middleware(request, self.send_inner) if response.status_code in [200, 201, 204]: try: