qcg.pilotjob.reports module

class qcg.pilotjob.reports.JobReport(report_file, buffer_size=100)

Bases: object

Base class for report generating classes.

The report_job_entry must be overloaded by the child classes.

report_file

path to the report file

Type:str
buffer

buffer for caching reports

Type:io.StringIO
buffered_entries

number of buffered entries

Type:int
buffer_size

maximum number of entries in cache before they will be flushed to the report file

Type:int

Initialize report class.

Parameters:
  • report_file (str) – path to the report file
  • buffer_size (int) – maximum number of entries to be buffered
report_job(job, iteration)

Report job statistics.

Parameters:
  • job (Job) – job to report
  • iteration (int) – job’s iteration index
flush()

Output buffered entries to the file.

report_job_entry(job, iteration, ostream)

The method for generating report content for given job’s iteration.

Parameters:
  • job (Job) – job to report
  • iteration (int) – job’s iteration index
  • ostream (io.StringIO) – buffer to output job’s report
class qcg.pilotjob.reports.TextFileReport(report_file)

Bases: qcg.pilotjob.reports.JobReport

Generate human readable job report file.

Initialize text file reporter.

Parameters:report_file (str) – path to the report file
NAME = 'text'
report_job_entry(job, iteration, ostream)

Generate human readable entry for job’s iteration.

Parameters:
  • job (Job) – job to report
  • iteration (int) – job’s iteration index
  • ostream (io.StringIO) – buffer to output job’s report
class qcg.pilotjob.reports.JsonFileReport(report_file)

Bases: qcg.pilotjob.reports.JobReport

Generate easy parsable JSON job report file.

Initialize text file reporter.

Parameters:report_file (str) – path to the report file
NAME = 'json'
report_job_entry(job, iteration, ostream)

Generate human readable entry for job’s iteration.

Parameters:
  • job (Job) – job to report
  • iteration (int) – job’s iteration index
  • ostream (io.StringIO) – buffer to output job’s report
qcg.pilotjob.reports.none_reporter()

Dummy class for no reporting job’s.

qcg.pilotjob.reports.get_reporter(format_name, report_file)

Return reporter class based on the name.

The currently available reporter classes are:
‘text’ - human readable job reports ‘json’ - easy parsable JSON job reports ‘none’ - none reporting
Parameters:
  • format_name (str) – report format name
  • report_file (str) – path to the output file
Returns:

instance of report class

Return type:

JobReport

Raises:

ValueError – when reporter with given name is not known