'Select(table, columns, conditions) - retrieve specific row data
Returns a list of row column->value mapping dictionaries.
* columns - a list of which column data to return.  If
columns is None, all columns will be returned.
* conditions - a dictionary keyed on column names
containing callable conditions expecting the data string as an
argument and returning a boolean.'

def Select(self, table, columns, conditions={}):

    try:
        if (not (table in self.__tablecolumns)):
            self.__load_column_info(table)
        if (columns is None):
            columns = self.__tablecolumns[table]
        matching_rowids = self.__Select(table, columns, conditions)
    except db.DBError as dberror:
        if (sys.version_info < (2, 6)):
            raise TableDBError, dberror[1]
        else:
            raise TableDBError, dberror.args[1]
    return matching_rowids.values()
