The Database class is the basic interface for adding parameter set hosting services. The idea is that the core methods (get_table, get_keys, update_row and update_cell) stay the same so that the inner workings can use multiple sources to access the parameter sets. You should overide these methods when making a class that inherits Database. You shouldn’t expect that any other method will be called by the Param class, the main class that uses databases. It may be benifitial to add helper methods though (e.g. get_worksheet() in Sheets).

Databases should give key-value pairs, where the keys are the “ids” of the table and the values are the values in that given row. When getting the table, the result should be an array of dictionaries that contain the contents of the row.


The database should use indexing starting from 0.