pyrit.scenarios.ScenarioResult#

class ScenarioResult(*, scenario_identifier: ScenarioIdentifier, objective_target_identifier: dict, attack_results: dict[str, List[AttackResult]], objective_scorer_identifier: dict | None = None, labels: dict[str, str] | None = None, completion_time: datetime | None = None, id: UUID | None = None)[source]#

Bases: object

Scenario result class for aggregating scenario results.

__init__(*, scenario_identifier: ScenarioIdentifier, objective_target_identifier: dict, attack_results: dict[str, List[AttackResult]], objective_scorer_identifier: dict | None = None, labels: dict[str, str] | None = None, completion_time: datetime | None = None, id: UUID | None = None) None[source]#

Methods

__init__(*, scenario_identifier, ...[, ...])

get_objectives(*[, atomic_attack_name])

Get the list of unique objectives for this scenario.

get_strategies_used()

Get the list of strategies used in this scenario.

objective_achieved_rate(*[, atomic_attack_name])

Get the success rate of this scenario.

get_objectives(*, atomic_attack_name: str | None = None) List[str][source]#

Get the list of unique objectives for this scenario.

Parameters:

atomic_attack_name (Optional[str]) – Name of specific atomic attack to include. If None, includes objectives from all atomic attacks. Defaults to None.

Returns:

Deduplicated list of objectives.

Return type:

List[str]

get_strategies_used() List[str][source]#

Get the list of strategies used in this scenario.

objective_achieved_rate(*, atomic_attack_name: str | None = None) int[source]#

Get the success rate of this scenario.

Parameters:

atomic_attack_name (Optional[str]) – Name of specific atomic attack to calculate rate for. If None, calculates rate across all atomic attacks. Defaults to None.

Returns:

Success rate as a percentage (0-100).

Return type:

int