blob: 79475d2ba02b759ec19c52a5383381b08b820bf3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
"""Module hosting functionality about reporting."""
from __future__ import annotations
from dataclasses import dataclass, field
@dataclass(order=True)
class TagStats:
"""Tag statistics."""
order: int = 0 # to be computed based on rule's profile
tag: str = "" # rule effective id (can be multiple tags per rule id)
count: int = 0 # total number of occurrences
warning: bool = False # set true if listed in warn_list
profile: str = ""
associated_tags: list[str] = field(default_factory=list)
class SummarizedResults:
"""The statistics about an ansible-lint run."""
failures: int = 0
warnings: int = 0
fixed_failures: int = 0
fixed_warnings: int = 0
tag_stats: dict[str, TagStats] = {}
passed_profile: str = ""
@property
def fixed(self) -> int:
"""Get total fixed count."""
return self.fixed_failures + self.fixed_warnings
def sort(self) -> None:
"""Sort tag stats by tag name."""
self.tag_stats = dict(sorted(self.tag_stats.items(), key=lambda t: t[1]))
|