Coverage for /home/admin/Documents/AI/applications/lexigram-dev/lexigram/experimental/ai/lexigram-ai-relay/src/lexigram/ai/relay/mappers/openai_responses/stream.py: 82%

11 statements  

« prev     ^ index     » next       coverage.py v7.15.4, created at 2026-08-25 07:19 +0800

1"""Stream conversion stubs for the OpenAI Responses mapper.""" 

2 

3from __future__ import annotations 

4 

5from typing import TYPE_CHECKING, Any 

6 

7from lexigram.ai.relay.errors import unsupported_feature 

8from lexigram.contracts.ai.exceptions import RelayError 

9from lexigram.contracts.ai.relay.ir import StreamDelta, StreamState 

10from lexigram.contracts.core.result import Err, Result 

11 

12if TYPE_CHECKING: 

13 from lexigram.ai.relay.mappers.openai_responses import OpenAIResponsesMapper 

14 

15 

16class StreamMixin: 

17 """Stream conversion for the OpenAI Responses format. 

18 

19 Stream conversion is deferred to the shared stream lifecycle task and 

20 reports ``unsupported_feature`` until then. 

21 """ 

22 

23 def stream_to_delta( 

24 self: OpenAIResponsesMapper, 

25 event: Any, 

26 *, 

27 state: StreamState, 

28 ) -> Result[tuple[StreamDelta, ...], RelayError]: 

29 """Stream conversion is deferred to the shared stream lifecycle task.""" 

30 return Err( 

31 unsupported_feature( 

32 "openai_responses stream conversion is not implemented yet" 

33 ) 

34 ) 

35 

36 def delta_to_stream( 

37 self: OpenAIResponsesMapper, 

38 delta: StreamDelta, 

39 *, 

40 state: StreamState, 

41 ) -> Result[tuple[Any, ...], RelayError]: 

42 """Stream emission is deferred to the shared stream lifecycle task.""" 

43 return Err( 

44 unsupported_feature( 

45 "openai_responses stream conversion is not implemented yet" 

46 ) 

47 )