Changeset 2683


Ignore:
Timestamp:
02/07/07 13:56:21 (12 years ago)
Author:
domlowe
Message:

parsing from elementree (parseElemTree) method added, and speeded up getAttr method

Location:
TI02-CSML/trunk/csml
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • TI02-CSML/trunk/csml/API/ops_Dataset.py

    r2642 r2683  
    4747    self =csml.parser_extra.ParserPostProcessor(self).resolveReferences() 
    4848     
     49def parseElemTree(self, elemtree): 
     50    ''''alternative parsing method, supply with elementtree instance instead of file/uri''' 
     51    import time 
     52    t1=time.time() 
     53     
     54    self.fromXML(elemtree) 
     55    print 'time 1: ',time.time()-t1       
     56    self =csml.parser_extra.ParserPostProcessor(self).resolveReferences() 
    4957def getSecurity(self): 
    5058    """ returns a dictonary containing attributeAuthority: role""" 
  • TI02-CSML/trunk/csml/parser.py

    r2633 r2683  
    2121        from celementtree import cElementTree as ET 
    2222 
    23  
    24  
    25  
    26  
    27  
    28  
    29  
    3023import sys, traceback 
    3124import csml 
     
    4235nsSWE='http://www.opengis.net/swe' 
    4336 
    44  
    45 def myQName(uri,tag): 
    46     return "{"+uri+"}"+tag 
     37MAINATTRIBUTELIST=[] 
    4738 
    4839def CSML(tag): 
    49     return myQName(nsCSML,tag) 
     40    return "{"+nsCSML+"}"+tag 
    5041 
    5142def GML(tag): 
    52     return myQName(nsGML,tag) 
     43    return "{"+nsGML+"}"+tag 
    5344 
    5445def SWE(tag): 
    55     return myQName(nsSWE,tag) 
     46    return "{"+nsSWE+"}"+tag 
    5647 
    5748def XLINK(tag): 
    58     return myQName(nsXLINK,tag) 
     49    return "{"+nsXLINK+"}"+tag 
    5950 
    6051def MOLES(tag): 
    61     return myQName(nsMOLES,tag) 
     52    return "{"+nsMOLES+"}"+tag 
    6253 
    6354 
     
    8273    for att in atts: 
    8374        obj.ATTRIBUTES.append(att) 
     75        if att not in MAINATTRIBUTELIST: 
     76            MAINATTRIBUTELIST.append(att) 
    8477  else: 
    8578    obj.ATTRIBUTES=atts 
     79   
    8680 
    8781def addelems(obj, elems): 
     
    151145     
    152146    def __getattribute__(self, name): 
     147        if name in MAINATTRIBUTELIST: 
    153148            if CSML(name) in object.__dict__: 
    154149                return object.__getattribute__(self,CSML(name)) 
     
    159154            else: 
    160155                return object.__getattribute__(self,name)  
    161          
     156        else: 
     157            return object.__getattribute__(self,name) 
     158     
    162159    def __removeURI(self, qname): 
    163160        try: 
     
    12431240    import parser_extra 
    12441241    print '\n' 
    1245     tree=ET.ElementTree(file='/home/dom/coapec/TESTocean.xml') 
     1242    #tree=ET.ElementTree(file='/home/dom/coapec/TESTocean.xml') 
     1243    tree=ET.ElementTree(file='/home/dom/coapec/COAPEC_500YrRun_wholerun_annual_atmos.xml') 
    12461244    import time 
    12471245    time1=time.time() 
    12481246    ds=Dataset() 
    12491247    ds.fromXML(tree.getroot())  
     1248    print 'time=',time.time()-time1 
    12501249    csmltree=ds.toXML()     
    12511250    csmlout=parser_extra.PrettyPrint(csmltree) 
    12521251    csmlout=parser_extra.removeInlineNS(csmlout) 
    12531252    print 'time=',time.time()-time1 
    1254     print '\n %s'% csmlout 
     1253    #print '\n %s'% csmlout 
    12551254    #for member in ds.featureCollection.members: 
    12561255      #print dir(member.value) 
     
    12581257 
    12591258if __name__=='__main__': 
     1259    #import profile 
     1260    #profile.run('main()') 
    12601261    main() 
Note: See TracChangeset for help on using the changeset viewer.