[docs]defcalc_diff(self)->dict[str,int]:""" Multiple implementation: counts its own status as the number of keys. Complex comparators (e.g. CompareList) override this to return an aggregate. """stats={self.status.name:1}forcompinself.dict_compare.values():ifcomp.status.namenotinstats:stats[comp.status.name]=0stats[comp.status.name]+=1returnstats
[docs]defget_name(self)->str:raiseNotImplementedError("The get_name method must be overridden")
[docs]defrender(self,tab_level:int=0,with_path:bool=True,to_crop:tuple[int,int]=(0,0))->str:raiseNotImplementedError("The render method must be overridden")
@staticmethod
[docs]deflegend()->"LEGEND_RETURN_TYPE":raiseNotImplementedError("The legend method must be overridden")