-
Notifications
You must be signed in to change notification settings - Fork 22
Closed
Description
Summary
_parse_content accepted **parameters: Unpack[...] across all 28 modality clients, but 27 of 28 never used them. This was a leftover from before affd85a which moved parameter-dependent output transformations to _transform_output. After that refactor, _parse_content should be a pure parser: (self, response_data) -> Content.
Additionally, ModalityClient had 4 generic parameters (In, Out, Params, Content) but its _stream_class method returned type[Stream[Out, Params, Chunk]] where Chunk was a bare class import, not a bound type parameter. mypy saw this as Chunk[Any], making all overrides technically invalid due to generic invariance. Fix: add Chunk as a 5th type parameter.
Changes
- Remove
**parametersfrom baseModalityClient._parse_contentabstract method and_predictcall site - Remove
**parametersfrom all 28 modality-level_parse_contentoverrides - Move parameter-dependent logic to
_transform_outputoverrides (4 audio providers + Google Imagen) - Add
Chunkas 5th type parameter toModalityClient - Update 5 modality base clients, 8 root provider docstrings, 2 scaffold templates, 1 test
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels