Contents
Return to main CLIChart documentation page.
This page documents the cliserverlib Python library, which provides a Python driver for clichart in CLI server and TCP/IP server modes.
Before you use cliserverlib in CLI server mode, you must ensure that cliserverlib can locate the clichart shell script/batch file (as appropriate). There are 3 ways of doing this:
- The directory containing the cliserverlib.py file also contains the clichart shell script/batch file (as appropriate)
- (Unix/Linux only) The directory containing the cliserverlib.py file contains a symbolic link to the clichart shell script, or
- The directory containing the clichart shell script/batch file is in the PATH.
To use cliserverlib in TCP/IP server mode, the server must be listening to the appropriate port on localhost.
You'll also need to add the directory containing the cliserverlib.py file to your PYTHONPATH, so that it can be found by your Python script.
To interact with the library, you use the ClichartDriver class, which has the following public methods:
Generate a chart, using all the options set using key:value pair arguments. The arguments are as shown in the table below.
By default this clears all previous options first, so you must supply all options required. However, by passing clearFirst = False, your options will be taken as overrides for the previously-supplied options.
Any errors will be thrown as ClichartErrors.
The module also defines the following values, which are used for the chartType argument for the generateChart() method.
The arguments used for the generateChart() method mostly match the documented options for clichart - see the documentation on CLI server mode for documentation on the meaning of each one.
The arguments are:
Argument | Value | Equivalent clichart option | Example |
---|---|---|---|
inputPath | Path to input file | inputPath | inputPath = '/path/to/file.csv' |
outputPath | Path to output file | outputpath | outputPath = 'dir/chart.png' |
columnList | List or tuple of column indexes | columnlist | columnList = [0,1,4,5] |
columnList2 | As per columnList | columnlist2 | columnList2 = [3] |
isCsv | True | csv | isCsv = True |
hasHeader | True | hasheader | hasHeader = True |
chartType | CHART_TYPE_VALUE, CHART_TYPE_NONE | xvalue, noxvalue | chartType = cliserverlib.CHART_TYPE_VALUE |
title | Title | title | title = 'The title' |
xTitle | Title | xtitle | xTitle = 'Date' |
yTitle | Title | ytitle | yTitle = 'Temperature (deg C)' |
yTitle2 | Title | ytitle2 | yTitle2 = 'RPM' |
ignoreMissingColumns | True | ignoremissing | ignoreMissingColumns = True |
ignoreDuplicateValues | True | ignoredup | ignoreDuplicateValues = True |
dateFormat | Format string | dateformat | dateFormat = 'HH:MM:ss' |
showDatapoints | True | datapoints | showDatapoints = True |
showDatapoints2 | True | datapoints2 | showDatapoints2 = True |
lineWeight | int, 1 - 5 | lineweight | lineWeight = 4 |
lineWeight2 | int, 1 - 5 | lineweight2 | lineWeight2= 1 |
maxY | float | maxy | maxY = 30000 |
maxY2 | float | maxy2 | maxY2 = 30000 |
minY | float | miny | minY = 30000 |
minY2 | float | miny2 | minY2 = 30000 |
forceYRange | True | forceyrange | forceYRange = True |
forceYRange2 | True | forceyrange2 | forceYRange2 = True |
height | int, pixels | height | height = 600 |
width | int, pixels | width | width = 800 |
isBar | True | bar | isBar = True |
isBar2 | True | bar2 | isBar2 = True |
seriesTitles | List or tuple of series titles | seriestitles | seriesTitles = ['Fan speed', 'Temp'] |
seriesTitles2 | As per seriesTitles | seriestitles2 | seriesTitles2 = ['Fan speed', 'Temp'] |
debugEcho | True | debug-echo | debugEcho = True |
colours | List of (int, string) as (index, colour) | colours | colours = [(0: 'cyan'), (1, 'FF00FF')] |
A sample script fragment to generate 2 charts, then exit:
# import the library import cliserverlib try: # create the driver driver = cliserverlib.ClichartDriver() # a simple chart driver.generateChart(title = 'A title', inputPath = 'samples/SystemTemps.csv', isCsv = True, hasHeader = True, outputPath = 'samples/SystemTemps1.png') # re-use most of the previous options, by setting clearFirst = False driver.generateChart(clearFirst = False, outputPath = 'samples/SystemTemps2.png', columnList = [0, 1, 2]) # generate a value-based chart driver.generateChart(clearFirst = False, outputPath = 'samples/SystemTemps3.png', chartType = cliserverlib.CHART_TYPE_VALUE, columnList = [1, 2]) # now shut the driver down driver.close() except cliserverlib.ClichartError, message: print 'Chart generation failed with message', message