diff --git a/compose_sequence_generator.py b/compose_sequence_generator.py new file mode 100644 index 0000000..6c14496 --- /dev/null +++ b/compose_sequence_generator.py @@ -0,0 +1,66 @@ +#!/usr/bin/env python +import unicodedata, re + +# the regular abcs or wtvr that will be typed out +# each letter in 'regular' corresponds to the respective letter in 'composed' +regular = "0123456789" + +# the letter that compose spits out +composed = "𝟘𝟙𝟚𝟛𝟜𝟝𝟞𝟟𝟠𝟡" + +# the sequence u type out. +# "" means the compose key. +# means compose key twice +# ★ is what will be replaced with whats in regular +sequence = " ★|" + + + +specials = {'%' : 'percent', + '-' : 'minus', + '_' : 'underscore', + '>' : 'greater', + '<' : 'less', + ',' : 'comma', + '.' : 'period', + '$' : 'dollar', + '!' : 'exclam', + '?' : 'question', + '+' : 'plus', + '/' : 'slash', + '#' : 'numbersign', + '@' : 'at', + '|' : 'bar', + '`' : 'grave', + '~' : 'asciitilde', + '^' : 'asciicircum', + '(' : 'parenleft', + ')' : 'parenright', + '[' : 'bracketleft', + ']' : 'bracketright', + '{' : 'braceleft', + '}' : 'braceright', + "'" : 'apostrophe', + '"' : 'quotedbl', + '\\': 'backslash', + ':' : 'colon', + ';' : 'semicolon', + '=' : 'equal', + ' ' : 'space', + '*' : 'asterisk', +} + +def replace(sequence): + sequence = "".join([f'<{specials.get(letter, letter)}> ' for letter in sequence]) + sequence = re.sub(r"^ ", "", sequence) + sequence = re.sub(r"^ ", " ", sequence) + return sequence + +sequence = replace(sequence) + +if len(regular) == len(composed): + for position in range(len(regular)): + full_sequence = sequence.replace("<★>", replace(regular[position])) + print(full_sequence + ' : "'+composed[position]+'" '+str('U%04X' % ord(composed[position])) +' # '+ unicodedata.name(composed[position])) +else: + print("regular ("+ str(len(regular))+ ") is not equal to composed ("+str(len(composed))+ ")")