def __init__(self, selection_name=None, verbose=False): self.Name = selection_name Analysis.__init__( self, verbose=verbose, results_dir='selections', sub_dir=selection_name if selection_name is not None else '') self.print_start(run=selection_name, tc=False, prnt=verbose) # Main self.Selections = self.load_selections() self.Selection = self.load_selection(selection_name) # Config self.DUTParser = load_parser( join(self.Dir, 'config', 'DiamondAliases.ini')) # Info self.RS = RunSelector() # dummy for information self.RunPlans = self.load_runplans() self.TestCampaigns = self.load_test_campaigns() self.Info = self.load_selection_info() self.DUTName = self.load_dut_name() self.NPlans = len(self.Info) if self.Info else None self.Ana = self.load_dummy() if self.Info: self.show_selection() self.print_finished(prnt=verbose)
def get_tc_infos(self, tc): rs = RunSelector(tc) return [ SelectionInfo( rs.select_runs_from_runplan(rp, dut + 1, unselect=True)) for rp in sorted(self.RunPlans[tc]) for dut in range(rs.get_n_duts(run_plan=rp)) ]
def __init__(self, multi, first_run=None, end_run=None, test_campaign=None, type_=None, verbose=False): self.Multi = multi self.Type = type_ self.Selection = RunSelector(testcampaign=test_campaign, verbose=verbose) self.Run = self.Selection.Run self.StartAtRun = choose(first_run, self.get_all_runs()[0] if self.Multi else self.find_last_converted()) self.StopAtRun = 1e9 if not multi or end_run is None else int(end_run) self.Runs = self.load_runs() self.Selection.select_runs(*[run.Number for run in self.Runs])
def load_selection_info(self): selections = [] if self.Selection is None: return for tc, rps in self.Selection.items(): for rp, dut_nrs in rps.items(): for dut_nr in array([dut_nrs]).flatten(): selections.append( SelectionInfo( RunSelector(tc).select_runs_from_runplan( rp, dut_nr, unselect=True))) return selections
def __init__(self, analysis=None, test_campaign=None, dut=None, begin=None, end=None, averaging=None, verbose=None): Analysis.__init__(self, test_campaign if analysis is None else analysis.TCString, verbose=verbose, sub_dir='currents') # Settings self.Averaging = averaging self.TimeZone = timezone('Europe/Zurich') self.DataDir = join(self.TCDir, 'hv') # Config self.Ana = analysis self.IsCollection = hasattr(analysis, 'Runs') self.Type = self.Ana.Type if analysis is not None and self.IsCollection else 'None' self.RunSelection = RunSelector(testcampaign=self.TCString) self.RunLogs = self.RunSelection.RunInfos self.Run = self.RunSelection.Run if analysis is None else self.Ana.FirstAnalysis.Run if self.IsCollection else self.Ana.Run if self.IsCollection: self.Runs = self.Ana.Runs # required for plotting self.RunPlan = self.load_run_plan() # required for plotting self.HVConfig = self.load_parser() self.Bias = self.Ana.Bias if hasattr(self.Ana, 'Bias') else None self.Draw.ServerDir = analysis.Draw.ServerDir if analysis is not None else None # Times self.Begin, self.End = self.load_times(begin, end, dut) # DUT self.DUT = self.init_dut(dut) # HV Device Info self.Number = self.load_device_number() self.Channel = self.load_device_channel() self.Name = self.HVConfig.get('HV{}'.format(self.Number), 'name') self.Brand = remove_digits(self.Name.split('-')[0]) self.Model = self.HVConfig.get('HV{}'.format(self.Number), 'model') self.Precision = .005 if '237' in self.Name else .05 # data self.IgnoreJumps = True self.Data = self.load_data()
def get_rp_diamonds(tc, rp): sel = RunSelector(tc).select_runs_from_runplan(rp, unselect=True) return sel.get_dut_names()
def get_high_rate_run(self, high=True): from src.run_selection import RunSelector return int(RunSelector(testcampaign=self.TCString).get_high_rate_run(self.Number, high))