mirror of
https://github.com/not-kennethreitz/alphaglyph.git
synced 2026-06-05 07:06:14 +00:00
26470d851a
make encoding and decoding the same
89 lines
2.2 KiB
Python
89 lines
2.2 KiB
Python
|
|
CODEX = {
|
|
'A': (u'\u0391', 'Alpha'),
|
|
'B': (u'\u0392', 'Beta'),
|
|
'C': (u'\u0393', 'Gamma'),
|
|
'D': (u'\u0394', 'Delta'),
|
|
'E': (u'\u0395', 'Epsilon'),
|
|
'F': (u'\u0396', 'Zeta'),
|
|
'G': (u'\u0397', 'Eta'),
|
|
'H': (u'\u0398', 'Theta'),
|
|
'I': (u'\u0399', 'Iota'),
|
|
'J': (u'\u039A', 'Kappa'),
|
|
'K': (u'\u039B', 'Lamda'),
|
|
'L': (u'\u039C', 'Mu'),
|
|
'M': (u'\u039D', 'Nu'),
|
|
'N': (u'\u039E', 'Xi'),
|
|
'O': (u'\u039F', 'Omicron'),
|
|
'P': (u'\u03A0', 'Pi'),
|
|
'Q': (u'\u03A1', 'Rho'),
|
|
'R': (u'\u03A3', 'Sigma'),
|
|
'S': (u'\u03A4', 'Tau'),
|
|
'T': (u'\u03A5', 'Upsilon'),
|
|
'U': (u'\u03A6', 'Phi'),
|
|
'V': (u'\u03A7', 'Chi'),
|
|
'W': (u'\u03A8', 'Psi'),
|
|
'X': (u'\u03A9', 'Omega'),
|
|
'a': (u'\u03B1', 'alpha'),
|
|
'b': (u'\u03B2', 'beta'),
|
|
'c': (u'\u03B3', 'gamma'),
|
|
'd': (u'\u03B4', 'delta'),
|
|
'e': (u'\u03B5', 'epsilon'),
|
|
'f': (u'\u03B6', 'zeta'),
|
|
'g': (u'\u03B7', 'eta'),
|
|
'h': (u'\u03B8', 'theta'),
|
|
'i': (u'\u03B9', 'iota'),
|
|
'j': (u'\u03BA', 'kappa'),
|
|
'k': (u'\u03BB', 'lamda'),
|
|
'l': (u'\u03BC', 'mu'),
|
|
'm': (u'\u03BD', 'nu'),
|
|
'n': (u'\u03BE', 'xi'),
|
|
'o': (u'\u03BF', 'omicron'),
|
|
'p': (u'\u03C0', 'pi'),
|
|
'q': (u'\u03C1', 'rho'),
|
|
'r': (u'\u03C3', 'sigma'),
|
|
's': (u'\u03C4', 'tau'),
|
|
't': (u'\u03C5', 'upsilon'),
|
|
'u': (u'\u03C6', 'phi'),
|
|
'v': (u'\u03C7', 'chi'),
|
|
'w': (u'\u03C8', 'psi'),
|
|
'x': (u'\u03C9', 'omega')
|
|
}
|
|
|
|
for latin_letter, (greek_letter, name) in CODEX.items():
|
|
CODEX[greek_letter] = (latin_letter, latin_letter)
|
|
|
|
|
|
def iter_transcode(s):
|
|
|
|
for a in s:
|
|
if a in CODEX:
|
|
yield CODEX[a][0]
|
|
else:
|
|
yield a
|
|
|
|
def transcode(s):
|
|
return ''.join([a for a in iter_transcode(s)])
|
|
|
|
|
|
def transcode_stream(instream, outstream):
|
|
buf = b''
|
|
while True:
|
|
octet = instream.read(1)
|
|
buf += octet
|
|
try:
|
|
text = buf.decode('utf-8')
|
|
except UnicodeDecodeError:
|
|
pass
|
|
else:
|
|
buf = b''
|
|
outstream.write(transcode(text))
|
|
outstream.flush()
|
|
if not octet:
|
|
break
|
|
|
|
|
|
if __name__ == '__main__':
|
|
import sys
|
|
transcode_stream(sys.stdin, sys.stdout)
|