Example #1
0
    def get_sourcestr_representation(self):
        """
                DCharacterFRO.get_sourcestr_representation

                Return a string.
        """

        # .......................................................................
        # unknown char ? Nothing to do :
        # .......................................................................
        if self.unknown_char:
            if self.dstring_object.options["anonymize the unknown characters"] == "yes":
                return UNKNOWN_CHAR_SYMBOL
            else:
                return self.base_char

        # .......................................................................
        # ok, the function can analyse <self> :
        # .......................................................................
        res = []

        if self.base_char is not None:
            if self.punctuation:
                # punctuation symbol :
                res.append(self.base_char)
            elif not self.capital_letter:
                # lower case :
                res.append(SYMB_LOWER_CASE.get_default_symbol(self.base_char))
            else:
                # upper case :
                res.append(SYMB_UPPER_CASE.get_default_symbol(self.base_char))

        if self.stress == 1:
            res.append(DEFAULTSYMB__STRESS1)
        if self.stress == 2:
            res.append(DEFAULTSYMB__STRESS2)
        elif self.stress == 3:
            res.append(DEFAULTSYMB__STRESS12)
        elif self.stress == 4:
            res.append(DEFAULTSYMB__STRESS3)

        if self.cedilla is True:
            res.append(DEFAULTSYMB__CEDILLA)

        res = "".join(res)

        # (1/2) composition with unicodedata.normalize :
        res = unicodedata.normalize("NFC", res)
        # (2/2) composition with COMPLETE_NORMALIZE_NFC :
        for src, dest in COMPLETE_NORMALIZE_NFC:
            res = res.replace(src, dest)

        return res