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