]> git.phdru.name Git - m_lib.git/blobdiff - m_lib/rus/rus2lat.py
Release 3.1: the library becomes a namespace package
[m_lib.git] / m_lib / rus / rus2lat.py
index 7fbbf06b5948d6d4268a02a4fdc03d69cc8e5f59..e7f731b1c24a7f79431ad7f9d2273db76eb6d5e6 100755 (executable)
@@ -71,26 +71,33 @@ koi2lat_d = {
    "�": "y",
    "�": "e",
    "�": "yu",
-   "�": "ya"
+   "�": "ya",
 }
 
 def make_xxx2lat(encoding="cp1251"):
    d = {}
    for k, v in koi2lat_d.items():
-      k = unicode(k, "koi8-r").encode(encoding)
+      if isinstance(k, bytes):
+         k = k.decode("koi8-r")
+      k = k.encode(encoding)
       d[k] = v
    return d
 
 
-from m_lib.lazy.dict import LazyDictInitFunc
+from ..lazy.dict import LazyDictInitFunc
 win2lat_d = LazyDictInitFunc(make_xxx2lat, encoding="cp1251")
 
 
 def rus2lat(instr, rus2lat_d = koi2lat_d):
    out = []
    for c in instr:
-      out.append(rus2lat_d.get(c, c))
-   return ''.join(out)
+      c = rus2lat_d.get(c, c)
+      if isinstance(c, bytes):
+         c = c.decode('ascii')
+      elif isinstance(c, int):
+         c = chr(c)
+      out.append(c.encode('ascii'))
+   return b''.join(out)
 
 
 koi2lat = rus2lat
@@ -103,4 +110,6 @@ if __name__ == "__main__":
    Test = "�������� ����� �����������. ��� xyz ��� ����� �����"
    print("Test:", Test)
    print("����:", koi2lat(Test))
-   print("����:", win2lat(unicode(Test, "koi8-r").encode("cp1251")))
+   if isinstance(Test, bytes):
+      Test = Test.decode("cp1251")
+   print("����:", win2lat(Test.encode("cp1251")))