From 0bf1c4b0423920f2ebe50e38785096bf96d657c8 Mon Sep 17 00:00:00 2001 From: chengzeyi Date: Wed, 2 Sep 2026 14:57:48 +0000 Subject: [PATCH] fix: align type contracts with upstream base-class changes - transform_video_edit_request: match the new BaseVideoConfig signature (video_file param, dict-typed headers/extra_body/prefetched_source_data) - get_error_class: type headers as dict | httpx.Headers per the base contract so WaveSpeedError construction type-checks - annotate the base-contract dict params for the type-discipline budget Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_0139Zu5TfHzGVyPeatY9HJAR --- .../wavespeed/image_generation/transformation.py | 5 ++++- litellm/llms/wavespeed/videos/transformation.py | 14 +++++++++----- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/litellm/llms/wavespeed/image_generation/transformation.py b/litellm/llms/wavespeed/image_generation/transformation.py index ff168e6576c..20349275360 100644 --- a/litellm/llms/wavespeed/image_generation/transformation.py +++ b/litellm/llms/wavespeed/image_generation/transformation.py @@ -171,6 +171,9 @@ class WaveSpeedImageGenerationConfig(BaseImageGenerationConfig): return model_response def get_error_class( - self, error_message: str, status_code: int, headers: Mapping[str, str] | httpx.Headers + self, + error_message: str, + status_code: int, + headers: dict | httpx.Headers, # mutable-ok: matches BaseLLMException/base get_error_class contract ) -> WaveSpeedError: return WaveSpeedError(status_code=status_code, message=error_message, headers=headers) diff --git a/litellm/llms/wavespeed/videos/transformation.py b/litellm/llms/wavespeed/videos/transformation.py index a5878fc7fcd..50a0050f510 100644 --- a/litellm/llms/wavespeed/videos/transformation.py +++ b/litellm/llms/wavespeed/videos/transformation.py @@ -25,7 +25,7 @@ from typing import ( ) import httpx -from httpx._types import RequestFiles +from httpx._types import FileContent, RequestFiles from typing_extensions import ReadOnly, TypedDict import litellm @@ -348,9 +348,10 @@ class WaveSpeedVideoConfig(BaseVideoConfig): video_id: str, api_base: str, litellm_params: GenericLiteLLMParams, - headers: Mapping[str, str], - extra_body: Mapping[str, object] | None = None, - prefetched_source_data: object | None = None, + headers: dict, # mutable-ok: matches BaseVideoConfig.transform_video_edit_request signature + video_file: FileContent | None = None, + extra_body: dict[str, Any] | None = None, # mutable-ok: matches base signature + prefetched_source_data: dict[str, Any] | None = None, # mutable-ok: matches base signature ) -> Never: raise NotImplementedError("video edit is not supported for WaveSpeed") @@ -384,6 +385,9 @@ class WaveSpeedVideoConfig(BaseVideoConfig): raise NotImplementedError("video extension is not supported for WaveSpeed") def get_error_class( - self, error_message: str, status_code: int, headers: Mapping[str, str] | httpx.Headers + self, + error_message: str, + status_code: int, + headers: dict | httpx.Headers, # mutable-ok: matches BaseLLMException/base get_error_class contract ) -> WaveSpeedError: return WaveSpeedError(status_code=status_code, message=error_message, headers=headers)