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 alternative.

TopLeftScenarioHeaderItem

A top left header for scenario.

TopLeftDatabaseHeaderItem

A top left header for database.

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.

ScenarioAlternativePivotTableModel

A model for the pivot table in scenario alternative 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]
property item_type(self)[source]

Returns the item type.

reset_data_count(self)[source]
start_fetching(self)[source]
fetch_more_rows(self)[source]
fetch_more_columns(self)[source]
abstract call_reset_model(self, pivot=None)[source]
Parameters

pivot (tuple, optional) – list of rows, list of columns, list of frozen indexes, frozen value

abstract static make_delegate(parent)[source]
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, db_map_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

property plot_x_column(self)[source]

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

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_within_top_left(self, index)[source]
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]
abstract _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]
abstract _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, db_map_data, action)[source]
receive_objects_added_or_removed(self, db_map_data, action)[source]
receive_relationships_added_or_removed(self, db_map_data, action)[source]
receive_parameter_definitions_added_or_removed(self, db_map_data, action)[source]
receive_alternatives_added_or_removed(self, db_map_data, action)[source]
receive_parameter_values_added_or_removed(self, db_map_data, action)[source]
receive_scenarios_added_or_removed(self, db_map_data, action)[source]
receive_scenarios_updated(self, db_map_data)[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 (PivotTableModelBase) –

property model(self)[source]
property db_mngr(self)[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: TopLeftHeaderItem

A top left header for object_class.

Parameters

model (PivotTableModelBase) –

property header_type(self)[source]
property name(self)[source]
header_data(self, header_id, role=Qt.DisplayRole)[source]
update_data(self, db_map_data)[source]
add_data(self, names)[source]
class spinetoolbox.spine_db_editor.mvcmodels.pivot_table_models.TopLeftParameterHeaderItem(model)[source]

Bases: TopLeftHeaderItem

A top left header for parameter_definition.

Parameters

model (PivotTableModelBase) –

property header_type(self)[source]
property name(self)[source]
header_data(self, header_id, role=Qt.DisplayRole)[source]
update_data(self, db_map_data)[source]
add_data(self, names)[source]
class spinetoolbox.spine_db_editor.mvcmodels.pivot_table_models.TopLeftParameterIndexHeaderItem(model)[source]

Bases: TopLeftHeaderItem

A top left header for parameter index.

Parameters

model (PivotTableModelBase) –

property header_type(self)[source]
property name(self)[source]
header_data(self, header_id, role=Qt.DisplayRole)[source]
update_data(self, db_map_data)[source]
add_data(self, _names)[source]
class spinetoolbox.spine_db_editor.mvcmodels.pivot_table_models.TopLeftAlternativeHeaderItem(model)[source]

Bases: TopLeftHeaderItem

A top left header for alternative.

Parameters

model (PivotTableModelBase) –

property header_type(self)[source]
property name(self)[source]
header_data(self, header_id, role=Qt.DisplayRole)[source]
update_data(self, db_map_data)[source]
add_data(self, names)[source]
class spinetoolbox.spine_db_editor.mvcmodels.pivot_table_models.TopLeftScenarioHeaderItem(model)[source]

Bases: TopLeftHeaderItem

A top left header for scenario.

Parameters

model (PivotTableModelBase) –

property header_type(self)[source]
property name(self)[source]
header_data(self, header_id, role=Qt.DisplayRole)[source]
update_data(self, db_map_data)[source]
add_data(self, names)[source]
class spinetoolbox.spine_db_editor.mvcmodels.pivot_table_models.TopLeftDatabaseHeaderItem(model)[source]

Bases: TopLeftHeaderItem

A top left header for database.

Parameters

model (PivotTableModelBase) –

property header_type(self)[source]
property name(self)[source]
header_data(self, header_id, role=Qt.DisplayRole)[source]
class spinetoolbox.spine_db_editor.mvcmodels.pivot_table_models.ParameterValuePivotTableModel(parent)[source]

Bases: PivotTableModelBase

A model for the pivot table in parameter_value input type.

Parameters

parent (SpineDBEditor) –

property item_type(self)[source]

Returns the item type.

db_map_object_ids(self, index)[source]

Returns db_map and object ids for given index. Used by PivotTableView.

Returns

DatabaseMapping, list

_db_map_object_ids(self, header_ids)[source]
_all_header_names(self, index)[source]

Returns the object, parameter, alternative, and db names corresponding to the given data index.

Parameters

index (QModelIndex) –

Returns

object names str: parameter name str: alternative name str: db 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, pivot=None)[source]

See base class.

static make_delegate(parent)[source]
_default_pivot(self, data)[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, db_map, header_ids, value)[source]
_relationship_parameter_value_to_add(self, db_map, 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, db_map_data)[source]
_add_parameter_values(self, db_map_data)[source]
_update_parameter_values(self, db_map_data)[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, db_map_data, action)[source]
receive_relationships_added_or_removed(self, db_map_data, action)[source]
receive_parameter_definitions_added_or_removed(self, db_map_data, action)[source]
receive_alternatives_added_or_removed(self, db_map_data, action)[source]
receive_parameter_values_added_or_removed(self, db_map_data, action)[source]
_load_empty_parameter_value_data(self, *args, **kwargs)[source]
_load_full_parameter_value_data(self, *args, **kwargs)[source]
class spinetoolbox.spine_db_editor.mvcmodels.pivot_table_models.IndexExpansionPivotTableModel(parent)[source]

Bases: ParameterValuePivotTableModel

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

Parameters

parent (SpineDBEditor) –

call_reset_model(self, 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.

_load_empty_parameter_value_data(self, *args, **kwargs)[source]
_load_full_parameter_value_data(self, *args, **kwargs)[source]
_data(self, index, role)[source]
static _parameter_value_to_update(id_, header_ids, value)[source]
_update_parameter_values(self, db_map_data)[source]
class spinetoolbox.spine_db_editor.mvcmodels.pivot_table_models.RelationshipPivotTableModel(parent)[source]

Bases: PivotTableModelBase

A model for the pivot table in relationship input type.

Parameters

parent (SpineDBEditor) –

property item_type(self)[source]

Returns the item type.

call_reset_model(self, pivot=None)[source]

See base class.

static make_delegate(parent)[source]
_default_pivot(self, data)[source]
_data(self, index, role)[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, db_map_data, action)[source]
receive_relationships_added_or_removed(self, db_map_data, action)[source]
class spinetoolbox.spine_db_editor.mvcmodels.pivot_table_models.ScenarioAlternativePivotTableModel(parent)[source]

Bases: PivotTableModelBase

A model for the pivot table in scenario alternative input type.

Parameters

parent (SpineDBEditor) –

property item_type(self)[source]

Returns the item type.

call_reset_model(self, pivot=None)[source]

See base class.

static make_delegate(parent)[source]
_default_pivot(self, data)[source]
_data(self, index, role)[source]
_do_batch_set_inner_data(self, row_map, column_map, data, values)[source]
_batch_set_scenario_alternative_data(self, row_map, column_map, data, values)[source]
receive_scenarios_updated(self, db_map_data)[source]
receive_alternatives_added_or_removed(self, db_map_data, action)[source]
receive_scenarios_added_or_removed(self, db_map_data, action)[source]
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]