Changeset 8643 for mauRepo


Ignore:
Timestamp:
19/10/12 09:40:16 (7 years ago)
Author:
mnagni
Message:

Incomplete - # 22576: Filtering on Files in a particular Result returns all Files rather than a subset.
 http://team.ceda.ac.uk/trac/ceda/ticket/22576

File:
1 edited

Legend:

Unmodified
Added
Removed
  • mauRepo/HPFos/trunk/hpfos/HPFos/osImpl/myimpl.py

    r8642 r8643  
    8686HPFOS_TITLE = 'Discovery feed for Search Services %s' % (HPFOS_ID) 
    8787 
    88 def _append_valid_time(subresult, entry, atomroot,  
     88def append_valid_time(subresult, entry, atomroot,  
    8989                       beginPosition, endPosition): 
    9090    #xmlentry = entry.buildElement() 
     
    101101        entry.append(validTime)  
    102102 
    103 def _extractTitle(cedaObj): 
     103def extractTitle(cedaObj): 
    104104    if hasattr(cedaObj, 'identifier'): 
    105105        for ident in cedaObj.identifier: 
     
    113113    return "%s/search/%s" % (url, iid) 
    114114 
    115 def _new_extract_geographic_extent(result):         
     115def new_extract_geographic_extent(result):         
    116116    if not hasattr(result, 'geographicExtent') \ 
    117117        or result.geographicExtent is None \ 
     
    126126                         '%s %s' % (ge.northBoundLatitude, ge.eastBoundLongitude)) 
    127127 
    128 def _digest_fatcat_atom(context, results): 
     128def digest_fatcat_atom(context, results): 
    129129    entries = results.findall('{%s}entry' % (ATOM_NAMESPACE)) 
    130130    subresults = [] 
     
    176176        if result_guid is None: 
    177177            continue 
    178         ititle = _extractTitle(result) 
     178        ititle = extractTitle(result) 
    179179 
    180180        kwargs = {} 
     
    188188         
    189189        #------------------------ 
    190         kwargs['geometry'] = _new_extract_geographic_extent(result) 
     190        kwargs['geometry'] = new_extract_geographic_extent(result) 
    191191        #------------------------                 
    192192 
     
    199199        subresults.append(item) 
    200200    return subresults 
     201 
     202def import_count_and_page(context):         
     203    count = COUNT_DEFAULT 
     204    start_index = START_INDEX_DEFAULT 
     205    start_page = START_PAGE_DEFAULT 
     206     
     207    try:  
     208        count = int(context['count']) 
     209    except: 
     210        pass         
     211     
     212    try:  
     213        start_index = int(context['startIndex']) 
     214    except: 
     215        pass 
     216     
     217    try:  
     218        start_page = int(context['startPage']) 
     219    except: 
     220        pass 
     221     
     222    return count, start_index, start_page 
    201223 
    202224class MyOSAtomResponse(OSAtomResponse): 
     
    221243                pass 
    222244        elif isinstance(results, _ElementInterface): 
    223             instances = self._digest_fatcat_atom(context, results) 
     245            instances = digest_fatcat_atom(context, results) 
    224246            tot_results = int(results.find('{%s}totalResults'  
    225247                               % (OS_NAMESPACE)).text.replace('\n','').strip())                    
    226248 
    227         count, start_index, start_page = self._importCountAndPage(context)                         
     249        count, start_index, start_page = import_count_and_page(context)                         
    228250        subresults = filter_results(instances, count, start_index, start_page) 
    229251         
     
    232254            or (type(instances) == InstrumentedList \ 
    233255                and type(instances[0]) == CEDA_Observation): 
    234             subresults = self.apply_query_params(context, subresults) 
     256            subresults = apply_query_params(context, subresults) 
    235257                                                           
    236258        return Result(count, start_index, start_page, tot_results, \ 
     
    287309            if hasattr(subresult, 'endPosition') and subresult.endPosition is not None:                 
    288310                endPosition = subresult.endPosition  
    289             _append_valid_time(subresult, entry, atomroot, beginPosition, endPosition)             
     311            append_valid_time(subresult, entry, atomroot, beginPosition, endPosition)             
    290312             
    291313            idate = createDate(root = atomroot,  
     
    314336        for entry in entries: 
    315337            atomroot.append(entry)  
    316  
    317     def _importCountAndPage(self, context):         
    318         count = COUNT_DEFAULT 
    319         start_index = START_INDEX_DEFAULT 
    320         start_page = START_PAGE_DEFAULT 
    321          
    322         try:  
    323             count = int(context['count']) 
    324         except: 
    325             pass         
    326          
    327         try:  
    328             start_index = int(context['startIndex']) 
    329         except: 
    330             pass 
    331          
    332         try:  
    333             start_page = int(context['startPage']) 
    334         except: 
    335             pass 
    336          
    337         return count, start_index, start_page 
    338338 
    339339class MyOSHTMLResponse(OSHTMLResponse): 
     
    387387         
    388388        if context.has_key(GUID) and 'FID' in context[GUID]: 
    389             return self._extractFatcatEntities(context[GUID]) 
     389            return extractFatcatEntities(context[GUID]) 
    390390         
    391391        start = None 
     
    417417 
    418418         
    419     def _extractFatcatEntities(self, fc_resource_id): 
    420         path = '/%s/search/%s/atom/' % (FATCAT_ROOT_PATH, str(fc_resource_id)) 
    421         return find_fatcat_atom_entity(host = FATCAT_HOST, path = path) 
     419def extractFatcatEntities(fc_resource_id): 
     420    ''' 
     421        Uses the Fatcat resource_id to build and submit an Opensearch query to Fatcat 
     422    ''' 
     423    path = '/%s/search/%s/atom/' % (FATCAT_ROOT_PATH, str(fc_resource_id)) 
     424    return find_fatcat_atom_entity(host = FATCAT_HOST, path = path) 
    422425     
    423426def find_fatcat_atom_entity(host = 'localhost', path = '', port = 80):     
Note: See TracChangeset for help on using the changeset viewer.