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
8 changes: 8 additions & 0 deletions giskard/core/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ def _get_plugin_method_full_name(func):

def create_test_function_id(func):
from giskard.ml_worker.testing.registry.registry import plugins_root

is_relative = Path(inspect.getfile(func)).is_relative_to(plugins_root)
if is_relative:
full_name = _get_plugin_method_full_name(func)
Expand Down Expand Up @@ -273,6 +274,13 @@ def extract_code(self, callable_obj):
logger.info(f"Failed to extract test function code {self.full_name}: %s" % e)
return code

@staticmethod
def default_doc(description: str) -> str:
doc = CallableDocumentation()
doc.description = description
doc.parameters = {}
return json.dumps(doc.to_dict())

@staticmethod
def extract_doc(func) -> Optional[str]:
if not func.__doc__:
Expand Down
2 changes: 1 addition & 1 deletion giskard/scanner/robustness/text_transformations.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ def __init__(self, column):
self.meta.name = self.name
self.meta.display_name = self.name
self.meta.tags = ["pickle", "scan"]
self.meta.doc = "Automatically generated transformation function"
self.meta.doc = self.meta.default_doc("Automatically generated transformation function")

def __str__(self):
return self.name
Expand Down
5 changes: 3 additions & 2 deletions giskard/slicing/slice.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
# @TODO: simplify this module, don’t need this complexity.
from typing import Callable, Dict, List, Sequence

import itertools
import operator
import re
Expand All @@ -8,7 +10,6 @@

import numpy as np
import pandas as pd
from typing import Callable, Sequence, List, Dict

from ..core.core import DatasetProcessFunctionMeta, DatasetProcessFunctionType
from ..ml_worker.testing.registry.slicing_function import SlicingFunction
Expand Down Expand Up @@ -304,7 +305,7 @@ def __init__(self, query: Query):
self.meta.name = str(self)
self.meta.display_name = str(self)
self.meta.tags = ["pickle", "scan"]
self.meta.doc = '{"description": "Automatically generated slicing function.", "parameters": {}}'
self.meta.doc = self.meta.default_doc("Automatically generated slicing function")
self.meta.uuid = str(uuid.uuid5(uuid.NAMESPACE_OID, self.meta.name))

def execute(self, data: pd.DataFrame):
Expand Down
22 changes: 11 additions & 11 deletions giskard/slicing/text_slicer.py
Original file line number Diff line number Diff line change
@@ -1,21 +1,20 @@
import os
import copy
from typing import Optional, Sequence

import copy
import os

import numpy as np
import pandas as pd

from ..ml_worker.testing.registry.registry import get_object_uuid

from ..core.core import DatasetProcessFunctionMeta

from .base import BaseSlicer
from .slice import Query, QueryBasedSliceFunction, ContainsWord
from .utils import get_slicer
from ..client.python_utils import warning
from ..core.core import DatasetProcessFunctionMeta
from ..datasets.base import Dataset
from ..ml_worker.testing.registry.registry import get_object_uuid
from ..ml_worker.testing.registry.slicing_function import SlicingFunction
from ..slicing.category_slicer import CategorySlicer
from .base import BaseSlicer
from .slice import ContainsWord, Query, QueryBasedSliceFunction
from .utils import get_slicer


class TextSlicer(BaseSlicer):
Expand Down Expand Up @@ -162,7 +161,8 @@ class VectorizerError(ValueError):


def _make_vectorizer(data: pd.Series, tfidf=False, **kwargs):
from sklearn.feature_extraction.text import TfidfVectorizer, CountVectorizer
from sklearn.feature_extraction.text import CountVectorizer, TfidfVectorizer

from .stop_words import sw_en, sw_fr

raw_stopwords = sw_en + sw_fr
Expand Down Expand Up @@ -195,7 +195,7 @@ def __init__(self, query: Query, feature: str, provider: str):
self.meta.name = str(self)
self.meta.display_name = str(self)
self.meta.tags = ["pickle", "scan"]
self.meta.doc = "Automatically generated slicing function"
self.meta.doc = self.meta.default_doc("Automatically generated slicing function")

def execute(self, dataset: Dataset) -> pd.DataFrame:
metadata = dataset.column_meta[self.feature, self.provider]
Expand Down