Changeset 2278 for TI07-MOLES/trunk


Ignore:
Timestamp:
14/03/07 21:02:11 (13 years ago)
Author:
lawrence
Message:

Better handling of DIF parameters as currently reported by
mini-MOLES

Location:
TI07-MOLES/trunk/PythonCode/wsgi
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • TI07-MOLES/trunk/PythonCode/wsgi/DIF.py

    r2104 r2278  
    1717        # if you've egged it this is the way it comes 
    1818        from elementtree import ElementTree as ET 
    19  
     19debug=1 
    2020class DIFService: 
    2121    ''' A DIF only knows about a related URL ''' 
     
    7777         
    7878        #need entity.parameters, entity.bbox, entity.timeCoverage, entity.curator, entity.creators 
    79  
     79        # nb, two ways of parameters being stored 
    8080        self.parameters=[] 
    8181        for parameter in helper.findall(self.tree,'Parameters'): 
    82             name='' 
    83             for level in ['Category','Topic','Term','Variable','Detailed_Variable']: 
    84                 name+=helper.getText(parameter,level)+'/' 
    85             self.parameters.append(name.rstrip('/')) 
    86              
     82            name=parameter.text 
     83            if name is not None:  
     84                self.parameters.append(name.replace('>','/')) 
     85            else: 
     86                name='' 
     87                for level in ['Category','Topic','Term','Variable','Detailed_Variable']: 
     88                    name+=helper.getText(parameter,level)+'/' 
     89                self.parameters.append(name.rstrip('/')) 
    8790 
    8891        #load up information about spatial bounding box  
     
    155158 
    156159    inputFile = 'examples/neodc.eg1.dif' 
     160    inputFile2= 'examples/bodc.eg2.edmed.dif' 
    157161    configFile='examples/example.config' 
    158162     
    159163    def setUp(self): 
    160164        ''' Load example config and DIF files for testing ''' 
    161         f=file(self.inputFile,'r') 
     165        f=file(self.inputFile2,'r') 
    162166        xml=f.read() 
    163167        self.dif=DIF(xml) 
     
    175179        g=file('difOutput.html','w') 
    176180        g.write(html) 
     181     
     182    def testParameters(self): 
     183        ''' Testing obtaining parameters from an edmed dif in original format ''' 
     184        print 'Parameters %s'%self.dif.parameters 
    177185 
    178186if __name__=="__main__": 
  • TI07-MOLES/trunk/PythonCode/wsgi/ETxmlView.py

    r2274 r2278  
    214214    def setUp(self): 
    215215        ''' Load example files for testing, and get pointers to their dataset identifiers ''' 
    216         inputFiles = ['examples/neodc.eg1.dif','examples/ukho.eg1.mdip'] 
     216        inputFiles = ['examples/neodc.eg1.dif','examples/ukho.eg1.mdip', 
     217                      'examples/bodc.eg2.edmed.dif'] 
    217218        indexes={'.dif':'Entry_ID','.mdip':'DatasetIdentifier'} 
    218         results=['NOCSDAT192','RSDRA2006000377384'] 
     219        results=['NOCSDAT192','RSDRA2006000377384','grid.bodc.nerc.ac.uk__DIF__EDMED1048006'] 
    219220        ids=[] 
    220221        for f in inputFiles: 
     
    238239            helper=nsdumb(tree) 
    239240            self.assertEqual(helper.getText(tree,self.ids[i]),self.results[i]) 
    240              
     241         
    241242 
    242243if __name__=="__main__": 
  • TI07-MOLES/trunk/PythonCode/wsgi/renderEntity.py

    r2274 r2278  
    11from htmlUtilities import * 
    22from renderService import * 
     3from renderParameters import * 
    34 
    45class renderEntity: 
     
    172173        else: 
    173174            html+='''<tr><td class="line" width="20%%">%ss</td><td>'''%title 
    174         html+=keywords[0] 
    175         for item in keywords[1:]: 
    176             i=item.replace(' ','&nbsp;') 
    177             html+=',&nbsp;&nbsp; %s'%i 
     175             
     176        #is it a list of DIF style parameter keywords? If so, let's format that especially 
     177        #and use the vocabulary server 
     178        if (title=='Parameter' and len(keywords[0].split('/'))==5): 
     179            html+=renderParameters(keywords) 
     180        else: 
     181            html+=keywords[0] 
     182            for item in keywords[1:]: 
     183                i=item.replace(' ','&nbsp;') 
     184                html+=',&nbsp;&nbsp; %s'%i 
    178185        html+='</td></tr>' 
    179186    return html 
Note: See TracChangeset for help on using the changeset viewer.