Coverage for jsonschema_diff/core/parameter_combined.py: 83%
24 statements
« prev ^ index » next coverage.py v7.10.5, created at 2025-08-25 07:00 +0000
« prev ^ index » next coverage.py v7.10.5, created at 2025-08-25 07:00 +0000
1from typing import TYPE_CHECKING, Any, Dict
3from .abstraction import Statuses, ToCompare
4from .parameter_base import Compare
6if TYPE_CHECKING:
7 from .parameter_base import LEGEND_RETURN_TYPE
10class CompareCombined(Compare):
11 def __init__(self, *args: Any, **kwargs: Any) -> None:
12 super().__init__(*args, **kwargs)
13 self.dict_compare: Dict[str, ToCompare] = {}
14 self.dict_values: Dict[str, Any] = {}
16 def compare(self) -> Statuses:
17 for c in self.to_compare:
18 if self.status == Statuses.UNKNOWN:
19 self.status = c.status
20 elif self.status != c.status:
21 self.status = Statuses.REPLACED
23 self.dict_compare[c.key] = c
24 self.dict_values[c.key] = c.value
26 return self.status
28 def get_name(self) -> str:
29 raise NotImplementedError("CompareCombined.get_name должен быть переопределен")
31 def render(self, tab_level: int = 0, with_path: bool = True) -> str:
32 raise NotImplementedError("CompareCombined.render должен быть переопределен")
34 @staticmethod
35 def legend() -> "LEGEND_RETURN_TYPE":
36 raise NotImplementedError("CompareCombined.legend должен быть переопределен")