Skip to content

Commit b001e02

Browse files
committed
pre-commit
1 parent aa0c790 commit b001e02

4 files changed

Lines changed: 18 additions & 37 deletions

File tree

pyrit/memory/memory_models.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1001,6 +1001,9 @@ def __init__(self, *, entry: ScenarioResult) -> None:
10011001
10021002
Args:
10031003
entry (ScenarioResult): The scenario result object to convert into a database entry.
1004+
1005+
Raises:
1006+
ValueError: If ``entry.objective_target_identifier`` is ``None``.
10041007
"""
10051008
self.id = entry.id
10061009
self.scenario_name = entry.scenario_identifier.name

pyrit/models/attack_result.py

Lines changed: 9 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,17 @@
88
from dataclasses import dataclass, field
99
from datetime import datetime, timezone
1010
from enum import Enum
11-
from typing import TYPE_CHECKING, Any, Optional, TypeVar
12-
11+
from typing import Any, Optional, TypeVar
12+
13+
from pyrit.common.deprecation import print_deprecation_message
14+
from pyrit.identifiers.atomic_attack_identifier import build_atomic_attack_identifier
15+
from pyrit.identifiers.component_identifier import ComponentIdentifier
16+
from pyrit.models.conversation_reference import ConversationReference, ConversationType
17+
from pyrit.models.message_piece import MessagePiece
18+
from pyrit.models.retry_event import RetryEvent
19+
from pyrit.models.score import Score
1320
from pyrit.models.strategy_result import StrategyResult
1421

15-
if TYPE_CHECKING:
16-
from pyrit.identifiers.component_identifier import ComponentIdentifier
17-
from pyrit.models.conversation_reference import ConversationReference
18-
from pyrit.models.message_piece import MessagePiece
19-
from pyrit.models.retry_event import RetryEvent
20-
from pyrit.models.score import Score
21-
22-
from pyrit.models.conversation_reference import ConversationType
23-
2422
AttackResultT = TypeVar("AttackResultT", bound="AttackResult")
2523

2624

@@ -119,8 +117,6 @@ def attack_identifier(self) -> Optional[ComponentIdentifier]:
119117
Optional[ComponentIdentifier]: The attack strategy identifier, or ``None``.
120118
121119
"""
122-
from pyrit.common.deprecation import print_deprecation_message
123-
124120
print_deprecation_message(
125121
old_item="AttackResult.attack_identifier",
126122
new_item="AttackResult.atomic_attack_identifier or get_attack_strategy_identifier()",
@@ -231,8 +227,6 @@ def to_dict(self) -> dict[str, Any]:
231227
Returns:
232228
dict[str, Any]: Serialized payload suitable for REST APIs or persistence.
233229
"""
234-
from pyrit.models.conversation_reference import ConversationReference
235-
236230
return {
237231
"conversation_id": self.conversation_id,
238232
"objective": self.objective,
@@ -274,12 +268,6 @@ def from_dict(cls, data: dict[str, Any]) -> AttackResult:
274268
Returns:
275269
AttackResult: Reconstructed instance.
276270
"""
277-
from pyrit.identifiers.component_identifier import ComponentIdentifier
278-
from pyrit.models.conversation_reference import ConversationReference
279-
from pyrit.models.message_piece import MessagePiece
280-
from pyrit.models.retry_event import RetryEvent
281-
from pyrit.models.score import Score
282-
283271
return cls(
284272
conversation_id=data["conversation_id"],
285273
objective=data["objective"],
@@ -330,16 +318,12 @@ def _add_attack_identifier_compat(cls: type) -> type:
330318
def wrapped_init(self: Any, *args: Any, **kwargs: Any) -> None:
331319
attack_identifier = kwargs.pop("attack_identifier", None)
332320
if attack_identifier is not None:
333-
from pyrit.common.deprecation import print_deprecation_message
334-
335321
print_deprecation_message(
336322
old_item="AttackResult(attack_identifier=...)",
337323
new_item="AttackResult(atomic_attack_identifier=...)",
338324
removed_in="0.15.0",
339325
)
340326
if kwargs.get("atomic_attack_identifier") is None:
341-
from pyrit.identifiers.atomic_attack_identifier import build_atomic_attack_identifier
342-
343327
kwargs["atomic_attack_identifier"] = build_atomic_attack_identifier(
344328
attack_identifier=attack_identifier,
345329
)

pyrit/models/message_piece.py

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,13 @@
99
from uuid import uuid4
1010

1111
from pyrit.common.deprecation import print_deprecation_message
12+
from pyrit.identifiers.component_identifier import ComponentIdentifier
13+
from pyrit.models.data_type_serializer import data_serializer_factory
1214
from pyrit.models.literals import ChatMessageRole, PromptDataType, PromptResponseError
15+
from pyrit.models.score import Score
1316

1417
if TYPE_CHECKING:
15-
from pyrit.identifiers.component_identifier import ComponentIdentifier
1618
from pyrit.models.message import Message
17-
from pyrit.models.score import Score
1819

1920
Originator = Literal["attack", "converter", "undefined", "scorer"]
2021
"""Deprecated: The Originator type alias will be removed in a future release."""
@@ -218,8 +219,6 @@ async def set_sha256_values_async(self) -> None:
218219
Note, this method is async due to the blob retrieval. And because of that, we opted
219220
to take it out of main and setter functions. The disadvantage is that it must be explicitly called.
220221
"""
221-
from pyrit.models.data_type_serializer import data_serializer_factory
222-
223222
original_serializer = data_serializer_factory(
224223
category="prompt-memory-entries",
225224
data_type=self.original_value_data_type,
@@ -365,9 +364,6 @@ def from_dict(cls, data: dict[str, Any]) -> MessagePiece:
365364
Returns:
366365
MessagePiece: Reconstructed instance.
367366
"""
368-
from pyrit.identifiers.component_identifier import ComponentIdentifier
369-
from pyrit.models.score import Score
370-
371367
return cls(
372368
id=data.get("id"),
373369
role=data.get("role", "user"),

tests/unit/models/test_attack_result.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@
88
from pyrit.identifiers.atomic_attack_identifier import build_atomic_attack_identifier
99
from pyrit.memory.memory_models import AttackResultEntry
1010
from pyrit.models.attack_result import AttackOutcome, AttackResult
11+
from pyrit.models.conversation_reference import ConversationReference, ConversationType
12+
from pyrit.models.message_piece import MessagePiece
1113
from pyrit.models.retry_event import RetryEvent
14+
from pyrit.models.score import Score
1215

1316

1417
class TestAttackResultDeprecation:
@@ -354,11 +357,6 @@ def test_traceback_truncation(self) -> None:
354357

355358

356359
def test_to_dict_from_dict_roundtrip():
357-
from pyrit.identifiers.component_identifier import ComponentIdentifier
358-
from pyrit.models.conversation_reference import ConversationReference, ConversationType
359-
from pyrit.models.message_piece import MessagePiece
360-
from pyrit.models.score import Score
361-
362360
scorer_id = ComponentIdentifier(
363361
class_name="SelfAskTrueFalseScorer",
364362
class_module="pyrit.score",

0 commit comments

Comments
 (0)