Represents examples used in scenarios for parameterization. Attributes: line_number (Optional[int]): The line number where the examples start. name (Optional[str]): The name of the examples. example_params (List[str]): The names of the parameters for the examples.
| 86 | |
| 87 | @dataclass(eq=False) |
| 88 | class Examples: |
| 89 | """Represents examples used in scenarios for parameterization. |
| 90 | |
| 91 | Attributes: |
| 92 | line_number (Optional[int]): The line number where the examples start. |
| 93 | name (Optional[str]): The name of the examples. |
| 94 | example_params (List[str]): The names of the parameters for the examples. |
| 95 | examples (List[Sequence[str]]): The list of example rows. |
| 96 | """ |
| 97 | |
| 98 | line_number: int | None = None |
| 99 | name: str | None = None |
| 100 | example_params: list[str] = field(default_factory=list) |
| 101 | examples: list[Sequence[str]] = field(default_factory=list) |
| 102 | tags: set[str] = field(default_factory=set) |
| 103 | |
| 104 | def set_param_names(self, keys: Iterable[str]) -> None: |
| 105 | """Set the parameter names for the examples. |
| 106 | |
| 107 | Args: |
| 108 | keys (Iterable[str]): The parameter names to set. |
| 109 | """ |
| 110 | self.example_params = [str(key) for key in keys] |
| 111 | |
| 112 | def add_example(self, values: Sequence[str]) -> None: |
| 113 | """Add a new example row. |
| 114 | |
| 115 | Args: |
| 116 | values (Sequence[str]): The values for the example row. |
| 117 | """ |
| 118 | self.examples.append([str(value) if value is not None else "" for value in values]) |
| 119 | |
| 120 | def as_contexts(self) -> Iterable[dict[str, Any]]: |
| 121 | """Generate contexts for the examples. |
| 122 | |
| 123 | Yields: |
| 124 | Dict[str, Any]: A dictionary mapping parameter names to their values for each example row. |
| 125 | """ |
| 126 | for row in self.examples: |
| 127 | assert len(self.example_params) == len(row) |
| 128 | yield dict(zip(self.example_params, row)) |
| 129 | |
| 130 | def __bool__(self) -> bool: |
| 131 | """Check if there are any examples. |
| 132 | |
| 133 | Returns: |
| 134 | bool: True if there are examples, False otherwise. |
| 135 | """ |
| 136 | return bool(self.examples) |
| 137 | |
| 138 | |
| 139 | @dataclass(eq=False) |
no outgoing calls
no test coverage detected
searching dependent graphs…