From 6c09e516817139595c4feff910b59a56ae3da2bb Mon Sep 17 00:00:00 2001 From: Maksim Andrianov Date: Tue, 26 May 2020 14:33:38 +0300 Subject: [PATCH] [python][generator] Added 'filt' option. --- tools/python/maps_generator/checks/check.py | 24 ++++++++++++--------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/tools/python/maps_generator/checks/check.py b/tools/python/maps_generator/checks/check.py index 776e3b6055..0df842233c 100644 --- a/tools/python/maps_generator/checks/check.py +++ b/tools/python/maps_generator/checks/check.py @@ -55,12 +55,12 @@ class Check(ABC): def get_result(self) -> Any: pass - def print(self, _print=print, silent_if_no_results=False): - s = self.formatted_string(silent_if_no_results) + def print(self, silent_if_no_results=False, filt=lambda x: Екгу, print_=print): + s = self.formatted_string(silent_if_no_results, filt=filt) if s: - _print(s) + print_(s) - def formatted_string(self, silent_if_no_results=False) -> str: + def formatted_string(self, silent_if_no_results=False, **kwargs) -> str: pass @@ -110,7 +110,7 @@ class CompareCheck(Check): ) return True - def formatted_string(self, silent_if_no_results=False) -> str: + def formatted_string(self, silent_if_no_results=False, **kwargs) -> str: assert self.result if silent_if_no_results and self.result.arrow == Arrow.zero: @@ -160,11 +160,15 @@ class CompareCheckSet(Check): def get_result(self,) -> List[ResLine]: return [c.get_result() for c in self._with_result()] - def formatted_string(self, silent_if_no_results=False, offset=0) -> str: + def formatted_string( + self, silent_if_no_results=False, filt=lambda x: True, _offset=0 + ) -> str: sets = filter(lambda c: isinstance(c, CompareCheckSet), self._with_result()) checks = filter(lambda c: isinstance(c, CompareCheck), self._with_result()) checks = sorted(checks, key=lambda c: c.get_result().diff, reverse=True,) + checks = filter(lambda c: filt(c.get_result()), checks) + sets = list(sets) checks = list(checks) @@ -173,20 +177,20 @@ class CompareCheckSet(Check): return "" head = [ - f"{' ' * offset}Check set[{self.name}]:", + f"{' ' * _offset}Check set[{self.name}]:", ] lines = [] if no_results: - lines.append(f"{' ' * offset}No results.") + lines.append(f"{' ' * _offset}No results.") for c in checks: s = c.formatted_string(silent_if_no_results) if s: - lines.append(f"{' ' * offset + ' '}{s}") + lines.append(f"{' ' * _offset + ' '}{s}") for s in sets: - s = s.formatted_string(silent_if_no_results, offset + 1) + s = s.formatted_string(silent_if_no_results, filt, _offset + 1) if s: lines.append(s)