Source code for deepparse.comparer.formatted_compared_addresses_tags

from dataclasses import dataclass
from typing import Dict

from .formatted_compared_addresses import FormattedComparedAddresses


[docs]@dataclass(frozen=True) class FormattedComparedAddressesTags(FormattedComparedAddresses): """ A formatted compared address of two already tagged addresses. """ def _get_probs(self) -> Dict: """ Get the tags from the parsing with their associated probabilities, the method needs to be implemented in each class because they don't use the probabilities the same way. """ return { self.origin[0]: self.first_address.address_parsed_components, self.origin[1]: self.second_address.address_parsed_components } def _get_probs_of_tags(self, verbose: bool = True) -> str: """ Takes the tags and their probabilities for the report. """ formatted_str = "" if verbose: formatted_str += "Probabilities of parsed tags: \n" for index, tuple_dict in enumerate(self._get_probs().items()): key, value = tuple_dict formatted_str += key + ": " formatted_str += str(value) + "\n" if index == 0: formatted_str += "\n" return formatted_str def _comparison_report_builder(self) -> str: """ Builds the core of a comparison report for the different comparisons. Since the procedure to make a tags comparison and the raw addresses comparison is different, the comparison report is not the same for the two. It is then implemented in each specific class. """ formatted_str = "" intro_str = "Comparison report of tags for parsed address: " if self.identical: formatted_str += intro_str + "Identical\n\n" else: formatted_str += intro_str + "Not equivalent\n\n" formatted_str += "Raw address: " + self.first_address.raw_address + "\n\n\n" formatted_str += "Tags: \n" formatted_str += self.origin[0] + ": " + str(self.first_address.to_list_of_tuples()) + "\n\n" formatted_str += self.origin[1] + ": " + str(self.second_address.to_list_of_tuples()) + "\n\n\n" if self.with_prob: formatted_str += self._get_probs_of_tags() if not self.identical: formatted_str += "\n" formatted_str += "Addresses tags differences between the two parsing:\n" formatted_str += self._get_tags_diff_color(self.origin[0], self.origin[1]) return formatted_str