Source code for analyzer.cli.dataset_table

import io
import csv
from rich.table import Table


[docs] def createSampleTable(repo, pattern=None, as_csv=False): table = Table(title="Samples") table.add_column("Dataset") table.add_column("Sample Name") table.add_column("Number Events") table.add_column("Data/MC") table.add_column("Era") table.add_column("X-Sec") for dataset_name in sorted(repo): dataset = repo[dataset_name] for sample in dataset: xs = sample.x_sec table.add_row( dataset.name, sample.name, f"{str(sample.n_events)}", str(dataset.sample_type), f"{dataset.era}", f"{xs:0.3g}" if xs else "N/A", ) if not as_csv: return table else: d = {x.header: x.cells for x in table.columns} output = output = io.StringIO() writer = csv.writer(output, quoting=csv.QUOTE_NONNUMERIC) headers = list(d) vals = zip(*(d[x] for x in headers)) writer.writerow(headers) for r in vals: writer.writerow(r) return output.getvalue()
[docs] def createDatasetTable(manager, pattern=None, as_csv=False): table = Table(title="Samples") table.add_column("Dataset") table.add_column("Num Samples") table.add_column("Data/MC") table.add_column("Era") everything = [manager[x] for x in sorted(manager)] for s in everything: table.add_row( s.name, f"{len(s)}", str(s.sample_type), f"{s.era}", ) if not as_csv: return table else: d = {x.header: x.cells for x in table.columns} output = output = io.StringIO() writer = csv.writer(output, quoting=csv.QUOTE_NONNUMERIC) headers = list(d) vals = zip(*(d[x] for x in headers)) writer.writerow(headers) for r in vals: writer.writerow(r) return output.getvalue()