Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-11-25 02:29:58

0001 from builtins import range
0002 import json
0003 class selectionParser(object):
0004     def __init__(self,selectStr):
0005         self.__result={}
0006         self.__strresult={}
0007         strresult=json.loads(selectStr)
0008         for k,v in strresult.items():
0009             expandedvalues=[]
0010             for w in v:
0011                 if len(w)==0:
0012                     self.__result[int(k)]=expandedvalues
0013                     self.__strresult[k]=[]
0014                     continue
0015             ###weed out [10]-like stuff just in case they exist
0016                 elif len(w)==1:
0017                     expandedvalues.append(w[0])
0018             ##weed out [10,10]-like stuff
0019                 elif len(w)==2 and w[0]==w[1]:
0020                     expandedvalues.append(w[0])
0021                 else:
0022                     for i in range(w[0],w[1]+1):
0023                         expandedvalues.append(i)
0024             self.__result[int(k)]=expandedvalues
0025             self.__strresult[k]=[str(x) for x in expandedvalues]
0026     def runs(self):
0027         return self.__result.keys()
0028     def runsandls(self):
0029         '''return expanded {run:lslist}
0030         '''
0031         return self.__result
0032     def runsandlsStr(self):
0033         '''return expanded {'run':lslist}
0034         '''
0035         return self.__strresult
0036     def numruns(self):
0037         return len(self.__result)
0038     def numls(self,run):
0039         return len(self.__result[run])
0040 if __name__ == "__main__":
0041     s=selectionParser('{"1":[[3,45]],"2":[[4,8],[10,10]],"3":[[]]}')
0042     print('runs : ',s.runs())
0043     print('full result : ',s.runsandls())
0044     print('str result : ',s.runsandlsStr())
0045     print('num runs : ',s.numruns())
0046     print('numls in run : ',s.numls(1))