def test_get_active_lumi_runs_by_range(self): runregistry = TrackerRunRegistryClient() run_min = 321123 run_max = 321126 response = runregistry.get_active_lumi_runs_by_range(run_min, run_max) assert run_min == response[0]["run_number"] and run_max == response[ len(response) - 1]["run_number"]
def test_get_runs_by_list(self): runregistry = TrackerRunRegistryClient() run_number = 321123 response = runregistry.get_runs_by_list(None) assert [] == response response = runregistry.get_runs_by_list([run_number]) assert response[0]["run_number"] == run_number
def fill_numbers(self): """ :return: sorted list of fill numbers (without duplicates) """ if not self.run_numbers(): return [] client = TrackerRunRegistryClient() return client.get_unique_fill_numbers_by_run_number(self.run_numbers())
def test_get_run_numbers_by_fill_number(self): runregistry = TrackerRunRegistryClient() response = runregistry.get_run_numbers_by_fill_number([7048, 7049]) assert [{ 'fill_number': 7048, 'run_number': [321171, 321174, 321175, 321177, 321178, 321179, 321181] }, { 'fill_number': 7049, 'run_number': [321182, 321185, 321189] }] == response
def compare_with_run_registry(self): run_numbers = self.run_numbers() run_registry = TrackerRunRegistryClient() keys = [ "runreconstruction__run__run_number", "runreconstruction__run__run_type", "runreconstruction__reconstruction", "pixel", "strip", "tracking", ] run_info_tuple_set = set(self.values_list(*keys)) # the resthub api cannot handle more than 1000 elements in the SQL query if len(run_numbers) <= 500: run_registry_entries = run_registry.get_runs_by_list(run_numbers) else: # split the list if it is too big list_of_run_number_lists = chunks(run_numbers, 500) run_registry_entries = [] for run_number_list in list_of_run_number_lists: new_entries = run_registry.get_runs_by_list(run_number_list) run_registry_entries.extend(new_entries) convert_run_registry_to_trackercertification(run_registry_entries) run_registry_tuple_set = { tuple(d[key] for key in keys) for d in run_registry_entries } deviating_run_info_tuple_list = sorted( run_info_tuple_set - run_registry_tuple_set ) corresponding_run_registry_runs = [] for run in deviating_run_info_tuple_list: elements = list( filter( lambda x: x[0] == run[0] and x[2] == run[2], run_registry_tuple_set ) ) if not elements: elements = [("", "", "", "", "", "", False, False, False)] corresponding_run_registry_runs.extend(elements) deviating_run_info_dict = [ dict(zip(keys, run)) for run in deviating_run_info_tuple_list ] corresponding_run_registry_dict = [ dict(zip(keys, run)) for run in corresponding_run_registry_runs ] return deviating_run_info_dict, corresponding_run_registry_dict
def annotate_fill_number(self): """ Adds the lhc fill number from the Run Registry :return: QuerySet with added LHC fill number """ run_registry = TrackerRunRegistryClient() fills = run_registry.get_fill_number_by_run_number(self.run_numbers()) for run in self: fills_list=list( filter(lambda x: x["run_number"] == run.run_number, fills) ) if(fills_list): run.fill_number = fills_list[0]["fill_number"]
def group_run_numbers_by_fill_number(self): run_registry = TrackerRunRegistryClient() return run_registry.get_grouped_fill_numbers_by_run_number(self.run_numbers())
def test_get_dataset_runs_with_active_lumis(self): runregistry = TrackerRunRegistryClient() where_clause = build_list_where_clause(["321123"], "r.run_number") response = runregistry._get_dataset_runs_with_active_lumis( where_clause) assert response