Version 12 (modified by Fran Boon, 12 years ago) ( diff )



S3Cube is a REST method handler for data analysis.


S3Cube can generate contingency tables (a.k.a. pivot tables) from S3Resources.


S3Cube uses pyvttbl to generate contingency tables. A modified version of pyvttbl is integrated into the S3 framework.

Pyvttbl requires the following Python modules:

  • numpy
  • matplotlib

Python 2.7 is recommended for S3Cube, however it would work with Python 2.6.

URL methods

S3Cube responds to the analyze URL method, for all resources (generic method).

The following parameters are accepted:

rowsthe name of the field to be used for the table rowsyes
colsthe name of the field to be used for the table columnsno (if no cols are specified, all instance values appear in 1 column)
factthe name of the field to be used for the instance valuesno (falls back to "name" if present, otherwise to "id")
aggregatethe aggregation functionno (default: list)

rows, cols and fact support the same options as list_fields:

  • fields in the table
  • virtual fields in the table
  • fields/virtual fields in tables linked by foreign keys ($-notation)

S3Cube supports a number of aggregation functions. The following functions have been tested so far:

lista comma-separated list of all instance values
countthe number of instance values
sumthe sum of all instance values
avgthe average (mean) of all instance values


$-notation for references:

reduced parameter list:

Further Development

The following enhancements are currently under development:

  • Totals row and column
  • Support for JSON, CSV and XLS exports
  • Support for client-side graphs representation (via JSON)
Note: See TracWiki for help on using the wiki.