autodrive's picture
Upload 38 files
4815c43 verified
Raw History Blame Contribute Delete
685 Bytes
"""Base Issue class."""
from dataclasses import dataclass, field
from typing import Callable
import numpy as np
import pandas as pd
@dataclass
class Issue:
id: str
name: str
category: str
description: str
severity: str # low | medium | high | critical
default_rate: float
inject: Callable[[pd.DataFrame, float, np.random.Generator], pd.DataFrame]
def __str__(self):
return f"[{self.severity.upper()}] {self.id} ({self.category}): {self.description}"
def pick_rows(df: pd.DataFrame, rate: float, rng: np.random.Generator) -> np.ndarray:
"""Return boolean mask selecting ~rate fraction of rows."""
return rng.random(len(df)) < rate