spinetoolbox.spine_db_editor.mvcmodels.pivot_table_models

Provides pivot table models for the Tabular View.

author:
  1. Vennström (VTT)
date:

1.11.2018

Module Contents

Classes

PivotTableModelBase
param parent:
TopLeftHeaderItem Base class for all ‘top left pivot headers’.
TopLeftObjectHeaderItem A top left header for object_class.
TopLeftParameterHeaderItem A top left header for parameter_definition.
TopLeftParameterIndexHeaderItem A top left header for parameter index.
TopLeftAlternativeHeaderItem A top left header for parameter index.
ParameterValuePivotTableModel A model for the pivot table in parameter_value input type.
IndexExpansionPivotTableModel A model for the pivot table in parameter index expansion input type.
RelationshipPivotTableModel A model for the pivot table in relationship input type.
PivotTableSortFilterProxy Initialize class.
class spinetoolbox.spine_db_editor.mvcmodels.pivot_table_models.PivotTableModelBase(parent)[source]

Bases: PySide2.QtCore.QAbstractTableModel

Parameters:parent (SpineDBEditor) –
_V_HEADER_WIDTH = 5[source]
_FETCH_STEP_COUNT = 64[source]
_MIN_FETCH_COUNT = 512[source]
_FETCH_DELAY = 0[source]
item_type[source]

Returns the item type.

plot_x_column[source]

Returns the index of the column designated as Y values for plotting or None.

reset_data_count(self)[source]
start_fetching(self)[source]
fetch_more_rows(self)[source]
fetch_more_columns(self)[source]
call_reset_model(self, object_class_ids, pivot=None)[source]
Parameters:
  • object_class_names (dict) – mapping disambiguated class names to ids
  • pivot (tuple, optional) – list of rows, list of columns, list of frozen indexes, frozen value
reset_model(self, data, index_ids, rows=(), columns=(), frozen=(), frozen_value=())[source]
clear_model(self)[source]
update_model(self, data)[source]

Update model with new data, but doesn’t grow the model.

Parameters:data (dict) –
add_to_model(self, data)[source]
remove_from_model(self, data)[source]
set_pivot(self, rows, columns, frozen, frozen_value)[source]
set_frozen_value(self, frozen_value)[source]
set_plot_x_column(self, column, is_x)[source]

Sets or clears the X flag on a column

headerRowCount(self)[source]

Returns number of rows occupied by header.

headerColumnCount(self)[source]

Returns number of columns occupied by header.

dataRowCount(self)[source]

Returns number of rows that contain actual data.

dataColumnCount(self)[source]

Returns number of columns that contain actual data.

emptyRowCount(self)[source]
emptyColumnCount(self)[source]
rowCount(self, parent=QModelIndex())[source]

Number of rows in table, number of header rows + datarows + 1 empty row

columnCount(self, parent=QModelIndex())[source]

Number of columns in table, number of header columns + datacolumns + 1 empty columns

flags(self, index)[source]

Roles for data

top_left_indexes(self)[source]

Returns indexes in the top left area.

Returns
list(QModelIndex): top indexes (horizontal headers, associated to rows) list(QModelIndex): left indexes (vertical headers, associated to columns)
index_in_top(self, index)[source]
index_in_left(self, index)[source]
index_in_top_left(self, index)[source]

Returns whether or not the given index is in top left corner, where pivot names are displayed

index_in_column_headers(self, index)[source]

Returns whether or not the given index is in column headers (horizontal) area

index_in_row_headers(self, index)[source]

Returns whether or not the given index is in row headers (vertical) area

index_in_headers(self, index)[source]
index_in_empty_column_headers(self, index)[source]

Returns whether or not the given index is in empty column headers (vertical) area

index_in_empty_row_headers(self, index)[source]

Returns whether or not the given index is in empty row headers (vertical) area

index_in_data(self, index)[source]

Returns whether or not the given index is in data area

column_is_index_column(self, column)[source]

Returns True if column is the column containing expanded parameter_value indexes.

headerData(self, section, orientation, role=Qt.DisplayRole)[source]
map_to_pivot(self, index)[source]

Returns a tuple of row and column in the pivot model that corresponds to the given model index.

Parameters:index (QModelIndex) –
Returns:row int: column
Return type:int
_top_left_id(self, index)[source]

Returns the id of the top left header corresponding to the given header index.

Parameters:index (QModelIndex) –
Returns:int, NoneType
_header_id(self, index)[source]

Returns the id of the given row or column header index.

Parameters:index (QModelIndex) –
Returns:int, NoneType
_header_ids(self, row, column)[source]

Returns the ids for the headers at given row and column.

Parameters:
  • row (int) –
  • column (int) –
Returns:

tuple(int)

header_name(self, index)[source]

Returns the name corresponding to the given header index. Used by PivotTableView.

Parameters:index (QModelIndex) –
Returns:str
_color_data(self, index)[source]
_text_alignment_data(self, index)[source]
_header_data(self, index, role=Qt.DisplayRole)[source]
_header_name(self, top_left_id, header_id)[source]
_data(self, index, role)[source]
data(self, index, role=Qt.DisplayRole)[source]
setData(self, index, value, role=Qt.EditRole)[source]
batch_set_data(self, indexes, values)[source]
_batch_set_inner_data(self, inner_data)[source]
_do_batch_set_inner_data(self, row_map, column_map, data, values)[source]
_batch_set_header_data(self, header_data)[source]
_batch_set_empty_header_data(self, header_data, get_top_left_id)[source]
receive_data_added_or_removed(self, data, action)[source]
class spinetoolbox.spine_db_editor.mvcmodels.pivot_table_models.TopLeftHeaderItem(model)[source]

Base class for all ‘top left pivot headers’. Represents a header located in the top left area of the pivot table.

Parameters:model (PivotTableModel) –
model[source]
db_mngr[source]
db_map[source]
_get_header_data_from_db(self, item_type, header_id, field_name, role)[source]
class spinetoolbox.spine_db_editor.mvcmodels.pivot_table_models.TopLeftObjectHeaderItem(model, class_name, class_id)[source]

Bases: spinetoolbox.spine_db_editor.mvcmodels.pivot_table_models.TopLeftHeaderItem

A top left header for object_class.

Parameters:model (PivotTableModel) –
header_type[source]
name[source]
header_data(self, header_id, role=Qt.DisplayRole)[source]
update_data(self, data)[source]
add_data(self, names)[source]
class spinetoolbox.spine_db_editor.mvcmodels.pivot_table_models.TopLeftParameterHeaderItem(model)[source]

Bases: spinetoolbox.spine_db_editor.mvcmodels.pivot_table_models.TopLeftHeaderItem

A top left header for parameter_definition.

Parameters:model (PivotTableModel) –
header_type[source]
name[source]
header_data(self, header_id, role=Qt.DisplayRole)[source]
update_data(self, data)[source]
add_data(self, names)[source]
class spinetoolbox.spine_db_editor.mvcmodels.pivot_table_models.TopLeftParameterIndexHeaderItem(model)[source]

Bases: spinetoolbox.spine_db_editor.mvcmodels.pivot_table_models.TopLeftHeaderItem

A top left header for parameter index.

Parameters:model (PivotTableModel) –
header_type[source]
name[source]
header_data(self, header_id, role=Qt.DisplayRole)[source]
update_data(self, _data)[source]
add_data(self, _names)[source]
class spinetoolbox.spine_db_editor.mvcmodels.pivot_table_models.TopLeftAlternativeHeaderItem(model)[source]

Bases: spinetoolbox.spine_db_editor.mvcmodels.pivot_table_models.TopLeftHeaderItem

A top left header for parameter index.

Parameters:model (PivotTableModel) –
header_type[source]
name[source]
header_data(self, header_id, role=Qt.DisplayRole)[source]
update_data(self, data)[source]
add_data(self, names)[source]
class spinetoolbox.spine_db_editor.mvcmodels.pivot_table_models.ParameterValuePivotTableModel(parent)[source]

Bases: spinetoolbox.spine_db_editor.mvcmodels.pivot_table_models.PivotTableModelBase

A model for the pivot table in parameter_value input type.

Parameters:parent (SpineDBEditor) –
item_type[source]

Returns the item type.

object_and_parameter_ids(self, index)[source]

Returns the object and parameter ids corresponding to the given data index. Used by PivotTableView.

Parameters:index (QModelIndex) –
Returns:object ids int: parameter id
Return type:list(int)
object_and_parameter_names(self, index)[source]

Returns the object and parameter names corresponding to the given data index. Used by PivotTableView.

Parameters:index (QModelIndex) –
Returns:object names str: parameter name
Return type:list(str)
index_name(self, index)[source]

Returns a string that concatenates the object and parameter names corresponding to the given data index. Used by plotting and ParameterValueEditor.

Parameters:index (QModelIndex) –
Returns:str
column_name(self, column)[source]

Returns a string that concatenates the object and parameter names corresponding to the given column. Used by plotting.

Parameters:column (int) –
Returns:str
call_reset_model(self, object_class_ids, pivot=None)[source]

See base class.

_default_pivot(self)[source]
_data(self, index, role)[source]
_do_batch_set_inner_data(self, row_map, column_map, data, values)[source]
_object_parameter_value_to_add(self, header_ids, value)[source]
_relationship_parameter_value_to_add(self, header_ids, value, rel_id_lookup)[source]
_make_parameter_value_to_add(self)[source]
static _parameter_value_to_update(id_, header_ids, value)[source]
_batch_set_parameter_value_data(self, row_map, column_map, data, values)[source]

Sets parameter values in batch.

_checked_parameter_values(self, items)[source]
_add_parameter_values(self, items)[source]
_update_parameter_values(self, items)[source]
get_set_data_delayed(self, index)[source]

Returns a function that ParameterValueEditor can call to set data for the given index at any later time, even if the model changes.

Parameters:index (QModelIndex) –
Returns:function
receive_objects_added_or_removed(self, items, action)[source]
receive_relationships_added_or_removed(self, relationships, action)[source]
receive_parameter_definitions_added_or_removed(self, parameters, action)[source]
receive_parameter_values_added_or_removed(self, parameter_values, action)[source]
class spinetoolbox.spine_db_editor.mvcmodels.pivot_table_models.IndexExpansionPivotTableModel(parent)[source]

Bases: spinetoolbox.spine_db_editor.mvcmodels.pivot_table_models.ParameterValuePivotTableModel

A model for the pivot table in parameter index expansion input type.

Parameters:parent (SpineDBEditor) –
call_reset_model(self, object_class_ids, pivot=None)[source]

See base class.

flags(self, index)[source]

Roles for data

column_is_index_column(self, column)[source]

Returns True if column is the column containing expanded parameter_value indexes.

_data(self, index, role)[source]
static _parameter_value_to_update(id_, header_ids, value)[source]
_update_parameter_values(self, items)[source]
class spinetoolbox.spine_db_editor.mvcmodels.pivot_table_models.RelationshipPivotTableModel(parent)[source]

Bases: spinetoolbox.spine_db_editor.mvcmodels.pivot_table_models.PivotTableModelBase

A model for the pivot table in relationship input type.

Parameters:parent (SpineDBEditor) –
item_type[source]

Returns the item type.

call_reset_model(self, object_class_ids, pivot=None)[source]

See base class.

_default_pivot(self)[source]
_data(self, index, role)[source]
_text_alignment_data(self, index)[source]
_do_batch_set_inner_data(self, row_map, column_map, data, values)[source]
_batch_set_relationship_data(self, row_map, column_map, data, values)[source]
receive_objects_added_or_removed(self, items, action)[source]
receive_relationships_added_or_removed(self, relationships, action)[source]
receive_parameter_definitions_added_or_removed(self, db_map_data, action)[source]

Returns False, this model does not hold parameter data.

receive_parameter_values_added_or_removed(self, db_map_data, action)[source]

Returns False, this model does not hold parameter data.

class spinetoolbox.spine_db_editor.mvcmodels.pivot_table_models.PivotTableSortFilterProxy(parent=None)[source]

Bases: PySide2.QtCore.QSortFilterProxyModel

Initialize class.

set_filter(self, identifier, filter_value)[source]

Sets filter for a given index (object_class) name.

Parameters:
  • identifier (int) – index identifier
  • filter_value (set, None) – A set of accepted values, or None if no filter (all pass)
clear_filter(self)[source]
accept_index(self, index, index_ids)[source]
filterAcceptsRow(self, source_row, source_parent)[source]

Returns true if the item in the row indicated by the given source_row and source_parent should be included in the model; otherwise returns false.

filterAcceptsColumn(self, source_column, source_parent)[source]

Returns true if the item in the column indicated by the given source_column and source_parent should be included in the model; otherwise returns false.

batch_set_data(self, indexes, values)[source]