text_scrambler package
Submodules
text_scrambler.dictionaries module
text_scrambler.text_scrambler module
- class text_scrambler.text_scrambler.Scrambler(confusables_file='/home/docs/checkouts/readthedocs.org/user_builds/text-scrambler/checkouts/latest/docs/../text_scrambler/txt_files/confusablesSummary.txt')[source]
Bases:
object>>> from text_scrambler import Scrambler >>> scr = Scrambler() >>> text = "This is an example" >>> text_1 = scr.scramble(text, level=1) >>> ############# >>> # adding only zwj/zwnj characters >>> print(text, text_1, sep="\n") This is an example This is an example >>> assert text != text_1 >>> print(len(text), len(text_1)) 18 35 >>> # though the texts look similar, the second one has more characters >>> ############# >>> text_2 = scr.scramble(text, level=2) >>> # replacing some latin letters by their cyrillic/greek equivalent >>> print(text_2) Тhiѕ iѕ an ехаmple >>> for char, char_2 in zip(text, text_2): ... if char != char_2: ... print(char, char_2) ... T Т s ѕ s ѕ e е x х a а >>> ############# >>> text_3 = scr.scramble(text, level=3) >>> # adding zwj/zwnj characters and replacing latin letters >>> print(text_3) Thіs iѕ аn eхаmple >>> print(text, text_3, sep="\n") This is an example Thіs iѕ аn eхаmple >>> assert text_3 != text >>> ############# >>> text_4 = scr.scramble(text, level=4) >>> # replacing all characters by any unicode looking like character >>> print(text_4) ⊤𝒽𝐢𝘴 𝘪𝙨 𝞪ռ 𝙚⨯𝚊mρ𝟙ҽ >>> # >>> # generating several versions >>> versions = scr.generate(text, 10, level=4) >>> for txt in versions: ... print(txt) ... 𝕋𝗵𝕚𝔰 𝙞ѕ ɑ𝗇 ꬲ𝗑𝒂m𝛠Ⲓ𝚎 𝔗һ𑣃ƽ ˛ꜱ 𝛼𝐧 𝐞𝖝𝛼m𝜌𝟏ℯ Th𝓲𝔰 ⅈ𝔰 αn ꬲ⤬αm⍴𞸀e 𝗧𝗵i𝑠 i𝖘 ⍺𝘯 𝗲𝔁аm𝘱𝙸𝔢 ⊤𝚑𝑖s ɪ𝚜 𝜶𝑛 𝖾𝘅𝒶m𝛒𝑙𝓮 𝘛h𝙞ꮪ ⅈ𝗌 𝗮𝐧 ꬲᕽ𝓪m𝜌⏽𝓮 𝙏𝕙і𝓈 ıꜱ 𝔞𝕟 𝗲𝕩𝛂mр𐌉𝚎 𝕿Ꮒℹ𝐬 𝗶𝗌 𝛼𝔫 𝗲𝐱𝓪m𝞎𝙡𝖊 ⟙h𝜾ꮪ i𝘴 𝝰𝒏 𝙚ᕽ𝗮m𝗽𝗜𝗲 𝖳հ𝒊s 𝕚𝙨 𝖆𝑛 𝘦𝔁аm𝜌𝐈𝗲 >>> versions = scr.generate(text, 1000, level=1) >>> assert len(versions) == len(set(versions)) >>> # all unique
- generate(text: str, n: int = 1000, level: int = 3) List[str][source]
return a list containing n versions of the text jammed
- Parameters
- Returns
a list of scrambled texts, all differents
- Return type
List[str]
>>> from text_scrambler import Scrambler >>> scr = Scrambler() >>> text = "A cranial nerve nucleus is a collection of neurons in the brain stem that is associated with one or more of the cranial nerves." >>> texts = scr.generate(text, 1000, level=1) >>> assert texts[0] != text >>> for scrambled_text in texts: ... assert text != scrambled_text ... >>> print(texts[0]) A cranial nerve nucleus is a collection of neurons in the brain stem that is associated with one or more of the cranial nerves. >>> # different from the original text
- scramble(text: str, level: int = 1) str[source]
return the text scrambled
level:
1: insert non printable characters within the text
2: replace some latin letters to their Greek or Cyrillic equivalent
3: insert non printable characters and change the some latin letters to their Greek or Cyrillic equivalent
4: insert non printable chraracters change all possible letter to a randomly picked unicode letter equivalent
- Returns
the scrambled string
- Return type