File indexing completed on 2024-12-01 23:40:08
0001
0002 import json , sys
0003 input_range = []
0004 output_files_list = []
0005 lumi_ranges = sys.argv[1].split(':')
0006 for lumi_range in lumi_ranges:
0007 input_range.append(tuple(lumi_range.split(',')))
0008
0009 jdata = sys.stdin.read()
0010 try:
0011 lumi_data = json.loads(jdata)
0012 except:
0013 print(jdata)
0014 exit (1)
0015 lumi_data = lumi_data['data']
0016
0017 def match_in(sub_list,lumi_list):
0018 for i in range(int(sub_list[0]),int(sub_list[1])+1):
0019 if len(lumi_list) == 1:
0020 if i == int(lumi_list[0]): return True
0021 else:
0022 if i >= int(lumi_list[0]) and i <= int(lumi_list[1]): return True
0023 return False
0024
0025 def check_lumi_ranges(given_lumi_list , sub_range):
0026 for lumi_r in given_lumi_list:
0027 if match_in(sub_range, lumi_r):
0028 return True
0029 return False
0030
0031 def process_lumi(data):
0032 for lumi_info in data:
0033 if isinstance(lumi_info['lumi'], list):
0034 lumi_nums = lumi_info['lumi'][0]['number']
0035 lumi_file = lumi_info['file'][0]['name']
0036 else:
0037 lumi_nums = lumi_info['lumi']['number']
0038 lumi_file = lumi_info['file']['name']
0039 if not isinstance(lumi_nums[0], list): lumi_rang = [ [n,n] for n in lumi_nums ]
0040 else: lumi_rang = lumi_nums
0041 for sub_list in lumi_rang:
0042 if check_lumi_ranges(input_range,tuple(sub_list)):
0043 output_files_list.append(lumi_file)
0044 break
0045 for out_file_name in output_files_list:
0046 print(out_file_name)
0047
0048
0049 process_lumi(lumi_data)
0050