From 383a13da9dbd345bb7f52cb7eaa5c5678635d9f6 Mon Sep 17 00:00:00 2001 From: Behnam Ousat Date: Fri, 22 May 2026 11:38:16 -0700 Subject: [PATCH 1/3] FIX add back print_conversation_async with deprecation warning --- pyrit/output/attack_result/pretty.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pyrit/output/attack_result/pretty.py b/pyrit/output/attack_result/pretty.py index fa4a77b4fd..ce066f35df 100644 --- a/pyrit/output/attack_result/pretty.py +++ b/pyrit/output/attack_result/pretty.py @@ -158,6 +158,16 @@ async def _render_conversation_async( include_reasoning_trace=include_reasoning_trace, ) + async def print_conversation_async( + self, result: AttackResult, *, include_scores: bool = False, include_reasoning_trace: bool = False + ) -> None: + """Use ``write_async`` instead. This method is deprecated.""" + print_deprecation_message(old_item="print_conversation_async", new_item="write_async", removed_in="2.0") + content = await self._render_conversation_async( + result, include_scores=include_scores, include_reasoning_trace=include_reasoning_trace + ) + await self._write_async(content) + async def output_conversation_async( self, result: AttackResult, *, include_scores: bool = False, include_reasoning_trace: bool = False ) -> None: From 87e025d25b4e6b9c968e7c844d3b971cd935c962 Mon Sep 17 00:00:00 2001 From: Behnam Ousat Date: Fri, 22 May 2026 12:55:37 -0700 Subject: [PATCH 2/3] FIX add back print_conversation_async with deprecation warning --- pyrit/output/attack_result/pretty.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pyrit/output/attack_result/pretty.py b/pyrit/output/attack_result/pretty.py index fa4a77b4fd..ce066f35df 100644 --- a/pyrit/output/attack_result/pretty.py +++ b/pyrit/output/attack_result/pretty.py @@ -158,6 +158,16 @@ async def _render_conversation_async( include_reasoning_trace=include_reasoning_trace, ) + async def print_conversation_async( + self, result: AttackResult, *, include_scores: bool = False, include_reasoning_trace: bool = False + ) -> None: + """Use ``write_async`` instead. This method is deprecated.""" + print_deprecation_message(old_item="print_conversation_async", new_item="write_async", removed_in="2.0") + content = await self._render_conversation_async( + result, include_scores=include_scores, include_reasoning_trace=include_reasoning_trace + ) + await self._write_async(content) + async def output_conversation_async( self, result: AttackResult, *, include_scores: bool = False, include_reasoning_trace: bool = False ) -> None: From 2e1ccb1ce9c16de3aa337fe7ec204ae53ccd46ce Mon Sep 17 00:00:00 2001 From: Behnam Ousat Date: Fri, 22 May 2026 13:00:39 -0700 Subject: [PATCH 3/3] test for CC --- tests/unit/output/attack_result/test_pretty.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tests/unit/output/attack_result/test_pretty.py b/tests/unit/output/attack_result/test_pretty.py index d9e4ee75de..b62d7fe2b4 100644 --- a/tests/unit/output/attack_result/test_pretty.py +++ b/tests/unit/output/attack_result/test_pretty.py @@ -339,6 +339,12 @@ async def test_print_result_async_emits_deprecation_warning_and_still_writes(pri assert "ATTACK RESULT" in capsys.readouterr().out +async def test_print_conversation_async_emits_deprecation_warning(printer, attack_result, capsys): + with pytest.warns(DeprecationWarning, match="print_conversation_async"): + await printer.print_conversation_async(attack_result) + assert "No conversation found" in capsys.readouterr().out + + async def test_output_conversation_async_emits_deprecation_warning(printer, attack_result, capsys): with pytest.warns(DeprecationWarning, match="output_conversation_async"): await printer.output_conversation_async(attack_result)