Transformation functionsยถ

giskard.transformation_function(_fn: Callable[[...], Series | DataFrame] | Type[TransformationFunction] | None = None, row_level=True, cell_level=False, name=None, tags: List[str] | None = None, needs_dataset=False)[source]ยถ

Decorator that registers a function as a transformation function and returns a TransformationFunction instance. It can be used for transforming datasets in a specific way during testing.

Parameters:
  • _fn โ€“ function to decorate. No need to provide this argument, the decorator will automatically take as input the function to decorate.

  • name โ€“ Optional name to use for the function when registering it.

  • tags โ€“ Optional list of tags to use when registering the function.

  • row_level โ€“ Whether to apply the transformation function row-wise (default) or on the full dataframe. If row_level is True, the slicing function will receive a row (either a Series or DataFrame), and if False, it will receive the entire dataframe.

  • cell_level โ€“ Whether to apply the transformation function on the cell level. If True, the slicing function will be applied to individual cells instead of rows or the entire dataframe.

Returns:

The wrapped function or a new instance of TransformationFunction.

class giskard.registry.transformation_function.TransformationFunction(func: Callable[[...], Series | DataFrame] | None, row_level=True, cell_level=False, needs_dataset=False)[source]ยถ
execute(data: Series | DataFrame) Series | DataFrame[source]ยถ

_summary_

Parameters:

data (Union[pd.Series, pd.DataFrame]) โ€“ _description_

Returns:

_description_

Return type:

Union[pd.Series, pd.DataFrame]

Textual transformation functionsยถ

giskard.functions.transformation.keyboard_typo_transformation(rate: SuiteInput | float | None = 0.1) TransformationFunctionยถ

Generate a random typo from words of the text of โ€˜column_nameโ€™ Typos are generated through character substitution based on keyboard proximity

giskard.functions.transformation.text_uppercase(column: SuiteInput | str | None = None) TransformationFunctionยถ
giskard.functions.transformation.text_lowercase(column: SuiteInput | str | None = None) TransformationFunctionยถ
giskard.functions.transformation.text_title_case(column: SuiteInput | str | None = None) TransformationFunctionยถ
giskard.functions.transformation.text_typo(column: SuiteInput | str | None = None, rate: SuiteInput | float | None = 0.05, min_length: SuiteInput | int | None = 10, rng_seed: SuiteInput | int | None = 1729) TransformationFunctionยถ
giskard.functions.transformation.text_typo_from_ocr(column: SuiteInput | str | None = None, rate: SuiteInput | float | None = 0.05, min_length: SuiteInput | int | None = 10, rng_seed: SuiteInput | int | None = 1729) TransformationFunctionยถ
giskard.functions.transformation.text_punctuation_removal(column: SuiteInput | str | None = None) TransformationFunctionยถ
giskard.functions.transformation.text_accent_removal(column: SuiteInput | str | None = None, rate: SuiteInput | float | None = 1.0, rng_seed: SuiteInput | int | None = 1729) TransformationFunctionยถ
giskard.functions.transformation.text_gender_switch(column: SuiteInput | str | None = None) TransformationFunctionยถ
giskard.functions.transformation.text_number_to_word(column: SuiteInput | str | None = None) TransformationFunctionยถ
giskard.functions.transformation.text_religion_switch(column: SuiteInput | str | None = None) TransformationFunctionยถ
giskard.functions.transformation.text_nationality_switch(column: SuiteInput | str | None = None) TransformationFunctionยถ
giskard.functions.transformation.text_typo_from_speech(column: SuiteInput | str | None = None, rng_seed: SuiteInput | int | None = 1729, min_length: SuiteInput | int | None = 10) TransformationFunctionยถ

Special transformations used by the scanยถ

class giskard.scanner.robustness.text_transformations.TextAccentRemovalTransformation(column: str, rate: float = 1.0, rng_seed: int = 1729)[source]ยถ

Bases: TextTransformation

class giskard.scanner.robustness.text_transformations.TextFromOCRTypoTransformation(column: str, rate: float = 0.05, min_length: int = 10, rng_seed: int = 1729)[source]ยถ

Bases: TextTransformation

class giskard.scanner.robustness.text_transformations.TextFromSpeechTypoTransformation(column: str, rng_seed: int = 1729, min_length: int = 10)[source]ยถ

Bases: TextLanguageBasedTransformation

class giskard.scanner.robustness.text_transformations.TextGenderTransformation(column: str, rng_seed: int = 1729)[source]ยถ

Bases: TextLanguageBasedTransformation

class giskard.scanner.robustness.text_transformations.TextLanguageBasedTransformation(column: str, rng_seed: int = 1729)[source]ยถ

Bases: TextTransformation

execute(dataset: Dataset) DataFrame[source]ยถ

_summary_

Parameters:

data (Union[pd.Series, pd.DataFrame]) โ€“ _description_

Returns:

_description_

Return type:

Union[pd.Series, pd.DataFrame]

class giskard.scanner.robustness.text_transformations.TextLowercase(column: str, needs_dataset: bool = False)[source]ยถ

Bases: TextTransformation

execute(data: DataFrame) DataFrame[source]ยถ

_summary_

Parameters:

data (Union[pd.Series, pd.DataFrame]) โ€“ _description_

Returns:

_description_

Return type:

Union[pd.Series, pd.DataFrame]

class giskard.scanner.robustness.text_transformations.TextNationalityTransformation(column: str, rng_seed: int = 1729)[source]ยถ

Bases: TextLanguageBasedTransformation

class giskard.scanner.robustness.text_transformations.TextNumberToWordTransformation(column: str, rng_seed: int = 1729)[source]ยถ

Bases: TextLanguageBasedTransformation

class giskard.scanner.robustness.text_transformations.TextPunctuationRemovalTransformation(*args, **kwargs)[source]ยถ

Bases: TextTransformation

class giskard.scanner.robustness.text_transformations.TextReligionTransformation(column: str, rng_seed: int = 1729)[source]ยถ

Bases: TextLanguageBasedTransformation

class giskard.scanner.robustness.text_transformations.TextTitleCase(column: str, needs_dataset: bool = False)[source]ยถ

Bases: TextTransformation

execute(data: DataFrame) DataFrame[source]ยถ

_summary_

Parameters:

data (Union[pd.Series, pd.DataFrame]) โ€“ _description_

Returns:

_description_

Return type:

Union[pd.Series, pd.DataFrame]

class giskard.scanner.robustness.text_transformations.TextTransformation(column: str, needs_dataset: bool = False)[source]ยถ

Bases: PerturbationFunction

execute(data: DataFrame) DataFrame[source]ยถ

_summary_

Parameters:

data (Union[pd.Series, pd.DataFrame]) โ€“ _description_

Returns:

_description_

Return type:

Union[pd.Series, pd.DataFrame]

class giskard.scanner.robustness.text_transformations.TextTypoTransformation(column: str, rate: float = 0.05, min_length: int = 10, rng_seed: int = 1729)[source]ยถ

Bases: TextTransformation

class giskard.scanner.robustness.text_transformations.TextUppercase(column: str, needs_dataset: bool = False)[source]ยถ

Bases: TextTransformation

execute(data: DataFrame) DataFrame[source]ยถ

_summary_

Parameters:

data (Union[pd.Series, pd.DataFrame]) โ€“ _description_

Returns:

_description_

Return type:

Union[pd.Series, pd.DataFrame]