예제 #1
0
 def test_free_text_parser(self):
     """test free_text_parser function"""
     pairs = [("Zee CMSSW_4_*", "dataset dataset=*Zee* release=CMSSW_4_*"),
              ("Zee mc", "dataset dataset=*Zee* datatype=mc"),
              ("160915 CMSSW_4_*", "run run=160915 release=CMSSW_4_*"),
              ("/abc.root CMSSW_2_0*", "file file=/abc.root release=CMSSW_2_0*"),
              ("4_1 Zee", "dataset release=CMSSW_4_1* dataset=*Zee*"),
              ("Zee /a/b/c#123", "dataset dataset=*Zee* block=/a/b/c#123"),
              ("MC CMSSW_4_* /Zee", "dataset datatype=MC release=CMSSW_4_* dataset=/Zee*"),
              ("gen-sim-reco", "tier tier=*gen-sim-reco*"),
              ("raw-digi", "tier tier=*raw-digi*")]
     daskeys=['dataset', 'datatype', 'run', 'release', 'block', 'file']
     for uinput, dasquery in pairs:
         result = free_text_parser(uinput, daskeys)
         self.assertEqual(dasquery, result)
예제 #2
0
 def test_free_text_parser(self):
     """test free_text_parser function"""
     pairs = [("Zee CMSSW_4_*", "dataset dataset=*Zee* release=CMSSW_4_*"),
              ("Zee mc", "dataset dataset=*Zee* datatype=mc"),
              ("160915 CMSSW_4_*", "run run=160915 release=CMSSW_4_*"),
              ("/abc.root CMSSW_2_0*", "file file=/abc.root release=CMSSW_2_0*"),
              ("4_1 Zee", "dataset release=CMSSW_4_1* dataset=*Zee*"),
              ("Zee /a/b/c#123", "dataset dataset=*Zee* block=/a/b/c#123"),
              ("MC CMSSW_4_* /Zee", "dataset datatype=MC release=CMSSW_4_* dataset=/Zee*"),
              ("gen-sim-reco", "tier tier=*gen-sim-reco*"),
              ("raw-digi", "tier tier=*raw-digi*")]
     daskeys=['dataset', 'datatype', 'run', 'release', 'block', 'file']
     for uinput, dasquery in pairs:
         result = free_text_parser(uinput, daskeys)
         self.assertEqual(dasquery, result)
예제 #3
0
 def adjust_input(self, kwargs):
     """
     Adjust user input wrt common DAS keyword patterns, e.g.
     Zee -> dataset=*Zee*, T1_US -> site=T1_US*. This method
     only works if self.adjust is set in configuration of DAS server.
     This method can be customization for concrete DAS applications via
     external free_text_parser function (part of DAS.web.utils module)
     """
     if  not self.adjust:
         return
     uinput = kwargs.get('input', '')
     query_part = uinput.split('|')[0]
     if  query_part == 'queries' or query_part == 'records':
         return
     new_input = free_text_parser(uinput, self.daskeys)
     if  uinput and new_input == uinput:
         selkey = choose_select_key(uinput, self.daskeys, 'dataset')
         if  selkey and len(new_input) > len(selkey) and \
             new_input[:len(selkey)] != selkey:
             new_input = selkey + ' ' + new_input
     kwargs['input'] = new_input