Changeset 1201 for TI03-DataExtractor


Ignore:
Timestamp:
15/06/06 23:15:15 (13 years ago)
Author:
astephen
Message:

Added logic to say that if no datasetGroup or dataset provided by caller then they can be inferred from a datasetURI argument (or many).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TI03-DataExtractor/trunk/pydxs/OptionHandler.py

    r1160 r1201  
    6565                        optsRequested="dataset"  # to ensure all options are at this level 
    6666                    elif TOP_LEVEL=="datasetGroup": 
    67                         optsRequested="datasetGroup"  # to ensure all options are at this level 
     67                        # What if you only have datasetURIs? 
     68                        if keyPatternMatch(self.bag, "datasetURI_\d+", "regex"): 
     69                            dsuriDict=getDictSubsetMatching(self.bag, "datasetURI_\d+", "regex") 
     70                             
     71                            dsgBag={} 
     72                            for key,dsuri in dsuriDict.items(): 
     73                                n=int(key.split("_")[-1]) 
     74                                (dsg, ds)=self.DXDML.getDatasetGroupAndDatasetFromURI(dsuri) 
     75                                if not dsgBag.has_key(n): 
     76                                    dsgBag[n]={"dsg":dsg, "ds":[]} 
     77                                dsgBag[n]["ds"].append(ds) 
     78 
     79                            # Now bag is full create session selection entries for dataset groups 
     80                            # and datasets to fill the gaps 
     81                            for key,value in dsgBag.items(): 
     82                                self.bag["datasetGroup_%s" % key]=value["dsg"] 
     83                                dscount=1 
     84                                for ds in value["ds"]: 
     85                                    self.bag["dataset_%s.%s" % (key, dscount)]=ds 
     86                            optsRequested="variable" # Since we've now populated dsg and ds from dsuri 
     87                              
     88                        else: 
     89                            optsRequested="datasetGroup"  # to ensure all options are at this level 
    6890                 
    6991                elif not keyPatternMatch(self.bag, "dataset_\d+\.\d+", "regex"): 
     
    278300        Method to return list of available variables for the given datasetGroup 
    279301        and dataset/datasetURI. 
    280         """ 
     302        """  
    281303        dataHandler=DatasetFormatDecider(datasetGroup, dataset, datasetURI).datasetFormat 
    282304             
Note: See TracChangeset for help on using the changeset viewer.