summaryrefslogtreecommitdiffstats
path: root/payyans
diff options
context:
space:
mode:
authorRajeesh K Nambiar <rajeeshknambiar@gmail.com>2009-01-14 20:05:39 +0530
committerRajeesh K Nambiar <rajeeshknambiar@gmail.com>2009-01-14 20:05:39 +0530
commitb88f2e7e4e2a93675f0b354b4c9745389c4693ae (patch)
tree4965e9d7a5abb00ec02990c0fb04839101079013 /payyans
parent5f92ff207510ad516728c69ae3f8ad7885289914 (diff)
downloadRachana.git-b88f2e7e4e2a93675f0b354b4c9745389c4693ae.tar.gz
Rachana.git-b88f2e7e4e2a93675f0b354b4c9745389c4693ae.tar.xz
Rachana.git-b88f2e7e4e2a93675f0b354b4c9745389c4693ae.zip
Add APIs 'word2ASCII' and 'word2Unicode'
Diffstat (limited to 'payyans')
-rwxr-xr-xpayyans/docs/ChangeLog10
-rwxr-xr-xpayyans/docs/README3
-rwxr-xr-xpayyans/payyans/__init__.py11
-rwxr-xr-xpayyans/payyans/payyan.py111
-rwxr-xr-xpayyans/setup.py8
5 files changed, 83 insertions, 60 deletions
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-<ver> 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 <santhosh.thottingal@gamil.com>
Nishan Naseer <nishan.naseer@gamil.com>
+ Rajeesh K Nambiar <rajeeshknambiar@gmail.com>
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 <santhosh.thottingal@gmail.com>, Nishan Naseer <nishan.naseer@gmail.com>
+# Copyright 2008 Santhosh Thottingal <santhosh.thottingal@gmail.com>, Nishan Naseer <nishan.naseer@gmail.com>, Rajeesh K Nambiar <rajeeshknambiar@gmail.com>
# 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 <santhosh.thottingal@gmail.com>, Nishan Naseer <nishan.naseer@gmail.com>, Manu S Madhav <manusmad@gmail.com>
+# Copyright 2008 Santhosh Thottingal <santhosh.thottingal@gmail.com>,
+# Nishan Naseer <nishan.naseer@gmail.com>, Manu S Madhav <manusmad@gmail.com>,
+# Rajeesh K Nambiar <rajeeshknambiar@gmail.com>
# 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'])]
)