From b88f2e7e4e2a93675f0b354b4c9745389c4693ae Mon Sep 17 00:00:00 2001 From: Rajeesh K Nambiar Date: Wed, 14 Jan 2009 20:05:39 +0530 Subject: Add APIs 'word2ASCII' and 'word2Unicode' --- payyans/docs/ChangeLog | 10 ++-- payyans/docs/README | 3 +- payyans/payyans/__init__.py | 11 +++-- payyans/payyans/payyan.py | 111 +++++++++++++++++++++++++------------------- payyans/setup.py | 8 ++-- 5 files changed, 83 insertions(+), 60 deletions(-) (limited to 'payyans') diff --git a/payyans/docs/ChangeLog b/payyans/docs/ChangeLog index 593be65..12d6408 100755 --- a/payyans/docs/ChangeLog +++ b/payyans/docs/ChangeLog @@ -1,13 +1,15 @@ Change Log: + version 0.6 + * Added word2Unicode and word2ASCII APIs + * Move the doc files to /usr/share/doc/pyanns- directory version 0.5 * Python API fixes * pdf option detection from input file name extension version 0.4 * bidirectional conversion - version 0.3 - * minor fixes - Version 0.2: + version 0.3 + * minor fixes + Version 0.2: * Renamed rules.map to karthika.map and corrected some mappings Version 0.1: * First release - diff --git a/payyans/docs/README b/payyans/docs/README index d453719..62eda0e 100755 --- a/payyans/docs/README +++ b/payyans/docs/README @@ -1,6 +1,7 @@ AUTHORS: Santhosh Thottingal Nishan Naseer + Rajeesh K Nambiar A Swathanthra Malayalam Computing Project Detailed Documentation: http://smc.org.in/Payyans @@ -9,4 +10,4 @@ INSTALL: As root #python setup.py install -Enjoy :) \ No newline at end of file +Enjoy :) diff --git a/payyans/payyans/__init__.py b/payyans/payyans/__init__.py index d4bc603..7f2d17b 100755 --- a/payyans/payyans/__init__.py +++ b/payyans/payyans/__init__.py @@ -1,9 +1,9 @@ #!/usr/bin/env python -# Copyright 2008 Santhosh Thottingal , Nishan Naseer +# Copyright 2008 Santhosh Thottingal , Nishan Naseer , Rajeesh K Nambiar # http://www.smc.org.in """Payyans is a python program to convert the data written for ascii fonts in ascii format to the Unicode format""" -__AUTHORS__ = [ ("Santhosh Thottingal", "santhosh.thottingal@gmail.com", "Nishan Naseer", "nishan.naseer@gmail.com")] +__AUTHORS__ = [ ("Santhosh Thottingal", "santhosh.thottingal@gmail.com", "Nishan Naseer", "nishan.naseer@gmail.com", "Rajeesh K Nambiar", "rajeeshknambiar@gmail.com")] from payyan import Payyan import os @@ -18,8 +18,11 @@ class Payyans: self.payyan.input_filename=input_file self.payyan.output_filename=output_file self.payyan.mapping_filename=mapping_file - - + + def word2ASCII(self, unicode_str): + return self.payyan.word2ASCII(unicode_str) + def word2Unicode(self, ascii_str): + return self.payyan.word2ASCII(ascii_str) def ascii2unicode(self): return self.payyan.Ascii2Uni() def unicode2ascii(self): diff --git a/payyans/payyans/payyan.py b/payyans/payyans/payyan.py index 4124549..a0459e2 100755 --- a/payyans/payyans/payyan.py +++ b/payyans/payyans/payyan.py @@ -1,7 +1,9 @@ #! /usr/bin/env python # -*- coding: utf-8 -*- # Payyans Ascii to Unicode Convertor -# Copyright 2008 Santhosh Thottingal , Nishan Naseer , Manu S Madhav +# Copyright 2008 Santhosh Thottingal , +# Nishan Naseer , Manu S Madhav , +# Rajeesh K Nambiar # http://www.smc.org.in # # This program is free software; you can redistribute it and/or modify @@ -42,6 +44,35 @@ class Payyan: self.mapping_filename="" self.pdf=0 + def word2ASCII(self, unicode_text): + index = 0 + prebase_letter = "" + ascii_text="" + while index < len(unicode_text): + '''കൂട്ടക്ഷരങ്ങള്‍ക്കൊരു കുറുക്കുവഴി''' + for charNo in [3,2,1]: + letter = unicode_text[index:index+charNo] + if letter in self.rulesDict: + ascii_letter = self.rulesDict[letter] + letter = letter.encode('utf8') + '''കിട്ടിയ അക്ഷരങ്ങളുടെ അപ്പുറത്തും ഇപ്പുറത്തും സ്വരചിഹ്നങ്ങള്‍ ഫിറ്റ് ചെയ്യാനുള്ള ബദ്ധപ്പാട്''' + if letter == 'ൈ': # പിറകില്‍ രണ്ടു സാധനം പിടിപ്പിക്കുക + ascii_text = ascii_text[:-1] + ascii_letter*2 + ascii_text[-1:] + elif (letter == 'ോ') | (letter == 'ൊ') | (letter == 'ൌ'): #മുമ്പിലൊന്നും പിറകിലൊന്നും + ascii_text = ascii_text[:-1] + ascii_letter[0] + ascii_text[-1:] + ascii_letter[1] + elif (letter == 'െ') | (letter == 'േ') |(letter == '്ര'): #പിറകിലൊന്നുമാത്രം + ascii_text = ascii_text[:-1] + ascii_letter + ascii_text[-1:] + else: + ascii_text = ascii_text + ascii_letter + index = index+charNo + break + else: + '''നോക്കിയിട്ടു കിട്ടുന്നില്ല ബായി''' + ascii_letter = letter + ascii_text = ascii_text + ascii_letter + index = index + 1 + return ascii_text + def Uni2Ascii(self): self.direction="u2a" self.rulesDict = self.LoadRules() @@ -57,38 +88,38 @@ class Payyan: text =uni_file.readline() if text == "": break - index = 0 - ascii_text = "" - prebase_letter="" - while index < len(text): - '''കൂട്ടക്ഷരങ്ങള്‍ക്കൊരു കുറുക്കുവഴി''' - for charNo in [3,2,1]: - letter = text[index:index+charNo] - if letter in self.rulesDict: - ascii_letter = self.rulesDict[letter] - letter = letter.encode('utf8') - '''കിട്ടിയ അക്ഷരങ്ങളുടെ അപ്പുറത്തും ഇപ്പുറത്തും സ്വരചിഹ്നങ്ങള്‍ ഫിറ്റ് ചെയ്യാനുള്ള ബദ്ധപ്പാട്''' - if letter == 'ൈ': # പിറകില്‍ രണ്ടു സാധനം പിടിപ്പിക്കുക - ascii_text = ascii_text[:-1] + ascii_letter*2 + ascii_text[-1:] - elif (letter == 'ോ') | (letter == 'ൊ') | (letter == 'ൌ'): #മുമ്പിലൊന്നും പിറകിലൊന്നും - ascii_text = ascii_text[:-1] + ascii_letter[0] + ascii_text[-1:] + ascii_letter[1] - elif (letter == 'െ') | (letter == 'േ') |(letter == '്ര'): #പിറകിലൊന്നുമാത്രം - ascii_text = ascii_text[:-1] + ascii_letter + ascii_text[-1:] - else: - ascii_text = ascii_text + ascii_letter - index = index+charNo - break - else: - '''നോക്കിയിട്ടു കിട്ടുന്നില്ല ബായി''' - ascii_letter = letter - ascii_text = ascii_text + ascii_letter - index = index + 1 + ascii_text = "" + # ഹീന ജാതിയിലേയ്ക്ക് തരം താഴ്ത്ത്വാ ! + self.word2ASCII(text) if self.output_filename : output_file.write(ascii_text) else: print ascii_text.encode('utf-8') - return "പയ്യന്‍ നല്ലോരു യൂണിക്കോട് ഫയലില്‍ കേറി നെരങ്ങി ആസ്ക്കിയാക്കി. ദൈവമേ, ഈ പയ്യനു നല്ലബുദ്ധി തോന്നിക്കണേ..." + ''' പയ്യന്‍ നല്ലോരു യൂണിക്കോട് ഫയലില്‍ കേറി നെരങ്ങി ആസ്ക്കിയാക്കി. ദൈവമേ, ഈ പയ്യനു നല്ലബുദ്ധി തോന്നിക്കണേ... ''' + return 0 + + def word2Unicode(self, ascii_text): + index = 0 + prebase_letter = "" + unicode_text = "" + while index < len(ascii_text): + letter = ascii_text[index] + if letter in self.rulesDict: + unicode_letter = self.rulesDict[letter] + else: + unicode_letter = letter + if(self.isPrebase(unicode_letter)): + prebase_letter = unicode_letter + else: + if ((unicode_letter.encode('utf-8') == "എ") | ( unicode_letter.encode('utf-8') == "ഒ" )): + unicode_text = unicode_text + self.getVowelSign(prebase_letter , unicode_letter) + else: + unicode_text = unicode_text + unicode_letter+ prebase_letter + prebase_letter="" + + index = index + 1 + return unicode_text # മതം മാറ്റി തിരിച്ചു കൊടുക്ക്വാ ! def Ascii2Uni(self): self.direction="a2u" @@ -118,31 +149,17 @@ class Payyan: text =ascii_file.readline() if text == "": break - index = 0 unicode_text = "" - prebase_letter="" - while index < len(text): - letter = text[index] - if letter in self.rulesDict: - unicode_letter = self.rulesDict[letter] - else: - unicode_letter = letter - if(self.isPrebase(unicode_letter)) : - prebase_letter = unicode_letter - else: - if ((unicode_letter.encode('utf-8') == "എ") | ( unicode_letter.encode('utf-8') == "ഒ" )): - unicode_text = unicode_text + self.getVowelSign(prebase_letter , unicode_letter) - else: - unicode_text = unicode_text + unicode_letter+ prebase_letter - prebase_letter="" - - index = index + 1 + ''' അങ്ങട്ട് മതം മാറ്റ്വാ... ആസ്കിതനും നാസ്തികനും ഒന്നന്നെ! ''' + unicode_text = self.word2Unicode(text) + if self.output_filename : output_file.write(unicode_text) else: print unicode_text.encode('utf-8') - return "പയ്യന്റെ അവതാരോദ്ദേശ്യം പൂര്‍ണ്ണമായിരിക്കുന്നു. ഇനി മടക്കം. റിട്ടേണ്‍...!" + ''' പയ്യന്റെ അവതാരോദ്ദേശ്യം പൂര്‍ണ്ണമായിരിക്കുന്നു. ഇനി മടക്കം. റിട്ടേണ്‍...! ''' + return 0 def getVowelSign(self, vowel_letter, vowel_sign_letter): vowel= vowel_letter.encode('utf-8') diff --git a/payyans/setup.py b/payyans/setup.py index 87c9097..2993087 100755 --- a/payyans/setup.py +++ b/payyans/setup.py @@ -4,16 +4,16 @@ from distutils.core import setup doclines = __doc__.split("\n") setup(name='payyans', - version='0.5', + version='0.6', description=doclines[0], long_description = "\n".join(doclines[:]), platforms = ["Linux"], - author='Santhosh Thottingal, Nishan Naseer', - author_email='santhosh.thottingal@gmail.com , nishan.naseer@gmail.com', + author='Santhosh Thottingal, Nishan Naseer, Rajeesh K Nambiar', + author_email='santhosh.thottingal@gmail.com , nishan.naseer@gmail.com, rajeeshknambiar@gmail.com', url='http://smc.org.in/Payyans', license = 'http://www.gnu.org/copyleft/gpl.html', packages=['payyans'], data_files=[('/usr/share/payyans/maps',['maps/karthika.map','maps/indulekha.map','maps/revathi.map']), ('/usr/bin',['payyans/payyans']), - ('/usr/share/payyans/docs',['docs/README','docs/LICENSE','docs/ChangeLog'])] + ('/usr/share/doc/payyans-0.6',['docs/README','docs/LICENSE','docs/ChangeLog'])] ) -- cgit