Skip to content

Commit bae7056

Browse files
committed
refactor: remove dead code, rename private helpers to public API
1 parent a5e40cc commit bae7056

5 files changed

Lines changed: 23 additions & 29 deletions

File tree

cubepi/providers/anthropic.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@
2121
Usage,
2222
UserMessage,
2323
adjust_max_tokens_for_thinking,
24-
_invoke_on_payload,
25-
_invoke_on_response,
24+
invoke_on_payload,
25+
invoke_on_response,
2626
)
2727
from cubepi.providers.models import clamp_thinking_level
2828

@@ -93,13 +93,13 @@ async def stream(
9393
async def _produce() -> None:
9494
try:
9595
nonlocal kwargs
96-
kwargs = await _invoke_on_payload(opts.on_payload, kwargs, model)
96+
kwargs = await invoke_on_payload(opts.on_payload, kwargs, model)
9797

9898
async with self._client.messages.stream(**kwargs) as stream:
9999
# Invoke on_response with HTTP metadata if available
100100
http_response = getattr(stream, "response", None)
101101
if http_response is not None:
102-
await _invoke_on_response(
102+
await invoke_on_response(
103103
opts.on_response,
104104
ProviderResponse(
105105
status=http_response.status_code,

cubepi/providers/base.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,7 @@ class StreamOptions(BaseModel):
240240
on_response: OnResponseCallback | None = None
241241

242242

243-
async def _invoke_on_payload(
243+
async def invoke_on_payload(
244244
callback: OnPayloadCallback | None,
245245
payload: dict,
246246
model: Model,
@@ -254,7 +254,7 @@ async def _invoke_on_payload(
254254
return result if isinstance(result, dict) else payload
255255

256256

257-
async def _invoke_on_response(
257+
async def invoke_on_response(
258258
callback: OnResponseCallback | None,
259259
response: ProviderResponse,
260260
model: Model,

cubepi/providers/openai.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@
2222
ToolResultMessage,
2323
Usage,
2424
UserMessage,
25-
_invoke_on_payload,
26-
_invoke_on_response,
25+
invoke_on_payload,
26+
invoke_on_response,
2727
)
2828

2929

@@ -68,14 +68,14 @@ async def stream(
6868
async def _produce() -> None:
6969
try:
7070
nonlocal kwargs
71-
kwargs = await _invoke_on_payload(opts.on_payload, kwargs, model)
71+
kwargs = await invoke_on_payload(opts.on_payload, kwargs, model)
7272

7373
response = await self._client.chat.completions.create(**kwargs)
7474

7575
# Invoke on_response with HTTP metadata if available
7676
http_response = getattr(response, "response", None)
7777
if http_response is not None:
78-
await _invoke_on_response(
78+
await invoke_on_response(
7979
opts.on_response,
8080
ProviderResponse(
8181
status=http_response.status_code,

cubepi/providers/openai_responses.py

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -78,14 +78,8 @@ async def stream(
7878

7979
if system_prompt:
8080
role = "developer" if model.reasoning else "system"
81-
kwargs["instructions"] = system_prompt
82-
# The instructions param uses system/developer role implicitly.
83-
# For explicit role control, prepend to input instead.
8481
kwargs["input"] = [{"role": role, "content": system_prompt}] + api_input
8582

86-
# Remove instructions since we use input-based system prompt
87-
del kwargs["instructions"]
88-
8983
if tools:
9084
kwargs["tools"] = [self._convert_tool(t) for t in tools]
9185

tests/providers/test_hooks.py

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010
Model,
1111
ProviderResponse,
1212
StreamOptions,
13-
_invoke_on_payload,
14-
_invoke_on_response,
13+
invoke_on_payload,
14+
invoke_on_response,
1515
)
1616

1717

@@ -43,26 +43,26 @@ def test_default_headers(self):
4343

4444

4545
# ---------------------------------------------------------------------------
46-
# _invoke_on_payload helper
46+
# invoke_on_payload helper
4747
# ---------------------------------------------------------------------------
4848

4949

5050
class TestInvokeOnPayload:
5151
async def test_none_callback_returns_original(self):
5252
payload = {"model": "test"}
53-
result = await _invoke_on_payload(None, payload, _model())
53+
result = await invoke_on_payload(None, payload, _model())
5454
assert result is payload
5555

5656
async def test_sync_callback_returning_dict_replaces(self):
5757
replacement = {"model": "replaced"}
58-
result = await _invoke_on_payload(
58+
result = await invoke_on_payload(
5959
lambda p, m: replacement, {"model": "original"}, _model()
6060
)
6161
assert result is replacement
6262

6363
async def test_sync_callback_returning_none_keeps_original(self):
6464
original = {"model": "original"}
65-
result = await _invoke_on_payload(lambda p, m: None, original, _model())
65+
result = await invoke_on_payload(lambda p, m: None, original, _model())
6666
assert result is original
6767

6868
async def test_async_callback_returning_dict_replaces(self):
@@ -71,7 +71,7 @@ async def test_async_callback_returning_dict_replaces(self):
7171
async def cb(p: dict, m: Model) -> dict:
7272
return replacement
7373

74-
result = await _invoke_on_payload(cb, {"model": "original"}, _model())
74+
result = await invoke_on_payload(cb, {"model": "original"}, _model())
7575
assert result is replacement
7676

7777
async def test_async_callback_returning_none_keeps_original(self):
@@ -80,7 +80,7 @@ async def test_async_callback_returning_none_keeps_original(self):
8080
async def cb(p: dict, m: Model) -> None:
8181
return None
8282

83-
result = await _invoke_on_payload(cb, original, _model())
83+
result = await invoke_on_payload(cb, original, _model())
8484
assert result is original
8585

8686
async def test_callback_receives_correct_args(self):
@@ -92,21 +92,21 @@ def cb(p: dict, m: Model) -> None:
9292

9393
payload = {"model": "test-model"}
9494
model = _model()
95-
await _invoke_on_payload(cb, payload, model)
95+
await invoke_on_payload(cb, payload, model)
9696
assert len(received) == 1
9797
assert received[0][0] is payload
9898
assert received[0][1] is model
9999

100100

101101
# ---------------------------------------------------------------------------
102-
# _invoke_on_response helper
102+
# invoke_on_response helper
103103
# ---------------------------------------------------------------------------
104104

105105

106106
class TestInvokeOnResponse:
107107
async def test_none_callback_is_noop(self):
108108
# Should not raise
109-
await _invoke_on_response(None, ProviderResponse(status=200), _model())
109+
await invoke_on_response(None, ProviderResponse(status=200), _model())
110110

111111
async def test_sync_callback_called(self):
112112
received: list[tuple[ProviderResponse, Model]] = []
@@ -116,7 +116,7 @@ def cb(r: ProviderResponse, m: Model) -> None:
116116

117117
resp = ProviderResponse(status=200, headers={"h": "v"})
118118
model = _model()
119-
await _invoke_on_response(cb, resp, model)
119+
await invoke_on_response(cb, resp, model)
120120
assert len(received) == 1
121121
assert received[0][0] is resp
122122
assert received[0][1] is model
@@ -128,7 +128,7 @@ async def cb(r: ProviderResponse, m: Model) -> None:
128128
received.append(r)
129129

130130
resp = ProviderResponse(status=200)
131-
await _invoke_on_response(cb, resp, _model())
131+
await invoke_on_response(cb, resp, _model())
132132
assert len(received) == 1
133133
assert received[0] is resp
134134

0 commit comments

Comments
 (0)