Source code for whylogs.api.annotations

from types import FunctionType, LambdaType, MethodType
from typing import Optional, Union

from whylogs.api.logger import log
from whylogs.core import DatasetSchema

FuncType = Union[FunctionType, MethodType, LambdaType]


[docs]def profiling(*, schema: Optional[DatasetSchema] = None): # type: ignore def decorated(func: FuncType) -> FunctionType: def wrapper(*args, **kwargs): # type: ignore df = func(*args, **kwargs) df.profiling_results = log(pandas=df, schema=schema) return df return wrapper # type: ignore return decorated