def main(): logger, docopt_args, data_folder = lf.start_script(__doc__, 'repair-sequence.log') repair_folder = data_folder.joinpath('Repair') repair_folder.mkdir(exist_ok=True) tags = docopt_args['<test_tags>'] paths = get_paths(data_folder) logger.info(paths) og_test_seq_df = pd.read_csv(paths['test_seq']) test_order = get_test_order(og_test_seq_df, tags) rename_pps = recreate_rename_pps(og_test_seq_df, ts.get_tests()) qson = (og_test_seq_df['qs'] == 'on').any() test_seq_df = ts.create_test_seq_df(test_order, rename_pps, qson) test_seq_df.index = range(len(test_seq_df)) tag_to_name = dict(zip(og_test_seq_df['tag'], og_test_seq_df['test_name'])) repair_tags = {tag_to_name[int(tag)]: f"{tag} repair" for tag in tags} test_seq_df['tag'] = np.where(test_seq_df['test_name'].isin(repair_tags), test_seq_df['test_name'].apply(repair_tags.get), test_seq_df['tag']) logger.info('\n' + test_seq_df.to_string()) command_df = cs.create_command_df(test_seq_df) ts.save_sequences(test_seq_df, command_df, data_folder, repair=True)
def main(): logger, docopt_args, data_folder = lf.start_script(__doc__, 'ccf.log') paths = ff.get_paths(data_folder) if docopt_args['create']: path = docopt_args['<output_folder>'] src = Path(sys.path[0]).joinpath('ccf-input-template.csv') dst = Path(path).joinpath('ccf-input.csv') if dst.exists(): print(f'{dst} already exists') else: shutil.copy(src, dst) else: drop_cols = ['photometer', 'camera'] input_df = pd.read_csv(paths['ccf_input']).replace(0, np.NaN).dropna() # input_df = pd.read_csv(docopt_args['<input_path>']).dropna(subset=drop_cols, how='all') final_trendlines = {} for pps in input_df['pps'].unique(): logger.info(f'\nPPS: {pps}') pps_df = input_df.query('pps==@pps') final_trendlines[pps] = get_trendline(pps_df) # output_path = # if docopt_args['-o'] is not None: # output_path = Path(docopt_args['-o']).joinpath(output_path) output_df = pd.DataFrame(data=final_trendlines, index=['slope', 'intercept']).T output_df.to_csv(Path(data_folder).joinpath('ccf-output.csv')) output_df.to_csv(Path(ff.APPDATA_DIR).joinpath('ccf-output.csv')) input_df.to_csv(Path(data_folder).joinpath('ccf-input.csv'), index=False) input_df.to_csv(Path(ff.APPDATA_DIR).joinpath('ccf-input.csv'), index=False)
def main(): logger, docopt_args, data_folder = lf.start_script(__doc__, 'partial_sequence.log') paths = ff.get_paths(data_folder) test_seq_df = pd.read_csv(paths['test_seq']) tags = [int(i) for i in docopt_args['<tags>']] exclude_setup = test_seq_df[( test_seq_df['tag'].isin(tags))]['test_name'].apply( lambda name: 'standby' in name or 'waketime' in name).all() if exclude_setup: mask = (test_seq_df['tag'].isin(tags)) else: mask = (test_seq_df['test_name'].isin( ['screen_config'])) | (test_seq_df['tag'].isin(tags)) mask = mask | ( test_seq_df['test_name'].apply(lambda name: 'ccf' in name)) # if and paths['ccf'] is not None: # src, dst = str(paths['ccf']), str(Path(ff.APPDATA_DIR).joinpath('ccf-output.csv')) # shutil.copy(src, dst) # src, dst = str(paths['ccf_input']), str(Path(ff.APPDATA_DIR).joinpath('ccf-input.csv')) # shutil.copy(src, dst) # else: partial_test_seq_df = test_seq_df[mask].reset_index().drop('index', axis=1) command_df = cs.create_command_df(partial_test_seq_df) ts.save_sequences(partial_test_seq_df, command_df, data_folder, partial=True)
def main(): logger, docopt_args, data_folder = lf.start_script(__doc__, 'main-sequence.log') # ccf_pps_list = ['default', 'brightest'] # if docopt_args['--hdr']: # ccf_pps_list += ['hdr10_default'] ccf_pps_list = ['default'] if Path(sys.path[0]).joinpath('simple.txt').exists(): test_order = get_simple_test_order(docopt_args) else: test_order = get_test_order(docopt_args, ccf_pps_list) logger.info(test_order) rename_pps = { 'default': docopt_args['<default_pps>'], 'brightest': docopt_args['<brightest_pps>'], 'hdr10_default': docopt_args['--hdr'], 'abc_default': docopt_args['<default_pps>'] } qs = docopt_args['--qs'] qson = qs and (not docopt_args['--qsoff'] or float(docopt_args['--qsoff']) >= 10) test_seq_df = ts.create_test_seq_df(test_order, rename_pps, qs, qson) logger.info('\n' + test_seq_df.to_string()) command_df = cs.create_command_df(test_seq_df) ts.save_sequences(test_seq_df, command_df, data_folder) rd.get_status_df(test_seq_df, None, {}, data_folder)
def main(): logger, docopt_args, data_folder = lf.start_script(__doc__, 'basic_report.log') paths = ff.get_paths(data_folder) report_data = get_report_data(paths, data_folder, docopt_args) expected_data = ['data_folder', 'merged_df', 'rsdf', 'test_specs_df'] check_report_data(report_data, expected_data) make_basic_report(report_data)
def main(): logger, docopt_args, data_folder = lf.start_script(__doc__, 'test_status.log') paths = ff.get_paths(data_folder) test_seq_df = pd.read_csv(paths['test_seq']) merged_df = rd.get_merged_df(test_seq_df, paths, data_folder) rd.get_status_df.__wrapped__(test_seq_df, merged_df, paths, data_folder)
def main(): logger, docopt_args, data_folder = lf.start_script(__doc__, 'report.log') paths = ff.get_paths(data_folder) if Path(sys.path[0]).joinpath('simple.txt').exists(): merged_df = rd.get_merged_df(paths, data_folder) rd.get_results_summary_df(merged_df, data_folder, waketimes={}) rd.get_ccf_df(merged_df, data_folder) else: report_data = rd.get_report_data(paths, data_folder, docopt_args) ISection.save_content_dir = Path(data_folder).joinpath('Elements') make_report(report_data)
def main(): logger, docopt_args, data_folder = lf.start_script(__doc__, 'apl_power_report.log') paths = ff.get_paths(data_folder) report_data = get_report_data(paths, data_folder, docopt_args) ISection.save_content_dir = Path(data_folder).joinpath('APLvsPowerCharts') expected_data = [ 'data_folder', 'merged_df', 'rsdf', 'test_specs_df' ] check_report_data(report_data, expected_data) make_report(report_data)
def main(): logger, docopt_args, data_folder = lf.start_script(__doc__, 'lum_report.log') if data_folder is None: paths = {'lum_profile': Path(docopt_args['<lum_profile>'])} else: paths = ff.get_paths(data_folder) report_data = get_report_data(paths, data_folder, docopt_args) report_data['data_folder'] = paths['lum_profile'].parent expected_data = ['lum_df', 'test_specs_df'] check_report_data(report_data, expected_data) make_lum_report(report_data)
def main(): logger, docopt_args, data_folder = lf.start_script( __doc__, 'compliance_report.log') paths = ff.get_paths(data_folder) report_data = get_report_data(paths, data_folder, docopt_args) expected_data = [ 'data_folder', 'report_type', 'merged_df', 'hdr', 'on_mode_df', 'limit_funcs', 'rsdf', 'area', 'standby_df', 'waketimes', 'test_specs_df', ] check_report_data(report_data, expected_data) make_compliance_report(report_data)
def main(): logger, docopt_args, data_folder = lf.start_script(__doc__, 'pcl-sequence.log') entry_forms_template = Path( sys.path[0]).joinpath(r'config\entry-forms.xlsx') entry_forms = Path(data_folder).joinpath("entry-forms.xlsx") logger.info(f'Entry Forms Exist: {entry_forms.exists}') if not entry_forms.exists(): shutil.copy(entry_forms_template, entry_forms) try: os.system(str(entry_forms)) except: pass layout = [[sg.Text('Enter info in entry forms and press Ok to continue')], [sg.Ok()]] sg.Window('Title').Layout(layout).Read() pps_df = get_pps_df(entry_forms) logger.info('\n' + pps_df.to_string()) test_order = get_test_order(pps_df) logger.info(test_order) rename_pps = dict(zip(pps_df.pps_labels, pps_df.pps_name)) logger.info(rename_pps) qs_info = get_qsinfo(entry_forms) test_seq_df = ts.create_test_seq_df(test_order, rename_pps, **qs_info) logger.info('\n' + test_seq_df.to_string()) command_df = cs.create_command_df(test_seq_df) ts.save_sequences(test_seq_df, command_df, data_folder)
def main(): logger, docopt_args, data_folder = lf.start_script(__doc__, 'merge_results.log') paths = ff.get_paths(data_folder) get_merged_df(paths, data_folder)