Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion build_scripts/gen_api_md.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@

# Import sibling script for post-generation TOC validation.
sys.path.insert(0, str(Path(__file__).parent))
import validate_docs # noqa: E402
import validate_docs

API_JSON_DIR = Path("doc/_api")
API_MD_DIR = Path("doc/api")
Expand Down
2 changes: 1 addition & 1 deletion build_scripts/preview_server.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@


class GitHubPagesHandler(http.server.SimpleHTTPRequestHandler):
def send_head(self): # noqa: D401, N802 - inherited interface
def send_head(self): # inherited interface
path = self.translate_path(self.path)
# Default behavior: try the path as-is (file or dir-with-index).
if os.path.isdir(path):
Expand Down
9 changes: 6 additions & 3 deletions pyrit/auth/azure_auth.py
Original file line number Diff line number Diff line change
Expand Up @@ -412,7 +412,8 @@ def get_speech_config(resource_id: Union[str, None], key: Union[str, None], regi
ValueError: If neither key/region nor resource_id/region is provided.
"""
try:
import azure.cognitiveservices.speech as speechsdk # noqa: F811
# Runtime import; the TYPE_CHECKING binding at module top is for type annotations only.
import azure.cognitiveservices.speech as speechsdk
except ModuleNotFoundError as e:
logger.error(
"Could not import azure.cognitiveservices.speech. "
Expand Down Expand Up @@ -463,7 +464,8 @@ async def get_speech_config_async(
"""
if token_provider:
try:
import azure.cognitiveservices.speech as speechsdk # noqa: F811
# Runtime import; the TYPE_CHECKING binding at module top is for type annotations only.
import azure.cognitiveservices.speech as speechsdk
except ModuleNotFoundError as e:
logger.error(
"Could not import azure.cognitiveservices.speech. "
Expand Down Expand Up @@ -495,7 +497,8 @@ def get_speech_config_from_default_azure_credential(resource_id: str, region: st
ModuleNotFoundError: If azure.cognitiveservices.speech is not installed.
"""
try:
import azure.cognitiveservices.speech as speechsdk # noqa: F811
# Runtime import; the TYPE_CHECKING binding at module top is for type annotations only.
import azure.cognitiveservices.speech as speechsdk
except ModuleNotFoundError as e:
logger.error(
"Could not import azure.cognitiveservices.speech. "
Expand Down
2 changes: 1 addition & 1 deletion pyrit/common/display_response.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ async def display_image_response_async(response_piece: MessagePiece) -> None:
image = Image.open(image_stream)

# Jupyter built-in display function only works in notebooks.
display(image) # type: ignore[ty:unresolved-reference] # noqa: F821
display(image) # type: ignore[ty:unresolved-reference]
if response_piece.response_error == "blocked":
logger.info("---\nContent blocked, cannot show a response.\n---")

Expand Down
100 changes: 50 additions & 50 deletions pyrit/datasets/seed_datasets/remote/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,183 +9,183 @@

from pyrit.datasets.seed_datasets.remote.aegis_ai_content_safety_dataset import (
_AegisContentSafetyDataset,
) # noqa: F401
)
from pyrit.datasets.seed_datasets.remote.agent_threat_rules_dataset import (
ATRCategory,
ATRDetectionField,
ATRVariationType,
_AgentThreatRulesDataset,
) # noqa: F401
)
from pyrit.datasets.seed_datasets.remote.aya_redteaming_dataset import (
_AyaRedteamingDataset,
) # noqa: F401
)
from pyrit.datasets.seed_datasets.remote.babelscape_alert_dataset import (
_BabelscapeAlertDataset,
) # noqa: F401
)
from pyrit.datasets.seed_datasets.remote.beaver_tails_dataset import (
_BeaverTailsDataset,
) # noqa: F401
)
from pyrit.datasets.seed_datasets.remote.categorical_harmful_qa_dataset import (
_CategoricalHarmfulQADataset,
) # noqa: F401
)
from pyrit.datasets.seed_datasets.remote.cbt_bench_dataset import (
_CBTBenchDataset,
) # noqa: F401
)
from pyrit.datasets.seed_datasets.remote.ccp_sensitive_prompts_dataset import (
_CCPSensitivePromptsDataset,
) # noqa: F401
)
from pyrit.datasets.seed_datasets.remote.coconot_dataset import (
CoCoNotCategory,
CoCoNotSplit,
_CoCoNotContrastDataset,
_CoCoNotRefusalDataset,
) # noqa: F401
)
from pyrit.datasets.seed_datasets.remote.comic_jailbreak_dataset import (
COMIC_JAILBREAK_TEMPLATES,
ComicJailbreakTemplateConfig,
_ComicJailbreakDataset,
) # noqa: F401
)
from pyrit.datasets.seed_datasets.remote.dangerous_qa_dataset import (
_DangerousQADataset,
) # noqa: F401
)
from pyrit.datasets.seed_datasets.remote.darkbench_dataset import (
_DarkBenchDataset,
) # noqa: F401
)
from pyrit.datasets.seed_datasets.remote.decoding_trust_toxicity_dataset import (
DecodingTrustToxicitySubset,
_DecodingTrustToxicityDataset,
) # noqa: F401
)
from pyrit.datasets.seed_datasets.remote.equitymedqa_dataset import (
_EquityMedQADataset,
) # noqa: F401
)
from pyrit.datasets.seed_datasets.remote.figstep_dataset import (
FigStepCategory,
FigStepVariant,
_FigStepDataset,
) # noqa: F401
)
from pyrit.datasets.seed_datasets.remote.forbidden_questions_dataset import (
_ForbiddenQuestionsDataset,
) # noqa: F401
)
from pyrit.datasets.seed_datasets.remote.harmbench_dataset import (
_HarmBenchDataset,
) # noqa: F401
)
from pyrit.datasets.seed_datasets.remote.harmbench_multimodal_dataset import (
_HarmBenchMultimodalDataset,
) # noqa: F401
)
from pyrit.datasets.seed_datasets.remote.harmful_qa_dataset import (
_HarmfulQADataset,
) # noqa: F401
)
from pyrit.datasets.seed_datasets.remote.hixstest_dataset import (
HiXSTestLanguage,
_HiXSTestDataset,
) # noqa: F401
)
from pyrit.datasets.seed_datasets.remote.jailbreakv_28k_dataset import (
_JailbreakV28KDataset,
) # noqa: F401
)
from pyrit.datasets.seed_datasets.remote.jailbreakv_redteam_2k_dataset import (
_JailbreakVRedteam2KDataset,
) # noqa: F401
)
from pyrit.datasets.seed_datasets.remote.jbb_behaviors_dataset import (
_JBBBehaviorsDataset,
) # noqa: F401
)
from pyrit.datasets.seed_datasets.remote.librai_do_not_answer_dataset import (
_LibrAIDoNotAnswerDataset,
) # noqa: F401
from pyrit.datasets.seed_datasets.remote.llm_latent_adversarial_training_dataset import ( # noqa: F401
)
from pyrit.datasets.seed_datasets.remote.llm_latent_adversarial_training_dataset import (
_LLMLatentAdversarialTrainingDataset,
)
from pyrit.datasets.seed_datasets.remote.medsafetybench_dataset import (
_MedSafetyBenchDataset,
) # noqa: F401
)
from pyrit.datasets.seed_datasets.remote.mlcommons_ailuminate_dataset import (
_MLCommonsAILuminateDataset,
) # noqa: F401
)
from pyrit.datasets.seed_datasets.remote.mm_safetybench_dataset import (
MMSafetyBenchCategory,
MMSafetyBenchVariant,
_MMSafetyBenchDataset,
) # noqa: F401
)
from pyrit.datasets.seed_datasets.remote.moral_integrity_corpus_dataset import (
_MICDataset,
) # noqa: F401
)
from pyrit.datasets.seed_datasets.remote.mossbench_dataset import (
MossBenchOversensitivityType,
_MossBenchDataset,
) # noqa: F401
)
from pyrit.datasets.seed_datasets.remote.msts_dataset import (
_MSTSDataset,
) # noqa: F401
from pyrit.datasets.seed_datasets.remote.multilingual_vulnerability_dataset import ( # noqa: F401
)
from pyrit.datasets.seed_datasets.remote.multilingual_vulnerability_dataset import (
_MultilingualVulnerabilityDataset,
)
from pyrit.datasets.seed_datasets.remote.or_bench_dataset import (
_ORBench80KDataset,
_ORBenchHardDataset,
_ORBenchToxicDataset,
) # noqa: F401
)
from pyrit.datasets.seed_datasets.remote.pku_safe_rlhf_dataset import (
_PKUSafeRLHFDataset,
) # noqa: F401
)
from pyrit.datasets.seed_datasets.remote.promptintel_dataset import (
PromptIntelCategory,
PromptIntelSeverity,
_PromptIntelDataset,
) # noqa: F401
)
from pyrit.datasets.seed_datasets.remote.red_team_social_bias_dataset import (
_RedTeamSocialBiasDataset,
) # noqa: F401
)
from pyrit.datasets.seed_datasets.remote.remote_dataset_loader import (
_RemoteDatasetLoader,
)
from pyrit.datasets.seed_datasets.remote.salad_bench_dataset import (
_SaladBenchDataset,
) # noqa: F401
)
from pyrit.datasets.seed_datasets.remote.sgxstest_dataset import (
SGXSTestLabel,
_SGXSTestDataset,
) # noqa: F401
)
from pyrit.datasets.seed_datasets.remote.simple_safety_tests_dataset import (
_SimpleSafetyTestsDataset,
) # noqa: F401
)
from pyrit.datasets.seed_datasets.remote.siuo_dataset import (
SIUOCategory,
_SIUODataset,
) # noqa: F401
)
from pyrit.datasets.seed_datasets.remote.sorry_bench_dataset import (
_SorryBenchDataset,
) # noqa: F401
)
from pyrit.datasets.seed_datasets.remote.sosbench_dataset import (
_SOSBenchDataset,
) # noqa: F401
)
from pyrit.datasets.seed_datasets.remote.strong_reject_dataset import (
_StrongRejectDataset,
) # noqa: F401
)
from pyrit.datasets.seed_datasets.remote.tdc23_redteaming_dataset import (
_TDC23RedteamingDataset,
) # noqa: F401
)
from pyrit.datasets.seed_datasets.remote.toxic_chat_dataset import (
_ToxicChatDataset,
) # noqa: F401
from pyrit.datasets.seed_datasets.remote.transphobia_awareness_dataset import ( # noqa: F401
)
from pyrit.datasets.seed_datasets.remote.transphobia_awareness_dataset import (
_TransphobiaAwarenessDataset,
)
from pyrit.datasets.seed_datasets.remote.visual_leak_bench_dataset import (
VisualLeakBenchCategory,
VisualLeakBenchPIIType,
_VisualLeakBenchDataset,
) # noqa: F401
)
from pyrit.datasets.seed_datasets.remote.vlguard_dataset import (
VLGuardCategory,
VLGuardSubcategory,
VLGuardSubset,
_VLGuardDataset,
) # noqa: F401
)
from pyrit.datasets.seed_datasets.remote.vlsu_multimodal_dataset import (
_VLSUMultimodalDataset,
) # noqa: F401
)
from pyrit.datasets.seed_datasets.remote.xstest_dataset import (
_XSTestDataset,
) # noqa: F401
)

__all__ = [
"CoCoNotCategory",
Expand Down
2 changes: 1 addition & 1 deletion pyrit/executor/attack/printer/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
from pyrit.common.deprecation import print_deprecation_message


def __getattr__(name: str) -> type: # noqa: N807
def __getattr__(name: str) -> type:
if name == "ConsoleAttackResultPrinter":
from pyrit.output.attack_result.pretty import PrettyAttackResultMemoryPrinter

Expand Down
2 changes: 1 addition & 1 deletion pyrit/executor/attack/printer/console_printer.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
from pyrit.common.deprecation import print_deprecation_message


def __getattr__(name: str) -> type: # noqa: N807
def __getattr__(name: str) -> type:
if name == "ConsoleAttackResultPrinter":
from pyrit.output.attack_result.pretty import PrettyAttackResultMemoryPrinter

Expand Down
2 changes: 1 addition & 1 deletion pyrit/executor/attack/printer/markdown_printer.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
from pyrit.common.deprecation import print_deprecation_message


def __getattr__(name: str) -> type: # noqa: N807
def __getattr__(name: str) -> type:
if name == "MarkdownAttackResultPrinter":
from pyrit.output.attack_result.markdown import MarkdownAttackResultMemoryPrinter

Expand Down
2 changes: 1 addition & 1 deletion pyrit/executor/promptgen/core/prompt_generator_strategy.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ class PromptGeneratorStrategyContext(StrategyContext, ABC):
"""Base class for all prompt generator strategy contexts."""


class PromptGeneratorStrategyResult(StrategyResult, ABC): # noqa: B024
class PromptGeneratorStrategyResult(StrategyResult, ABC):
"""Base class for all prompt generator strategy results."""


Expand Down
2 changes: 1 addition & 1 deletion pyrit/executor/workflow/core/workflow_strategy.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ class WorkflowContext(StrategyContext, ABC):
"""Base class for all workflow contexts."""


class WorkflowResult(StrategyResult, ABC): # noqa: B024
class WorkflowResult(StrategyResult, ABC):
"""Base class for all workflow results."""


Expand Down
2 changes: 1 addition & 1 deletion pyrit/memory/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
]


def __getattr__(name: str) -> Any: # noqa: N807 - module __getattr__ hook must use this name
def __getattr__(name: str) -> Any:
if name == "MemoryExporter":
from pyrit.common.deprecation import print_deprecation_message
from pyrit.memory.memory_exporter import MemoryExporter
Expand Down
2 changes: 1 addition & 1 deletion pyrit/models/messages/message_piece.py
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ class MessagePiece(BaseModel):
validate_assignment=False,
)

id: uuid.UUID = Field(default_factory=uuid4) # noqa: A003
id: uuid.UUID = Field(default_factory=uuid4)
role: ChatMessageRole
conversation_id: str = Field(default_factory=lambda: str(uuid4()))
sequence: int = -1
Expand Down
2 changes: 1 addition & 1 deletion pyrit/models/results/strategy_result.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
StrategyResultT = TypeVar("StrategyResultT", bound="StrategyResult")


class StrategyResult(BaseModel, ABC): # noqa: B024
class StrategyResult(BaseModel, ABC):
"""Base class for all strategy results."""

model_config = ConfigDict(
Expand Down
2 changes: 1 addition & 1 deletion pyrit/models/scenario_result.py
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ class ScenarioResult(BaseModel):
)

#: Scenario result ID.
id: uuid.UUID = Field(default_factory=uuid.uuid4) # noqa: A003
id: uuid.UUID = Field(default_factory=uuid.uuid4)
#: Identifier for the executed scenario.
scenario_identifier: ScenarioIdentifier
#: Target identifier.
Expand Down
2 changes: 1 addition & 1 deletion pyrit/models/score.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ class Score(BaseModel):
validate_assignment=False,
)

id: uuid.UUID | str = Field(default_factory=uuid4) # noqa: A003
id: uuid.UUID | str = Field(default_factory=uuid4)

# The value the scorer ended up with; e.g. "true" (if true_false) or "0.5" (if float_scale)
score_value: str
Expand Down
4 changes: 2 additions & 2 deletions pyrit/models/seeds/seed_dataset.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,12 @@
from pydantic import BaseModel, ConfigDict, Field, model_validator

from pyrit.models.literals import SeedType # noqa: TC001 (runtime-required by Pydantic field annotations)
from pyrit.models.seeds.seed import ( # noqa: TC001 (AwareDatetimeUTC is runtime-required by Pydantic)
from pyrit.models.seeds.seed import ( # AwareDatetimeUTC is runtime-required by Pydantic
AwareDatetimeUTC,
Seed,
)
from pyrit.models.seeds.seed_attack_group import SeedAttackGroup
from pyrit.models.seeds.seed_group import ( # noqa: TC001 (runtime-required by Pydantic field annotations)
from pyrit.models.seeds.seed_group import ( # runtime-required by Pydantic field annotations
PROMPT_ONLY_SEED_KEYS,
SeedGroup,
SeedUnion,
Expand Down
Loading
Loading