Language Work Benches in Py

yoda nochiel at gmail.com
Wed Sep 7 01:44:53 EDT 2005


I realize that I forgot to post the sample code:). Below is my
implementation:

#DSL data
#123456789012345678901234567890123456789012345678901234567890,

dsldata=(
'SVCLFOWLER         10101MS0120050313.........................',
'SVCLHOHPE          10201DX0320050315........................',
'SVCLTWO           x10301MRP220050329..............................',
'USGE10301TWO          x50214..7050329...............................')

#Class mappings
Mappings={'svcl':{
(4,18):'CustomerName',
 (19,23):'CustomerID',
 (24,27) :'CallTypeCode',
 (28,35) : 'DateOfCallString'},
 'usge':{(4,8) :'CustomerID',
  (9,22):'CustomerName',
  (30,30):'Cycle',
  (31,36): 'ReadDate'}}


def generateClass(data):
    'generate the class and instance with attributes'

    className = data[:4].lower()     #1)
    mappingData= Mappings[className]    #2)
    class Klass:pass   #3)
    Klass. __name__=className  #4)
    #    print Klass

    for key in mappingData.keys():   #5)
        fielddata=data[key[0]:key[1]]
        print 'actual data->',fielddata
        setattr(Klass,mappingData[key],fielddata) #6)
    return Klass


def parseData():
    'parse the data and generate a list of objects'
    classes= [generateClass(item) for item in dsldata]
    return classes

def printKlassData(Klass):
    print Klass
    for key in Klass.__dict__:
        print ('attr->%s value->%s')%(key,Klass.__dict__[key])

if __name__=='__main__':
    for Klass in parseData():
        printKlassData (Klass)




More information about the Python-list mailing list