def create_report(self): from report.report import Report import json if len(self.params)>0: params = json.loads(self.params[0]) if not "orientation" in params: params["orientation"] = "p" if not "size" in params: params["size"] = "a4" if not "output" in params: params["output"] = "pdf" rpt = Report(orientation=params["orientation"],format=params["size"]) if "data" in params: rpt.databind = params["data"] if "template" in params: rpt.loadDefinition(params["template"]) rpt.createReport() if params["output"] == "pdf": import binascii sys.stdout.write(binascii.b2a_base64(rpt.save2Pdf())) elif output == "xml": sys.stdout.write(rpt.save2Xml()) else: sys.stdout.write(rpt.save2Html())
def execute(self): cfg = self.conf global_project = cfg['general']['short_name'] elastic = cfg['es_enrichment']['url'] data_dir = cfg['report']['data_dir'] end_date = cfg['report']['end_date'] start_date = cfg['report']['start_date'] offset = cfg['report']['offset'] config_file = cfg['report']['config_file'] interval = cfg['report']['interval'] filters = cfg['report']['filters'] if not os.path.exists(data_dir): os.makedirs(data_dir) # All the dates must be UTC, including those from command line if end_date == 'now': end_date = parser.parse( date.today().strftime('%Y-%m-%d')).replace(tzinfo=timezone.utc) else: end_date = parser.parse(end_date).replace(tzinfo=timezone.utc) # The end date is not included, the report must finish the day before end_date += timedelta(microseconds=-1) start_date = parser.parse(start_date).replace(tzinfo=timezone.utc) offset = offset if offset else None report = Report(elastic, start=start_date, end=end_date, data_dir=data_dir, filters=Report.get_core_filters(filters), interval=interval, offset=offset, config_file=config_file) report.create() # First copy the reports template to create a new report from it tmp_path = tempfile.mkdtemp(prefix='report_') copy_tree("reports/report_template", tmp_path) # Copy the data generated to be used in LaTeX template copy_tree("report_data", os.path.join(tmp_path, "data")) copy_tree("report_data", os.path.join(tmp_path, "figs")) # Change the project global name cmd = ['sed -i s/TemplateProject/' + global_project + '/g *.tex'] subprocess.call(cmd, shell=True, cwd=tmp_path) # Fix LaTeX special chars cmd = [r'sed -i "s/\&/\\\&/g" data/git_top_organizations_*'] subprocess.call(cmd, shell=True, cwd=tmp_path) # Build the report subprocess.call("make", shell=True, cwd=tmp_path) # Copy the report copy_tree(os.path.join(tmp_path, "pdf"), "report_data/pdf") shutil.rmtree(tmp_path)
def text_report(self): answer = SelectFeaturesAllDialog.ask(self, self.raw_table.features, self.norm_table.features, self.labels_table.features, policy=[1]) if answer == QDialog.Rejected: return features_raw, features_norm, features_labels = answer feature_labels = features_labels[0] labels_features = [ x for x in self.labels_table.features if x != feature_labels ] report = Report(feature_labels.series) norm_data = [] if len(features_norm) > 0: norm_data = pd.concat([f.series for f in features_norm], axis=1) raw_data = [] for f in features_raw: if f.is_nominal: raw_data.extend(f.expose_one_hot()) else: raw_data.append(f) norm_data = None if len(norm_data) == 0 else norm_data raw_data = None if len(raw_data) == 0 else raw_data raw_data = pd.concat([f.series for f in raw_data], axis=1) TextReportDialog.ask(self, feature_labels.result, report, norm_data, raw_data, labels_features, self.raw_table.features)
def aggregate(self, experimentID, user): """ Aggregate the GFP scores and send report """ gfps = GFP.objects.filter(experiment_id=experimentID) log.debug("RUNNING aggregate: initialize method") algorithm = Algorithm() algorithm = algorithm.getAlgorithm("NV") algorithm.loadDataAggregate() algorithm.aggregate(gfps, experimentID) experiment = Experiment.objects.filter(id=experimentID) log.debug("RUNNING aggregate: start report") report = Report(experimentID) filename = REPORT_DIR + "sapling_gfp_report_" + slugify(experiment[0].Name) + "_" + str(experimentID) + ".pdf" report.generateReport(filename) del report subject = "SAPLING report: " + experiment[0].Name body = "Dear " + user.first_name + " "+ user.last_name + ",\n\n" body += "Please find attached a report of your experiment " + experiment[0].Name + ".\n\n" body += "Regards,\n SAPLING" email = EmailMessage(subject=subject, body=body, from_email="*****@*****.**", to=[user.email]) reportname = "sapling_gfp_report_" + slugify(experiment[0].Name) + "_" + str(experimentID) + ".pdf" handle = open(filename, 'rb') email.attach(reportname, handle.read(), "application/pdf") enrichname = "Enrichment_GeneList_GO_" + str(experimentID) + ".csv" filename = REPORT_DIR + "Enrichment_GeneList_GO_" + str(experimentID) + ".csv" handle = open(filename, 'rb') email.attach(enrichname, handle.read(), "text/csv") email.send() handle.close() log.debug("DONE Aggregate")
def load_report_xml(self): from report.report import Report orient = "p" if len(self.params)>0: orient = self.params[0] output = "pdf" if len(self.params)>1: output = self.params[1] deffile = self.params[2] rpt = Report(orient) xdata = self.read_file(deffile) rpt.loadDefinition(xdata) rpt.createReport() if output == "pdf": import binascii sys.stdout.write(binascii.b2a_base64(rpt.save2Pdf())) elif output == "xml": sys.stdout.write(rpt.save2Xml()) else: sys.stdout.write(rpt.save2Html())
def report_tests(report: Report) -> None: yield None report.finalize() assert report.passed() is True
def predict(self, gfpID, user): """ annotation: list of gene symbols """ log.debug("Start time: %s" % timezone.now().strftime('%d/%m/%Y %H:%M:%S')) gfp = GFP.objects.filter(id=gfpID) gfp = gfp[0] log.debug("RUNNING: initialize method") self.update_state(state='RUNNING', meta='Initialize method') if not ProcessManagement.objects.filter(gfp_id=gfpID, experiment_id=gfp.experiment_id).exists(): ProcessManagement.objects.create(gfp_id=gfpID, experiment_id=gfp.experiment_id, \ State= "RUNNING: initialize method", Name=gfp.Network+"_"+gfp.Algorithm) else: ProcessManagement.objects.filter(gfp_id=gfpID, experiment_id=gfp.experiment_id).update(State= \ "RUNNING: initialize method") algorithm = Algorithm() algorithm = algorithm.getAlgorithm(gfp.Algorithm) log.debug("RUNNING: load files") self.update_state(state='RUNNING', meta='Load files') ProcessManagement.objects.filter(gfp_id=gfpID, experiment_id=gfp.experiment_id).update(State= \ "RUNNING: load files") algorithm.loadData(gfpID) log.debug("RUNNING: run method") self.update_state(state='RUNNING', meta='Run method') ProcessManagement.objects.filter(gfp_id=gfpID, experiment_id=gfp.experiment_id).update(State= \ "RUNNING: run method") algorithm.run() log.debug("RUNNING: save predictions") self.update_state(state='RUNNING', meta='Save predictions') ProcessManagement.objects.filter(gfp_id=gfpID, experiment_id=gfp.experiment_id).update( \ State="RUNNING: save predictions") algorithm.save(gfpID) log.debug("RUNNING: enrichment") algorithm.enrichment(gfp.experiment_id, gfpID) ProcessManagement.objects.filter(gfp_id=gfpID, experiment_id=gfp.experiment_id).update( \ State="FINISHED") log.debug("FINISHED") gfps = GFP.objects.filter(experiment_id=gfp.experiment_id) processes = ProcessManagement.objects.filter(experiment_id=gfp.experiment_id) flag = True if len(processes) != len(gfps): flag = False else: for process in processes: if process.State != "FINISHED": flag = False break log.debug("Experiment flag: %s", str(flag)) ## Create report and aggregate if flag: log.debug("REPORT EMAIL") gfps = GFP.objects.filter(experiment_id=gfp.experiment_id) # Aggregation of GFPs algorithm.aggregate(gfps, gfp.experiment_id) experiment = Experiment.objects.filter(id=gfp.experiment_id) log.debug("RUNNING: start report") report = Report(gfp.experiment_id) filename = REPORT_DIR + "sapling_gfp_report_" + slugify(experiment[0].Name) + "_" \ + str(gfp.experiment_id) + ".pdf" log.debug("RUNNING: %s" % filename) report.generateReport(filename) del report subject = "SAPLING report: " + experiment[0].Name body = "Dear " + user.first_name + " "+ user.last_name + ",\n\n" body += "Please find attached a report of your experiment " + experiment[0].Name + ".\n\n" body += "Regards,\n SAPLING" email = EmailMessage(subject=subject, body=body, from_email="*****@*****.**", to=[user.email]) reportname = "sapling_gfp_report_" + slugify(experiment[0].Name) + "_" + str(gfp.experiment_id) + ".pdf" handle = open(filename, 'rb') email.attach(reportname, handle.read(), "application/pdf") enrichname = "Enrichment_GeneList_GO_" + str(gfp.experiment_id) + ".csv" filename = REPORT_DIR + "Enrichment_GeneList_GO_" + str(gfp.experiment_id) + ".csv" handle = open(filename, 'rb') email.attach(enrichname, handle.read(), "text/csv") email.send() handle.close() log.debug("DONE")
def report(): return Report()
def test_all(self, report: Report): report.soft_assert(True is True, "KEY-0001", "True is True") report.soft_assert(True is True, "KEY-0002", "True is True") report.soft_assert(True is False, "KEY-0003", "True should be false") report.soft_assert(True is False, "KEY-0004", "True should be false")
def test_errors(self, report: Report): report.soft_assert(True is False, "KEY-0004", "True should be false") assert len(report.errors) == 1
def test_failures(self, report: Report): report.soft_assert(True is False, "KEY-0003", "True should be false") assert len(report.failures) == 1
def test_passed(self, report: Report): report.soft_assert(True is True, "KEY-0002", "True is True") assert report.passed()
def test_successes(self, report: Report): report.soft_assert(True is True, "KEY-0001", "True is True") assert len(report.successes) == 1
def create_report_sample(self): from report.report import Report orient = "p" if len(self.params)>0: orient = self.params[0] output = "pdf" if len(self.params)>1: output = self.params[1] rpt = Report(orient) #default values rpt.template["document"]["title"] = "Nervatura Report" rpt.template["margins"]["left-margin"] = 15 rpt.template["margins"]["top-margin"] = 15 rpt.template["margins"]["right-margin"] = 15 rpt.template["margins"]["bottom-margin"] = 15 rpt.template["style"]["font-family"] = "times" #header header = rpt.template["elements"]["header"] row_data = rpt.insertElement(header, "row", -1, {"height": 10}) rpt.insertElement(row_data, "image",-1,{"src":"logo"}) rpt.insertElement(row_data, "cell",-1,{ "name":"label", "value":"labels.title", "font-style": "bolditalic", "font-size": 26, "color": "#D8DBDA"}) rpt.insertElement(row_data, "cell",-1,{ "name":"label", "value":"Python Sample", "font-style": "bold", "align": "right"}) rpt.insertElement(header, "vgap", -1, {"height": 2}) rpt.insertElement(header, "hline", -1, {"border-color": 218}) rpt.insertElement(header, "vgap", -1, {"height": 2}) #details details = rpt.template["elements"]["details"] rpt.insertElement(details, "vgap", -1, {"height": 2}) row_data = rpt.insertElement(details, "row") rpt.insertElement(row_data, "cell",-1,{ "name": "label", "width": "50%", "font-style": "bold", "value": "labels.left_text", "border": "LT", "border-color": 218, "background-color": 245}) rpt.insertElement(row_data, "cell",-1,{ "name": "label", "font-style": "bold", "value": "labels.left_text", "border": "LTR", "border-color": 218, "background-color": 245}) row_data = rpt.insertElement(details, "row") rpt.insertElement(row_data, "cell",-1,{ "name": "short_text", "width": "50%", "value": "head.short_text", "border": "L", "border-color": 218}) rpt.insertElement(row_data, "cell",-1,{ "name": "short_text", "value": "head.short_text", "border": "LR", "border-color": 218}) row_data = rpt.insertElement(details, "row") rpt.insertElement(row_data, "cell",-1,{ "name": "short_text", "width": "50%", "value": "head.short_text", "border": "LB", "border-color": 218}) rpt.insertElement(row_data, "cell",-1,{ "name": "short_text", "value": "head.short_text", "border": "LBR", "border-color": 218}) row_data = rpt.insertElement(details, "row") rpt.insertElement(row_data, "cell",-1,{ "name": "label", "width": "40", "font-style": "bold", "value": "labels.left_text", "border": "LB", "border-color": 218}) rpt.insertElement(row_data, "cell",-1,{ "name": "label", "align": "center", "width": "30", "font-style": "bold", "value": "labels.center_text", "border": "LB", "border-color": 218}) rpt.insertElement(row_data, "cell",-1,{ "name": "label", "align": "right", "width": "40", "font-style": "bold", "value": "labels.right_text", "border": "LB", "border-color": 218}) rpt.insertElement(row_data, "cell",-1,{ "name": "label", "font-style": "bold", "value": "labels.left_text", "border": "LBR", "border-color": 218}) row_data = rpt.insertElement(details, "row") rpt.insertElement(row_data, "cell",-1,{ "name": "short_text", "width": "40", "value": "head.short_text", "border": "LB", "border-color": 218}) rpt.insertElement(row_data, "cell",-1,{ "name": "date", "align": "center", "width": "30", "value": "head.date", "border": "LB", "border-color": 218}) rpt.insertElement(row_data, "cell",-1,{ "name": "amount", "align": "right", "width": "40", "value": "head.number", "border": "LB", "border-color": 218}) rpt.insertElement(row_data, "cell",-1,{ "name": "short_text", "value": "head.short_text", "border": "LBR", "border-color": 218}) row_data = rpt.insertElement(details, "row") rpt.insertElement(row_data, "cell",-1,{ "name": "label", "font-style": "bold", "value": "labels.left_text", "border": "LB", "border-color": 218}) rpt.insertElement(row_data, "cell",-1,{ "name": "short_text", "width": "50", "value": "head.short_text", "border": "LB", "border-color": 218}) rpt.insertElement(row_data, "cell",-1,{ "name": "label", "font-style": "bold", "value": "labels.left_text", "border": "LB", "border-color": 218}) rpt.insertElement(row_data, "cell",-1,{ "name": "short_text", "value": "head.short_text", "border": "LBR", "border-color": 218}) row_data = rpt.insertElement(details, "row") rpt.insertElement(row_data, "cell",-1,{ "name": "long_text", "multiline": "true", "value": "head.long_text", "border": "LBR", "border-color": 218}) rpt.insertElement(details, "vgap", -1, {"height": 2}) row_data = rpt.insertElement(details, "row", -1, {"hgap": 2}) rpt.insertElement(row_data, "cell",-1,{ "name": "label", "value": "labels.left_text", "font-style": "bold", "border": "1", "border-color": 245, "background-color": 245}) rpt.insertElement(row_data, "cell",-1,{ "name": "short_text", "value": "head.short_text", "border": "1", "border-color": 218}) rpt.insertElement(row_data, "cell",-1,{ "name": "label", "value": "labels.left_text", "font-style": "bold", "border": "1", "border-color": 245, "background-color": 245}) rpt.insertElement(row_data, "cell",-1,{ "name": "short_text", "value": "head.short_text", "border": "1", "border-color": 218}) rpt.insertElement(details, "vgap", -1, {"height": 2}) row_data = rpt.insertElement(details, "row", -1, {"hgap": 2}) rpt.insertElement(row_data, "cell",-1,{ "name": "label", "value": "labels.long_text", "font-style": "bold", "border": "1", "border-color": 245, "background-color": 245}) rpt.insertElement(row_data, "cell",-1,{ "name": "long_text", "multiline": "true", "value": "head.long_text", "border": "1", "border-color": 218}) rpt.insertElement(details, "vgap", -1, {"height": 2}) rpt.insertElement(details, "hline", -1, {"border-color": 218}) rpt.insertElement(details, "vgap", -1, {"height": 2}) row_data = rpt.insertElement(details, "row", -1, {"hgap": 3}) rpt.insertElement(row_data, "cell",-1,{ "name": "label", "value": "Barcode (Interleaved 2of5)", "font-style": "bold", "font-size": 10, "border": "1", "border-color": 245, "background-color": 245}) rpt.insertElement(row_data, "barcode",-1,{"code-type": "ITF", "value": "1234567890", "visible-value":1}) rpt.insertElement(row_data, "cell",-1,{ "name": "label", "value": "Barcode (Code 39)", "font-style": "bold", "font-size": 10, "border": "1", "border-color": 245, "background-color": 245}) rpt.insertElement(row_data, "barcode",-1,{"code-type": "CODE_39", "value": "1234567890ABCDEF", "visible-value":1}) rpt.insertElement(details, "vgap", -1, {"height": 3}) row_data = rpt.insertElement(details, "row") rpt.insertElement(row_data, "cell",-1,{ "name": "label", "value": "Datagrid Sample", "align": "center", "font-style": "bold", "border": "1", "border-color": 245, "background-color": 245}) rpt.insertElement(details, "vgap", -1, {"height": 2}) grid_data = rpt.insertElement(details, "datagrid", -1, { "name": "items", "databind": "items", "border": "1", "border-color": 218, "header-background": 245, "footer-background": 245}) rpt.insertElement(grid_data, "column",-1,{ "width": "8%", "fieldname": "counter", "align": "right", "label": "labels.counter", "footer": "labels.total"}) rpt.insertElement(grid_data, "column",-1,{ "width": "20%", "fieldname": "date", "align": "center", "label": "labels.center_text"}) rpt.insertElement(grid_data, "column",-1,{ "width": "15%", "fieldname": "number", "align": "right", "label": "labels.right_text", "footer": "items_footer.items_total", "footer-align": "right"}) rpt.insertElement(grid_data, "column",-1,{ "fieldname": "text", "label": "labels.left_text"}) rpt.insertElement(details, "vgap", -1, {"height": 5}) rpt.insertElement(details, "html", -1, {"fieldname": "html_text", "html": "<i>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</i> ={{html_text}} Nulla a pretium nunc, in cursus quam."}) #footer footer = rpt.template["elements"]["footer"] rpt.insertElement(footer, "vgap", -1, {"height": 2}) rpt.insertElement(footer, "hline", -1, {"border-color": 218}) row_data = rpt.insertElement(footer, "row", -1, {"height": 10}) rpt.insertElement(row_data, "cell",-1,{"value": "Nervatura Report Template", "font-style": "bolditalic"}) rpt.insertElement(row_data, "cell",-1,{"value": "{{page}}", "align": "right", "font-style": "bold"}) #data rpt.setData("labels", {"title": "REPORT TEMPLATE", "left_text": "Short text", "center_text": "Centered text", "right_text": "Right text", "long_text": "Long text", "counter": "No.", "total": "Total"}) rpt.setData("head", {"short_text": "Lorem ipsum dolor", "number": "123 456", "date": "2015.01.01", "long_text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque eu mattis diam, sed dapibus justo. In eget augue nisi. Cras eget odio vel mi vulputate interdum. Curabitur consequat sapien at lacus tincidunt, at sagittis felis lobortis. Aenean porta maximus quam eu porta. Fusce sed leo ut justo commodo facilisis. Vivamus vitae tempor erat, at ultrices enim. Nulla a pretium nunc, in cursus quam."}) rpt.setData("html_text", "<p><b>Pellentesque eu mattis diam, sed dapibus justo. In eget augue nisi. Cras eget odio vel mi vulputate interdum. Curabitur consequat sapien at lacus tincidunt, at sagittis felis lobortis. Aenean porta maximus quam eu porta. Fusce sed leo ut justo commodo facilisis. Vivamus vitae tempor erat, at ultrices enim.</b></p>") rpt.setData("items_footer", {"items_total": "3 703 680"}) items = [] for i in range(1, 30): items.append({"text": str(i)+". Lorem ipsum dolor", "number": "123 456", "date": "2015.01.01"}) rpt.setData("items", items) rpt.setData("logo", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAFxGAABcRgEUlENBAAAAB3RJTUUH4AcCFiIAfaA8WwAAAeBJREFUSMftlj9IVlEUwH/nfR/+G3QwaPlAg3D5pKkPDIoIghYVm4yCFKlPcGoQdGppa4mm4IJbQdFYRKDgoFR0o5ZwcL5LLoKCoPW+43JfvO/6ns9P0ckDj8c5l3t+55x73rkPzqUFqdRrTe/Tho0CRGeQ2FWA8ilmcgH4CUyeGFSp13DGpvUOoB+YSwDALwBp0VF6jwAKXAbGgIfAYOBi1Rl7oxDknXf56IaBKtDhnzagvcBHzRn7IxOUZFGp12aAaeDKMSv7D+gBdpyxzSBfmnZgGbh2wn5Yc8ZWEyXKOI+lY0C2RGQ9sD1OK/9BvlyjwPUWIZsi8lFVB1K2DWfsl/REKAdle94i5LuIbKnq/cC+mAR/ICMvvUcliMgroFNVb2csT4WGcoGeJbsisqCq4zmBLThj90JjmNFeQbt+i0ReqOpMDiR2xj7KmtYh6E/WZhH5WoqiCWCooTp/SDC3wrPJ7Dr/9Sdn8L5UKt0T5JOqVuNG401BSaedsSt5d08ULFwENoBNVb0Zx/FbRUeA7gLIU2esCWdjU/P41h4HZv3d8Q74DTw7QmP8Baacsa8Pg6S7bBvoSw9BP0yfAJ05gM/AXSDOO5cDGeVdC972ALgDXAJ2gQ/O2Jfnf0RnJvumbKT0gnMTFgAAAABJRU5ErkJggg==") rpt.createReport() if output == "pdf": import binascii sys.stdout.write(binascii.b2a_base64(rpt.save2Pdf())) elif output == "xml": sys.stdout.write(rpt.save2Xml()) else: sys.stdout.write(rpt.save2Html())
def report() -> Report: return Report()
def cli(design, design_name, tag, run_path, output_file, man_report): """ Creates manufacturability and metric summary reports for a given design and OpenLane run. """ # Extracting Configurations params = ConfigHandler.get_config(design, tag, run_path) # Extracting Report report = Report(design, tag, design_name, params, run_path).get_report() # Write into file with open(output_file, "w") as f: f.write(Report.get_header() + "," + ConfigHandler.get_header()) f.write("\n") f.write(report) # Adding Extra Attributes computed from configs and reported statistics utils.add_computed_statistics(output_file) # Tracking Magic DRC, LVS, Antenna Logs: run_path = run_path or utils.get_run_path(design, tag) _, magic_antenna_report = get_name( os.path.join(run_path, "reports", "routing"), "antenna_violators.rpt") _, arc_antenna_report = get_name( os.path.join(run_path, "reports", "finishing"), "antenna.rpt") _, magic_drc_report = get_name( os.path.join(run_path, "reports", "finishing"), "drc.rpt") _, lvs_report = get_name(os.path.join(run_path, "logs", "finishing"), f"{design_name}.lvs.lef.log") printArr = [] printArr.append("Design Name: " + design_name) printArr.append("Run Directory: " + str(run_path)) splitLine = "----------------------------------------" # Summarizing Magic DRC drcVioDict = dict() cnt = 0 if os.path.exists(magic_drc_report): drcFileOpener = open(magic_drc_report) if drcFileOpener.mode == "r": drcContent = drcFileOpener.read() drcFileOpener.close() # design name # violation message # list of violations # Total Count: printArr.append(splitLine) printArr.append("\nMagic DRC Summary:") printArr.append("Source: " + str(magic_drc_report)) if drcContent is not None: drcSections = drcContent.split(splitLine) if len(drcSections) > 2: for i in range(1, len(drcSections) - 1, 2): drcVioDict[drcSections[i]] = len( drcSections[i + 1].split("\n")) - 2 for key in drcVioDict: val = drcVioDict[key] cnt += val printArr.append('Violation Message "' + str(key.strip()) + ' "found ' + str(val) + " Times.") printArr.append("Total Magic DRC violations is " + str(cnt)) else: printArr.append("Source not found.") # Summarizing LVS printArr.append(splitLine) printArr.append("\nLVS Summary:") printArr.append("Source: " + str(lvs_report)) if os.path.exists(lvs_report): lvsFileOpener = open(lvs_report) if lvsFileOpener.mode == "r": lvsContent = lvsFileOpener.read() lvsFileOpener.close() flag = False for line in lvsContent.split("\n"): if line.find("Total errors =") != -1: flag = True printArr.append(line) elif line.find("net") != -1: printArr.append(line) if not flag: printArr.append("Design is LVS clean.") else: printArr.append("Source not found.") # Summarizing Antennas printArr.append(splitLine) printArr.append("\nAntenna Summary:") if os.path.exists(arc_antenna_report): printArr.append("Source: " + str(arc_antenna_report)) antFileOpener = open(arc_antenna_report) if antFileOpener.mode == "r": antContent = antFileOpener.read().split("\n")[-5:] antFileOpener.close() for line in antContent: if line.find("violated:") != -1: printArr.append(line) elif os.path.exists(magic_antenna_report): printArr.append("Source: " + str(magic_antenna_report)) antFileOpener = open(magic_antenna_report) if antFileOpener.mode == "r": antContent = antFileOpener.read().split("\n") antFileOpener.close() tot_cnt = 0 for ant in antContent: if len(str(ant).strip()): tot_cnt += 1 printArr.append("Number of pins violated: " + str(tot_cnt)) else: printArr.append("No antenna report found.") # write into file with open(man_report, "w") as f: f.write("\n".join(printArr))
def test_answer_cell_has_answer_a_question_text(self, report: Report): (AnswerCellPage().get_answer_cell_text(lambda text: report.soft_assert( "Answer a Question" == text, "HW-001", "Answer cell text should be 'Answer a Question'")))
def test_card_has_question_mark(self, report: Report): (QuestionsPage().tap_answer_cell().get_question_text( lambda text: report.soft_assert("?" in text, "HW-000", "Questions should have a '?'")). dismiss_via_swipe()) assert QuestionsPage()
def add_tabs(self): """ adds new tabs """ global logger if ('Inventory', True) in self.access: logger.info('initiating Inventory') icon = QIcon() icon.addPixmap(QPixmap(":/images/inventory.png"), QIcon.Normal, QIcon.Off) from inventory.inventory import Inventory inventory = Inventory() # inventory.inventory_tab_1.setToolTip("Inventory Section") self.main_tabWidget.addTab(inventory.inventory_tab_1, icon, "") inventory.inventory_detail_tabWidget.setCurrentIndex(0) else: self.inventory_frame_1.setVisible(False) self.progress.setLabelText('Inventory Done....') self.progress.setValue(2) if ('Billing', True) in self.access: logger.info('initiating Billing') icon1 = QIcon() icon1.addPixmap(QPixmap(":/images/billing.png"), QIcon.Normal, QIcon.Off) from billing.billing import Billing bill = Billing() # bill.billing_tab_2.setToolTip("Billing Section") self.main_tabWidget.addTab(bill.billing_tab_2, icon1, "") bill.billing_detail_tabWidget.setCurrentIndex(0) else: self.billing_frame_2.setVisible(False) self.progress.setLabelText('Billing Done...') self.progress.setValue(3) if ('Employee', True) in self.access: logger.info('initiating Employee') icon2 = QIcon() icon2.addPixmap(QPixmap(":/images/employee.png"), QIcon.Normal, QIcon.Off) from employee.employee import Employee employee = Employee() # employee.employee_tab_3.setToolTip("Employee Section") self.main_tabWidget.addTab(employee.employee_tab_3, icon2, "") employee.employee_detail_tabWidget.setCurrentIndex(0) else: self.employee_frame_3.setVisible(False) self.progress.setLabelText('Employee Done...') self.progress.setValue(4) if ('Menu', True) in self.access: logger.info('initiating Menu') icon3 = QIcon() icon3.addPixmap(QPixmap(":/images/menu.png"), QIcon.Normal, QIcon.Off) from menu.menu import Menu menu = Menu() # menu.menu_tab_4.setToolTip("Menu Section") self.main_tabWidget.addTab(menu.menu_tab_4, icon3, "") menu.menu_detail_tabWidget.setCurrentIndex(0) else: self.menu_frame_4.setVisible(False) self.progress.setLabelText('Menu Done....') self.progress.setValue(5) if ('Report', True) in self.access: logger.info('initiating Report') icon4 = QIcon() icon4.addPixmap(QPixmap(":/images/report.png"), QIcon.Normal, QIcon.Off) from report.report import Report report = Report() # report.report_tab_5.setToolTip("Report Section") self.main_tabWidget.addTab(report.report_tab_5, icon4, "") report.report_detail_tabWidget.setCurrentIndex(0) else: self.report_frame_5.setVisible(False) self.progress.setLabelText('Report Done....') self.progress.setValue(6) if ('Waste', True) in self.access: logger.info('initiating Waste') icon5 = QIcon() icon5.addPixmap(QPixmap(":/images/waste.png"), QIcon.Normal, QIcon.Off) from waste.waste import Waste waste = Waste() # waste.waste_tab_6.setToolTip("Waste Section") self.main_tabWidget.addTab(waste.waste_tab_6, icon5, "") waste.waste_detail_tabWidget.setCurrentIndex(0) else: self.waste_frame_6.setVisible(False) self.progress.setLabelText('Waste Done....') self.progress.setValue(7)