Changeset 2117 for TI07-MOLES


Ignore:
Timestamp:
06/02/07 20:41:52 (12 years ago)
Author:
lawrence
Message:

Probably a version of ndgObject that'll never get used ...

File:
1 edited

Legend:

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

    r2098 r2117  
    33class ndgObject: 
    44 
    5     ''' This class instantiates an ndgObject and methods to obtain  
     5    ''' This class instantiates an ndgObject which describes the various ways of obtaining itself, primarily 
    66                (1) a downloadable xml representation from a repository, 
    77                (2) a printable xml representation ''' 
    88     
    9     def __init__(self,uri,config=None): 
    10         ''' Instantiate an ndg URI, and potentially methods for retrieving documents described by this URI''' 
    11         bits=uri.split(':') 
     9    def __init__(self,uri,config=None,discoveryOriginal=0): 
     10             
     11        ''' Instantiate an ndg URI, and potentially methods for retrieving documents described by this URI. 
     12         
     13        If discoveryOriginal is set, then it indicates that the URI provided corresponds to an original 
     14        URI which can be obtained both from the original database, and via transformation from the  
     15        intermediate schema (aka mini-moles) database ''' 
     16         
     17        bits=uri.split(':') 
    1218        bits2=uri.split('__') 
    1319        ok=1 
    1420        if len(bits)==3: 
    1521            repository,schema,localID=bits 
     22            self.uri=uri.replace(':','__') 
    1623        elif len(bits2)==3: 
    1724            repository,schema,localID=bits2 
     25            self.uri=uri 
    1826        else: 
    1927            bits=uri.split('/') 
     
    2129                schema='NDG-B0' 
    2230                repository,localID=bits 
     31                self.uri=None  #  
     32                ok=0  # I reckon we shouldn't ever see any of these again ... 
     33                # but if we do, the uri will need fixing too ... 
    2334            else: ok=0 
    2435        if not ok: 
     
    2637        else: 
    2738            self.repository,self.schema,self.localID=repository,schema,localID 
     39        self.ori=discoveryOriginal 
    2840        self.setConfig(config) 
    2941         
     
    3547        else: 
    3648            self.config=config 
    37             self.baseURL='%s?repository=%s&uri=%s__%s__%s'%(self.config.get('DISCOVERY','default'), 
    38                                         self.config.get('DEFAULT','repository'), 
    39                                         self.repository,self.schema,self.localID) 
    40             #we can only get this file for sure if it's a discovery record 
    41             if self.schema in ['DIF','DC']: 
    42                 self.discoveryURL=self.baseURL+'&format=%s&type=html'%self.schema 
    43                 self.gettable=1 
     49            fundamental='%s?repository=%s'%(self.config.get('DISCOVERY','default'), 
     50                                        self.config.get('DEFAULT','repository')) 
     51            self.baseURL='%s&uri=%s__%s__%s'%(fundamental,self.repository,self.schema,self.localID) 
     52            fmt=self.config.get('DISCOVERY','formatDefault','DIF') 
     53             
     54            if self.ori: 
     55                #(we'll allow self.uri to differ from the ndg uri "just-in-case") 
     56                self.original='%s&uri=%s&original=1&type=xml'%(fundamental,self.uri) 
     57                self.printableOriginal=self.original.replace('type=xml','type=print') 
     58             
     59            # Now we indicate the main ways of finding this record 
     60            if self.schema in ['DIF','DC','MDIP','ISO19139','MOLES-B0','MOLES-B1']: 
     61                # The record is itself a discovery record, but we'll assume by default 
     62                # we want to show a specific rendered version 
     63                self.discoveryURL=self.baseURL+'&format=%s&type=html'%fmt 
    4464                self.xmlURL=self.discoveryURL.replace('html','xml') 
    4565                self.printableURL=self.discoveryURL.replace('html','print') 
    46             elif self.schema in ['MOLES-B0']: 
    47                 fmt=self.config.get('DISCOVERY','formatDefault','DIF') 
    48                 self.discoveryURL=self.baseURL+'&format=%s&type=html'%fmt 
    49                 self.gettable=1 
    50                 self.xmlURL=self.baseURL+'&type=xml' 
    51                 self.printableURL=self.baseURL+'&type=print' 
    52             else:# stub-B is not gettable as a discovery record  
    53                 self.gettable=0 
    54                 self.discoveryURL=None 
    55                 self.xmlURL=self.baseURL+'&type=xml' 
    56                 self.printableURL=self.baseURL+'&type=print' 
     66                self.gettable=1 
     67            else: 
     68                #Actually we don't know what this is, so we make the discovery URL the same as the 
     69                #original one. 
     70                if self.ori: 
     71                    self.discoveryURL=self.printableOriginal 
     72                    self.printableURL=self.printableOriginal 
     73                    self.xmlURL=self.original 
     74                self.gettable=0 
     75 
    5776             
    5877    def get(self,type='xml'): 
    59         ''' Actually retrieve an xml record corresponding to an ndg URI ''' 
     78        ''' Actually retrieve an ORIGINAL xml record corresponding to an ndg URI ''' 
    6079        if self.gettable: 
    6180            pass 
     
    86105        self.__assertions(n) 
    87106     
    88     def testURI3(self): 
     107    def notestURI3(self): 
    89108        ''' Testing the default MOLES form of id ''' 
    90109        uri='badc.nerc.ac.uk/local1' 
     
    101120        n.setConfig(config) 
    102121        if n.gettable: 
    103             self.assertEqual(n.URL[0:5],'http:') 
     122            self.assertEqual(n.baseURL[0:5],'http:') 
    104123 
    105124if __name__=="__main__": 
Note: See TracChangeset for help on using the changeset viewer.