vis_tools.CSVReport module#

CVSReport.py

This class is a simple Python wrapper for csv report files.

Usage::

report = CSVReport(path.combine(my_dir, “ReportEventRecorder.csv”)) print report

class vis_tools.CSVReport.CSVReport(file_path='', verbose=False)[source]#

Bases: object

Class to hold DTK CSV report data.

The class is constructed with the path to the report file in question. Thereafter the public data members source_file and rows may be used to directly access the resultant Python representation of the file.

Additionally, since CSVReport implements __len__ and __iter__, the report object can be treated like a list, e.g.:

row = report[10]    # Obtain the 11th row
Public members:

The following data members are publicly exposed.

source_file (str): A copy of the file_path that was used to construct the CSVReport object.

rows (array): Array of Python objects made from the input file lines.

header (array): Array of field names read from top of CSV file.

make_series(name, time_field, data_field)[source]#

Make a Highcharts-compatible series object from CSV rows.

Returns:

Object for use as a Highcharts data series.

Return type:

obj

Parameters:
  • name (str) – The name that is put into the output series structure.

  • time_field (str) – The column name for the column representing time.

  • data_field (str) – The column name for teh data (Y) value.

Raises:

Data access exceptions.

read_partial(file_path, row_count)[source]#

Read the first row_count rows off a CSV.

To do a partial read of a CSV report, create a CSVReport with the default constructor, then call read_partial to read as many rows as desired. E.g.:

report = CSVReport()
report.read_partial(my_csv_file_path, 100)
print report.rows[10]
Returns:

None.

Parameters:
  • file_path (str) – File path of CSV report.

  • row_count – The number of rows to read.

Raises:

I/O, csv exceptions.

missing_columns(column_list)[source]#

Confirms that a given set of columns exists in a CSVReport.

This function can be used to verify the presence of a set of (presumably required) fields in a CSVReport. Typical usage is:

if (rpt.missing_columns(["Time", "Node_ID"]) is None)
    # All require columns present, so carry on
Returns:

List of columns from column_list that are not present, or None if all columns are present.

Parameters:

column_list (list) – Columns to be tested for.