Skip to content

Commit d263b7a

Browse files
Use Sequence[ModelMessage] instead of list for method arg types (#3040)
1 parent a067def commit d263b7a

File tree

7 files changed

+70
-70
lines changed

7 files changed

+70
-70
lines changed

pydantic_ai_slim/pydantic_ai/_cli.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -228,15 +228,15 @@ async def run_chat(
228228
prog_name: str,
229229
config_dir: Path | None = None,
230230
deps: AgentDepsT = None,
231-
message_history: list[ModelMessage] | None = None,
231+
message_history: Sequence[ModelMessage] | None = None,
232232
) -> int:
233233
prompt_history_path = (config_dir or PYDANTIC_AI_HOME) / PROMPT_HISTORY_FILENAME
234234
prompt_history_path.parent.mkdir(parents=True, exist_ok=True)
235235
prompt_history_path.touch(exist_ok=True)
236236
session: PromptSession[Any] = PromptSession(history=FileHistory(str(prompt_history_path)))
237237

238238
multiline = False
239-
messages: list[ModelMessage] = message_history[:] if message_history else []
239+
messages: list[ModelMessage] = list(message_history) if message_history else []
240240

241241
while True:
242242
try:
@@ -272,7 +272,7 @@ async def ask_agent(
272272
console: Console,
273273
code_theme: str,
274274
deps: AgentDepsT = None,
275-
messages: list[ModelMessage] | None = None,
275+
messages: Sequence[ModelMessage] | None = None,
276276
) -> list[ModelMessage]:
277277
status = Status('[dim]Working on it…[/dim]', console=console)
278278

pydantic_ai_slim/pydantic_ai/agent/__init__.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -415,7 +415,7 @@ def iter(
415415
user_prompt: str | Sequence[_messages.UserContent] | None = None,
416416
*,
417417
output_type: None = None,
418-
message_history: list[_messages.ModelMessage] | None = None,
418+
message_history: Sequence[_messages.ModelMessage] | None = None,
419419
deferred_tool_results: DeferredToolResults | None = None,
420420
model: models.Model | models.KnownModelName | str | None = None,
421421
deps: AgentDepsT = None,
@@ -432,7 +432,7 @@ def iter(
432432
user_prompt: str | Sequence[_messages.UserContent] | None = None,
433433
*,
434434
output_type: OutputSpec[RunOutputDataT],
435-
message_history: list[_messages.ModelMessage] | None = None,
435+
message_history: Sequence[_messages.ModelMessage] | None = None,
436436
deferred_tool_results: DeferredToolResults | None = None,
437437
model: models.Model | models.KnownModelName | str | None = None,
438438
deps: AgentDepsT = None,
@@ -449,7 +449,7 @@ async def iter(
449449
user_prompt: str | Sequence[_messages.UserContent] | None = None,
450450
*,
451451
output_type: OutputSpec[RunOutputDataT] | None = None,
452-
message_history: list[_messages.ModelMessage] | None = None,
452+
message_history: Sequence[_messages.ModelMessage] | None = None,
453453
deferred_tool_results: DeferredToolResults | None = None,
454454
model: models.Model | models.KnownModelName | str | None = None,
455455
deps: AgentDepsT = None,
@@ -566,7 +566,7 @@ async def main():
566566
# Build the initial state
567567
usage = usage or _usage.RunUsage()
568568
state = _agent_graph.GraphAgentState(
569-
message_history=message_history[:] if message_history else [],
569+
message_history=list(message_history) if message_history else [],
570570
usage=usage,
571571
retries=0,
572572
run_step=0,
@@ -690,7 +690,7 @@ def _run_span_end_attributes(
690690
}
691691
else:
692692
attrs = {
693-
'pydantic_ai.all_messages': json.dumps(settings.messages_to_otel_messages(state.message_history)),
693+
'pydantic_ai.all_messages': json.dumps(settings.messages_to_otel_messages(list(state.message_history))),
694694
**settings.system_instructions_attributes(literal_instructions),
695695
}
696696

pydantic_ai_slim/pydantic_ai/agent/abstract.py

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ async def run(
128128
user_prompt: str | Sequence[_messages.UserContent] | None = None,
129129
*,
130130
output_type: None = None,
131-
message_history: list[_messages.ModelMessage] | None = None,
131+
message_history: Sequence[_messages.ModelMessage] | None = None,
132132
deferred_tool_results: DeferredToolResults | None = None,
133133
model: models.Model | models.KnownModelName | str | None = None,
134134
deps: AgentDepsT = None,
@@ -146,7 +146,7 @@ async def run(
146146
user_prompt: str | Sequence[_messages.UserContent] | None = None,
147147
*,
148148
output_type: OutputSpec[RunOutputDataT],
149-
message_history: list[_messages.ModelMessage] | None = None,
149+
message_history: Sequence[_messages.ModelMessage] | None = None,
150150
deferred_tool_results: DeferredToolResults | None = None,
151151
model: models.Model | models.KnownModelName | str | None = None,
152152
deps: AgentDepsT = None,
@@ -163,7 +163,7 @@ async def run(
163163
user_prompt: str | Sequence[_messages.UserContent] | None = None,
164164
*,
165165
output_type: OutputSpec[RunOutputDataT] | None = None,
166-
message_history: list[_messages.ModelMessage] | None = None,
166+
message_history: Sequence[_messages.ModelMessage] | None = None,
167167
deferred_tool_results: DeferredToolResults | None = None,
168168
model: models.Model | models.KnownModelName | str | None = None,
169169
deps: AgentDepsT = None,
@@ -242,7 +242,7 @@ def run_sync(
242242
user_prompt: str | Sequence[_messages.UserContent] | None = None,
243243
*,
244244
output_type: None = None,
245-
message_history: list[_messages.ModelMessage] | None = None,
245+
message_history: Sequence[_messages.ModelMessage] | None = None,
246246
deferred_tool_results: DeferredToolResults | None = None,
247247
model: models.Model | models.KnownModelName | str | None = None,
248248
deps: AgentDepsT = None,
@@ -260,7 +260,7 @@ def run_sync(
260260
user_prompt: str | Sequence[_messages.UserContent] | None = None,
261261
*,
262262
output_type: OutputSpec[RunOutputDataT],
263-
message_history: list[_messages.ModelMessage] | None = None,
263+
message_history: Sequence[_messages.ModelMessage] | None = None,
264264
deferred_tool_results: DeferredToolResults | None = None,
265265
model: models.Model | models.KnownModelName | str | None = None,
266266
deps: AgentDepsT = None,
@@ -277,7 +277,7 @@ def run_sync(
277277
user_prompt: str | Sequence[_messages.UserContent] | None = None,
278278
*,
279279
output_type: OutputSpec[RunOutputDataT] | None = None,
280-
message_history: list[_messages.ModelMessage] | None = None,
280+
message_history: Sequence[_messages.ModelMessage] | None = None,
281281
deferred_tool_results: DeferredToolResults | None = None,
282282
model: models.Model | models.KnownModelName | str | None = None,
283283
deps: AgentDepsT = None,
@@ -348,7 +348,7 @@ def run_stream(
348348
user_prompt: str | Sequence[_messages.UserContent] | None = None,
349349
*,
350350
output_type: None = None,
351-
message_history: list[_messages.ModelMessage] | None = None,
351+
message_history: Sequence[_messages.ModelMessage] | None = None,
352352
deferred_tool_results: DeferredToolResults | None = None,
353353
model: models.Model | models.KnownModelName | str | None = None,
354354
deps: AgentDepsT = None,
@@ -366,7 +366,7 @@ def run_stream(
366366
user_prompt: str | Sequence[_messages.UserContent] | None = None,
367367
*,
368368
output_type: OutputSpec[RunOutputDataT],
369-
message_history: list[_messages.ModelMessage] | None = None,
369+
message_history: Sequence[_messages.ModelMessage] | None = None,
370370
deferred_tool_results: DeferredToolResults | None = None,
371371
model: models.Model | models.KnownModelName | str | None = None,
372372
deps: AgentDepsT = None,
@@ -384,7 +384,7 @@ async def run_stream( # noqa C901
384384
user_prompt: str | Sequence[_messages.UserContent] | None = None,
385385
*,
386386
output_type: OutputSpec[RunOutputDataT] | None = None,
387-
message_history: list[_messages.ModelMessage] | None = None,
387+
message_history: Sequence[_messages.ModelMessage] | None = None,
388388
deferred_tool_results: DeferredToolResults | None = None,
389389
model: models.Model | models.KnownModelName | str | None = None,
390390
deps: AgentDepsT = None,
@@ -560,7 +560,7 @@ def run_stream_events(
560560
user_prompt: str | Sequence[_messages.UserContent] | None = None,
561561
*,
562562
output_type: None = None,
563-
message_history: list[_messages.ModelMessage] | None = None,
563+
message_history: Sequence[_messages.ModelMessage] | None = None,
564564
deferred_tool_results: DeferredToolResults | None = None,
565565
model: models.Model | models.KnownModelName | str | None = None,
566566
deps: AgentDepsT = None,
@@ -577,7 +577,7 @@ def run_stream_events(
577577
user_prompt: str | Sequence[_messages.UserContent] | None = None,
578578
*,
579579
output_type: OutputSpec[RunOutputDataT],
580-
message_history: list[_messages.ModelMessage] | None = None,
580+
message_history: Sequence[_messages.ModelMessage] | None = None,
581581
deferred_tool_results: DeferredToolResults | None = None,
582582
model: models.Model | models.KnownModelName | str | None = None,
583583
deps: AgentDepsT = None,
@@ -593,7 +593,7 @@ def run_stream_events(
593593
user_prompt: str | Sequence[_messages.UserContent] | None = None,
594594
*,
595595
output_type: OutputSpec[RunOutputDataT] | None = None,
596-
message_history: list[_messages.ModelMessage] | None = None,
596+
message_history: Sequence[_messages.ModelMessage] | None = None,
597597
deferred_tool_results: DeferredToolResults | None = None,
598598
model: models.Model | models.KnownModelName | str | None = None,
599599
deps: AgentDepsT = None,
@@ -674,7 +674,7 @@ async def _run_stream_events(
674674
user_prompt: str | Sequence[_messages.UserContent] | None = None,
675675
*,
676676
output_type: OutputSpec[RunOutputDataT] | None = None,
677-
message_history: list[_messages.ModelMessage] | None = None,
677+
message_history: Sequence[_messages.ModelMessage] | None = None,
678678
deferred_tool_results: DeferredToolResults | None = None,
679679
model: models.Model | models.KnownModelName | str | None = None,
680680
deps: AgentDepsT = None,
@@ -726,7 +726,7 @@ def iter(
726726
user_prompt: str | Sequence[_messages.UserContent] | None = None,
727727
*,
728728
output_type: None = None,
729-
message_history: list[_messages.ModelMessage] | None = None,
729+
message_history: Sequence[_messages.ModelMessage] | None = None,
730730
deferred_tool_results: DeferredToolResults | None = None,
731731
model: models.Model | models.KnownModelName | str | None = None,
732732
deps: AgentDepsT = None,
@@ -743,7 +743,7 @@ def iter(
743743
user_prompt: str | Sequence[_messages.UserContent] | None = None,
744744
*,
745745
output_type: OutputSpec[RunOutputDataT],
746-
message_history: list[_messages.ModelMessage] | None = None,
746+
message_history: Sequence[_messages.ModelMessage] | None = None,
747747
deferred_tool_results: DeferredToolResults | None = None,
748748
model: models.Model | models.KnownModelName | str | None = None,
749749
deps: AgentDepsT = None,
@@ -761,7 +761,7 @@ async def iter(
761761
user_prompt: str | Sequence[_messages.UserContent] | None = None,
762762
*,
763763
output_type: OutputSpec[RunOutputDataT] | None = None,
764-
message_history: list[_messages.ModelMessage] | None = None,
764+
message_history: Sequence[_messages.ModelMessage] | None = None,
765765
deferred_tool_results: DeferredToolResults | None = None,
766766
model: models.Model | models.KnownModelName | str | None = None,
767767
deps: AgentDepsT = None,
@@ -1112,7 +1112,7 @@ async def to_cli(
11121112
self: Self,
11131113
deps: AgentDepsT = None,
11141114
prog_name: str = 'pydantic-ai',
1115-
message_history: list[_messages.ModelMessage] | None = None,
1115+
message_history: Sequence[_messages.ModelMessage] | None = None,
11161116
) -> None:
11171117
"""Run the agent in a CLI chat interface.
11181118
@@ -1149,7 +1149,7 @@ def to_cli_sync(
11491149
self: Self,
11501150
deps: AgentDepsT = None,
11511151
prog_name: str = 'pydantic-ai',
1152-
message_history: list[_messages.ModelMessage] | None = None,
1152+
message_history: Sequence[_messages.ModelMessage] | None = None,
11531153
) -> None:
11541154
"""Run the agent in a CLI chat interface with the non-async interface.
11551155

pydantic_ai_slim/pydantic_ai/agent/wrapper.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ def iter(
7272
user_prompt: str | Sequence[_messages.UserContent] | None = None,
7373
*,
7474
output_type: None = None,
75-
message_history: list[_messages.ModelMessage] | None = None,
75+
message_history: Sequence[_messages.ModelMessage] | None = None,
7676
deferred_tool_results: DeferredToolResults | None = None,
7777
model: models.Model | models.KnownModelName | str | None = None,
7878
deps: AgentDepsT = None,
@@ -89,7 +89,7 @@ def iter(
8989
user_prompt: str | Sequence[_messages.UserContent] | None = None,
9090
*,
9191
output_type: OutputSpec[RunOutputDataT],
92-
message_history: list[_messages.ModelMessage] | None = None,
92+
message_history: Sequence[_messages.ModelMessage] | None = None,
9393
deferred_tool_results: DeferredToolResults | None = None,
9494
model: models.Model | models.KnownModelName | str | None = None,
9595
deps: AgentDepsT = None,
@@ -106,7 +106,7 @@ async def iter(
106106
user_prompt: str | Sequence[_messages.UserContent] | None = None,
107107
*,
108108
output_type: OutputSpec[RunOutputDataT] | None = None,
109-
message_history: list[_messages.ModelMessage] | None = None,
109+
message_history: Sequence[_messages.ModelMessage] | None = None,
110110
deferred_tool_results: DeferredToolResults | None = None,
111111
model: models.Model | models.KnownModelName | str | None = None,
112112
deps: AgentDepsT = None,

pydantic_ai_slim/pydantic_ai/direct.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
import queue
1212
import threading
13-
from collections.abc import Iterator
13+
from collections.abc import Iterator, Sequence
1414
from contextlib import AbstractAsyncContextManager
1515
from dataclasses import dataclass, field
1616
from datetime import datetime
@@ -35,7 +35,7 @@
3535

3636
async def model_request(
3737
model: models.Model | models.KnownModelName | str,
38-
messages: list[messages.ModelMessage],
38+
messages: Sequence[messages.ModelMessage],
3939
*,
4040
model_settings: settings.ModelSettings | None = None,
4141
model_request_parameters: models.ModelRequestParameters | None = None,
@@ -79,15 +79,15 @@ async def main():
7979
"""
8080
model_instance = _prepare_model(model, instrument)
8181
return await model_instance.request(
82-
messages,
82+
list(messages),
8383
model_settings,
8484
model_request_parameters or models.ModelRequestParameters(),
8585
)
8686

8787

8888
def model_request_sync(
8989
model: models.Model | models.KnownModelName | str,
90-
messages: list[messages.ModelMessage],
90+
messages: Sequence[messages.ModelMessage],
9191
*,
9292
model_settings: settings.ModelSettings | None = None,
9393
model_request_parameters: models.ModelRequestParameters | None = None,
@@ -133,7 +133,7 @@ def model_request_sync(
133133
return _get_event_loop().run_until_complete(
134134
model_request(
135135
model,
136-
messages,
136+
list(messages),
137137
model_settings=model_settings,
138138
model_request_parameters=model_request_parameters,
139139
instrument=instrument,
@@ -143,7 +143,7 @@ def model_request_sync(
143143

144144
def model_request_stream(
145145
model: models.Model | models.KnownModelName | str,
146-
messages: list[messages.ModelMessage],
146+
messages: Sequence[messages.ModelMessage],
147147
*,
148148
model_settings: settings.ModelSettings | None = None,
149149
model_request_parameters: models.ModelRequestParameters | None = None,
@@ -191,15 +191,15 @@ async def main():
191191
"""
192192
model_instance = _prepare_model(model, instrument)
193193
return model_instance.request_stream(
194-
messages,
194+
list(messages),
195195
model_settings,
196196
model_request_parameters or models.ModelRequestParameters(),
197197
)
198198

199199

200200
def model_request_stream_sync(
201201
model: models.Model | models.KnownModelName | str,
202-
messages: list[messages.ModelMessage],
202+
messages: Sequence[messages.ModelMessage],
203203
*,
204204
model_settings: settings.ModelSettings | None = None,
205205
model_request_parameters: models.ModelRequestParameters | None = None,
@@ -246,7 +246,7 @@ def model_request_stream_sync(
246246
"""
247247
async_stream_cm = model_request_stream(
248248
model=model,
249-
messages=messages,
249+
messages=list(messages),
250250
model_settings=model_settings,
251251
model_request_parameters=model_request_parameters,
252252
instrument=instrument,

0 commit comments

Comments
 (0)