pyrit.prompt_converter.ZalgoConverter#

class ZalgoConverter(*, intensity: int = 10, seed: int | None = None, indices: List[int] | None = None, keywords: List[str] | None = None, proportion: float | None = None, regex: str | Pattern | None = None)[source]#

Bases: WordLevelConverter

Converts text into cursed Zalgo text using combining Unicode marks.

__init__(*, intensity: int = 10, seed: int | None = None, indices: List[int] | None = None, keywords: List[str] | None = None, proportion: float | None = None, regex: str | Pattern | None = None)[source]#

Initializes the converter with the specified selection parameters.

This class allows for selection of words to convert based on various criteria. Only one selection parameter may be provided at a time (indices, keywords, proportion, or regex). If no selection parameter is provided, all words will be converted.

Parameters:
  • intensity (int) – Number of combining marks per character (higher = more cursed). Default is 10.

  • seed (Optional[int]) – Optional seed for reproducible output.

  • indices (Optional[List[int]]) – Specific indices of words to convert.

  • keywords (Optional[List[str]]) – Keywords to select words for conversion.

  • proportion (Optional[float]) – Proportion of randomly selected words to convert [0.0-1.0].

  • regex (Optional[Union[str, re.Pattern]]) – Regex pattern to match words for conversion.

Methods

__init__(*[, intensity, seed, indices, ...])

Initializes the converter with the specified selection parameters.

convert_async(*, prompt[, input_type])

Converts the given prompt into the target format supported by the converter.

convert_tokens_async(*, prompt[, ...])

Converts substrings within a prompt that are enclosed by specified start and end tokens.

convert_word_async(word)

Converts a single word into the target format supported by the converter.

get_identifier()

Returns an identifier dictionary for the converter.

input_supported(input_type)

Checks if the input type is supported by the converter.

join_words(words)

Provides a way for subclasses to override the default behavior of joining words.

output_supported(output_type)

Checks if the output type is supported by the converter.

validate_input(prompt)

Validates the input before processing (can be overridden by subclasses).

Attributes

supported_input_types

Returns a list of supported input types for the converter.

supported_output_types

Returns a list of supported output types for the converter.

async convert_word_async(word: str) str[source]#

Converts a single word into the target format supported by the converter.

Parameters:

word (str) – The word to be converted.

Returns:

The converted word.

Return type:

str

validate_input(prompt: str) None[source]#

Validates the input before processing (can be overridden by subclasses).