Skip to content

Commit 98bda6a

Browse files
Eve KazarianCopilot
andcommitted
fix: remove @DataClass from SplitPayloadAttackResult for pydantic compat
AttackResult is now a pydantic BaseModel on main. The @DataClass decorator was preventing pydantic field inheritance (specifically atomic_attack_identifier). Also fix Optional[] -> X | None per ruff. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent 376f7d7 commit 98bda6a

1 file changed

Lines changed: 5 additions & 6 deletions

File tree

pyrit/executor/attack/multi_turn/split_payload.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import logging
99
from dataclasses import dataclass, field
1010
from pathlib import Path
11-
from typing import TYPE_CHECKING, Any, Optional, cast
11+
from typing import TYPE_CHECKING, Any, cast
1212

1313
from pyrit.common.apply_defaults import REQUIRED_VALUE, apply_defaults
1414
from pyrit.common.path import EXECUTOR_SEED_PROMPT_PATH
@@ -80,7 +80,6 @@ class SplitPayloadAttackContext(MultiTurnAttackContext[Any]):
8080
design_pattern: str = "component_assembly"
8181

8282

83-
@dataclass
8483
class SplitPayloadAttackResult(AttackResult):
8584
"""Result of the split-payload attack strategy execution."""
8685

@@ -161,9 +160,9 @@ def __init__(
161160
*,
162161
objective_target: PromptTarget = REQUIRED_VALUE, # type: ignore[ty:invalid-parameter-default]
163162
attack_adversarial_config: AttackAdversarialConfig,
164-
attack_converter_config: Optional[AttackConverterConfig] = None,
165-
attack_scoring_config: Optional[AttackScoringConfig] = None,
166-
prompt_normalizer: Optional[PromptNormalizer] = None,
163+
attack_converter_config: AttackConverterConfig | None = None,
164+
attack_scoring_config: AttackScoringConfig | None = None,
165+
prompt_normalizer: PromptNormalizer | None = None,
167166
design_pattern: str = "component_assembly",
168167
max_turns: int = 5,
169168
max_regenerations: int = 3,
@@ -270,7 +269,7 @@ def __init__(
270269
self._max_turns = max_turns
271270
self._max_regenerations = max_regenerations
272271

273-
def get_attack_scoring_config(self) -> Optional[AttackScoringConfig]:
272+
def get_attack_scoring_config(self) -> AttackScoringConfig | None:
274273
"""
275274
Get the attack scoring configuration.
276275

0 commit comments

Comments
 (0)