#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# யாவர்க்குமான நெறியின் கீழ் இந்நிரல் பகிர்ந்தளிக்கப் படுகிறது
# ஆக்கம்: சிவா <sivakg2000@gmail.com>, ஆமாச்சு < amachu@au-kbc.org>

# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation.


class Sol:

    def __init__(self):
        self.patham=''

    def alavu(self,sol):
        """ This 'alavu' fuction is used to calculate the length of
             Tamil string . 'sarbu_kurigal' variable hold the collection
             of Tamil Dependent Vowels (DV).First initialize the variable
             'kurigal_ennikkai', which is used to hold the No. of DV (Dependent Vowels)
             occur in the given tamil string. 'sol' Variable hold the given tamil string,
             then which is converted in to unicode form.each and every character 
             compare to the DV, if DV is occur in 'sol' then the 'kurigal_ennikkai'
             will be incremented. Finaly 'kurigal_ennikka' is subtract form  the actual
             length of 'sol' then it will be return. """
        #தமிழ் சார்பெழுத்து குறிகள்
        #sarbu_kurigal=u'ைொோிீுூாெேஒௌ்ஃ'
        sarbu_kurigal = u"\u0BBE\u0BBF\u0BC0\u0BC1\u0BC2\u0BC6\u0BC7\u0BC8\u0BCA\u0BCB\u0BCC\u0BCD"
         #சார்பெழுத்து எண்ணிக்கை
        kurigal_ennikkai=0
       
         #பதத்தின் Unicode  அளவு கணக்கிடப்படுகிறது
        sol=unicode(sol,'utf-8')
        sol_alavu=len(sol)

        for ezhuthu in sol:
            #பதத்தில் சார்பெழுத்துக் குறிகள் உள்ளனவா என ஆராயப்படுகிறது
            #சார்பெழுத்து குறிகள் இருப்பின் சார்பெழுத்துக் குறிகளின் எண்ணிக்கை  கணக்கிடப்படுகின்றது
            if ezhuthu in sarbu_kurigal :
                    kurigal_ennikkai +=1
        #பதத்தின் அளவிலிருந்து சார்பெழுத்து குறிக்களின் எண்ணிக்கை குறைக்கப்பட்டு சொல்லின் உண்மை அளவு கணக்கிடப் படுகின்றது
        sol_alavu=sol_alavu-kurigal_ennikkai
        return(sol_alavu)

    def pakuthi(self,sol,thodakkam,mudivu= 0,padi=1):
        """ This 'pakuthi' fuction is used to extract some part of  the given 
             Tamil string (which is equal to substring function).
             'sarbu_kurigal' variable hold the collection
             of Tamil Dependent Vowels (DV).First initialize the variable
             'kurigal_ennikkai', which is used to hold the No. of DV (Dependent Vowels)
             occur in the given tamil string. 'sol' Variable hold the given tamil string,
             then which is converted in to unicode form. Then Initialize a list ,
             which is named as 'ezhuthukal' .If  'sol[kurigal_ennikai + 1]' is in DV then
             'sol[kurigal_ennikai ]', 'sol[kurigal_ennikai + 1]' are append to the 'ezhuthukal' list
             and 'kurigal_ennikai' incremented by 2 otherwise 'sol[kurigal_ennikai + 1]' is
             append to the 'ezhuthukal' list and 'kurigal_ennikai' incremented by 1 .
             Then the list 'ezhuthukal' will be return by the pre defined function
            
             This function will be taken four arguments (two optional),
             The first arg is the Tamil string, 2nd  is starting position of the string
             and 3rd (optional ) is ending position of the string and 4(optional ) one is step .    """
            
        #தமிழ் சார்பெழுத்துக் குறிகள்
        #sarbu_kurigal=u'ைொோிீுூாெேஒௌ்ஃ'
        sarbu_kurigal = u"\u0BBE\u0BBF\u0BC0\u0BC1\u0BC2\u0BC6\u0BC7\u0BC8\u0BCA\u0BCB\u0BCC\u0BCD"
        #சொல் யுனிகோடில் மாற்றம் செய்யப்படுகிறது
        sol=unicode(sol,'utf-8')

        # சார்புக் குறிகளின் எண்ணிக்கை சுழியமாக எண்ணப்படுகிறது
        kurigal_ennikai=0

        #பட்டியலொன்று வரையறுக்கப்படுகிறது
        ezhuthukal=[]

        while kurigal_ennikai < len(sol)  :

            #பததில் சார்பெழுத்துக்கள் உள்ளனவா என ஆராயப்படுகிறது

            if sol[ kurigal_ennikai+1 ] in sarbu_kurigal :

                #சார்பெழுத்து இருந்தால்  முதல் எழுத்தையும்  சார்பெழத்தையும் ஒன்றாக சொற் படடியலில் இணைக்கப்படுகிறது
                ezhuthukal.append(sol[kurigal_ennikai] + sol[kurigal_ennikai+1] )
                kurigal_ennikai  +=2
            else:
                #சார்பெழுத்து இல்லை என்றால்  முதல் எழுத்தை மடடும் சொற் பட்டியலில் இணைக்கப்படுகிறது
                ezhuthukal.append( sol[kurigal_ennikai] )
                kurigal_ennikai +=1

        ezhuthu=''
        pakuthi=''
        #முடிவு தராவிடில் ஒரு எழுத்து மட்டும் திருப் அனுப்படுகிறது
        if mudivu==0:
            mudivu = thodakkam + 1
        for ezhuthu in ezhuthukal[thodakkam:mudivu:padi] :
            pakuthi+=ezhuthu
        #சொற் படடியலில் இருந்து தேவையான பகுதி பிரித்து அனுப்பபடுகிறத
        print pakuthi
       


--
நட்புடன்

சிவா