From 4537b4e0e8306d66c9871659e044f3f1b472e71a Mon Sep 17 00:00:00 2001 From: Antti Soininen Date: Mon, 31 Jul 2023 13:07:50 +0300 Subject: [PATCH 01/19] Fix undo command macro ManageMembersDialog.accept() built the undo macro that added and removed entity group members using AgedUndoCommand as the macro's parent. AgedUndoCommand cannot be used like this, however, since it will not call the redo() methods of its child commands. This prevented the dialog that manages entity groups to make any changes to the database. This commit replaces AgedUndoCommand by SpineDBMacro which is the proper parent command to use with macros. Re #2219 --- .../spine_db_editor/widgets/add_items_dialogs.py | 16 +++++++++------- spinetoolbox/spine_db_manager.py | 4 +++- spinetoolbox/spine_db_worker.py | 4 +++- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/spinetoolbox/spine_db_editor/widgets/add_items_dialogs.py b/spinetoolbox/spine_db_editor/widgets/add_items_dialogs.py index 06303dcb7..2d161a3fe 100644 --- a/spinetoolbox/spine_db_editor/widgets/add_items_dialogs.py +++ b/spinetoolbox/spine_db_editor/widgets/add_items_dialogs.py @@ -53,7 +53,7 @@ ManageItemsDialog, ManageItemsDialogBase, ) -from ...spine_db_commands import AgedUndoCommand, AddItemsCommand, RemoveItemsCommand +from ...spine_db_commands import AddItemsCommand, RemoveItemsCommand, SpineDBMacro class AddReadyRelationshipsDialog(ManageItemsDialogBase): @@ -1014,15 +1014,17 @@ def accept(self): items_to_add = [ {"entity_id": obj["id"], "entity_class_id": obj["class_id"], "member_id": member_id} for member_id in added ] - ids_to_remove = [x["id"] for x in self._entity_groups() if x["member_id"] in removed] + ids_to_remove = {x["id"] for x in self._entity_groups() if x["member_id"] in removed} if not items_to_add and not ids_to_remove: super().accept() return - macro = AgedUndoCommand() - macro.setText(f"manage {self.object_item.display_data}'s members") + commands = [] if items_to_add: - AddItemsCommand(self.db_mngr, self.db_map, items_to_add, "entity_group", parent=macro) + commands.append(AddItemsCommand(self.db_mngr, self.db_map, items_to_add, "entity_group")) if ids_to_remove: - RemoveItemsCommand(self.db_mngr, self.db_map, ids_to_remove, "entity_group", parent=macro) - self.db_mngr.undo_stack[self.db_map].push(macro) + commands.append(RemoveItemsCommand(self.db_mngr, self.db_map, ids_to_remove, "entity_group")) + if commands: + macro = SpineDBMacro(iter(commands)) + macro.setText(f"manage {self.object_item.display_data}'s members") + self.db_mngr.undo_stack[self.db_map].push(macro) super().accept() diff --git a/spinetoolbox/spine_db_manager.py b/spinetoolbox/spine_db_manager.py index 3e1b94a9f..682f58502 100644 --- a/spinetoolbox/spine_db_manager.py +++ b/spinetoolbox/spine_db_manager.py @@ -1405,7 +1405,9 @@ def do_remove_items(self, item_type, db_map_ids, callback=None): """Removes items from database. Args: - db_map_typed_ids (dict): mapping DiffDatabaseMapping to item type (str) to lists of items to remove + item_type (str): database item type + db_map_ids (dict): mapping DatabaseMapping to removable ids + callback (Callable): function to call after removal is finished """ for db_map, ids in db_map_ids.items(): try: diff --git a/spinetoolbox/spine_db_worker.py b/spinetoolbox/spine_db_worker.py index a3057bb5c..9340137d7 100644 --- a/spinetoolbox/spine_db_worker.py +++ b/spinetoolbox/spine_db_worker.py @@ -517,7 +517,9 @@ def remove_items(self, item_type, ids, callback): """Removes items from database. Args: - ids_per_type (dict): lists of items to remove keyed by item type (str) + item_type (str): item type + ids (Iterable of int): removable item ids + callback (Callable, optional): function to call after items have been removed """ if self._committing: with self._db_map.override_committing(self._committing): From 20d4b0363f4725f394a135f72a9ff65c6cbabedd Mon Sep 17 00:00:00 2001 From: Antti Soininen Date: Tue, 1 Aug 2023 09:04:55 +0300 Subject: [PATCH 02/19] Fix entity group nodes in Object tree dock In MutliDBTreeItem.update_children_by_id() we remove children from the item to add them later back. Removing items also calls their tear_down() method which in turn marks their fetch parents as obsolete. Obsolete fetch parents do not fetch anything so these items will not be updated anymore. This commit fixes the issue by "revitalizing" the affected fetch parents by setting obsolete = False before the items are added back to their parent item. Re #2219 --- spinetoolbox/mvcmodels/minimal_tree_model.py | 2 +- .../spine_db_editor/mvcmodels/entity_tree_item.py | 5 +++++ .../spine_db_editor/mvcmodels/multi_db_tree_item.py | 9 ++++++++- .../spine_db_editor/widgets/add_items_dialogs.py | 6 ++++-- 4 files changed, 18 insertions(+), 4 deletions(-) diff --git a/spinetoolbox/mvcmodels/minimal_tree_model.py b/spinetoolbox/mvcmodels/minimal_tree_model.py index b531af2c8..690346868 100644 --- a/spinetoolbox/mvcmodels/minimal_tree_model.py +++ b/spinetoolbox/mvcmodels/minimal_tree_model.py @@ -53,7 +53,7 @@ def children(self): def children(self, children): bad_types = [type(child) for child in children if not isinstance(child, TreeItem)] if bad_types: - raise TypeError(f"Cand't set children of type {bad_types} for an item of type {type(self)}") + raise TypeError(f"Can't set children of type {bad_types} for an item of type {type(self)}") for child in children: child.parent_item = self self._children = children diff --git a/spinetoolbox/spine_db_editor/mvcmodels/entity_tree_item.py b/spinetoolbox/spine_db_editor/mvcmodels/entity_tree_item.py index ef8a1b6fd..046f81c6c 100644 --- a/spinetoolbox/spine_db_editor/mvcmodels/entity_tree_item.py +++ b/spinetoolbox/spine_db_editor/mvcmodels/entity_tree_item.py @@ -163,6 +163,11 @@ def tear_down(self): super().tear_down() self._entity_group_fetch_parent.set_obsolete(True) + def revitalize(self): + """See base class""" + super().revitalize() + self._entity_group_fetch_parent.set_obsolete(False) + class RelationshipClassItem(EntityClassItem): """A relationship_class item.""" diff --git a/spinetoolbox/spine_db_editor/mvcmodels/multi_db_tree_item.py b/spinetoolbox/spine_db_editor/mvcmodels/multi_db_tree_item.py index 7f1505198..bd73a7cd0 100644 --- a/spinetoolbox/spine_db_editor/mvcmodels/multi_db_tree_item.py +++ b/spinetoolbox/spine_db_editor/mvcmodels/multi_db_tree_item.py @@ -353,9 +353,10 @@ def update_children_by_id(self, db_map_ids, **kwargs): new_children.append(new_child) if child.display_id in display_ids[:row] + display_ids[row + 1 :] or child.should_be_merged(): # Take the child and put it in the list to be merged - new_children.append(child) self.remove_children(row, 1) display_ids.pop(row) + child.revitalize() + new_children.append(child) self._deep_refresh_children() self._merge_children(new_children) top_left = self.model.index(0, 0, self.index()) @@ -448,3 +449,9 @@ def default_parameter_data(self): def tear_down(self): super().tear_down() self._fetch_parent.set_obsolete(True) + + def revitalize(self): + """Reverts tear down operation""" + self._fetch_parent.set_obsolete(False) + for child in self._children: + child.revitalize() diff --git a/spinetoolbox/spine_db_editor/widgets/add_items_dialogs.py b/spinetoolbox/spine_db_editor/widgets/add_items_dialogs.py index 2d161a3fe..6d0b80c95 100644 --- a/spinetoolbox/spine_db_editor/widgets/add_items_dialogs.py +++ b/spinetoolbox/spine_db_editor/widgets/add_items_dialogs.py @@ -877,11 +877,13 @@ def reset_list_widgets(self, database): object_ids = self.db_map_object_ids[self.db_map] members = [] non_members = [] + initial_member_ids = self.initial_member_ids() + initial_entity_id = self.initial_entity_id() for obj_name in sorted(object_ids): obj_id = object_ids[obj_name] - if obj_id in self.initial_member_ids(): + if obj_id in initial_member_ids: members.append(obj_name) - elif obj_id != self.initial_entity_id(): + elif obj_id != initial_entity_id: non_members.append(obj_name) member_items = [QTreeWidgetItem([obj_name]) for obj_name in members] non_member_items = [QTreeWidgetItem([obj_name]) for obj_name in non_members] From 82a88f00c171532657c7fdf718cc6c1d3193bb93 Mon Sep 17 00:00:00 2001 From: Antti Soininen Date: Wed, 2 Aug 2023 16:10:33 +0300 Subject: [PATCH 03/19] Merge undo commands into macro The Manage relationships dialog was pushing multiple commands (add, update, remove) to the undo stack when it was accepted. We now create a single macro command instead so undo/redo is consistent with Manage entity group dialog. Re #2219 --- .../widgets/add_items_dialogs.py | 13 ++++++++--- spinetoolbox/spine_db_manager.py | 23 ++++++++++++++++++- 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/spinetoolbox/spine_db_editor/widgets/add_items_dialogs.py b/spinetoolbox/spine_db_editor/widgets/add_items_dialogs.py index 6d0b80c95..b5fa3783e 100644 --- a/spinetoolbox/spine_db_editor/widgets/add_items_dialogs.py +++ b/spinetoolbox/spine_db_editor/widgets/add_items_dialogs.py @@ -785,10 +785,17 @@ def accept(self): keys_to_remove = set(self.relationship_ids) - { tuple(objects) for objects in self.existing_items_model._main_data } - to_remove = [self.relationship_ids[key] for key in keys_to_remove] - self.db_mngr.remove_items({self.db_map: {"relationship": to_remove}}) + commands = [] + to_remove = {self.relationship_ids[key] for key in keys_to_remove} + if to_remove: + commands.append(RemoveItemsCommand(self.db_mngr, self.db_map, to_remove, "relationship")) to_add = [[self.class_name, object_name_list] for object_name_list in self.new_items_model._main_data] - self.db_mngr.import_data({self.db_map: {"relationships": to_add}}, command_text="Add relationships") + if to_add: + commands += list(self.db_mngr.import_data_commands(self.db_map, {"relationships": to_add})) + if commands: + macro = SpineDBMacro(iter(commands)) + macro.setText(f"manage {self.class_name}'s dimensions") + self.db_mngr.undo_stack[self.db_map].push(macro) super().accept() diff --git a/spinetoolbox/spine_db_manager.py b/spinetoolbox/spine_db_manager.py index 682f58502..5aac796e6 100644 --- a/spinetoolbox/spine_db_manager.py +++ b/spinetoolbox/spine_db_manager.py @@ -955,7 +955,10 @@ def import_data(self, db_map_data, command_text="Import data"): """ db_map_error_log = dict() for db_map, data in db_map_data.items(): - make_cache = lambda *args, db_map=db_map, **kwargs: self.get_db_map_cache(db_map) + + def make_cache(*args, **kwargs): + return self.get_db_map_cache(db_map) + try: data_for_import = get_data_for_import(db_map, make_cache=make_cache, **data) except (TypeError, ValueError) as err: @@ -969,6 +972,24 @@ def import_data(self, db_map_data, command_text="Import data"): if any(db_map_error_log.values()): self.error_msg.emit(db_map_error_log) + def import_data_commands(self, db_map, data): + """Creates undo commands necessary to import given data. + + Args: + db_map (DatabaseMapping): target database mapping + data (dict): data to import + + Yields: + SpineDBCommand: import undo command + """ + + def make_cache(*args, **kwargs): + return self.get_db_map_cache(db_map) + + db_map_error_log = dict() + data_for_import = get_data_for_import(db_map, make_cache=make_cache, **data) + yield from self._import_data_cmds(db_map, data_for_import, db_map_error_log) + def _import_data_cmds(self, db_map, data_for_import, db_map_error_log): for item_type, (to_add, to_update, import_error_log) in data_for_import: db_map_error_log.setdefault(db_map, []).extend([str(x) for x in import_error_log]) From 95ef1f618d208aa231e1115559216dcfd4d75455 Mon Sep 17 00:00:00 2001 From: Henrik Koski <98282892+PiispaH@users.noreply.github.com> Date: Wed, 2 Aug 2023 16:43:21 +0300 Subject: [PATCH 04/19] Fix alternative and scenario filtering (#2226) --- spinetoolbox/spine_db_editor/widgets/custom_qtreeview.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spinetoolbox/spine_db_editor/widgets/custom_qtreeview.py b/spinetoolbox/spine_db_editor/widgets/custom_qtreeview.py index d4d101e59..feebc2f46 100644 --- a/spinetoolbox/spine_db_editor/widgets/custom_qtreeview.py +++ b/spinetoolbox/spine_db_editor/widgets/custom_qtreeview.py @@ -514,7 +514,7 @@ def dragEnterEvent(self, event): class AlternativeTreeView(ItemTreeView): """Custom QTreeView for the alternative tree in SpineDBEditor.""" - alternative_selection_changed = Signal(dict) + alternative_selection_changed = Signal(object) def __init__(self, parent): """ @@ -674,7 +674,7 @@ def paste(self): class ScenarioTreeView(ItemTreeView): """Custom QTreeView for the scenario tree in SpineDBEditor.""" - scenario_selection_changed = Signal(dict) + scenario_selection_changed = Signal(object) def __init__(self, parent): """ From 4eb55353c3ebd44396c68ea1b4545e04fd00fc4d Mon Sep 17 00:00:00 2001 From: Henrik Koski Date: Thu, 3 Aug 2023 10:50:49 +0300 Subject: [PATCH 05/19] Docs update Tool Specification Editor -section Added info about the ability to manage Tool arguments in the Properties dock widget. Re #2156 --- docs/source/tool_specification_editor.rst | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/source/tool_specification_editor.rst b/docs/source/tool_specification_editor.rst index 127a4ec1a..0e9a614c1 100644 --- a/docs/source/tool_specification_editor.rst +++ b/docs/source/tool_specification_editor.rst @@ -46,6 +46,10 @@ which accepts command line arguments `a` and `b`. Writing `a b` on the command line arguments field in the tool specification editor is the equivalent of running the batch file in command prompt with the command ``do_things.bat a b``. +.. tip:: Another way to pass arguments to a Tool is to write them into the *Tool arguments* + drop-down list in the **Properties** dock widget. There it is possible to also rearrange existing + arguments or to select available resources that are provided by other project items as arguments. + *Additional source files* is a list of files that the main program requires in order to run. You can add individual files the same way as with the main program file or whole directories at once by pressing the |folder_open_solid| button. From bc75b690a6fc4b101d341b97733addf820a36571 Mon Sep 17 00:00:00 2001 From: Antti Soininen Date: Fri, 4 Aug 2023 10:24:05 +0300 Subject: [PATCH 06/19] Fix signal Due to bug in PySide6, dictionaries with keys other than strings cannot be passed over signals. See https://bugreports.qt.io/browse/PYSIDE-2406 Re #2231 --- .../spine_db_editor/widgets/mass_select_items_dialogs.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spinetoolbox/spine_db_editor/widgets/mass_select_items_dialogs.py b/spinetoolbox/spine_db_editor/widgets/mass_select_items_dialogs.py index b86a6aaa0..cfd81c02f 100644 --- a/spinetoolbox/spine_db_editor/widgets/mass_select_items_dialogs.py +++ b/spinetoolbox/spine_db_editor/widgets/mass_select_items_dialogs.py @@ -135,7 +135,7 @@ class MassExportItemsDialog(MassSelectItemsDialog): """A dialog to let users chose items for JSON export.""" _warn_checked_non_data_items = False - data_submitted = Signal(dict) + data_submitted = Signal(object) def __init__(self, parent, db_mngr, *db_maps, stored_state=None): """ From 4c98c348de76dc10630529decc7a4c5a92f3ac47 Mon Sep 17 00:00:00 2001 From: Antti Soininen Date: Fri, 4 Aug 2023 11:14:19 +0300 Subject: [PATCH 07/19] Make signal connection QueuedConnection to prevent segfault For some reason, the fact that Export items dialog gets deleted before its data_submitted signal finishes lead to segmentation fault unless the signal is connected as QueuedConnection. Re #2231 --- .../spine_db_editor/widgets/spine_db_editor.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/spinetoolbox/spine_db_editor/widgets/spine_db_editor.py b/spinetoolbox/spine_db_editor/widgets/spine_db_editor.py index b7cf24cc4..ee8e19bcf 100644 --- a/spinetoolbox/spine_db_editor/widgets/spine_db_editor.py +++ b/spinetoolbox/spine_db_editor/widgets/spine_db_editor.py @@ -530,7 +530,7 @@ def show_mass_export_items_dialog(self, checked=False): self, self.db_mngr, *self.db_maps, stored_state=self._export_items_dialog_state ) self._export_items_dialog.state_storing_requested.connect(self._store_export_settings) - self._export_items_dialog.data_submitted.connect(self.mass_export_items) + self._export_items_dialog.data_submitted.connect(self.mass_export_items, Qt.ConnectionType.QueuedConnection) self._export_items_dialog.destroyed.connect(self._clean_up_export_items_dialog) self._export_items_dialog.show() @@ -571,6 +571,7 @@ def export_session(self, checked=False): parcel.push_object_group_ids(db_map_ent_group_ids) self.export_data(parcel.data) + @Slot(object) def mass_export_items(self, db_map_item_types): def _ids(t, types): return Asterisk if t in types else () @@ -924,6 +925,10 @@ def closeEvent(self, event): self.save_window_state() super().closeEvent(event) + @staticmethod + def _get_base_dir(): + return APPLICATION_PATH + class SpineDBEditor(TabularViewMixin, GraphViewMixin, ParameterViewMixin, TreeViewMixin, SpineDBEditorBase): """A widget to visualize Spine dbs.""" @@ -1192,7 +1197,3 @@ def tear_down(self): for model in self._parameter_models: model.stop_invalidating_filter() return True - - @staticmethod - def _get_base_dir(): - return APPLICATION_PATH From 5bd0da6bc524079c1d6b84ebc64fff07830cfd1e Mon Sep 17 00:00:00 2001 From: Antti Soininen Date: Thu, 3 Aug 2023 10:35:36 +0300 Subject: [PATCH 08/19] Code cleanup, docstrings No functional changes intended. Re #2228 --- spinetoolbox/spine_db_commands.py | 57 +++++++++++++++++++++++-------- 1 file changed, 43 insertions(+), 14 deletions(-) diff --git a/spinetoolbox/spine_db_commands.py b/spinetoolbox/spine_db_commands.py index d6734252d..4f87a152c 100644 --- a/spinetoolbox/spine_db_commands.py +++ b/spinetoolbox/spine_db_commands.py @@ -81,10 +81,25 @@ def __init__(self, parent=None): self.identifier = uuid.uuid4() def clone(self): + """Clones the command. + + Returns: + AgedUndoCommand: cloned command + """ clone = self._do_clone() clone.identifier = self.identifier return clone + def _do_clone(self): + """Clones the command. + + Subclasses should reimplement this to clone their internal state. + + Returns: + AgedUndoCommand: cloned command + """ + raise NotImplementedError() + def is_clone(self, other): return other.identifier == self.identifier @@ -133,7 +148,7 @@ def _redo_next(self): return if not self._completed_once: self._cmds.append(child) - child.redo_complete_callback = lambda *args: self._redo_next() + child.redo_complete_callback = self._redo_next child.redo() def undo(self): @@ -145,7 +160,7 @@ def _undo_next(self): child = next(self._reverse_cmd_iter, None) if child is None: return - child.undo_complete_callback = lambda *args: self._undo_next() + child.undo_complete_callback = self._undo_next child.undo() @@ -163,25 +178,39 @@ def __init__(self, db_mngr, db_map, parent=None): self.db_mngr = db_mngr self.db_map = db_map self._done_once = False - self.redo_complete_callback = lambda *args: None - self.undo_complete_callback = lambda *args: None + self.redo_complete_callback = lambda: None + self.undo_complete_callback = lambda: None - def handle_undo_complete(self, data): + def handle_undo_complete(self, db_map_data): """Calls the undo complete callback with the data from undo(). - Subclasses need to pass this as the callback to the function that modifies the db in undo().""" - self.undo_complete_callback(data) - def handle_redo_complete(self, data): + Subclasses need to pass this as the callback to the function that modifies the db in undo(). + + Args: + db_map_data (dict): mapping from database map to list of original cache items + """ + self.undo_complete_callback() + + def handle_redo_complete(self, db_map_data): """Calls the redo complete callback with the data from redo(). - Subclasses need to pass this as the callback to the function that modifies the db in redo().""" - self.redo_complete_callback(data) + + Subclasses need to pass this as the callback to the function that modifies the db in redo(). + + Args: + db_map_data (dict): mapping from database map to list of cache items + """ + self.redo_complete_callback() if self._done_once: return self._done_once = True - self._handle_first_redo_complete(data) + self._handle_first_redo_complete(db_map_data) - def _handle_first_redo_complete(self, _): - """Reimplement in subclasses to do stuff with the data from running redo() the first time.""" + def _handle_first_redo_complete(self, db_map_data): + """Reimplement in subclasses to do stuff with the data from running redo() the first time. + + Args: + db_map_data (dict): mapping from database map to list of original cache items + """ raise NotImplementedError() @@ -322,7 +351,7 @@ def undo(self): ) def _handle_first_redo_complete(self, db_map_data): - if not db_map_data.get(self.db_map): + if self.db_map not in db_map_data: self.setObsolete(True) return self.redo_db_map_data = db_map_data From 8d4e454230c8977d8b188ab666a4dab9e6b30a1e Mon Sep 17 00:00:00 2001 From: Antti Soininen Date: Thu, 3 Aug 2023 10:36:07 +0300 Subject: [PATCH 09/19] Fix undoing remove actions after db commit Committing changes in Database editor does two things that were not taken into account when undoing commands that removed items: - The removed items were replaced in the database cache which made them distinct from the items stored in the undo command - readd/update/remove callbacks from the new items were removed which prevented fetch parents from being notified that the items were readded On readd, SpineDBWorker now gets the real cache item to work with. It also rebinds the callbacks if necessary before actually readding the item back. Re #2228 --- spinetoolbox/spine_db_worker.py | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/spinetoolbox/spine_db_worker.py b/spinetoolbox/spine_db_worker.py index 9340137d7..0eff3d12d 100644 --- a/spinetoolbox/spine_db_worker.py +++ b/spinetoolbox/spine_db_worker.py @@ -457,14 +457,36 @@ def add_items(self, orig_items, item_type, readd, check, cache, callback): self._fetched_ids.setdefault(actual_item_type, []).extend([x["id"] for x in actual_items]) for parent in self._get_parents(actual_item_type): self.fetch_more(parent) + data = actual_items else: - for actual_item in actual_items: - actual_item.cascade_readd() - db_map_data = {self._db_map: actual_items} + data = [] + for item in actual_items: + # Item may have been replaced in cache during commit. + item_type = item.item_type + item_in_cache = self._db_mngr.get_item(self._db_map, item_type, item["id"]) + if not item_in_cache.readd_callbacks: + # Item may have been unbound on commit. + # We need to rebind it so cascade_readd() notifies fetch parents properly. + self._rebind_recursively(item_in_cache) + item_in_cache.cascade_readd() + data.append(item_in_cache) + db_map_data = {self._db_map: data} if item_type == actual_item_type and callback is not None: callback(db_map_data) self._db_mngr.items_added.emit(actual_item_type, db_map_data) + def _rebind_recursively(self, item): + """Rebinds a cache item and its referrers to fetch parents. + + Args: + item (CacheItem): item to rebind + """ + for parent in self._get_parents(item.item_type): + if parent.accepts_item(item, self._db_map): + self._bind_item(parent, item) + for referrer in item.referrers.values(): + self._rebind_recursively(referrer) + @busy_effect def update_items(self, orig_items, item_type, check, cache, callback): """Updates items in db. From 9697c9307722166bd8e759b3ac86601095e16410 Mon Sep 17 00:00:00 2001 From: Antti Soininen Date: Fri, 4 Aug 2023 08:23:15 +0300 Subject: [PATCH 10/19] Fix undoing cascading removal after commit Database items are physically gone from the database after committing, so RemoveItemsCommand needs to know all removed items and their types, not just the one user selected for removal. This information is now propagated to RemoveItemsCommand from spinedb_api upon commit. Re #2228 --- spinetoolbox/spine_db_commands.py | 37 ++++++++++++++++++++++++++----- spinetoolbox/spine_db_manager.py | 12 +++++----- spinetoolbox/spine_db_worker.py | 15 ++++++++----- 3 files changed, 49 insertions(+), 15 deletions(-) diff --git a/spinetoolbox/spine_db_commands.py b/spinetoolbox/spine_db_commands.py index 4f87a152c..26996e7f7 100644 --- a/spinetoolbox/spine_db_commands.py +++ b/spinetoolbox/spine_db_commands.py @@ -15,6 +15,8 @@ import time import uuid +from collections import defaultdict + from PySide6.QtGui import QUndoCommand, QUndoStack @@ -372,23 +374,48 @@ def __init__(self, db_mngr, db_map, ids, item_type, parent=None): if not ids: self.setObsolete(True) self.redo_db_map_ids = {db_map: ids} - self.undo_db_map_data = {} + self.undo_data = {} self.item_type = item_type self.setText(f"remove {item_type} items from '{db_map.codename}'") def _do_clone(self): clone = RemoveItemsCommand(self.db_mngr, self.db_map, set(), self.item_type) clone.redo_db_map_ids = self.redo_db_map_ids - clone.undo_db_map_data = self.undo_db_map_data + clone.undo_data = self.undo_data return clone def redo(self): super().redo() - self.db_mngr.do_remove_items(self.item_type, self.redo_db_map_ids, callback=self.handle_redo_complete) + self.db_mngr.do_remove_items( + self.item_type, + self.redo_db_map_ids, + callback=self.handle_redo_complete, + committing_callback=self._update_undo_data, + ) def undo(self): super().undo() - self.db_mngr.add_items(self.undo_db_map_data, self.item_type, readd=True, callback=self.handle_undo_complete) + operations = list(self.undo_data.items()) + for item_type, items in operations[:-1]: + self.db_mngr.add_items({self.db_map: items}, item_type, readd=True) + item_type, items = operations[-1] + self.db_mngr.add_items({self.db_map: items}, item_type, readd=True, callback=self.handle_undo_complete) def _handle_first_redo_complete(self, db_map_data): - self.undo_db_map_data = db_map_data + undo_data = defaultdict(list) + for db_map, data in db_map_data.items(): + if db_map is not self.db_map: + continue + for item in data: + undo_data[item.item_type].append(item) + self.undo_data = undo_data + + def _update_undo_data(self, db_map_data): + all_existing_ids = {item_type: {item["id"] for item in items} for item_type, items in self.undo_data.items()} + for db_map, data in db_map_data.items(): + if db_map is not self.db_map: + continue + for item in data: + existing_ids = all_existing_ids.get(item.item_type) + if existing_ids is None or item["id"] not in existing_ids: + self.undo_data[item.item_type].append(item) diff --git a/spinetoolbox/spine_db_manager.py b/spinetoolbox/spine_db_manager.py index 5aac796e6..e0a160727 100644 --- a/spinetoolbox/spine_db_manager.py +++ b/spinetoolbox/spine_db_manager.py @@ -228,7 +228,8 @@ def update_items_in_cache(self, item_type, db_map_data): for item in items: table_cache.update_item(item) - def remove_items_in_cache(self, item_type, db_map_ids): + @staticmethod + def remove_items_in_cache(item_type, db_map_ids): """Removes items in cache. Args: @@ -243,7 +244,7 @@ def remove_items_in_cache(self, item_type, db_map_ids): table_cache = db_map.cache.get(item_type) if table_cache is None: continue - db_map_data[db_map] = [table_cache.remove_item(id_) for id_ in ids] + db_map_data[db_map] = sum((table_cache.remove_item(id_) for id_ in ids), []) return db_map_data @busy_effect @@ -1422,20 +1423,21 @@ def _remove_items_commands(self, db_map, ids_per_type): yield RemoveItemsCommand(self, db_map, ids_, item_type) @busy_effect - def do_remove_items(self, item_type, db_map_ids, callback=None): + def do_remove_items(self, item_type, db_map_ids, callback=None, committing_callback=None): """Removes items from database. Args: item_type (str): database item type db_map_ids (dict): mapping DatabaseMapping to removable ids - callback (Callable): function to call after removal is finished + callback (Callable, optional): function to call after removal is finished + committing_callback (Callable, optional): function to call after removal has been committed """ for db_map, ids in db_map_ids.items(): try: worker = self._get_worker(db_map) except KeyError: continue - worker.remove_items(item_type, ids, callback) + worker.remove_items(item_type, ids, callback, committing_callback) @staticmethod def db_map_ids(db_map_data): diff --git a/spinetoolbox/spine_db_worker.py b/spinetoolbox/spine_db_worker.py index 0eff3d12d..7e8c27f6c 100644 --- a/spinetoolbox/spine_db_worker.py +++ b/spinetoolbox/spine_db_worker.py @@ -481,9 +481,10 @@ def _rebind_recursively(self, item): Args: item (CacheItem): item to rebind """ - for parent in self._get_parents(item.item_type): - if parent.accepts_item(item, self._db_map): - self._bind_item(parent, item) + if not item.readd_callbacks: + for parent in self._get_parents(item.item_type): + if parent.accepts_item(item, self._db_map): + self._bind_item(parent, item) for referrer in item.referrers.values(): self._rebind_recursively(referrer) @@ -535,20 +536,24 @@ def update_items(self, orig_items, item_type, check, cache, callback): self._db_mngr.items_updated.emit(actual_item_type, db_map_data) @busy_effect - def remove_items(self, item_type, ids, callback): + def remove_items(self, item_type, ids, callback, committing_callback): """Removes items from database. Args: item_type (str): item type ids (Iterable of int): removable item ids callback (Callable, optional): function to call after items have been removed + committing_callback (Callable, optional): function to call after remove operation has been committed only """ if self._committing: with self._db_map.override_committing(self._committing): try: - self._db_map.cascade_remove_items(**{item_type: ids}) + removed_items = self._db_map.cascade_remove_items(**{item_type: ids}) except SpineDBAPIError as err: self._db_mngr.error_msg.emit({self._db_map: [err]}) + else: + if committing_callback is not None: + committing_callback({self._db_map: removed_items}) if callback is not None: callback({}) return From 352c36a69d43cc383ac390dd02867b30e33f7a9b Mon Sep 17 00:00:00 2001 From: Antti Soininen Date: Fri, 4 Aug 2023 09:43:28 +0300 Subject: [PATCH 11/19] Fix redoing db additions when items have referrers AddItemsCommand should not readd items in cascade when redoing. This fixes the command adding items that were not originally added when the command was created. Re #2228 --- spinetoolbox/spine_db_commands.py | 3 ++- spinetoolbox/spine_db_manager.py | 4 ++-- spinetoolbox/spine_db_worker.py | 8 ++++++-- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/spinetoolbox/spine_db_commands.py b/spinetoolbox/spine_db_commands.py index 26996e7f7..cf194dcda 100644 --- a/spinetoolbox/spine_db_commands.py +++ b/spinetoolbox/spine_db_commands.py @@ -272,6 +272,7 @@ def redo(self): self.redo_db_map_data, self.item_type, readd=self._readd, + cascade=False, check=self._check, callback=self.handle_redo_complete, ) @@ -285,7 +286,7 @@ def _handle_first_redo_complete(self, db_map_data): if self.db_map not in db_map_data: self.setObsolete(True) return - self.redo_db_map_data = db_map_data + self.redo_db_map_data = {db_map: [x.deepcopy() for x in data] for db_map, data in db_map_data.items()} self.undo_db_map_ids = {db_map: {x["id"] for x in data} for db_map, data in db_map_data.items()} diff --git a/spinetoolbox/spine_db_manager.py b/spinetoolbox/spine_db_manager.py index e0a160727..d64886b0f 100644 --- a/spinetoolbox/spine_db_manager.py +++ b/spinetoolbox/spine_db_manager.py @@ -999,7 +999,7 @@ def _import_data_cmds(self, db_map, data_for_import, db_map_error_log): if to_add: yield AddItemsCommand(self, db_map, to_add, item_type, check=False) - def add_items(self, db_map_data, item_type, readd=False, check=True, callback=None): + def add_items(self, db_map_data, item_type, readd=False, cascade=True, check=True, callback=None): for db_map, data in db_map_data.items(): try: worker = self._get_worker(db_map) @@ -1007,7 +1007,7 @@ def add_items(self, db_map_data, item_type, readd=False, check=True, callback=No # We're closing the kiosk. continue cache = self.get_db_map_cache(db_map) - worker.add_items(data, item_type, readd, check, cache, callback) + worker.add_items(data, item_type, readd, cascade, check, cache, callback) def update_items(self, db_map_data, item_type, check=True, callback=None): for db_map, data in db_map_data.items(): diff --git a/spinetoolbox/spine_db_worker.py b/spinetoolbox/spine_db_worker.py index 7e8c27f6c..895c7a826 100644 --- a/spinetoolbox/spine_db_worker.py +++ b/spinetoolbox/spine_db_worker.py @@ -405,13 +405,14 @@ def _split_items_by_type(self, item_type, items): yield item_type, items @busy_effect - def add_items(self, orig_items, item_type, readd, check, cache, callback): + def add_items(self, orig_items, item_type, readd, cascade, check, cache, callback): """Adds items to db. Args: orig_items (dict): lists of items to add or update item_type (str): item type readd (bool) : Whether to re-add items that were previously removed + cascade (bool): Whether to add items in cascade or just the root items check (bool): Whether to check integrity cache (dict): Cache callback (None or function): something to call with the result @@ -468,7 +469,10 @@ def add_items(self, orig_items, item_type, readd, check, cache, callback): # Item may have been unbound on commit. # We need to rebind it so cascade_readd() notifies fetch parents properly. self._rebind_recursively(item_in_cache) - item_in_cache.cascade_readd() + if cascade: + item_in_cache.cascade_readd() + else: + item_in_cache.readd() data.append(item_in_cache) db_map_data = {self._db_map: data} if item_type == actual_item_type and callback is not None: From 79ce54c69a7eab25d3a0d16e232f2751aa81b828 Mon Sep 17 00:00:00 2001 From: Henrik Koski Date: Mon, 7 Aug 2023 15:40:27 +0300 Subject: [PATCH 12/19] Docs update Importing and exporting data -section Re #2156 --- docs/source/data_import_export.rst | 320 ++++++++++++------ .../img/exporter_mapping_options_dock.png | Bin 5356 -> 11120 bytes .../exporter_mapping_specification_dock.png | Bin 5195 -> 13312 bytes docs/source/img/exporter_preview_docks.png | Bin 12622 -> 19996 bytes docs/source/img/exporter_properties.png | Bin 6819 -> 39469 bytes .../img/exporter_specification_editor.png | Bin 35643 -> 63652 bytes .../import_editor_column_data_type_menu.png | Bin 3459 -> 7189 bytes ...port_editor_preview_table_mapping_menu.png | Bin 12412 -> 18436 bytes docs/source/img/import_editor_window.png | Bin 28374 -> 60289 bytes docs/source/img/importer_connector_type.png | Bin 0 -> 9614 bytes docs/source/img/importer_properties.png | Bin 26433 -> 15867 bytes .../importer_spec_editor_anonymous_mode.png | Bin 0 -> 65119 bytes .../img/select_url_for_remote_db_export.png | Bin 0 -> 8012 bytes 13 files changed, 214 insertions(+), 106 deletions(-) create mode 100644 docs/source/img/importer_connector_type.png create mode 100644 docs/source/img/importer_spec_editor_anonymous_mode.png create mode 100644 docs/source/img/select_url_for_remote_db_export.png diff --git a/docs/source/data_import_export.rst b/docs/source/data_import_export.rst index a2ac528aa..d88ad253e 100644 --- a/docs/source/data_import_export.rst +++ b/docs/source/data_import_export.rst @@ -15,8 +15,11 @@ Importing and exporting data This section explains the different ways of importing and exporting data to and from a Spine database. +.. contents:: + :local: + Importing data with Importer ----------------------------- +**************************** Data importing is handled by the Importer project item which can import tabulated and to some degree tree-structured data @@ -27,53 +30,133 @@ but using an Importer item is preferred because then the process is documented a .. tip:: A Tool item can also be connected to Importer to import tool's output files to a database. -The heart of Importer is the **Import Editor** window in which the mappings from source data +The heart of Importer is the **Importer Specification Editor** window in which the mappings from source data to Spine database entities are set up. The editor window can be accessed -by the **Import Editor...** button in Importer's Properties dock. -Note, that you have to select one of the files in the **Source files** list before clicking the button. +by the |wrench| button in Importer's Properties dock where existing specifications can also be selected. .. image:: img/importer_properties.png :align: center -The **Import Editor** windows is divided into two parts: -**Sources** shows all the 'sheets' contained in the file, -some options for reading the file correctly, -and a preview table to visualize and configure how the data on the selected sheet would be mapped. -**Mappings**, on the other hand, shows the actual importing settings, the mappings from the input -data to database entities. +in the **Properties** tab there is also the option to cancel the import if an non-fatal error occurs during execution and +also three options for how to handle if some of the values that you are trying to import already exist in the target. +The three choices are: +*Keep existing*, *Replace* and *Merge indexes*. *Keep existing* means that the data that is already in the target Data Store will +be kept there and the new data the Importer tried to import is forgotten. *Replace* on the other hand means that +the newly imported data is put in place of the old data in the target Data Store. The *Merge indexes* -option works mostly like +the *Replace* option, but for indexed values like maps, time series and arrays the behavior is a little different. +With these value types the old index-value pairs in the target Data Store will be kept and the new value pairs will +be appended to it. If an index that is going to get imported already exist, the new imported value will be written +over the old value. + +When the specification editor is opened for an Importer without a specification, a list of the supported +connectors is presented. if the Importer is already connected to some data, it may have already selected +the proper connector and is only awaiting confirmation + +.. image:: img/importer_connector_type.png + :align: center + +When creating a Importer specification, it is usually helpful to have the data already connected to the Importer in +question so it is easier to visualize how the importer is handling the data. + +Importer specification editor +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The left side of the **Importer Specification Editor** contains four dock widgets that deal with the input source data. +**Source files** contains the filepath to the input file. **Source tables** contains all the different tables the file +has. If the file doesn't have tables or the file type doesn't have them, all of the files data will be in the one table. +These can be selected and deselected and only the selected ones will be imported. **Source options** has a few options +on how to handle the incoming data. **Source data** allows for the previewing of the data and also of the currently +selected mapping. + +The right side of the spec editor is all about mappings. **Mappings** lets you add, duplicate and remove mappings or +select a mapping to modify its options. **Mapping options** allow you to specify important things like what item type +you are importing. In **Mapping specification** you can select the specific places in the source data where the +object names, values etc. will be taken from. .. image:: img/import_editor_window.png :align: center -The options in the Mappings part declare if the currently selected sheet will be imported as an object or relationship -and what type of parameters, if any, the sheet contains. -The table can be used to configure how the input data is interpreted: -which row or column contains the entity class names, parameter values, time stamps and so on. +The filepath of the data that the importer will be importing is visible in the **Source files** -widget. +If the filetype supports tables, the tables that are to be importer can be selected under **Source tables**. +For flat data types like csv, all the data will be shown on a single table named after the file. +The option *Select All* is useful for selecting or deselecting all tables. If the Importer is opened in +`anonymous mode`_, there is also the option to add tables. + +**Source options** contains options to "format" the incoming data. the available options can differ depending on the +selected connector. The above picture shows the available options for excel files. Max rows specifies the amount of +rows from the input data that are considered by the importer. The option *Has header* converts the first row into +headers. *Skip rows* and *Skip columns* skip the first *N* specified rows or columns from the table. +If the table has empty rows or columns and some other data after that that you don't want to use, +*Read until empty row/column on first column/row* -options can be used to "crop" the imported data to the +first relevant block of information. Other possible options for different connector types include *Encoding, Delimiter, +Custom Delimiter, Quotechar* and *Maximum Depth*. **Load default mapping** sets all of the selections in the spec editor +to their default values. Be careful not to press this button unless you want to wipe the whole specification clean. + +.. note:: If you are working on a specification and accidentally press the *load default mapping* button + you can undo previous changes for the specification from the hamburger menu or by pressing **Ctrl+Z**. + To redo actions, or press **Crl+Y**. + +**Source data** shows the selected table's data and a preview of how the selected mapping will import the data. +An important aspect of data import is whether each item in the input data should be read as a string, a number, +a time stamp or something else. By default all input data is read as strings. +However, more often than not things like parameter values are actually numbers. Though types are usually casted automatically, +it is possible to manually control what type of data each column (and sometimes each row) contains from the preview table. +Clicking the data type indicator button on column or row headers pops up a menu with a selection of available data types. +Right clicking the column/row header also gives the opportunity to change the data type of all columns/rows at once. -.. image:: img/import_editor_mapping_options.png +.. image:: img/import_editor_column_data_type_menu.png :align: center -It might be helpful to fill in the mapping options using the preview table in the Sources part. -Right clicking on the table cells shows a popup menu -that lets one to configure how the rows and colunms are read upon importing. +Under **Mappings** you can manage mappings by adding new ones and removing or duplicating existing ones. +Each table has it's own mappings and every mapping has its own options. In **Mappings** you can select the mapping +that you want to start modifying. Having multiple mappings for a single table allows to for example import relationship +classes and object classes at the same time from a single table in a file. + +**Mapping options** helps the importer get a feel for what kind of data it will be importing. +The available *item type* options are *Object class, Relationship class, Object group, Alternative, Scenario, +Scenario alternative, Parameter value list, Feature, Tool, Tool feature* and *Tool feature method*. The other available +options are dependent on the Item type. *Import objects* allows to import th objects alongside the Relationship class +or object group. *Parameter type* is used to specify what type of parameters, if any, the sheet contains. It has options +*Value, Definition* and *None*. If *Value* or *Definition* is selected +the value or respectively the default value type can be set from the drop-down list. *Use before alternative* is only +available for *Scenario alternative* -item type. *Read data from row* lets you specify the row where the importer +starts to read the data. *Ignore columns* allow you to select individual columns that you want to exclude from the +whole importing process. *Number of dimensions* sets the amount of dimensions the relationship to be imported has. +*Repeat time series* does the same thing as everywhere else. *Map dimensions* is for map values. + +Once the everything in **Mapping options** is in order, the next step is to set the mapping specification. +**Mapping specification** is the part where the decisions are made on how the input data is interpreted: +which row or column contains the entity class names, parameter values, time stamps and so on. +The **Mapping specification** dock widget contains all of the targets that the selected mapping options specify. +Each target has a *Source reference* and a *Source type*. *Source type* specifies if the data for the target +is coming in the form of a column, row, table name etc. In the *Source ref.* section you can pinpoint to the +exact row, column etc. to use as the data. The *Filter* section can be used to further specify which values to +include using regular expressions. More on regular expressions in section `Basic regular expressions for filtering`_. + +It might be helpful to fill in the *Source type* and *Source ref.* using the preview table in the *Sources data*. +Right clicking on the table cells shows a popup menu that lets one to configure where the selected row/column/header +is mapped to. It can also be used to simultaneously map all headers to one target. .. image:: img/import_editor_preview_table_mapping_menu.png :align: center -An important aspect of data import is whether each item in the input data should be read as a string, a number, -a time stamp, or something else. -By default all input data is read as strings. -However, more often than not things like parameter values are actually numbers. -It is possible to control what type of data each column (and, sometimes, each row) contains from the preview table. -Clicking the data type indicator button on column headers pops up a menu with a selection of available data types. -Right clicking the column header also gives the opportunity to change the data type of all columns at once. +.. _anonymous mode: -.. image:: img/import_editor_column_data_type_menu.png +Anonymous mode +~~~~~~~~~~~~~~ + +The importer specification editor can be opened for a Importer that doesn't have any available resources. +In this case, the spec editor can be used to create generalized specifications. + +.. image:: img/importer_spec_editor_anonymous_mode.png :align: center +In anonymous mode new tables can be created in **Source tables** by double clicking ** +and writing in a name for the new table. The **Source data** will contain an infinite grid of cells on which you +can create different mappings. Exporting data with Exporter ----------------------------- +**************************** Exporter writes database data into regular files that can be used by Tools and external software that do not read the Spine database format. Various tabulated file formats are supported @@ -83,11 +166,11 @@ At its heart Exporter maps database items such as entity class or entity names t Each item has a user given output **position** on the table, for example a column number. By default data is mapped to columns but it is also possible to create pivot tables. -Exporter saves its settings or export **mappings** as a specification -that can be reused by other exporters or even other projects. +Exporter also uses specifications so the same configurations +can be reused by other exporters even in other projects. The specification can be edited in *Exporter specification editor* which is accessible by the |wrench| button in the item's Properties dock -or by double clicking exporter's icon on the Design view. +or by double clicking exporter's icon on the **Design View**. A specification that is not associated with any specific Exporter project item can be created and edited from the Main toolbar. @@ -104,8 +187,11 @@ Specification used by the active Exporter item can be selected from the *Specifi The |wrench| button opens *Exporter specification editor* where it is possible to edit the specification. -Databases available for export from connected project items such as Data stores are listed in -separate boxes below the Specification combobox. An output filename is required for each database. +Data Stores that are connected to the exporter and are available for export are listed below +the *Specification* combobox. An output label is required for each database and one Exporter +can't have the same output label for two different Data Stores at the same time. Two different +Exporters can have the same output label names since they are located in a different directory. +The default label for the output files is of the format ``_exported@``. Checking the *Time stamp output directories* box adds a time stamp to the item's output directories preventing output files from being overwritten. This may be useful for debugging purposes. @@ -126,11 +212,15 @@ Other formats which inherently cannot write multiple tables into a single file, such as csv, may end up exporting multiple files. See the sections below for format specific intricacies. -When opened for the first time Specification editor looks like in the figure below. +When opened for the first time Specification editor looks like in the image below. The window is tabbed allowing multiple specifications to be edited at the same time. Each tab consists of dock widgets which can be reorganized to suit the user's needs. The 'hamburger' menu on the top right corner gives access to some important actions such as *Save* and *Close*. *Undo* and *redo* can be found from the menu as well. +There is also a *Duplicate* option which creates a new tab in the spec editor that +is otherwise the same but has no name and is missing the database url under *Preview +controls*. This is handy if you want to create a new Exporter specification using an +existing template instead of always starting form the beginning. .. image:: img/exporter_specification_editor.png :align: center @@ -138,60 +228,77 @@ such as *Save* and *Close*. *Undo* and *redo* can be found from the menu as well The only requirement for a specification is a name. This can be given on the *Name* field field on the top bar. The *Description* field allows for an additional explanatory text. - The current output format can be changed by the *Format* combobox on *Export options* dock. -.. image:: img/exporter_mappings_dock.png - :align: center - -Specification's mappings are listed in the *Mappings* dock shown above. +Specification's mappings are listed in the *Mappings* dock widget shown below. The *Add* button adds a new mapping while the *Remove* button removes selected mappings. Mappings can be renamed by double clicking their names on the list. The checkbox in front of mapping's name shows if the mapping is currently enabled. +Only enabled mappings are exported when the Exporter is executed. Use the *Toggle enabled* button to toggle the enabled state of all mappings at once. +.. image:: img/exporter_mappings_dock.png + :align: center + The tables defined by the mappings are written in the order shown on the mapping list's *Write order* column. This may be important if the tables need to be in certain order in the output file or when multiple mappings output to a single table. Mappings can be sorted by their write order by clicking the header of the *Write order* column. The *Write earlier* and *Write later* buttons move the currently selected mapping up and down the list. +.. image:: img/exporter_preview_docks.png + :align: center + +A preview of what will be written to the output is available in the preview dock widgets. +To enable it, check the *Live preview* checkbox. +A database connection is needed to generate the preview. +The *Preview controls* dock provides widgets to choose an existing database or to load one from a file. +Once a database is available and the preview is enabled the mappings and the tables they would output +are listed on the *Preview tables* dock. +Selecting a table from the list shows the table's contents on the *Preview contents* dock. + +Mapping options +--------------- + +The currently selected mapping is edited using the controls in *Mapping options* and *Mapping specification* docks. +The *Mapping options* dock contains controls that apply to the mapping as a whole, e.g. what data the output tables +contain. It's important to choose *Item type* correctly since it determines what database items the mapping outputs +and also dictates the mapping types that will be visible in the *Mapping specification* dock widget. It has options +*Object class, Relationship class, Relationship class with object parameter, Object group, Alternative, Scenario, +Scenario alternative, Parameter value list, Feature, Tool, Tool feature* and *Tool feature method*. The rest of the +options beside *Group function* are item type specific and may not be available for all selections. + .. image:: img/exporter_mapping_options_dock.png :align: center +Checking the *Always export header* checkbox outputs a table that has fixed headers even if the table is +otherwise empty. If *Item type* is Relationship class, the *Relationship dimensions* spinbox can be used +to specify the maximum number of relationships' dimensions that the mapping is able to handle. +*Selected dimensions* option is only available for the *Relationship class with object parameter* -item +type and it is used to specify the relationship dimension where the object parameters are selected from. +Parameters can be outputted by choosing their value type using the *Parameter type* combobox. The *Value* +choice adds rows to *Mapping specification* for parameter values associated with individual entities while +*Default value* allows outputting parameters' default values. The maximum number of value dimensions in +case of indexed values (time series, maps, time patterns, arrays) the mapping can handle is controlled +by the *Parameter dimensions* spinbox. The *Fixed table name* checkbox enables giving a user defined +table name to the mapping's output table. In case the mapping is pivoted and *Mapping specification* +contains items that are *hidden*, it is possible that a number of data elements end up in the same +output table cell. The *Group function* combobox offers some basic functions to aggregate such data +into the cells. + +Mapping specification +--------------------- + .. image:: img/exporter_mapping_specification_dock.png :align: center -Currently selected mapping is edited using the controls in *Mapping options* and *Mapping specification* docks. -The *Mapping options* dock contains controls that apply to the mapping as a whole, -e.g. what data the output tables contain. *Mapping specification*, on the other hand, -contains a table which defines the structure of the mapping's output tables. - -What database items the mapping outputs is chosen using the *Item type* combobox in *Mapping options* dock. -For instance, the *Object classes* option outputs object classes, objects -and, optionally, object parameters and related items -while the *Relationship classes* option outputs relationship classes and relationships. -Checking the *Always export header* checkbox outputs a table that has fixed headers -even if the table is otherwise empty. -If *Item type* is Relationship class, -the *Relationship dimensions* spinbox can be used to specify the maximum number -of relationships' dimensions that the mapping is able to handle. -Parameters can be outputted by choosing their value type using the *Parameter type* combobox. -The *Value* choice adds rows to *Mapping specification* for parameter values associated with -individual entities while *Default value* allows outputting parameters' default values. -The maximum number of value dimensions in case of indexed values -(time series, maps, time patterns, arrays) -the mapping can handle is controlled by the *Parameter dimensions* spinbox. -The *Fixed table name* checkbox enables giving a user defined table name to the mapping's output table. -In case the mapping is pivoted and *Mapping specification* contains items that are *hidden*, -it is possible that a number of data elements end up in the same output table cell. -The *Group function* combobox offers some basic functions to aggregate such data into the cells. - -The contents of the table on the *Mapping specification* dock depends on choices on *Mapping options*, +*Mapping specification* contains a table which defines the structure of the mapping's output tables. +Like mentioned before, the contents of the table depends on choices on *Mapping options*, e.g. the item type, parameter type or dimensions. Each row corresponds to an item in the database: object class names, object names, parameter values etc. The item's name is given in the *Mapping type* column. The colors help to identify the corresponding elements in the preview. + The *Map to* column defines the **position** of the item, that is, where the item is written or otherwise used when the output tables are generated. By default, a plain integral number in this column means that the item is written to that column in the output table. @@ -202,6 +309,7 @@ in the database, each named after the class. Each table in turn will contain the parameters and objects of the table's object class. If multiple mappings generate a table with a common name then each mapping appends to the same table in the order specified by the *Write order* column on *Mappings* dock. + The *column header* position makes the item a column header for a **buddy item**. Buddy items have some kind of logical relationship with their column header, for instance the buddy of an object class is its objects; @@ -212,9 +320,10 @@ setting the object class to *column header* will write the name of the class as Therefore, *column header* will not always produce sensible results. Changing the column and pivot header row positions leaves sometimes gaps in the output table. -If such gaps are not desirable the *Compact* button reorders the positions by removing the gaps. +If such gaps are not desirable the **Compact** button reorders the positions by removing the gaps. This may be useful when the output format requires such gapless tables. + The checkboxes in *Pivoted* column on the *Mapping specification* dock toggle the mapping into pivoted mode. One or more items on the table can be set as pivoted. They then act as a pivot header for the data item which is the last non-hidden item on the list. @@ -228,48 +337,14 @@ Continuing the example, checking the *Nullable* checkbox for *Objects* would pro all object classes including ones without objects. The position where objects would normally be outputted are left empty for those classes. -Besides the *column header* position it is possible give fixed column headers to items +Besides the *column header* position it is possible to give fixed column headers to items using the *Header* column in *Mapping specification* dock. Note that checking the *Always export header* option in the *Mapping options* dock outputs the fixed headers even if there is no other data in a table. The *Mapping specification* dock's *Filter* column provides refined control on which database items the mapping outputs. -The column uses `regular expressions `_ -to filter what gets outputted. See _`Basic regular expression for filtering`. - -.. image:: img/exporter_preview_docks.png - :align: center - -A preview of what will be written to the output is available in the preview dock widgets. -A database connection is needed to generate the preview. -The *Preview controls* dock provides widgets to choose an existing database or to load one from a file. -Once a database is available and the preview is enabled the mappings and the tables they would output -are listed on the *Preview tables* dock. -Selecting a table from the list shows the table's contents on the *Preview contents* dock. -The colors on the table correspond to the colors in *Mapping specification* dock. - -Basic regular expressions for filtering -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The *Filter* field in *Mapping specification* accepts -`regular expressions `_ -to filter what data gets outputted by that mapping item. -Below are examples on how to create some basic filters. - -*Single item* - -Writing the item's name to the field filters out all other items. -For example, to output the object class called 'node' only, write :literal:`node` to the *Filter* field. - -*OR operator* - -The vertical bar :literal:`|` serves as the OR operator. -:literal:`node|unit` as a filter for object classes would output classes named 'node' and 'unit'. - -*Excluding an item* - -While perhaps not the most suitable task for regular expressions it is still possible to 'negate' a filter. -`^(?!node).` would exclude all items names of which start with 'node'. +The column uses regular expressions (see section `Basic regular expressions for filtering`_) +to filter what gets outputted. Csv and multiple tables ~~~~~~~~~~~~~~~~~~~~~~~ @@ -278,15 +353,22 @@ Csv files are flat text files and therefore do not directly support multiple tab Instead, multiple tables are handled as separate output files. Only mappings that output an **anonymous table** -actually write to the file specified on the Exporter's properties dock. +actually write to the file/label specified on the Exporter's properties dock. Named tables get written to files named after the table plus the :literal:`.csv` extension. -For example, a table named :literal:`node` would result in a file called `node.csv`. +For example, a table named :literal:`node` would result in a file called ``node.csv``. SQL export ~~~~~~~~~~ -.. note:: - Currently only sqlite is supported. +To set up export to a remote database, first an Exporter specification with SQL selected as the format needs +to be saved. The Exporter needs to also be connected to some input Data Store. From the Exporters **Properties** +dock widget an output database can be specified for each input Data Store respectively by clicking the **Set URL...** +button. A small new window opens with a few settings to set up the output database. Currently only mysql and sqlite +are supported, even though mssql, postgresql and oracle are also listed as options for the dialect. Once a URL is set +it can be removed by pressing the **Clear URL** button on the **Properties** tab. + +.. image:: img/select_url_for_remote_db_export.png + :align: center The SQL backend writes the tables to the target database in a relatively straightforward way: @@ -334,3 +416,29 @@ The gdx backend turns the output tables to GAMS sets, parameters and scalars fol * A table that contains a numerical value in the top left cell is considered a GAMS scalar. Everything else (except the table name) is ignored. * The data in the top left cell is the scalar's value. + +.. _Basic regular expressions for filtering: + +Basic regular expressions for filtering +*************************************** + +See regular expressions on `wikipedia `_ and on +Python's `documentation `_. +Both the Exporter and Importer have applications for regular expressions in their respective +*Mapping specifications* dock widgets. Below are examples on how to create some basic filters +for these applications. + +*Single item* + +Writing the item's name to the field filters out all other items. +For example, to output the object class called 'node' only, write :literal:`node` to the *Filter* field. + +*OR operator* + +The vertical bar :literal:`|` serves as the OR operator. +:literal:`node|unit` as a filter for object classes would output classes named 'node' and 'unit'. + +*Excluding an item* + +While perhaps not the most suitable task for regular expressions it is still possible to 'negate' a filter. +:literal:`^(?!node)`. would exclude all items names of which start with 'node'. diff --git a/docs/source/img/exporter_mapping_options_dock.png b/docs/source/img/exporter_mapping_options_dock.png index b03d4374dae19d33d3e8afb278598a0f632bd7d3..3e6acb876e9cf2273d008b61aec01dd792eb54af 100644 GIT binary patch literal 11120 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 Uqh$v%RkHV#9lR{#J2 literal 5356 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 diff --git a/docs/source/img/exporter_mapping_specification_dock.png b/docs/source/img/exporter_mapping_specification_dock.png index 3c5cbaf73de59d9bf9e3a3312bb3171dcda0053a..f55acdd6ceac1d43d5b26c8dd6b3f3e1fd41cbe6 100644 GIT binary patch literal 13312 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

Tte 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 diff --git a/docs/source/img/exporter_properties.png b/docs/source/img/exporter_properties.png index 30cce9a6512cfcc4183782d9e80d32feadb10887..b33057ff18ccc4f175654f54fa871cf1f9e723c2 100644 GIT binary patch literal 39469 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℞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 literal 6819 zcmeHsXE>Z)*XX1m7$pd!6G8-$QKE&3j2bl|5sxxLMlaC?Ga?u*N{HS&(M5}1MvEw; z_jw|M!Dta}lym32=e^GRUFW)<@BBM|&X0B9d#}Csz1LoA?bYruJsmX~DmE$*2t=cy zuKW}Py7UeJqidG|4BN{#ao}~y?Wx)$Q27uC0q9({R?=1ifvTdZPhXM&eahGBMs6Sw zZPy>T)azXI3Rowjp{!)!ZAM(sEwxff?%ma)4-J4^FknNkUjzqB@QP}`!i8BegylF~ zQx{8;o<=3Jp1XGuJuh8nz|NB;)qt^ib77J11E-&er_``9(5Uv>d_zJBACgrm?^;Pk z^oz`k>poK`)OnUJx83Huc=!hI+m>n2xH10b(~#^o@#MIbg>=v=mWguP^1NBIO*a-b zJY`l?GpIBd$T)XsWkUy^jZ%QUl9$sbB~lX4mF7??q^(opV)iVo$#Xc1$X(zttUYm# z9y#!;LRr7{JoH+8;JG>NjQ*8sX!Zt)_&_F6D}KGeA$|N>+4QNr1M(?TSsd*TF~j}xaX=}*h$KWnj7-|A&%{T$2?bU_Zy_>UF?tQ2(-*NaAWrZ>7qF-dK+2|VESm~-;P*}C ziq@0$DhjTc6ERN32W$(s(kY~)2eLAT23g?!?AH~3_{)oS9f#a9EJ}%XE#EtsLmvID zq%f9dAJOGfss$q}@M0jnK@O|*E}FS?FD=GKBtc_8Pb72T0PHI>zcQu zb2vc8Bq?HY8Z7e}(T-G|&pp^B3gDk*e|1>tYPJyy&c^CVW`D8PB8jm^`5T5}pB5Y{ z)0cg_<+SUGUIl$`&A`*o!m*ULPr*?vun3K~L*-qPvgxlD_Ptl7DC(FSYm4setqZw> z7;WLWR$-lnQHMbcSk-0MB7K*|kzCNEYI0j=mybBw?(~FzNb3^61$n=9Rc>#ThM-@j zy6!6Tb+|TzmQGM!CX25vQquPIp2|l3YCf_SjST;RiPO948IX>R@jGwa&r!p7N?-@~^AvaSHM*FsB zsDdxu`va5ga8RXWJYlhiHj=Y9XHzc@ z@nbzP!udFx8l|~!(0y3NIeVmPF3of(FI%M5{C|DUPHm5K>*SRCuaVMI(j|>9ejrFj zP#OKXW2%~XCoH`qF4a$M!+*OjCK5a11R%=T8Sxjh9;5?PuYIrYJL95?WPUU7QLkAq zEttFy3S!5y8(-LYggbWVvqhY`PAwS=2t4@6QrJS{TLgFu;jTNv$t5XiXiEp}Z-Q z7NL`$`_JSP<(=&nLy^c)XA7GGFSrrPK?PN>Es|B{#fPz((9USBB?M`v3T&04D+JlK zSl$b(Yqm-+FFGzP4TPUKrM`G*ysZkxnP}w!3=^V^SkaC_$2R^l_$wjk5#C=&^J$lV z1EZs>(Ah)jyU3Ia^X*8|{rirQ>`>*@>PTv8Hb=ooNRIYQDDP|zz=_mqfM}K48H-TW zTpTm5Ad=TmEf;4)Z8wG;u{0L6m1J{Na-4-w-2mMavAFgY`j1ewe+87`6xPj$dAzsY zc4_m?0%Q*-DQKEQ0X2wC)M}$`=b9Xh`ch90m6Wi!M*q2IB$%4zzO*##sDsYTwf|P; z*`~F}I3LF9dGlmN+xdxf>u%&QYRkO{pCtF$+?HmWHWe;#Y09@r%-Kl|Mml4v7w7pi=s z+--jbY<3!fI9+POpKa~jp>TdPVC>ZJ9iv~U)30VxW*oJvB(Wkw8O%D!1m`|mQ|p>+ z*sLB<{FOXB?}bMhntH@@n7Iu~xq8|{KT?DY1mlX{1m>-pv|iP)BJ{Q5V3^ysY6oW% zgZ^c~8Z$GmSWN|u4v%&Z96v-IM>LUUX6>G9YzZ!Elz5ln59;bU75$EaS`?;pFTba?*Vhb1#Vd;;464lPPelcVtW#hQg_^ z5VpQLIypV=08Z<6)9OiM*Mh7pZ<|yh>b3(ZM<$nb({r!dz@$1YClP$5d=+ia{2{K& zI~=k{w_*ZlhM|c|cf6sQkaMtm(edI)Pft&X;(j*%;{5Pscx-ybGhWaThn>&)__O>+Dx!jc0=p4>UsNZ4N9G;Iw#un&*q-4dZ#2&&? z`X(;uvKqt~3p^kQM`A!6e>Fs(Z6NS2y_~LhbZ=5}(j?H|(q;>i470^u4H&pBo8N}4 zg=Q;DNa1vf(;~f|BquHK9elhQ2IyfySoY1pyo(Rfe#(l8{bn-gQ}5G+Zdc2`UFRp& zWs6w7s^bWm&=8eEV`hA(mPGdi9V@)spRMWF&}Qb_wu4#w-$BvQ%Ir+8SphLBfy$4( z{m0)ojKZzMk8abd$T5(docN;hkUmj|a9=~M96R!`FzEOo4=c{?%dPH_OK0u+)R)ib zmluV)?}+gSan%s?Jbk`)p1xpxyzk&Esu1_hjrYo@3a=2*h+#-ec z-}<1&g|j8p>3%u9OC7~4UBw!1J*IOga*!9JJOO6-VQF&$X3z}hof)BNt6HFqP62CB z%<}s;;uDBbd ztEA}i>ab8K%aSO>GboPbv_b1W6GJ#Ku|_eRLvu zNT`7ocCn0zvvor_YJj+hnIk%4ZKOp*zmL);6kl&B?zS$z#~&C%8@yzd#ToX@)j)xo z>BM4fyjWiX8N&luA?(QI3vo3;i?s{p8GW2(T4bhjfp~30vGgotR8@ZarQv zsc1a~Zg%U@l5ly$5@Y5O7MH8$bz*27##>q$29-pTQ(D+qsemu}>Lb7?(i}d4pJ9(6 zVxXf89()hEtc(B;20&6+p;trgz=PU}Yf9kwedLvc2MY`lYX8go{@V-xzk1j0KxQe- zhesS?xkzlx0cg_>OAoUAC)i+vSBt-u$}z6TKrUB;8$IlSh;<ug2@byyV5bM*T}d<}xmxs2YTXwFwrFfI9&FU0*|{*mPO2$>%=s}W*5)U$8C%}7d1 z9dbWdXq2iBKd^em0dFB$K3O@7yS_@?p$oVztyYr+tIatKXB3nDTU2zDkXG4{h_(%< z&~@hZ*goQs-W~0#;U*`qVRPa(FYX!+Z_lVuto)8St@Q@sop8_qrJ0g4|F-B{#RPOn4S2zX9UZ5W~61d4$E$C_pwYy z>t4A$`t@o0tIu%6kaSxUw3oBD%kz<3?do~gEtK}CqqTrnBH@dLOFxfkuID15De6=D zP~xY>Kpkq{5_ts6u1d=kb?2jnlAaICIq`7oMQgg+$Q6^;N3P?ZtKQ4^zPRPM8czuK zm?8U8-RS_C=K&%UkK(;Z`zg$3Hu7*dzry9vL(8mZTASrbIgb!gw#X2xL)2NX{+wFVlw0c6A-?~zBHeCXiW&EG48Mkv*orEqU-fbls zAd(-N1@FuZo^p1TKRRF3v9&Z z%%GxCXG3=J!M=7rLB#>aJjS2UF)%l@WN@X9Y)9n!3(pD9vw+MN(LsQQWx8bU-`Ctq zRK6R;TvR!bstj3O1r`GV9ZoK4VNLFh@uxY38)m@3{Tp#U`qguybu-nVzK!Q)BKu=PTn0* zVM*d(pCaZo;%A0zt6g?(XGs!`l-QG>WP=Et-*fBygB+#Pzn+u-Xq=EQ*1`q6Hltf2 zbH`?CZOItrJz#e7glOEQPbkHky2^gnMbq%bG~3neNeN zpMy^-rWTW^hFOoK_SC?$KRr)2QPiu#uXN)~`AkJb@7&e*{nqgCzL;^#Pp6xu*SY&> z@;!c5^=-dQ?9ubKy4XMK+<4l|W$&0$$ThiF(Qxx%Gf*)0+l&x!oi{k(W2ev=6tqUu zwdfRY?d*amJie<&dmSEUd98hRq|EqpIrOUe6b}Xj;rl-Tb4dS|c7aO@JF>HUBawoF z{yKaBFtKD7Hb8uw^$;w|4!z10nvLYcyzMj#&nA{#p{T3--3|t@p4MQ_n6Wb44E@6m z2%JS{v7rP_OQ~0-X<5W3jis-QJx~ST*v91X{o?fB?5$Uolawow*l#FfjXX{Ace^21 zUTvbSmV#DehoARay*Xc1%@4~xtILT~A?mKj_8Xix#J zfcVdXmPJ1Ii31h8L@j8^8n&xgln3)p@_pVTxjg#GuEhx6i>f=mW3j3lf+l(LTMK$# zQrT|%MOn~geLgG92Elny{e8C8JwjpbmJNJNwMWW3uf9r&>ZQVF2ZRcWQ}4Az9x?05 zz}Vv5nmEfGTQ!KPk1BG)vgrksVihx#)&1HS7nd7yCH-cVO~odg8YSa z1Yg?umqac@YaFojdOVnfNXTU>>_~OLFl|=WTrS{m%mKIhkKm9GXa`sJ99oq+nim9# z{%@xLcc1(Jvb8zOAsjMxdXun(a6w06KfcW0N z`y zYLhd1fvsQ9?YG{Dj>3kH&u+FdI{jeCLkRCh?asUj26es2gi!e(EDYJnZFwD+QHHoD zyw=|zpLxEOJu8&JhQL3*%Q4i0m}8GkDJT(c7#oZ! z{E_3i+I_2$+O9aaLhxRUl#leXT6omyr;96`d2?Nkbq@SPG$>dHYa2RkiP?cpu0%UL ze&6B6I-++{jiA0(*w*8MO5$lt=85{qXz#VvqrWHaX{Kw=v%w9os=hn(fG`ia-7Tjg z$R$_83AeN&bID7ZW`TFRt3Y0Q+jGIuhU16WgGu!%o0Yz86|P_?q4z^hoB^{C)BRTs zHO9(5C&m&CQv?%(M1Xobu~OvA;+>KTb>{+{Q4wd+!W)yvq;#^TKa_h!^Wt4DNSob8 zQFH1_9JFv($nckKwgDIX31R8D+W8beG!0CZO<=%ekF3`|1Ye4feg(eN z&ha0m%>OKF{+Bl9J@457Tbzv)$ooofj6oC-7~kGZhAcTJTrRQGfbOrtE{=h``h=kC zFZT>w3!5p}gQHh!(jYfC-_D5gVIGk$xD6}#9}ge|dSV=wC4I?Bgblz+miQx z&x3s0w#?KHfNhkV!fbv>DowP8x$+UyJRjG+e)4yreVF_W^mF%f-IKNASM6eRr@{(9 z!#{aF=6K9xpSMwXR$A>V*e=H^gITsr42n{Y*1E1j9!3dWuA7`Ta)C?~QrwcO%HpM?u4 zJ&93$xK==A z5Ec`>haU7T;2(^&LlQ*p3dqv-#WNecM@Ezmvbe=J;GYd1hwUTIXOvjAHB z+KWllK+FL7cY4E%IX~)!o$rLe{IYkKBE&GItbvfr_ukXPGf$TVea2<9(2a|QD(eZNw#O? zCQbL|tq8)7!!iUgAaK4IrZJoipyXaSge_8a+y8=uH{_Gr_L*u@+zFsdlW}=*>*!;WO0?-%ZixfuWjD45UL?qE?{Yhvq-vj@f=NfTe z2n-7UH`n~n9IHRoVO3+j)H@iEdG;TS03ZnwC1!X<^WKF6>+uB(Z2}DVu>{gk(NQjc IWd81d0J0FQN&o-= diff --git a/docs/source/img/exporter_specification_editor.png b/docs/source/img/exporter_specification_editor.png index 152bfbbee87abe3a80be3debfb1ecd1d123956d2..be65015c963bff9336f390adbf1d07c5f5b4ca54 100644 GIT binary patch literal 63652 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

Mc@Lyc5$)`LPjF1uox% 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 literal 35643 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

qiOE}_{Z}W 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

Z*Rk<%cGq(!^Samv~?F4S$ix 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 M#LBqx{H0s}0p(q|$N&HU diff --git a/docs/source/img/import_editor_preview_table_mapping_menu.png b/docs/source/img/import_editor_preview_table_mapping_menu.png index 912e69287fccc230dfe3a64acf61b0c66ff4e013..0c94820eb62934b9c97812d0549ed3069da1881b 100644 GIT binary patch literal 18436 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%0A4i$m0}n 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 z z$CCz9>mCmG!Sic7O)dnz;DWT?;~FS#$!T$z%+*A1&s`V;sS(a}_T-v5*`QiFjhva!ZU+<@oZp~j`l2s=4H@a9$ z0LqNFUCnN-nPEX>m0**9#-s))+*C6Rv_6hXSUWyiEyMY(%+I-Ur9K^xm>Om6WWopZ zBiA6!fawD}-P^gw8#csL1*=zyH9uQr&DnTQ)oE#xP#eUjxd*B~9uDL5C{fU<7PReh zeC1Wx01hk{-cl#Q=})p1Z(Z)Ojk)@ZRMDX*@6KHvkm}nEAR_RhkBWb+r&cecrAnA} z^5lojj2D$6vc=0EEYL-l*r%p(>%Ms0lNQN_kRAZog`o3AT0TZW(aBV7&d(rcVQIJj|7^t#P#kFhmL$|H(Q=z{OHOLgBGyY^kzmCw3rd2B>KKW{36G347Nv3pF! z97i3c4DL!P!vY#X3!W|1VrQ%GgEz| z1@<+@?}CwGlfI{uRqEB#py=mLTIrSywy?MB?0R3aPwXi-a2)epdNHTB9kiou4C{jD zB(sEDr4E>hG;bl%#73o&oYgt&H3sNJ!*w1BA$qvERChwWW%<0{piF(t& zBiSR3NAM2fLf@x+&KG*9a5o?RbvWh@|yd9Rr6`6W}#zL8o4LKgL%JcF4@o^5V4{z z9rx^AGc>0V3@W`8137m)?;TXS=fCrJ{X2$(;F09D?d>q=8U+pn?(?U{5 zznb}*?%L~sj5aCdNza>G8#nMM=*AW^?TkkoRh_07*UNjqeCSawh@7ExhZs$&s?nZjB4w0UImfy zZhk=ShExa9Krg&)##emOEq=tD+!*Z~P}}X(_xV~QORW*sN1}rgCAutTix*kcT0N_d zs+`bImX8g)N0eVOoTH=0GUo!m2Nys|^kPsR3|~5mZBO|mup?~0vDU6|0KMJ*+)wQH zK;*C%^DPYv$G1W;m*?XM9OI&a`Mr=KEQIG7i`%V!=r~y?~WB1 zH0brx(JvCz#V*Zc%Du@NDC65y{{++opRHq*fA~mnB3xZuXM`cZU zLAm+Ku3LAuFj?t#Q^iAYyTNOL*p@*(2b~15J*nl2N_dO_fz+;~6PJ z3s>&n&VO+_{ao*hEu*qoapjAXWe|%#LS(djg_PWF$I`RQs2X5D#nE>g_%50}=Q9Cy z8u7Fql(%MAG8X-z97~&u;#J}|4X=C)9nxz_w9UNY%3c#5(WHOa+R~_jBs;v2?YXy0}^lF|6gp44ze8wBuNG%<^x2Umgjj5MMM3*g z#P-m$J^Gk~LI)3<3+%4{Dmwl_GTk{E!Yx$(0>t3yy>~^iB4k6^zuZhkP)<#(ZQl;m zV)}{|R3Gqmmpi8A9fL&v5Cw>IBp{$bq3{3{3i6;4Q7~=B09*M}qm(El(Wl&#iR;__ z`F+wPC0q`emce__NY)clMO zwE78{NZafZd;Z?|#7Zu0i{SXcQe#oNsnL3pu?>Majg=T8nm80<0;hlj`O=imMh@(VtW7Zw=Zfy_S} zJuthx@CS`bk&owskAke0tF1&RLWGEL4C_s3-Oy#cmBJ%slULui~p`0#~#U= zW5Jvj>n2-+ZInH$?OjdKu*KV7dZ5c*kL_XU#`4pVEZD7RMx=4UHA{wjVfO}I-IsTL zRQASVDvYE2S^MnQkR`UxN87^L+G2jkCtR}S$3QBmJsl~Q3kJO)OdKP^5tEgAYc(17 zuUR_s_7v!kc^{WWj+ZzfT=LOs8$I=S*jzvhbz<(-f-C?=s9!pM&JJUIXg|ooD$c>D z;&ev&RF*>O*zvJ+{XgSf@pJ5d9pamyK-Y9!``mHD??;pT*$-4SJZ9#yhKVksYaE;J zId+YcsQY*&1MPlf?tpMQKpakVVO5lEixZJv#kv(}RS~I2sTozH8NuHNV)k-BAj7rJ zSQay+esPj~T>EtCTKN@Odc2?x(*M#F(otY+_devWw@@JTf=>GhRG~;(w(u}<;?y6i zZ$JGCI~%!{USh&Nn8Sm{ta}F*`gg*tOcV_$O-C?4ivnt&d&rPRv=%b(i;CqiZ3i-w zo4aqh41cXx!q)7(MG;9$h7tV>3kUCKe$fW;Nx5mWb&v_Q+W` z9rikVb9e44>s_7PzD*aQ`5&ILy?CERsYia!3!&bG#}2_R!J`z&?DDEf0|Rx{^vMF< zXBV5pTPJ4G$R?uV<7{un^yB8Eour*;dxq|JY6d62yRyTDVxQUp&ZLl!3FzVY*`sr$ z1Msdw2tPI6X;Pm@y*ywLmsjPF6nK@p+=xCcS^=`$m|wQJp;~)k`+wr-1lKj(tTd+X z0R@#F_f|ZnH2S@ef*MS1ji|tRd|d6xA>*J*;sEj&{>J!v63^5+L*>BK#gV>@rS-DO z&w?*+3m9SeC(ly9JBR61X&+Uut05?eQ(hx=ZT95QcByX;5ZK|}J?t;ol=tOJ1{V{^ zc}ehxdH12q%E&`LyB?Vw3M_IE zelpqbj29sZr|0!JdsI1>k8CpjiQRuaFCqs8Xm7ra>VZ$L+yu~e}FS!JU2Hi;Em#e zU<3#$4E9Kdlg4KqQ?m^{c33@NlS<`u;(=+4ifF|m=Xa)qzxSu{)wCI!y<6>5UTBDc zLm(#Yb5@K1q7Qvd#3`wB^5$fjDSugF3!6g<=5eM0`G%>5&w*l<#~f{v`)mpMj^vVR zi?9nn$9;B60{ScPj=4lZ553b6*2-dKGZXvxmwyX!W!OP3xB@u`^&>L*Z(}(>621^x zn&(i}g@AC`#Yex=jB0CjSACG`X^*ldfcVuMUJz#4f={fiT()RYL zAgb8Ukf6v|@4@5)pZB`pZu=!cY%ghS_qrISZziF}x!idn#LqDRX;`M_I?3>Yg0)Z( zOv_Rut~zr;3)+lQ+B?kyAWoMcH}-LXGQ0a|07l~FcFE0^WwFg4s}tzq*rt&}e>>j% zk^9u8mzz*zH=(*Y!8B%(g*#9Q(Kjgy&`Dv6RTS>mIN^M=zVbSn_iSJ`G!C9ax;?T? zK5y|YFn+1X!gH|Sr}HN{)78sb&ns}`gWzWiY@{?_kcs#O` z&oYq8ey=BL)`G?CV0+tBfmFNWgP|CY;tKuc@qoYMM4#eXM1>*PM2G4uz~n6^pB*IY z{d)vmnI@o&q$w;hmv9LqwBArzRtT}$^wu5)z9u}&Ph6fkW z(bfqk7Tar6l{9PpAdHQeJbi|djMLA5&e9jnU%}}mT9(p@HD6RRDi>akt7nxE<@n0~ zq2MTRT*}Sr8AGQ5LX43IS=-#ZURs`Ij2y~+m|5*u4ALk*!InHU|M-g`#-CS;W8w3F z9~`o~dB^5g9NS@@xpzZM;NdzKHwbl<@RpMxkxYFnuTZ(=zQZN?Q(4`EYxAkktDmUn z-fLD+#CD$@CT-GX@gkMf+oN%HzMb1_wnkZd-tHRR!ADXcc@~Zkrt==b%`44bXH)SJ z?hSYmNmlC$rV%ZBt$8NvyU)f3_y&OKgkb1IGhm(Y+=vWf4E?S1v6CUX ztD|{SN2l~Lv7X@Hf#@fFn`woGH#H`%QKa%#RrewJHcrK?-d}P3CT3ULLtWHwB9rhs zJUY5&E_;CDwiZ-EPue&yPG4{71Z#eMsi-_-wq@+to>h^SX}a&?m8|B965Ma*P}IwU z3lEe%t?c23d35@>C6-gDx}{uo6dNQtqvOcx^0GKstxTP5AwOsS&0^MGb)4yC&2s#% zdqqbo07@zB@N#FHlvH*_#pu`gTpTT*gorUl9w3F^V>*xnk!!9$A7%;Vy&fv!u-T>g zII_H%{(>m0B#x2ms8aLYa|Lo*YbE)*0K)96-4TiA!!eR{OAWIiWO-h|LCA5g)2b^e zaoai4nU5z5X}_NF{Q5*l0+TFf<+~&J%(j`1C6g9=J)7x+k$eHO5|gV8%uLd+1^?St z+NB-um&C=h^Q`8RgmNG$c_e1`@4($8^`CPU9tY9Y{&nFN`cr;diWfY(*ca&MtyQkq$ys9V7+vkh;`Z1s_@zZIg|2}{NOJZE2NH~6mgHjKMbqG)bc z?tXs%{y-5q!NSF?THo$bH2*O!7$f(Mc9Mr;t7wbfrB2I3?H9Ll(0pzBK>izf?FHC= zRM{%&aS;)?2$@4g`(_wCmFsP;VDJ0Dc>P?9UfmjyT-P1W znz{7Fj&z1L=g%3};_}|^0-K&{o>tT0gTqM48nHo^>X54)ue_JdPv+i>?F@3geq0K? z6`KV^K3l%10@dVk^oujcmX|w3HW$8eUQ%WmQu8@W&}GE9RsXslQ(my?z4|0t;5Ke64avhfFH&t#z;~xRL_7r}Vyvf8+17DHeOhYI0x_+ZsNx(W zycE-<^H>%wWjfw(&9AtIw^t)4<^QW!Gcp z@r;-8;>@c~TJaO~k^0H4+!JJ^yGx{eQ9gHG<8ZhDy}J|Wd(5xXyWI}a!rRC`79u9l@ zAn4fDRmvN6`kiUs>b+Et&ZZ>sz=7k^{N_F0&n{zq@JzIg<J9Z@F;N@DrcuI=OOd3*MGhwRE-Rx7$wzAE(wXP}myk;H%NQ+OtO< zRqIj{dIv1_SK&GA#7-t!KLWE%NbhqQBX}le{4T1{g_LEitDw3xaFSfgF^W!nx5qu_ zZR$eR9taUq)a(}`tx35IzRiBlMLR|YvD)>kC32U7CbiLn}S8um$ z?TD=2r8(6iA4}W8ichUMwVhp;#MN^z$)F-;>?sSS{YVA&-L+6;JpS;0EiPo5TYI40 zbx9>o4c3lv{RXysAo6ya$73OoU)peMRf~tbW$X8X72~tzYrA2er{`TJ)aU<7*S{-M z)|w0ua9>WDZ=%R>o?2t3(Tuj( zLww*qK1@)Uyn%%enyGa}>rNRMdY6(C@;NdII*WNIymirS4C;VV1#*+iu7S#Ir>tswoyr~g$i~C z9ONBbIf;0dS>Z6Hn9uJ}>a86H)NhIxWk2N1L2$m<%O?Hl-Lsn#=jk-Q4DaKpiU~m5 z^CDhPC5DCKES`aA9& zO67tlJ%%{`UI#gy*S~vexSrG`J7s|zRt8YZlzV)YU+8vS?JLD$`xYNqyav|Ar{;PO za^+-8-;;a?(T53l`y`aWKndRHWqc8pApVc1?mQ@w-~Yc04DhEk@ZV{6@WjnWDa32< zdX9Vs?&2_Ln5S}i(}pNgQx~~-GaRRV+1F~(r;qw?#6PXe4h^nVvrXc z=bc`wXU6VoZ(F;(-Q>Gqjc(UaH9pu!^G#;=^_NZ4?27RIM_xF{M_mRo!_Y79@fkh| ztO5s-rT5v37QLe}yBdqDYNKQ_U!~Nc>YpqQTI-rUxo0%B^6Pps?atIBkLaJ`pI|1fyO%KPXte(kreO zu4(i>L?Upi5J4zwejG;{UFomE@nx$5_U-lbt^**vQO4?uusOeb3amI4Bkf~mr4n%n zKddj3feM#{x6`y;FVzs=Gm-zl$a~9xsQN8@bQBSk5)qI_QMywam5@e4y33(!h6Vuz zl$LJk?rxB-p}V`gYq)#xea|`fob$i;+|PG^nb%=vzkB94`?sF;thJu!LHJSpk09=O zui_oY-{%QZ+_A%xXtr4*GluF=TbU9mG~6$#nm?(LtmyocXm|I^8&i8TqwpO zk_zPtcuK%Y{u>nk6^@(^H>LM?iHkM=5;0;Pe80q+EtL-CtcOL+R7b`ep0vN%4X z)hdU%5hbcGSh_#TTNR*2fjnvjX2l2VtjdB{5U$|6hzd5?uZ(Ez4mKBqnNsg5E z2P?{srrwfr<<`I5b8X`lo3#l(!;WvbHesk=7a?(5RxE5tyk$C;lB2fNTs*X75YQHc zpH_I;p7u;ZTBqETDr$CC@he$LxV5_r>OaVe9o4SCyg3Y!xiPzN@5k6J(b%B46_0|l*ar(0%8vqPH*xxLkOHoar_}| z{}Q+L%Jswsyr$sZz>A{P!o$N66dRl9C_)zYX5l;VEVD?0+a(xy(-(r*n#_xQg2=#= z06_Wi|K#t4Xp#gO)!jOD@1?~7YrNdS_`Il~(|uBunFE|C2@`9t7|VuUSyuq}2Q$Yh z|7ldY*@Z$K{E~=KWcGS%@-Rbt6tF#7kO!`6hSj}v4Un;|JBSi+E>+E$K0GxZHLYt1 zb_X#1NA=+%w-8D3Caob+uw=VaKrt@xmW5p07C?!#n*muq&2X^~o-2KOwg;D?`$Vt2 zOq|6)+k6cw?S8 z=(v_<86^S8F?V`mcZNR%l}v36Wz0;UPrKjV0K-A7d+C46f^OZ(g4S3%C@743G!L5M z&b_X_lLZz0TNad5zGh~MHr&+&5C9!atz#UC?5}GfnX}xm2Br-wWx1R-;6?Nd<(kXq z!1@pr>ojK&5h`lAm0^->9wA|mY1r;Wc>p`aVbh(8n<1T_Wy{~Dfl}F->YxQth?3y8 z7@yf>y4_np0~EWtA`ZB~=)9h`0$>?P;a@1?E$NJq^b}h*H>{LKvj29KKTvdqSqVu{ z>MgnnvY;Dqo!fuh@UQxtcDE`Kcou7UL=NPd^8molP;OjRZ8?uZI+tK zVqUQjyQ?A574)xIu$UO;wtB_>Y|krno!S2IwmU#S5ptzwidsP#jr@|d@+IFW=SYTPO`65O4UZhFQP>JB<<$wE&buoKUNf+ z)T3?>0mKe_!axxc9psyz4e{Jm+OWtQMrZNYewtf9T%AklqJYI8}%#DMcG?=7_J- z6=3yk8a%hi0IQiceOmD``WGVqcV9lI`<8PI_Tc$)t62W(m!s0n)n+Q#o)Ds-@D_E^ zN^()=FKLnO##^OyJ^DcieBFqSPeS*SM_PC#fNOIIPgqB*y|#ai`vCqU~2;A7aOEI zofjxZOwOel`~(zJfSb|HRhdz5jJVU?`40R3v}ZR9eMNrsn~@kdkMIyDv>GZrHQ!z> z{9r1B%!e*U?3-E&k!TQj>)K0=JXvjL)*bK;{`OilXhk}!`o4-tC8A;bw7dwzjI2N- z53cDv*7ed{Apf;!E?>E8>U7ajNXwqhB1v;OT7~#U41Iystp1en;kE_p=!EGnp#HHz zU$xS#GUV{bk`4-pux!(Ixuy7G9O`3#;w~S3yxYE@W9~D0!Ljzze4GsanHbSi&8H(r z4E?^JP9iT>lNK~QBbVD&%or&)=&fYVI1^jlHC)+hvZ!Q2v@2hCrX3ksKNn*Th(f}x zc(=3$`B>k`0ZI}1PFb^E&t_wQmTLEaow0OUG~s9VnVj3{izM$yLO>qKg45j3%{COu z+&#^B_aHeR-3H{rd#L3lw&1lQHMc6SVxXozexFE$mS#)ouF=^zv1=r0W>*7R9+~wD zB~Jk~ud%hW(`!PAke))6Dc=}?zYr|Q+(5cb;kKAlbigrAYROWCu)D{yX zp%AFESWcF5O|Qy+Qo$$bvLA8XgzjW$nf1#B5xhXDq6yGUZMHq9y-;o#@M1}`fAtM zkt-6j`Y^3yNSylpJ2$w561tg`L%_ipe^iw5^7I2gaND~Nld!`n`C>ucn)CYnX|J@+ z>AFwmruI2{lHZ|WoI&GMbHKF37lVZ;>@jWkI?0gR4}Au=$FjG}tM`KhE;Gr(I*fWy zRhbt%LMWO6wXo-;&!0bkh^QitjE&*PiV_lA&@ho%5ZL*_i@mpMYA5n9b+g>YjZz+} zclqSaz5iuesb%5pF7R_qr`yWWOfxy(2_v$d>o|yDIXcS6J@*jL5>0>W_n~kXcra{a zyhv|KHCpe&@tRds+x_@_V99a&c?f=Ju%+T4l%i{ujIDlJNn1ceTYE2%KqKhzaQ%|K zy^{^lCyk7iWY_G%B0obE0Tz5noj#ufBX=@U%dT8s6#xxQGqNeJk+mPK1ZMHlc=qc% zJ0$Q`6_e%75AOM(#WFdXIBs-kG zovy2iRjoLxvVG`l@!T#H^+;t*JKd(DZFFSV2T7$Xe2B!fRyMfQnkw1w6ve)yH&j^f zXJ3k-s7Nicn38n#of z;|t#D=?`~MQ3U3Ro#JY}ngWP+zQxzH3sH|D#@BW!ifvY@B)#~y6`~D1wC1-X9JnLC zOcQQ#0SpIFc467_!Vcm)^p)()146zB*_rCR(=vX(nA-yI00;(3A7k??YmWu{OM~!cwO0t_Al>bz8?x` z{T{YL8Z=Xe3hL62n68x&qB)A7j%jtE@U~Df+aC)!gx1g2F>(anxvGNnaz$FA$FxR} z8(4jW9(=Lp-Mc=z`I0UT6oW}3c{n|>KLU*fWa_0K{P1S7LJo+fxc~ax`9RyOXRc|R zBRE*!}e-FVZSBEQhD96H&V{<4z;hS%Z4X(qIds@*Fm&lSZL ztQfp~Y7|E+Wi$fKR!)y-nNvqspQU|ROE2diD`kY=^pu{x;i`51qjDQiKyj(b6u#A4GUfAhn9u?n84EhQW@ z8FHMe2GSXm%!nAyFu-{N$X0By{rA5~Cs=-3G1)jI8l|nAi1JJC>zI9|6}08$KC zMfe=O)bEr1c1qN0))DlI@7*B*)7n86e!_OvBwsd`fFk`&c3sBwB0F@siT7k4y8_sn zl~6?;5-wJiy(s%;Z^x$Ak8`FQtz>6YIK8tHZ9*aZ*VcSIrtG!uUZ3$ps>G{EmCS*B zm=J=;++oUT#QQh^Igw9plukg zEM}i@CsQ)n0z`JG27G&#FM*Yj)Gu%%^3#+IHz{+zRl-+f&ZGuDt4re5&8=|{80drN zJMz7rJ5_djdlg7Fb}(M5$u)JkckFA`@+`)Gi)A?52x7fv&qulBWM?l%NKRrhHBf(a>bqu4gK7zD1+cIYoPT@ zOcP`6=tMC@uR`rn&1v%WHSI`>7{vw2G(p4(Uf!EZDhFvXQYG01hJ5tc6?_a(aFN}; zM`*%PSegx^w_HS}{=VlMeTxnAiKK__hq6)pi=jV8&zHBITH2_5rTmFP%HlMG00AGe zD!i*IWI@Kz14rD_FdcG99W`!<1QovG=4GJ`zdKNSw>qjv&c0qY>8+Uf!&Xg+I31+c z;;QWwFiS#Q)9ltiJl9i6;#iR2^+rbeJ^B#Q!myaCg+AIwyuq7^YdT%@u6*x@`pfX! z3$-2GeI4!c0bkteRzp^Ix1@^7ws6;aGZvFp1}?{fHhQIrA2>W<lWTfYkog^+>UD{+AvGW#BPQXk;L&uTijH|md_ zhkq7IAJ#MQl-9DeMq%V%iB@VRLV7xq#^)nv4Vc2;Qh;>cQ4;zx|GO>2AB!$glfRp_ z*!gSsf1_2eC;J_DPz0?bIt5 zq5Kjzf$JZI4unU{F^UE&{zEk20q6)eh$+?iS_T?d$ZX^N`S9lhd0>*4d<<1o_^aS9 z6^`I8Tl=3Fj96-fIh74QU~Bb+VUv3SZzl_f@5OxrfGoOu!@fRi13Ef-W@>5+!-B@r z-*7;ORa&hZl^o5~E#nhY!(ldz_tquyK4|F-u#ni~-;2xf;kB;{6ROsEfTRLcRzM~F z2*YsQfKlCd=vK+H{-Ao+X$b?P;Uq#5`OCJ7pRebF zZv0K8_IiW)^t^n#D4?cH6T`puHz3JJp~RVC50wVBH2`8e1Vnf9@7R)90OY%ZziC)r!lz> zM3Ot15RKYKV6+#Zz&rP=Cs2Sbl`KAC%bF2bEy=@^4>!>!V{L-m5{_U|UVFe=;4|Zh z&g2n~=xhl(P|`2}TI4!VWcd!h-u1=x`v?FKU*Yg`9~dwqBija4qDL8lzzFX0lQN{k z9$Sh709z#XShFWeJjeHY2}Q8puP~A(U+O>LEf|ab`A5YT6oD_(1cZcLZ=SQ5q7)KO z0_~nLoFl^(Iic2!u)ko>_iVzE3VT|oN86K`(4E}JgTP1D*^J|Jw9!x~Hv%*3-5Cie z7&e@2jgaP#h97OZ@Hxr_xb`{OpnsxxkG=VoWxMIm#JbGMZ< zBZuvuCh`ceM9f1iuAeZn_46(VP1ewDPPc?JC~{xxzF!nM?rPIgeCzXFP%CX`c$Q4-<(k-+tl1X-9tjf0~TgFEs&U7ul;a| z5nU9$6KtB5(FAWS7hF`3A2{k@FXiEqoyrLEs=Z-HI!mdv68sTF_T;e3`1)7i0MF+V zyzN3j9q7YQ%yWz!o1_u-&}f`pt4Ij-<7Wk`ntYBbK79dG;JHdzeC;}YFTSz6PapTK zy3o>^-Fcy{1zLjG{J0U*ra@8=o6hyLZhUQ2Lr(o=`f&-qR)1gm_AAhvYaw9)q^FJ; zqQmz1W3lYTgoJXkmsn;)sGA#7qe^Si8lfyS+qa8ci8}#J?Kjkn(?QA05hixK3Jux< zOVo23J3Z?F*hBEveT4FeJ{P2ww@wxMtP)y6#A1@E8 zk?_@vDM5?-vrmb~nkH99B=KXj66<~eNtp7bCG;Wa%^=c~i^m_PA<@`bH0uIK%`S>J zYezRZHBvhyG8DhvyZFcxuG4`<0e%u8tZ9TPDUVThrB$zdA2xfi{?HK%_mi9B&-rS<9^G{Q}v+Gq{>N_BHhr37D=)Y4!VnSkk;u}oo>sfJQGyRAQpIx$)3b?gn&Vw@oJ}l=x zsKrQl{qa_u)9#d7oa+qH8!F4wAC)e^9n!^$wlC$~QiCOsW4U612U2P8G3AN8^!A^a zQ2qAqMeCBa`CR=B>_kdhx~khBp%`CPr3$bsm6CG^=fOfu#T~FU;fitDG9y~s<@Cej zgC*>d-s6oz@Hwe{It65KKh^_|-!^RQ`P^vYpwal^9>~6)Evnr4myyBtj|zHc@^>Z& z6@G65jxsm)k`&8O;`Jv!d)}X@@Wb?ZI<+$rF6<@PoTsa4HOjnI_SGAg;~uVk4W2ns zjZQ&0M(OxXRl7B3v?1$gq#@B-98=FQjb26P8&M)(E6l;E3|sRGt?v&dz!u>1cM)5B z@O1C@3{WD$%zL1m?g#i0tn?^%%mPP_gtOW^nHuQ#cri26qJUZXaPPRz_|r!&;H+9> z<$7}y@zTJYW8Wd~de+_R^=m89ia1gCVLMLn!%#-%rEBssQ_9mwBPg`(VqNGKGp%g0 z%3P`l8B@@;W^ghd7P3-UB;#!UYksz0)c6p)W~R=Dk{^b(Mu7AAAZX6OVLE2O2WkyS zV?LXOO0pSwRB^7x*+PbOPopdIMYBxoErwJUmpQX73f$v!N+C=B6D`E4oPj54P*3n> zlgdIapb8Sy>95jNNPHK~M~kz?rnkL4?Tx@)_}fD+_9{(nM?P%j-Y*iR9*OOr<8MDG zk#O#DT8JWQ?3f~ApT>M6UEZ#0->{XVAP?H|*eGOm?Es`vfY@iMmSu7l1EXj9+y*;H zC~tqdg11x@CxU^7YQ*5b)vF6ORmz%a&^|15NK1PWaDuGW43;2kE2rUee9K$bYDd)t=&`7>5a6oR4hZ!$32JpRlj2F}pm zVNJ^?9C@HZmkp9nt2s!Lf375+#vXO1I9{B`?7~ai`$@Ova3RRJCW^t(>gxSIkE31U zYV2WfW`kKs^nIE40`goq)IpWWc_H6epAy5MTDMrUP~$Slgz<9LV8VxZqsyP|?hZ*| z4{*r$$2i(|A~jy6?y+UlsZ*ex-P64s*grF6WQi9AQNMEoz0~$V^{N2>`n4Wk|F65m z?zTChklV6T?87fLM3#4RT_DgFpr41pNuc0h_$KU|_sZV_%^K;cfKZtH46duF%V8%K z^fBm5Yf2w#?z2mOAr@v=fat1cDDOk%DHMJ?@InI-qk!!Yc+h!`D3wk#tl#MXfI!dw zo-z3K>u!Jnh=`tdB~IY~`S{0Qu#Or)K6h8~FE8qnWY){f6Mp>~`kAQM_Ku$dv917m zgQ=apLou~eYxi%RSCc(CoogLcKCrg(tH=sf_BgnzB zE{Q-KF)Uz8r1kS@vJ9y}#v-rq9uMA08PXS}pA|Y^r@pTUrL2mMt_K-h8B}!d_zy)q z?ujJiAC8F99$Yn3R-mZvslEO|ZEX`21m&?8eO&;kB(i>A?DD;T70*m>^XpTXz*1)J&TK{-jrJhk_o*^$uE-YKv7qKoKN(vAqM;7KEI;_~e}q(rum8bUB;dj$ zBXz!lmoeC3V2j>iUVmEo-P^^V;aPR z?Mp@_VgTK)Qp}4b`Uc}j1|z@d;fKOLU+mYHb9RIZ-@W&bzdqv+)kt@8G*?|~uP-qx zEu*N)g$F0M&RQCOM4Jv`8?0}I>P^I4&yH}Fn;-z4RVn5rc<02#j3m4!(=0M(n8_Ax z#pSn}+{nem6$d z-yt1Z&&RkGXt7nGtRdC&R+2Q=#X$xUt=p}k-%oIkdaDO?XR0}JGuZ^odYTMGggIQc zBD_;zoJP9Le!pGn*(|T)W-=P4-P-g5Xp@jYV-0nDAPJZC{X-Jd_i&gq1Hm>T^+JXwd#KL$(vt4Ae$F+doy*-!@E~p?AKKp; zHWIXAA2(UkZ?zHx<#EQ2j`8W#45d8y&62@~?R z%V%h@t~^`4$Bylm0?iW{-g8n9`D}<4`p;vVAD4|o%xHWck;aW^@$OZs4dbIm`EUHF z+5Tm6GY|Ch9<`mUT76)EyO{8RreE*!J^wgo&W3)!S#5{wWe4~Hbum*v*4K>>GA00) zhZbjcd^bSSU4LLmc=1%Q06tJSjbEI~(ITbVN|Ix#Sb1Ap{ZMbWPB^9*3MoC!eDV6% zb7kdNHj+d|sngjvhc<%Dg1abRlvd6N29nJy@;^_v5g8d9Pq)?Iz7phdk*qKhIL0%H zReKt+LCe2bdQ%XEAs8oaz+E|Y5+Kf2;^F_p?5Y}RO3e(EqL}u=*d_xbH7uel`nbng zO8m^5lP80y!@|nt%@XmN6}vS?t@I6UIoMd@+3&6k$1~beYbjUmt9H^lGk7E+b%z(`UflyZDy8u=yufIP?jamk!9Pe? zWLg2k%Oi%(r=`$vd@Fwi&wVuN=B%;tFyK#D)LL!R+Q@zM@|7fA`Rn4>wF^4sAmQrV z#5IV`hU?cOf-o?sQgZrRlP_yo(1XkG`_c37okYddM#T!X{dL-{ZD+z`_7hk2zxUjH z&{_%;;3H0dvC6cy3*8k<4)txU#E#;eN@eWYRxApKy<81Hyuq9fjXR^TA{#2;*qxT& z^HFvG`kCm9OSV%BgFW-k^59^w#YGw>LEAG)dgc|B!B0a2Ep;!RkNCf% z)NSG*B{~v){9=s7a0MA%t=w^K%}7#1MUS%iUE*3jcB;r!n;v&Q11OitKy>+SZI12i z*j|!v6sGbDnDm6;5LDr<`hBC?ges7GXzGH(I%$^Eisj-k{UJN-}Tt zMu_sS5YBKMySX`%1C^RAHuNKrgj^gNB0#kagIU%VQ#@F){aJZD-+hn{fU#+w9Xf3z zT-bq-T&COnkd-1LLu=-H7}%KnNfD(3%?_X|1KRR=#7qwbfqq5Z70Xq;q#~N-fvNr< z2;F0#b>(gNsT|-+sRGzt{W}c!Pppvn|B@pmx*UFw2QKaa@gbiFYopzyS38|#lZ2L= zP3W})`@M5|dit}+-=+`#B{|^r#QrO{3Jndtu4H;S9kloxk!)h+A};DnjYz%@us!^B zbshdfZx2$7{uNyTPq85K6B48^*Aw-wH6%xJ=^n|AL05lHgE(8G1R$HBr{jrjXlMxF zsa*{|Qf)hCPu4rtInaDebhPSdq2gZzm(V*fc;n|k@z_7GQq))oh1j-=+wzO&*viV% z-z6k!lK>dB24ETT+rQ8Rmqms`Kw@_tJy{RDZpOL2$dintV8V||`Iv7{OW|??jcMIj z0s0g~>_+}F@!og72NdZ_6D%23+-&Hy#1mADh*h8ir*Ohr!Umot)@7ox!B}~#iY1hs z_bX2oCpz!bA+T@G$->s~aGzE`8dELZ4HqvGhhpbpaa@|sf*nWwX(T%kVvgaNb*z(!wBB#N63|ixzRm{e70Z~ zdd;VhZY{6H*Af_XwdHg)^Ap?tQbPhy%m%I-e~d)Cv^HJrmpc_@2z9-EE)^}Rr!Hod z*tB#!N^~ZnUQ91(wxsoCp8Fo?lf0WJ_Iva4KHqyBFi6h2K6aqhn{-&I)6eq@w{NjA z+s__-iJYSuERRQt}X>f{Y-zcfCb$iS=VTl!&Em;9N$+NPVA`Rr(OS(}Z? zVMwncX&DLh69`_B?DS&5XE~VxK8q+uSZ=`ZRBr$*=p23|0k0(+{Qf~DARLFV%(f@A zop6dJgW&pzb))rrAkPeBk~L9{@;*CEZfM0dFnVpfMLG`}Ig)x@fW4P3Zh=$lOVf^h zo;&Zd#zwibUFQ4GuOl*hpEIC!8^<-HslJT%NOSMIzsGu^#S9|ZtmhmBTjpstlz!rk zZ)>Q@AzwpT?J18iXn3;g1m$ZM9oZ@K@N|AZxxRgiNLODp;G?aHZTWxa9@pm~9@)=R zk2%1i-B(?mwx~jrP$H~OTlieA^Ii9}N}9n#=N))Q#+*p+&V@5N(FsOU8o#Vj~~CT_faUG+ArNs~FX{LuHe7ZgsA zkvFI>pcAn8ch&{!NZSNh42}NQ18dDkJ3XI;V})A2$+Z}vmr@%Ozlg*_dQIk7!V;4W^{v9A2)nzr|k@gNj#O#=y5_FM zjmBaZ`FJ>%>{G~kwi3Ix^CrK3 z%4{h-@6})ee*dN*M`^RKyAW_^%)6X*rdQih5 z6Qh>4U?bS1;Q-wv;Y4WKfmRxS`7MflUCH3+>kQ@8>`9!DGg65RL(K2<5781IJvrYJ zg&5{&+k}MG_pOKL{h%L5X{m(04os3Y>4d^Tpk^$gWx6N2(~iu^^udJN=-*qjmlp=^aHQQ@E=khr$oT;}NfwL>INC`zTM^*?s)^T8{Q%)tbmj6fyl zpYbd))(ymZeWW|wq-It=$G(7fRb=0g>^mzm*xK;!K{u^udk9pDa*EtaDy<9!!d%r) z7qox2L8h=@8PH<4c?ox0oiT>>Vamix`7Lusui2fk7Mx#y`Ubc((j|JJQuMis=JFfv zkeK8JZpw*ribYTIs*MckunNTK3Z07U1Gzp%xzD zPbLg^CBMvVYyBp1MWqXH{bG!T9ERF=^3P~G6K zUtNcPqlDT?4{D<>E8t8yhZjo#sNEp9{yPx42dY$;LlC0C@#FqqB#@lk-{|8lg2h1` z$amr^z<)eLsQDreIXU~*9Dc!zWgK2)P~+l(iEQpOt(`}}`Ieo^)-@_z*iuN;7;)Vuz{HXsAY2c2Urw>mf%AU z_jO6io2#sO-SbM;!f#yKAQt@bbf9Mli8`QTpV|2!6;sT(^yu80q~iTJxTSA$#dNkU zAm+QFD6tWfR=laKn8coFC1aPC9^M6_djiPIgk^wAh=!K zaM*M)+u$kgxdz+qa_d1OVve8GbDuwIzkH(Of71Glv->3^W`j4kWO6HiP0HlFSI9~ySGK5-0SWvF zd~Wt@!Oc{KZMT>|o7Ka&WKiqMv0Xh?fT=49jScc+`~t;Pde%E}M0ac^lsDDJa!2MH zBH!lJW6O4a1-TiV^qO^xdm+!2g645l%i+>Qtf&|5EVX*6VRedAl<027Zx{*^f-kcm zK&f#M2>|XJ)s)l-2lJw_b`-0zR@lqR#>~&1vq`hqXdZqS`dyBvKKoHEJGdO2p*gnA z)mo1CS`S$%=#6t-vT*Y6HlEju_sL-Eqj|a_H)dY-EMTKgB}TVKZW5=>b&t)773Pvz zp91tVCuPMJDpz5Vk`h6PmqCP>-T9|3$b?FTGTe|lZzjuJpT&3w;KnV$ZwNcWfYH7V zZDzgoua~jOCS{?mmLJStzc!%=&>v~7F;QHcMsuG}$YtCWW9d3QL$HT%*X)nV(=g6y zdX5@@B2*pjT?}x_R3YQbDYd5rk30RnXm?na08*NMznBex#{JP1$~>l?sNCJ`e3Zeg zwhPH^?FH1OZ2W#r4_-1-FB@~0nw1=_DVMe9l6~rN5dgA@V5J10Jqv5)VOC1rpbUOR z66Xw@otbaDdO2*c9wqMf{Uq=Zj_ekb96nIZ|jm)v{%w#kbzPzelZlhS# z%(jLLklO9dl_nQGye|QY$Ok}DMVc{w&*maGn`^;4!qEw#s^0)-GB}!@7D@2{i8Q_8 zp<%a_Rb^AiF^m!^`xF?EYuZM)#Y73J7&rUo81{)fkteqvz|9-DBqb#=*0Azn(jf=4 z9-<-(WP!fgZxm&T7&z45Q;nQKpr?mV{hzaj_%>POg>y=}R$PS4=85tKjC{%i2)Sn> zU#>n%72mpYq%39CVOeZ3)-bGUwyXWFFH-uN*V4T z6aZ90^d3n~|6PvD>cMIE5KXwo8@x-by$IMTM`|@fKJrfRWO7@4XhN*q>dgmodJ z!R=6(e`&Wj#nWygltH*wcQGTLasAc3=`6E`EYEzcI+ONPz{+vFNHLO0d-QZ?YG?R& zL^b>en`NBux3wLe;;85fa8w|7B<|OHUursrhr`~zDCqn3FNy3>kME0kD>a6c5F7Qx z>0hL44c^C>hU6Il)8eoKa+7ex&`wYSnCCBLEf1dK@dDeq)Gjli@n=ynu!!Yl0)Z37 z5rri3qthou$_wzYm}eAK0|}K}&)*rl2z(ZZ8r1&965oIdH9Af!2f@+hB~XUV8#f@2 zHFSEHvLGSB4thp5w6RRcFu*KfiX{)E_V(m`O{k$XMNpn%;iB(3IVECw0WMxYfO@mT zNKR3iSiIY#-u_1-!>O8v@)P-#G&b+FBEzTOBf-vh; zp+KH(uxnDR(g!#*wTS`HWda=kV@2XWsfhnlwxInFK;C;9} z_O2o8pKH$o0*xkQWzhh|O#5q~m&nAzV$>UhD1y}AVYShXw+uRM+s6+@2Vly{pHhnr zG6nTt<(&T(t^cQx{{NE~g=^G6&3A$OYIA32!~+RM@#9Bbe8Wwbh13M@!a12dlCx>s zAQAwdsJO0jDYciN>?o$^C>Kn!fB})}-CLBkdmy>(Yxjo#WRS=KEpNo}4DTN>31B&a ze~;UA0cKk&et$2K$R8AUUmZvV_V)`BOw~?iPEL0;0;d6}r!fM@|9n%q!DJ1%H?M(V zx;jTM?7LI_k3ZBx8NPu-dsQDjMEf~NN4h#`NE$bLz0x2e(%Qy?0IdbFtAl`(?t>u}Z@aknyAtB>U-)$BS72L<|_DXP^+osLE0Oxjz3_%3) z8av+Ms9aU;p)pD(gNMj*ZD&|i@rF>=z1^t-c$UmgVWuQ?b##?=CQ zvb{=JjlGc0fOImct1Pmfv9XPs%CmCnNs3=zWboRA2|pM+5?uSqBL!}KZA`@5K=a&A zoI69O^FxH|>%g(?BbvI!>$5OTfNKAF)e9xgI=WusQpJ|7ds%lF#@07ep~_^nOVf^D z2~~yBRiT4^bQ=pC5!}32kIl|$$fr}*BfOnky4-4j6O{>^ob49#{!yu9sBv$oS8$XP zJR~ZOWc++s)ga4|WYzsFo!!uzD`99E%bdK)VJ*rn6Q|Qq7Mbw$hym?!?pkiT{;3Wl zgfCk^yl(bXfhzTF#z{hN8X58^S_DsRat7me>5;RN<96^EP`lh8jEV~ua)U%#CV+{fez`PN2$;@1fe#tr=+J(_6F}?1y=%|Ucg;GT211<$6wT7 z_t7hS?h(5uKjo8yW|V6xI3?S!C;3~Gyy2IddW-itZI`}cGSr(TaYu_UU{dlfv^mFI zPa;*%#nvb|4^WkEZBn&a~UTEnb$mdPNtDzl?wpZM!wZ*pehJJ-9L&rz^ znH8?BFETh1DDuerqxD-A9)}sd+0rgNnnAwN8ujT+UC$dX61y>UTZ>3{_n9|lOtbCS zo~j-@3D4NB9rjy`Xn)01h~Dw0zOe|Y@$sWmTx{Z9;hB`6O|nTf1)d!CB@}p)GzSL< z6m}T)Z((4%f!TKBe+vSHq@<(D4VOy1R6*B) zmX(Gq1oRdx)Sb;L08ZQLi+Di2!4YBgV{2Q&X*Mo&=L-MWLmn9<^rr(O7d70+W(Tu+vz+4!iju0a)9@c#9^uRG4Q^LcbCcZNwwu~AOgzuuMgw(p z;P`KS9RFw3qyw~T>_F)S|LzNk`_l<{cS8lcA25!Dg=M~S&D@Zm&iAC3&sPtqu2kU$ zQnk_6Gg@m>^Y>89Vj_9<#XfI>?Zlv@^5q+@C5`r4NdzGV*xDn)@rCkeen=H}FL$#} z&M?no^Bqu%oQ__j}u4Ke9EWiea9F#Lh4C?WA8_RDxtV@LPU^d0-$ zamJBFj1A#exo>STXHKA`Hl`=};k^EtGuMXlbMZHO;d+<#`MOPw@0FD!NxEf)?iK(f zhYpM$C~<+6la-YAuIIHo`+FyG6aBNQ!OF$=)aG_Mr0(US3O>O`|1kZBzMv)!6^&0Y z+Uc|0l2;C3n-l0oPhS{&Blu-XVlwPQBjzqup_`+DB7o?P-E?Nkl7Y5@XCEB{*^iPq zo$EbpPuEbm9?8@!!OGau$lTgKSP6co{~2}|Og{$nK?Qxb8|D@;jxUewxokRF+^u6v z+%n8ScRXY5h8MfRpN8+4{EWMbyOB>zKcW(B?!h9Jw3;N^vuUt}pRraZF53gu2_zy+r|YfN$laj zhJ))Z6`*V+N)X5}L%_OQu_j3#KjFTzU!wi4oTAUR2w8xg)7hY^JrAMec3)h(P|8hQ z6`12>PhG3wxdlNmx7^Sd^wYcrj{SHhnRzxFWQM_$H)~dH6K$!tvGWpEf?DEVs@$%o zA+;B)S}T+G`_;yRdjNO3)^8$-l{u(_&SbTO{A~3RajLs^yeaRVy(N3{Bl`)pYiE7K zmB)O`6o365k(c@3+7sbm@XMRA9(>i#Bl)iA%!MK7L_NSvZMtU_V@6sc#joWxgKoju z(o(8feL7-)6_92_6zprty2`GCl&5s&bc{~FNn>H^qb*A|=9u9@d_wWCe&c%!&T{VA zYoE)uPbcG_g{QaQ$Z>uo;Sa5h?9}I2)3u1diTi0IA}UsPt!_+s1S^ZNkaw@b_z)!@ zIoc%DTn}`%b}q$f=kPq$ZXBNfVd?a{ul4}eRHHaiptxVXc2>J*)FeO=@$`+#JgK7b ztZ6RaUHGPcg5yg)ChTJ_6-5;Z73UdRM^nC(o|4i!^_ru$_J*9POn`+Gzf0V#;iEsM zpDm>nZSHbXjeqFUb)q39mI6=#0gi9Ik8TzW-n(gy{GjAnKlbLWhZyc0GAhCI!-#%8 zQZ}l4_#LLQGj9}0{}~xZB-z4G&3U&$$dRYB0Jd){vtf=g0-FIwR*BX2lvg6Y_7KW0 z_Ac6H!hkpx#ZQefPxs{23yqrCeP=>|>V&hr1l9D`z~s6B0ppwoiNm2_s)sPYWVI7V zdHQaPH5Nq}u3ze){0ldE2a=GTABqq#b$9OK!q(}-(Lte|<_p>*oO8`7{x zdUzMRL61|le3H}W-ZCjU%?ZCTHu}1uuE!ilPcoj7E*$Nxx_bIvCo;Opvhjk1D8Cnz zern`R2>m^)8i7KB$0svGKicl6(X5t5oEGIPKU`oUVvgSCPTOl|Kw>#LNx#K()_!_4 zbU|Xq)9p3Ji?^Yypcd#1ad>yNUGLc*1Hb47#DoW%&sfVEeoP-iW>q{(_vp@ko&S6A{Qs0gL3={$cY0&F z$^f@J-m<`pczVWkmtVelHCN#)_2=ON=ymG|4LlhY~7DQ?NLMkK8D z;f6Ta`I)(iiA0iI2Z`Xn_8b6vz1+38jIcb<2Vv{^dXNe*N{NU^0;}JhU&ix9c?Tuy z>|vcDHv+?q!1F=}EH}>|IMr#pTXw4~U0;Q+)JM7D0&2=CfIAxSci?RQg$V~(Z-9h- zOutufy1h}PKn)FbKHK!d5-3!N>cek17eR3UG*U7$HvENp*L(N{r-+%A(V{-rU0d`c zbkHbZqI-Ale`#|3KL^ME;YC|=*Z53X%U5%<=o}5_ZnHGj=WW`j*z*7)m0WYjKi>lKws`V&wHRm@Y5qEk%6A0^ zupZM%rz)Dp^~tw|M9l0TFe!#opP?G@N1a?>q~|tE-74}|=X!_TATLix;=UoZOoY0X z@8C^Fx|4dimcM@b-m^VnWg2HH>c%ZMKXSX8>E^d;bEF#_zTL>3n%nS&NiaX7OM5sZ z()KHbXy685q*~rw5w2k_+)gTx9@2QIO-^V@GfsM|E=+C$JkI%6S($PM?+fnYHGU+Jt}OcxI1p) zd+;>CdX$7cHx)W|5sb*9?#_8|8d2gPDu5w@SQ^rDSdNJh^bIc9n7&X zXCYK#5nIbQA?NdQET=-w%xRXwFs#fW$C1NghRh7J?Y^epec!*+_3y67wQHa2v+MJI zz2DFG>!ZpHEW;Ow7_j_J@i%R6^!gWBuzw`z<+iFI!#(mLewYGu&+2Gi@JywParg;` zK~>JSfZxc6iQqwZ8{j&^IxD@faLC;(^LPS$qk6mBy5${dXI|s%o&&1B^C&lW5DyIK zF$d-`<;KX#tD}3*9D>Wl5I9}?;_|4g_sX|{5f(N zE`~{wEE%-&uz94*MU?FF14d)pgMATAaT3kTc4w;n6qzz>VGn>!ZSUlfZ>CV%bMg%j zPhxdHP84PPr{0x&?aV0I9&Yn$3Ru)^s+kuX1vM@IL%Ixi{MoNcefKuia%1AKzpF!O z#rktTg_+pwjtvRdTIN3tG=`UW+am&dWi62`TIkijBc^W`0uO0 za0#hZeu4K9Nfx#C<{R`gSwV3|<){wq@K?e`zshkzUGS(AVZqY?>w5Bhds+*s|H}KE ztUFkIG(hwp%eOH`g_qB-tWR7HbZ=lL_ZC)siId<|*#q0K{?Gfd2aPF~NEJvesjo}F zb#(viCLm)KL209yLk#X#d=hxzy0G5wDq_d>%oPfMnPO>SG-7<^sP0f(c}w#C)V87y z^~IRGIo8Z15;51`w`->FqMs8{f^|;hl(MZjcFpi)Z^MOY=$5S5NV>`q$dGawjppv_ zN^{d;H!t*5X(Y7&nq%VWi>k<~Xa>}3rKE`-qhG8a2yFpp%8$sOfa|@`E{r^?B&jh||DIqX7bFrCbt zJL=}8hKz3u-Xp>^Cb+K}8|=(6bq~s_NQd_^$3mb2!B;2xJY6%;Hgxqqehiz}57-LR z{Am|Tc!9ifII=};Cusf+xK7X3SkTuaRk?jB-z%HwP0AWlgKlVDQpD`2$ew4gTNxRusts zL=dlmp#EF7_SSaYE^3!8uAL$TCr3AEy===$A8)dj2w6qyG8zaYnw|4Ww{*Y#Yl+ZI z&&-?+c5L4ym6HJXGC+=IZl@7NI4x$oG@aJOe`vb!0)B3G;UPKdB9PHG^PH4RNHjo( zNS&&@#3!u+Y<*>XZksFmc&sLi`J{WiFZbS)T9-A*=`*iFHcS5Jth+Ied;qc!&;3;Gc| z+s4!?5}($d8B#wM{d9Bs74`VR>5u41?#kwUq&0$$7cz8o;*&P#-Yvkt1;jY&PXmka z^IFdjt@~-mMR=Zb6J3-Otr4HOcjQep4--aw2mYRSe@P^{8lFD^v|;Vmv}1aJZUgR* zJ=n7@(i;Dar-J=|i_`=C0KMXK?(EshYZ>87OCcg&3U}_cz#8SRdEG{OL#8KnTSve;Q5*7$2QX*=T#lo&Hp8wj{#0lGUr^+Yt_ zP<-DzZ;_hcJvx}3&QsA}X4l}1Q|U$TenV7OKY&=pcu_q&*YtHUHIkQna81o?f{+)} zDbDFd>viLKg?L*9`)$b1RLw{c^ju;|sWeXOtec!>w^WZ-Yu3IZYP}{uOv1gT>r^Gv z)Isc7Gm>y2l;3CP5GnZ>&6CqnTJKa6s!@%CyQEzt(oTT{rT** zf$)uY>uUFNzb(1k{bmzpykX=q&N3+IjQqsT4Cg$DP5Os@TwLfmD)Z0;>I^_wE?$|p zT?Z~eP@~tELKxLr6H`V&A39H(LheUoh-qB#9Nvm>XoO?4L#TM{YidY`qIzJ573K(>9ReM*5_${pi!?OW`y8DS zXOMs)bw= z{po3W{TV82qwS2#*&Od~Q*+VT*MnO3c_rP74{IlZsD0_E(qvVUDYYHejmWNZB3WN+ zG*Z-brqu!o@{isFs_tXmjNxhTcXkQi?wGkQeLCpsp|*abvg>8Jd#FoE@KP6!z%Vgu zYNkE3;E(-Kin;bthquo%2H)`a;-lqf9m<0+?+f=Ve%`zczY9kT)&|5;sGHCFz6Y?@ zCU5~--$-9r!D}cSwcgg<`4qh4MVi30Z{71(vHElE^2@`V28tAhX>x4y>8(c@X46zZ ztiw>#_8fgH*2%4aUxvF=2DciM3YeMfX};kXEcw zGJf-f>M_Z#F22)R8s4M5SJRXH8>&^25o-qmzSB*I+TNvqy54h0C38i{gU_$32$7qZ_X*KhUZ0G&%83P6Q? z?GDnxOumM(oj%D_yF0OsT{1Ez@fyYS8ftM$r zULqAE+u)*V?-Qbn)_^{j`(~+phtqvZ^%q{Krt3vNuvip#1W?*6eGmdoSU~CBvzo`du%{zk3YB zgudwv`b8PMPrxfaQf5XPWK!a-3?ZQGue#4n&oUauHjTb!jrK)0g&t!R(6=+!C0evbq^|Cvj2rm7&ivd3fUEB<8?KkI4}e* zzZaW8ablqlm@VOA*rFM_T-dbzpnx$`>_QV>JWBWD@F;jCdc@7YY1T@s1MwEu4MmT< z9t#-FSt(;cf*O#}{)7ckR2q}m%Gy!^(|%p?KhLguFjna2qKh@emTn=lH6n8dNdpD? zU*}vfvjmvThELfmR`USe8iz1l9^{t@$>nPCz}T}yrCT2GQYK=pB6tO128Qq8`$7N! z+#bQ0!MPQxJvJ2r(~3p>|E5n2!_ULit0%v3iv2PZvn%nioM02eV0~UNXU>mOdD7=1 zZ5a}bhu+r9fp33cQ%P(y#IKWxx7Zy#w#Huv%chspGe|pz(5-Ik^$`Mms4qnq0Ovw~ zy@p!2xfNuE0mxt(zg0AcwGDXDdXr_`4(UA!2pFlfC}Ph&>Bipa;36JxD4|?E>+79BJrU2aU8Dz+*TRZ#fjPIwZXP(IY&?!}ZG-a+2S}*eIvB|Za zP?U?v0at*pYB-+tjhzVST6auQfPQ(&nAtZq+zf%S@pd2N!jGPn%x?*v+K3ch;X@yS zmXo`om*1rkiPGbGf77HnAJOCd0)Ci{_mfYT(i1H~<%=i;D;&Kv;EVB6J#Q-cxmmU+ zYvpiJjaGrAT&Lp;0lA-!FN9j`fcUgsR%bO{;YcOW53y{uK@}S@apfXq0SLDnez*9v zOHApG1rjpf%ZQOnkt($)4a=NcW4_zc7@h6Lz)g_To5Nw>uQ!SVF0!EzACtbv0wM0K zu;7q&=`BT!abUftij4a@Uf)rsAx2Z9cDaIO8{&XSc^Wf)dSmWGr?Z}QkUI?r|-AI194@~S|cdR?G7P5y{776 zMw#g?Em|)n7q~C{PoqEhCD;ClP_mK*TG7lRJBq9QWV$xAZW5K{_W&mGL+{rVf4 z@bE#4AZ~w=yK!g6!})mS8!Qn<`;IC&JF==O-7}T)yfoHP50GdT8?&lMoa%v~JD4j4 zN_pL&!>S+CYQY85K1|4drtLpE+yu@9zl|*!TgNpke60EWU&>N_eaGTe8tHXF6hjW4 za{e!6+mo+Dm2EzgEv-Uri_9IMqORRQk^@%{&xT(xAmf8~f`}-$@`Gk;pRR^Wd62Il0jS>8+epif`#ypz_=0JcT zk+T%Yt@;5+yke{1c?NZij4_*GF-Wj5;az*m3%eikbZQ*)-`qfBKZ2RnU`Q8`wI#Cw zJi)}?-ab%y_Y^(04t)T!O$4(bDIu$^{Qii|FB0oa5@!;m%UUP4t>VD!Z=m`4c@;KE z;`c?5vaVdZmYZh`+g$Phmw>mDz>j!^=Q$=o&k5Ods+CWsXNq5Hhr{4K()#G%R*PEz m0e&hP2#`4(Om17wPY(a-=0)A?hrUwWiy9f+)Gxd0_~M`YN8YOd literal 28374 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 diff --git a/docs/source/img/importer_connector_type.png b/docs/source/img/importer_connector_type.png new file mode 100644 index 0000000000000000000000000000000000000000..41ccc9ac5c7f0913fad92c5d393e04403fd4205e GIT binary patch literal 9614 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 literal 0 HcmV?d00001 diff --git a/docs/source/img/importer_properties.png b/docs/source/img/importer_properties.png index 2a76959c554e4b62fd13f533c374313ca0ae0ba6..31e02a892e743ad717ec6c419f017c059f9d394b 100644 GIT binary patch literal 15867 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 diff --git a/docs/source/img/importer_spec_editor_anonymous_mode.png b/docs/source/img/importer_spec_editor_anonymous_mode.png new file mode 100644 index 0000000000000000000000000000000000000000..a5a11d4ac0fa785e4e214cd71c73203c7bc8f545 GIT binary patch literal 65119 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 OrF+%rO7Z1e5B~?xWXDDT literal 0 HcmV?d00001 diff --git a/docs/source/img/select_url_for_remote_db_export.png b/docs/source/img/select_url_for_remote_db_export.png new file mode 100644 index 0000000000000000000000000000000000000000..406d6840fa2a31b6ec5b8c2c13d64ea294c28b95 GIT binary patch literal 8012 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 Date: Wed, 9 Aug 2023 13:23:28 +0300 Subject: [PATCH 13/19] Rename settings to app_settings in Project Project may have its own settings in the future. Re #2237 --- spinetoolbox/project.py | 18 +++++++++--------- spinetoolbox/ui_main.py | 4 ++-- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/spinetoolbox/project.py b/spinetoolbox/project.py index 3a1a9201a..7dbb346e9 100644 --- a/spinetoolbox/project.py +++ b/spinetoolbox/project.py @@ -107,13 +107,13 @@ class SpineToolboxProject(MetaObject): specification_saved = Signal(str, str) """Emitted after a specification has been saved.""" - def __init__(self, toolbox, p_dir, plugin_specs, settings, logger): + def __init__(self, toolbox, p_dir, plugin_specs, app_settings, logger): """ Args: toolbox (ToolboxUI): toolbox of this project p_dir (str): Project directory plugin_specs (Iterable of ProjectItemSpecification): specifications available as plugins - settings (QSettings): Toolbox settings + app_settings (QSettings): Toolbox settings logger (LoggerInterface): a logger instance """ _, name = os.path.split(p_dir) @@ -124,7 +124,7 @@ def __init__(self, toolbox, p_dir, plugin_specs, settings, logger): self._connections = list() self._jumps = list() self._logger = logger - self._settings = settings + self._app_settings = app_settings self._engine_workers = [] self._execution_in_progress = False self.project_dir = None # Full path to project directory @@ -296,7 +296,7 @@ def load(self, spec_factories, item_factories): specification_local_data = load_specification_local_data(self.config_dir) for path in deserialized_paths: spec = load_specification_from_file( - path, specification_local_data, spec_factories, self._settings, self._logger + path, specification_local_data, spec_factories, self._app_settings, self._logger ) if spec is not None: self.add_specification(spec, save_to_disk=False) @@ -973,7 +973,7 @@ def _execute_dags(self, dags, execution_permits_list): if not self.job_id: self.project_execution_finished.emit() return - settings = make_settings_dict_for_engine(self._settings) + settings = make_settings_dict_for_engine(self._app_settings) darker_fg_color = QColor(FG_COLOR).darker().name() darker = lambda x: f'{x}' for k, (dag, execution_permits) in enumerate(zip(dags, execution_permits_list)): @@ -1401,8 +1401,8 @@ def _update_ranks(self, dag): item.set_rank(ranks[item_name]) @property - def settings(self): - return self._settings + def app_settings(self): + return self._app_settings @busy_effect def prepare_remote_execution(self): @@ -1412,7 +1412,7 @@ def prepare_remote_execution(self): str: Job Id if server is ready for remote execution, empty string if something went wrong or "1" if local execution is enabled. """ - if not self._settings.value("engineSettings/remoteExecutionEnabled", defaultValue="false") == "true": + if not self._app_settings.value("engineSettings/remoteExecutionEnabled", defaultValue="false") == "true": return "1" # Something that isn't False host, port, sec_model, sec_folder = self._toolbox.engine_server_settings() if not host: @@ -1462,7 +1462,7 @@ def prepare_remote_execution(self): def finalize_remote_execution(self): """Sends a request to server to remove the project directory and removes the project ZIP file from client.""" - if not self._settings.value("engineSettings/remoteExecutionEnabled", defaultValue="false") == "true": + if not self._app_settings.value("engineSettings/remoteExecutionEnabled", defaultValue="false") == "true": return host, port, sec_model, sec_folder = self._toolbox.engine_server_settings() try: diff --git a/spinetoolbox/ui_main.py b/spinetoolbox/ui_main.py index be9ef09dd..0c5258097 100644 --- a/spinetoolbox/ui_main.py +++ b/spinetoolbox/ui_main.py @@ -513,7 +513,7 @@ def create_project(self, proj_dir): return self.undo_stack.clear() self._project = SpineToolboxProject( - self, proj_dir, self._plugin_manager.plugin_specs, settings=self._qsettings, logger=self + self, proj_dir, self._plugin_manager.plugin_specs, app_settings=self._qsettings, logger=self ) self.project_item_model.connect_to_project(self._project) self.specification_model.connect_to_project(self._project) @@ -575,7 +575,7 @@ def restore_project(self, project_dir, ask_confirmation=True): # Create project self.undo_stack.clear() self._project = SpineToolboxProject( - self, project_dir, self._plugin_manager.plugin_specs, settings=self._qsettings, logger=self + self, project_dir, self._plugin_manager.plugin_specs, app_settings=self._qsettings, logger=self ) self.project_item_model.connect_to_project(self._project) self.specification_model.connect_to_project(self._project) From c2fd1ad1dd6d25b69e5ca24cf19b07e503c279e6 Mon Sep 17 00:00:00 2001 From: Antti Soininen Date: Wed, 9 Aug 2023 16:21:07 +0300 Subject: [PATCH 14/19] Fix build_ui script The script wasn't fixing imports in the generated .py files correctly after the upgrade to PySide6. Re #2237 --- bin/build_ui.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/build_ui.py b/bin/build_ui.py index 0083dde79..17a6d5481 100755 --- a/bin/build_ui.py +++ b/bin/build_ui.py @@ -23,9 +23,9 @@ def fix_resources_imports(path): lines = list() with open(path, 'r') as in_file: for line in in_file: - if line == "from . import resources_icons_rc\n": + if line == "from . import resources_icons_rc\n": lines.append("from spinetoolbox import resources_icons_rc\n") - elif line == "from . import resources_logos_rc\n": + elif line == "from . import resources_logos_rc\n": lines.append("from spinetoolbox import resources_logos_rc\n") else: lines.append(line) From 5aec09b74e7c1eaa9bac7f3596ee41badea89c4e Mon Sep 17 00:00:00 2001 From: Antti Soininen Date: Wed, 9 Aug 2023 16:41:30 +0300 Subject: [PATCH 15/19] Add project-level option to disable the Execute project button - Renamed SpineToolboxProject.settings to app_settings, since settings now means project-level settings - Implemented a ProjectSettings class which holds the settings - The settings are now stored in project.json bumping LATEST_PROJECT_VERSION to 11 - The only project setting available is enable_execute_all which enables or disables the Execute Project button. - Implemented the enable_execute_all setting - Improved tooltips on the execute buttons Currently, there is no interface in Toolbox to change the project settings so it must be done through editing project.json by hand. This is intended. Re #2237 --- CHANGELOG.md | 4 + .../.spinetoolbox/project.json | 7 +- .../.spinetoolbox/project.json | 7 +- .../.spinetoolbox/project.json | 7 +- .../.spinetoolbox/project.json | 7 +- .../.spinetoolbox/project.json | 7 +- .../.spinetoolbox/project.json | 7 +- .../.spinetoolbox/project.json | 7 +- spinetoolbox/config.py | 2 +- spinetoolbox/project.py | 11 +- spinetoolbox/project_settings.py | 40 +++ spinetoolbox/project_upgrader.py | 68 +++- spinetoolbox/resources_icons_rc.py | 170 +++++----- spinetoolbox/ui/mainwindow.py | 11 +- spinetoolbox/ui/mainwindow.ui | 9 + spinetoolbox/ui_main.py | 25 +- tests/test_ProjectUpgrader.py | 193 +++++++----- tests/test_SpineToolboxProject.py | 9 +- .../.spinetoolbox/project.json | 7 +- .../project_json_versions/proj_v11.json | 293 ++++++++++++++++++ 20 files changed, 695 insertions(+), 196 deletions(-) create mode 100644 spinetoolbox/project_settings.py create mode 100644 tests/test_resources/project_json_versions/proj_v11.json diff --git a/CHANGELOG.md b/CHANGELOG.md index 9d7c010bf..e54b18ffa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) ## [Unreleased] ### Added +- Support for version 11 Spine Toolbox projects. - Executable Tool Specifications can be used to run any (shell) command. This enhancement duplicates the functionality of Gimlet project items and makes them obsolete. - There is now an option to select if new scenarios or tools are automatically used @@ -30,6 +31,8 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) - "Make Julia Kernel" and "Make Python Kernel" buttons in Settings->Tools page. Clicking them creates a new Julia or Python kernel based on selected Julia/Python executable on the same page if the kernel does not exist. If the kernel already exists, it is selected automatically. +- ``project.json`` now has an experimental option ["project"]["settings"]["enable_execute_all"] which disables the + Execute Project button when set to ``false``. The option is currently not settable in the UI. ### Changed - The console settings of Python tools as well as the command and shell settings of executable tools @@ -54,6 +57,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) Duplicating a previously duplicated item now has the number `xx` incremented instead of having a new number appended. - "Open kernel spec editor" buttons in Settings->Tools page have been changed "Make Julia kernel" and "Make Python Kernel" buttons +- ### Deprecated diff --git a/execution_tests/import_file_packs/.spinetoolbox/project.json b/execution_tests/import_file_packs/.spinetoolbox/project.json index ef8f1c031..750a58242 100644 --- a/execution_tests/import_file_packs/.spinetoolbox/project.json +++ b/execution_tests/import_file_packs/.spinetoolbox/project.json @@ -1,6 +1,6 @@ { "project": { - "version": 10, + "version": 11, "description": "", "specifications": { "Tool": [ @@ -42,7 +42,10 @@ ] } ], - "jumps": [] + "jumps": [], + "settings": { + "enable_execute_all": true + } }, "items": { "Create file pack": { diff --git a/execution_tests/loop_condition_with_cmd_line_args/.spinetoolbox/project.json b/execution_tests/loop_condition_with_cmd_line_args/.spinetoolbox/project.json index 734748375..34e59cefb 100644 --- a/execution_tests/loop_condition_with_cmd_line_args/.spinetoolbox/project.json +++ b/execution_tests/loop_condition_with_cmd_line_args/.spinetoolbox/project.json @@ -1,6 +1,6 @@ { "project": { - "version": 10, + "version": 11, "description": "", "specifications": { "Tool": [ @@ -106,7 +106,10 @@ } ] } - ] + ], + "settings": { + "enable_execute_all": true + } }, "items": { "Write data": { diff --git a/execution_tests/merger_write_order/.spinetoolbox/project.json b/execution_tests/merger_write_order/.spinetoolbox/project.json index 09f8b4654..c33bab31c 100644 --- a/execution_tests/merger_write_order/.spinetoolbox/project.json +++ b/execution_tests/merger_write_order/.spinetoolbox/project.json @@ -1,6 +1,6 @@ { "project": { - "version": 10, + "version": 11, "description": "", "specifications": {}, "connections": [ @@ -52,7 +52,10 @@ } } ], - "jumps": [] + "jumps": [], + "settings": { + "enable_execute_all": true + } }, "items": { "First source": { diff --git a/execution_tests/modify_connection_filter_by_script/.spinetoolbox/project.json b/execution_tests/modify_connection_filter_by_script/.spinetoolbox/project.json index 4a79daffd..456025258 100644 --- a/execution_tests/modify_connection_filter_by_script/.spinetoolbox/project.json +++ b/execution_tests/modify_connection_filter_by_script/.spinetoolbox/project.json @@ -1,6 +1,6 @@ { "project": { - "version": 10, + "version": 11, "description": "", "specifications": { "Exporter": [ @@ -34,7 +34,10 @@ } } ], - "jumps": [] + "jumps": [], + "settings": { + "enable_execute_all": true + } }, "items": { "Data": { diff --git a/execution_tests/parallel_importer/.spinetoolbox/project.json b/execution_tests/parallel_importer/.spinetoolbox/project.json index b0febb087..f9dd0bc3e 100644 --- a/execution_tests/parallel_importer/.spinetoolbox/project.json +++ b/execution_tests/parallel_importer/.spinetoolbox/project.json @@ -1,6 +1,6 @@ { "project": { - "version": 10, + "version": 11, "description": "", "specifications": { "Tool": [ @@ -53,7 +53,10 @@ ] } ], - "jumps": [] + "jumps": [], + "settings": { + "enable_execute_all": true + } }, "items": { "Source": { diff --git a/execution_tests/parallel_importer_with_datapackage/.spinetoolbox/project.json b/execution_tests/parallel_importer_with_datapackage/.spinetoolbox/project.json index 457e36ab8..9c40af724 100644 --- a/execution_tests/parallel_importer_with_datapackage/.spinetoolbox/project.json +++ b/execution_tests/parallel_importer_with_datapackage/.spinetoolbox/project.json @@ -1,6 +1,6 @@ { "project": { - "version": 10, + "version": 11, "description": "", "specifications": { "Tool": [ @@ -56,7 +56,10 @@ ] } ], - "jumps": [] + "jumps": [], + "settings": { + "enable_execute_all": true + } }, "items": { "Source": { diff --git a/execution_tests/scenario_filters/.spinetoolbox/project.json b/execution_tests/scenario_filters/.spinetoolbox/project.json index 4c9845ea7..3b24211ba 100644 --- a/execution_tests/scenario_filters/.spinetoolbox/project.json +++ b/execution_tests/scenario_filters/.spinetoolbox/project.json @@ -1,6 +1,6 @@ { "project": { - "version": 10, + "version": 11, "description": "Test project to test scenario filtering in a Tool project item.", "specifications": { "Importer": [ @@ -58,7 +58,10 @@ } } ], - "jumps": [] + "jumps": [], + "settings": { + "enable_execute_all": true + } }, "items": { "Data store": { diff --git a/spinetoolbox/config.py b/spinetoolbox/config.py index 039a33f55..b55e95ee1 100644 --- a/spinetoolbox/config.py +++ b/spinetoolbox/config.py @@ -18,7 +18,7 @@ from pathlib import Path # NOTE: All required Python package versions are in setup.cfg -LATEST_PROJECT_VERSION = 10 +LATEST_PROJECT_VERSION = 11 # For the Add/Update SpineOpt wizard REQUIRED_SPINE_OPT_VERSION = "0.6.9" diff --git a/spinetoolbox/project.py b/spinetoolbox/project.py index 7dbb346e9..701515d02 100644 --- a/spinetoolbox/project.py +++ b/spinetoolbox/project.py @@ -35,6 +35,7 @@ ) from spine_engine.utils.serialization import deserialize_path, serialize_path from spine_engine.server.util.zip_handler import ZipHandler +from .project_settings import ProjectSettings from .server.engine_client import EngineClient from .metaobject import MetaObject from .helpers import ( @@ -107,13 +108,14 @@ class SpineToolboxProject(MetaObject): specification_saved = Signal(str, str) """Emitted after a specification has been saved.""" - def __init__(self, toolbox, p_dir, plugin_specs, app_settings, logger): + def __init__(self, toolbox, p_dir, plugin_specs, app_settings, settings, logger): """ Args: toolbox (ToolboxUI): toolbox of this project p_dir (str): Project directory plugin_specs (Iterable of ProjectItemSpecification): specifications available as plugins app_settings (QSettings): Toolbox settings + settings (ProjectSettings): project settings logger (LoggerInterface): a logger instance """ _, name = os.path.split(p_dir) @@ -125,6 +127,7 @@ def __init__(self, toolbox, p_dir, plugin_specs, app_settings, logger): self._jumps = list() self._logger = logger self._app_settings = app_settings + self._settings = settings self._engine_workers = [] self._execution_in_progress = False self.project_dir = None # Full path to project directory @@ -148,6 +151,10 @@ def toolbox(self): def all_item_names(self): return list(self._project_items) + @property + def settings(self): + return self._settings + def _create_project_structure(self, directory): """Makes the given directory a Spine Toolbox project directory. Creates directories and files that are common to all projects. @@ -193,6 +200,7 @@ def save(self): project_dict = { "version": LATEST_PROJECT_VERSION, "description": self.description, + "settings": self._settings.to_dict(), "specifications": serialized_spec_paths, "connections": [connection.to_dict() for connection in self._connections], "jumps": [jump.to_dict() for jump in self._jumps], @@ -288,6 +296,7 @@ def load(self, spec_factories, item_factories): self._merge_local_data_to_project_info(local_data_dict, project_info) # Parse project info self.set_description(project_info["project"]["description"]) + self._settings = ProjectSettings.from_dict(project_info["project"]["settings"]) spec_paths_per_type = project_info["project"]["specifications"] deserialized_paths = [ deserialize_path(path, self.project_dir) for paths in spec_paths_per_type.values() for path in paths diff --git a/spinetoolbox/project_settings.py b/spinetoolbox/project_settings.py new file mode 100644 index 000000000..ff5d9553f --- /dev/null +++ b/spinetoolbox/project_settings.py @@ -0,0 +1,40 @@ +###################################################################################################################### +# Copyright (C) 2017-2022 Spine project consortium +# This file is part of Spine Toolbox. +# Spine Toolbox is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General +# Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) +# any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +# without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General +# Public License for more details. You should have received a copy of the GNU Lesser General Public License along with +# this program. If not, see . +###################################################################################################################### +"""Contains project-specific settings.""" + +import dataclasses + + +@dataclasses.dataclass +class ProjectSettings: + """Spine Toolbox project settings.""" + + enable_execute_all: bool = True + + def to_dict(self): + """Serializes the settings into a dictionary. + + Returns: + dict: serialized settings + """ + return dataclasses.asdict(self) + + @staticmethod + def from_dict(settings_dict): + """Deserializes settings from dictionary. + + Args: + settings_dict (dict): serialized settings + + Returns: + ProjectSettings: deserialized settings + """ + return ProjectSettings(**settings_dict) diff --git a/spinetoolbox/project_upgrader.py b/spinetoolbox/project_upgrader.py index 8352b5c66..199f8da33 100644 --- a/spinetoolbox/project_upgrader.py +++ b/spinetoolbox/project_upgrader.py @@ -22,6 +22,7 @@ from spine_engine.utils.serialization import serialize_path, deserialize_path from .config import LATEST_PROJECT_VERSION, PROJECT_FILENAME from .helpers import home_dir +from .project_settings import ProjectSettings class ProjectUpgrader: @@ -100,6 +101,8 @@ def upgrade_to_latest(self, v, project_dict, project_dir): project_dict = self.upgrade_v8_to_v9(project_dict) elif v == 9: project_dict = self.upgrade_v9_to_v10(project_dict) + elif v == 10: + project_dict = self.upgrade_v10_to_v11(project_dict) v += 1 self._toolbox.msg_success.emit(f"Project upgraded to version {v}") return project_dict @@ -502,6 +505,24 @@ def upgrade_v9_to_v10(old): new["items"].pop(name) return new + @staticmethod + def upgrade_v10_to_v11(old): + """Upgrades version 10 project dictionary to version 11. + + Changes: + 1. Add ["project"]["settings"] key + + Args: + old (dict): Version 10 project dictionary + + Returns: + dict: Version 11 project dictionary + """ + new = copy.deepcopy(old) + new["project"]["version"] = 11 + new["project"]["settings"] = ProjectSettings().to_dict() + return new + @staticmethod def make_unique_importer_specification_name(importer_name, label, k): return f"{importer_name} - {os.path.basename(label['path'])} - {k}" @@ -543,13 +564,23 @@ def get_project_directory(self): return answer # New project directory def is_valid(self, v, p): - """Checks given project dict if it is valid for given version.""" + """Checks given project dict if it is valid for given version. + + Args: + v (int): project version to validate against + p (dict): project dictionary + + Returns: + bool: True if project is valid, False otherwise + """ if v == 1: return self.is_valid_v1(p) if 2 <= v <= 8: return self.is_valid_v2_to_v8(p, v) if 9 <= v <= 10: return self.is_valid_v9_to_v10(p) + if v == 11: + return self.is_valid_v11(p) raise NotImplementedError(f"No validity check available for version {v}") def is_valid_v1(self, p): @@ -564,10 +595,10 @@ def is_valid_v1(self, p): Returns: bool: True if project is a valid version 1 project, False if it is not """ - if "project" not in p.keys(): + if "project" not in p: self._toolbox.msg_error.emit("Invalid project.json file. Key 'project' not found.") return False - if "objects" not in p.keys(): + if "objects" not in p: self._toolbox.msg_error.emit("Invalid project.json file. Key 'objects' not found.") return False required_project_keys = ["version", "name", "description", "tool_specifications", "connections"] @@ -611,10 +642,10 @@ def is_valid_v2_to_v8(self, p, v): Returns: bool: True if project is a valid version 2 to version 8 project, False if it is not """ - if "project" not in p.keys(): + if "project" not in p: self._toolbox.msg_error.emit("Invalid project.json file. Key 'project' not found.") return False - if "items" not in p.keys(): + if "items" not in p: self._toolbox.msg_error.emit("Invalid project.json file. Key 'items' not found.") return False required_project_keys = ["version", "name", "description", "specifications", "connections"] @@ -657,10 +688,10 @@ def is_valid_v9_to_v10(self, p): Returns: bool: True if project is a valid version 9 and 10 project, False otherwise """ - if "project" not in p.keys(): + if "project" not in p: self._toolbox.msg_error.emit("Invalid project.json file. Key 'project' not found.") return False - if "items" not in p.keys(): + if "items" not in p: self._toolbox.msg_error.emit("Invalid project.json file. Key 'items' not found.") return False required_project_keys = ["version", "description", "specifications", "connections"] @@ -678,6 +709,29 @@ def is_valid_v9_to_v10(self, p): return False return True + def is_valid_v11(self, p): + """Checks that the given project JSON dictionary contains + a valid version 11 Spine Toolbox project. Valid meaning, that + it contains all required keys and values are of the correct + type. + + Args: + p (dict): Project information JSON + + Returns: + bool: True if project is a valid version 11 project, False otherwise + """ + if "project" not in p: + self._toolbox.msg_error.emit("Invalid project.json file. Key 'project' not found.") + return False + if "settings" not in p["project"]: + self._toolbox.msg_error.emit("Invalid project.json file. Key 'items' not found in 'project'.") + return False + if not isinstance(p["project"]["settings"], dict): + self._toolbox.msg_error.emit("Invalid project.json file. 'settings' must be a dict.") + return False + return True + def backup_project_file(self, project_dir, v): """Makes a backup copy of project.json file.""" src = os.path.join(project_dir, ".spinetoolbox", PROJECT_FILENAME) diff --git a/spinetoolbox/resources_icons_rc.py b/spinetoolbox/resources_icons_rc.py index 89c91f904..d6e0ccd42 100644 --- a/spinetoolbox/resources_icons_rc.py +++ b/spinetoolbox/resources_icons_rc.py @@ -10,7 +10,7 @@ # this program. If not, see . ###################################################################################################################### # Created by: object code -# Created by: The Resource Compiler for Qt version 6.4.3 +# Created by: The Resource Compiler for Qt version 6.5.2 # WARNING! All changes made in this file will be lost! from PySide6 import QtCore @@ -32065,177 +32065,177 @@ \x00\x00\x004\x00\x02\x00\x00\x00\x01\x00\x00\x00\x05\ \x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00T\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ -\x00\x00\x01\x88\x04\xacr\xc1\ +\x00\x00\x01\x83\xb1\xb2\x06\x95\ \x00\x00\x00x\x00\x00\x00\x00\x00\x01\x00\x00\x09\xf5\ -\x00\x00\x01\x89\x05\xd7\x05\xe0\ +\x00\x00\x01\x89\xd8\xc60\x1f\ \x00\x00\x00\xb2\x00\x00\x00\x00\x00\x01\x00\x008\x89\ -\x00\x00\x01\x88\xc2\xdeI`\ +\x00\x00\x01\x89\xd8\xc60/\ \x00\x00\x00\x9e\x00\x01\x00\x00\x00\x01\x00\x00\x10N\ -\x00\x00\x01\x89\x05\xd73\xa6\ +\x00\x00\x01\x89\xd8\xc60\x1f\ \x00\x00\x02R\x00\x00\x00\x00\x00\x01\x00\x06A\x9c\ -\x00\x00\x01\x88\x04\xacr\xc7\ +\x00\x00\x01\x83\xb1\xb2\x06\x99\ \x00\x00\x01\xea\x00\x00\x00\x00\x00\x01\x00\x062\x92\ -\x00\x00\x01\x88\x04\xacr\xe0\ +\x00\x00\x01\x83\xb1\xb2\x06\xae\ \x00\x00\x04X\x00\x00\x00\x00\x00\x01\x00\x06\xa7<\ -\x00\x00\x01\x88\x04\xacr\xc6\ +\x00\x00\x01\x83\xb1\xb2\x06\x98\ \x00\x00\x04\xa0\x00\x00\x00\x00\x00\x01\x00\x06\xbc&\ -\x00\x00\x01\x88\x04\xacr\xdb\ +\x00\x00\x01\x83\xb1\xb2\x06\xa8\ \x00\x00\x03D\x00\x00\x00\x00\x00\x01\x00\x06\x88\x1a\ -\x00\x00\x01\x88\x04\xacr\xe1\ +\x00\x00\x01\x83\xb1\xb2\x06\xae\ \x00\x00\x04\x80\x00\x00\x00\x00\x00\x01\x00\x06\xa9\x10\ -\x00\x00\x01\x88\x04\xacr\xc5\ +\x00\x00\x01\x83\xb1\xb2\x06\x98\ \x00\x00\x03\xf4\x00\x00\x00\x00\x00\x01\x00\x06\x98\x16\ -\x00\x00\x01\x88\x04\xacr\xdb\ +\x00\x00\x01\x83\xb1\xb2\x06\xa8\ \x00\x00\x02\x80\x00\x00\x00\x00\x00\x01\x00\x06E\xb2\ -\x00\x00\x01\x88\x04\xacr\xc4\ +\x00\x00\x01\x83\xb1\xb2\x06\x97\ \x00\x00\x02h\x00\x00\x00\x00\x00\x01\x00\x06B\xab\ -\x00\x00\x01\x88\x04\xacr\xe0\ +\x00\x00\x01\x83\xb1\xb2\x06\xae\ \x00\x00\x03\xde\x00\x00\x00\x00\x00\x01\x00\x06\x95\xa7\ -\x00\x00\x01\x88\x04\xacr\xcb\ +\x00\x00\x01\x83\xb1\xb2\x06\x9d\ \x00\x00\x03^\x00\x00\x00\x00\x00\x01\x00\x06\x8a3\ -\x00\x00\x01\x88\x04\xacr\xc6\ +\x00\x00\x01\x83\xb1\xb2\x06\x98\ \x00\x00\x02\xc4\x00\x00\x00\x00\x00\x01\x00\x06Q\xfb\ -\x00\x00\x01\x88\x04\xacr\xc2\ +\x00\x00\x01\x83\xb1\xb2\x06\x96\ \x00\x00\x02.\x00\x00\x00\x00\x00\x01\x00\x06?\xec\ -\x00\x00\x01\x88\x04\xacr\xc7\ +\x00\x00\x01\x83\xb1\xb2\x06\x9a\ \x00\x00\x03(\x00\x00\x00\x00\x00\x01\x00\x06b\xb3\ -\x00\x00\x01\x88\x04\xacr\xc4\ +\x00\x00\x01\x83\xb1\xb2\x06\x97\ \x00\x00\x01\xbe\x00\x00\x00\x00\x00\x01\x00\x060\xaf\ -\x00\x00\x01\x88\x04\xacr\xdb\ +\x00\x00\x01\x83\xb1\xb2\x06\xa8\ \x00\x00\x01\xa6\x00\x00\x00\x00\x00\x01\x00\x06/\x9c\ -\x00\x00\x01\x88\x04\xacr\xe0\ +\x00\x00\x01\x83\xb1\xb2\x06\xae\ \x00\x00\x04\x0c\x00\x00\x00\x00\x00\x01\x00\x06\x9e\x7f\ -\x00\x00\x01\x88\x04\xacr\xdf\ +\x00\x00\x01\x83\xb1\xb2\x06\xae\ \x00\x00\x03\x98\x00\x02\x00\x00\x00\x09\x00\x00\x00O\ \x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x03~\x00\x02\x00\x00\x00-\x00\x00\x00\x22\ \x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x02\x0a\x00\x00\x00\x00\x00\x01\x00\x065G\ -\x00\x00\x01\x88\x04\xacr\xe2\ +\x00\x00\x01\x83\xb1\xb2\x06\xae\ \x00\x00\x04<\x00\x00\x00\x00\x00\x01\x00\x06\xa1\x98\ -\x00\x00\x01\x88\x04\xacr\xe1\ +\x00\x00\x01\x83\xb1\xb2\x06\xae\ \x00\x00\x03\xc2\x00\x00\x00\x00\x00\x01\x00\x06\x94o\ -\x00\x00\x01\x88\x04\xacr\xc5\ +\x00\x00\x01\x83\xb1\xb2\x06\x98\ \x00\x00\x02\xda\x00\x00\x00\x00\x00\x01\x00\x06T\x05\ -\x00\x00\x01\x88\x04\xacr\xc4\ +\x00\x00\x01\x83\xb1\xb2\x06\x97\ \x00\x00\x02\x9e\x00\x00\x00\x00\x00\x01\x00\x06G\x93\ -\x00\x00\x01\x88\x04\xacr\xe1\ +\x00\x00\x01\x83\xb1\xb2\x06\xae\ \x00\x00\x03\x02\x00\x00\x00\x00\x00\x01\x00\x06`G\ -\x00\x00\x01\x88\x04\xacr\xc3\ +\x00\x00\x01\x83\xb1\xb2\x06\x97\ \x00\x00\x02R\x00\x00\x00\x00\x00\x01\x00\x07\x05\xa0\ -\x00\x00\x01\x88\x04\xacr\xd2\ +\x00\x00\x01\x83\xb1\xb2\x06\xa0\ \x00\x00\x0b\x18\x00\x00\x00\x00\x00\x01\x00\x07\xad\x12\ -\x00\x00\x01\x88\x04\xacr\xd8\ +\x00\x00\x01\x83\xb1\xb2\x06\xa8\ \x00\x00\x06\x18\x00\x00\x00\x00\x00\x01\x00\x06\xebN\ -\x00\x00\x01\x88\x04\xacr\xda\ +\x00\x00\x01\x83\xb1\xb2\x06\xa8\ \x00\x00\x08\xba\x00\x00\x00\x00\x00\x01\x00\x07A\xae\ -\x00\x00\x01\x88\x04\xacr\xcd\ +\x00\x00\x01\x83\xb1\xb2\x06\xa0\ \x00\x00\x09\x16\x00\x00\x00\x00\x00\x01\x00\x07Vm\ -\x00\x00\x01\x88\x04\xacr\xce\ +\x00\x00\x01\x83\xb1\xb2\x06\xa0\ \x00\x00\x06\xba\x00\x00\x00\x00\x00\x01\x00\x07\x03D\ -\x00\x00\x01\x88\x04\xacr\xd9\ +\x00\x00\x01\x83\xb1\xb2\x06\xa8\ \x00\x00\x08>\x00\x00\x00\x00\x00\x01\x00\x07;\xea\ -\x00\x00\x01\x88\x04\xacr\xd7\ +\x00\x00\x01\x83\xb1\xb2\x06\xa8\ \x00\x00\x08\xf2\x00\x00\x00\x00\x00\x01\x00\x07T\xab\ -\x00\x00\x01\x88\x04\xacr\xd2\ +\x00\x00\x01\x83\xb1\xb2\x06\xa0\ \x00\x00\x0a2\x00\x00\x00\x00\x00\x01\x00\x07\x94\xae\ -\x00\x00\x01\x88\x04\xacr\xd2\ +\x00\x00\x01\x83\xb1\xb2\x06\xa0\ \x00\x00\x07F\x00\x00\x00\x00\x00\x01\x00\x07\x17\xb0\ -\x00\x00\x01\x88\x04\xacr\xd9\ +\x00\x00\x01\x83\xb1\xb2\x06\xa8\ \x00\x00\x06\xda\x00\x00\x00\x00\x00\x01\x00\x07\x08\xe0\ -\x00\x00\x01\x88\x04\xacr\xd6\ +\x00\x00\x01\x83\xb1\xb2\x06\xa8\ \x00\x00\x08\x1e\x00\x00\x00\x00\x00\x01\x00\x07\x22\xda\ -\x00\x00\x01\x88\x04\xacr\xcf\ +\x00\x00\x01\x83\xb1\xb2\x06\xa0\ \x00\x00\x08`\x00\x00\x00\x00\x00\x01\x00\x07=\xf7\ -\x00\x00\x01\x88\x04\xacr\xd6\ +\x00\x00\x01\x83\xb1\xb2\x06\xa8\ \x00\x00\x07\x98\x00\x00\x00\x00\x00\x01\x00\x07\x1d\xab\ -\x00\x00\x01\x88\x04\xacr\xd8\ +\x00\x00\x01\x83\xb1\xb2\x06\xa8\ \x00\x00\x08\x94\x00\x00\x00\x00\x00\x01\x00\x07?S\ -\x00\x00\x01\x88\x04\xacr\xd7\ +\x00\x00\x01\x83\xb1\xb2\x06\xa8\ \x00\x00\x06>\x00\x00\x00\x00\x00\x01\x00\x06\xedW\ -\x00\x00\x01\x88\x04\xacr\xcc\ +\x00\x00\x01\x83\xb1\xb2\x06\x9e\ \x00\x00\x09d\x00\x00\x00\x00\x00\x01\x00\x07r\xb2\ -\x00\x00\x01\x88\x04\xacr\xcf\ +\x00\x00\x01\x83\xb1\xb2\x06\xa0\ \x00\x00\x07^\x00\x00\x00\x00\x00\x01\x00\x07\x19\xa3\ -\x00\x00\x01\x88\x04\xacr\xd1\ +\x00\x00\x01\x83\xb1\xb2\x06\xa0\ \x00\x00\x0a\x86\x00\x00\x00\x00\x00\x01\x00\x07\x97y\ -\x00\x00\x01\x88\x04\xacr\xd4\ +\x00\x00\x01\x83\xb1\xb2\x06\xa8\ \x00\x00\x06\x02\x00\x00\x00\x00\x00\x01\x00\x06\xe8\xdf\ -\x00\x00\x01\x88\x04\xacr\xda\ +\x00\x00\x01\x83\xb1\xb2\x06\xa8\ \x00\x00\x06\x98\x00\x00\x00\x00\x00\x01\x00\x06\xf5g\ -\x00\x00\x01\x88\x04\xacr\xcf\ +\x00\x00\x01\x83\xb1\xb2\x06\xa0\ \x00\x00\x07\xfa\x00\x00\x00\x00\x00\x01\x00\x07!x\ -\x00\x00\x01\x88\x04\xacr\xd0\ +\x00\x00\x01\x83\xb1\xb2\x06\xa0\ \x00\x00\x06\xfe\x00\x00\x00\x00\x00\x01\x00\x07\x13\x93\ -\x00\x00\x01\x88\x04\xacr\xcc\ +\x00\x00\x01\x83\xb1\xb2\x06\x9f\ \x00\x00\x0a\xd0\x00\x00\x00\x00\x00\x01\x00\x07\x9b;\ -\x00\x00\x01\x88\x04\xacr\xd3\ +\x00\x00\x01\x83\xb1\xb2\x06\xa0\ \x00\x00\x0aV\x00\x00\x00\x00\x00\x01\x00\x07\x96t\ -\x00\x00\x01\x88\x04\xacr\xd6\ +\x00\x00\x01\x83\xb1\xb2\x06\xa8\ \x00\x00\x05\xe6\x00\x00\x00\x00\x00\x01\x00\x06\xe5\xba\ -\x00\x00\x01\x88\x04\xacr\xd3\ +\x00\x00\x01\x83\xb1\xb2\x06\xa0\ \x00\x00\x07\x80\x00\x00\x00\x00\x00\x01\x00\x07\x1a\xd0\ -\x00\x00\x01\x88\x04\xacr\xcc\ +\x00\x00\x01\x83\xb1\xb2\x06\x9f\ \x00\x00\x09N\x00\x00\x00\x00\x00\x01\x00\x07p\xff\ -\x00\x00\x01\x88\x04\xacr\xcd\ +\x00\x00\x01\x83\xb1\xb2\x06\xa0\ \x00\x00\x0a\xf8\x00\x00\x00\x00\x00\x01\x00\x07\x9d\x96\ -\x00\x00\x01\x88\x04\xacr\xce\ +\x00\x00\x01\x83\xb1\xb2\x06\xa0\ \x00\x00\x09\xb8\x00\x00\x00\x00\x00\x01\x00\x07\x82E\ -\x00\x00\x01\x88\x04\xacr\xd7\ +\x00\x00\x01\x83\xb1\xb2\x06\xa8\ \x00\x00\x08\xda\x00\x00\x00\x00\x00\x01\x00\x07S\x8c\ -\x00\x00\x01\x88\x04\xacr\xd8\ +\x00\x00\x01\x83\xb1\xb2\x06\xa8\ \x00\x00\x098\x00\x00\x00\x00\x00\x01\x00\x07d\xdb\ -\x00\x00\x01\x88\x04\xacr\xda\ +\x00\x00\x01\x83\xb1\xb2\x06\xa8\ \x00\x00\x06\x84\x00\x00\x00\x00\x00\x01\x00\x06\xf0\xcd\ -\x00\x00\x01\x88\x04\xacr\xcd\ +\x00\x00\x01\x83\xb1\xb2\x06\xa0\ \x00\x00\x09\xe4\x00\x00\x00\x00\x00\x01\x00\x07\x85\x07\ -\x00\x00\x01\x88\x04\xacr\xd5\ +\x00\x00\x01\x83\xb1\xb2\x06\xa8\ \x00\x00\x09\x88\x00\x00\x00\x00\x00\x01\x00\x07\x80\xaf\ -\x00\x00\x01\x88\x04\xacr\xd3\ +\x00\x00\x01\x83\xb1\xb2\x06\xa0\ \x00\x00\x070\x00\x00\x00\x00\x00\x01\x00\x07\x15a\ -\x00\x00\x01\x88\x04\xacr\xd0\ +\x00\x00\x01\x83\xb1\xb2\x06\xa0\ \x00\x00\x09\xfc\x00\x00\x00\x00\x00\x01\x00\x07\x87Q\ -\x00\x00\x01\x88\x04\xacr\xcd\ +\x00\x00\x01\x83\xb1\xb2\x06\xa0\ \x00\x00\x06n\x00\x00\x00\x00\x00\x01\x00\x06\xef#\ -\x00\x00\x01\x88\x04\xacr\xd7\ +\x00\x00\x01\x83\xb1\xb2\x06\xa8\ \x00\x00\x0a\x14\x00\x00\x00\x00\x00\x01\x00\x07\x88\xb7\ -\x00\x00\x01\x88\x04\xacr\xce\ +\x00\x00\x01\x83\xb1\xb2\x06\xa0\ \x00\x00\x07\xcc\x00\x01\x00\x00\x00\x01\x00\x07\x1f\x00\ -\x00\x00\x01\x88\x04\xacr\xd8\ +\x00\x00\x01\x84\x9aC*K\ \x00\x00\x07\xe6\x00\x00\x00\x00\x00\x01\x00\x07\x1f\xda\ -\x00\x00\x01\x88\x04\xacr\xd1\ +\x00\x00\x01\x83\xb1\xb2\x06\xa0\ \x00\x00\x0a\xaa\x00\x00\x00\x00\x00\x01\x00\x07\x99\x5c\ -\x00\x00\x01\x88\x04\xacr\xd1\ +\x00\x00\x01\x83\xb1\xb2\x06\xa0\ \x00\x00\x04\xd8\x00\x00\x00\x00\x00\x01\x00\x07\x06\xaf\ -\x00\x00\x01\x88\x04\xacr\xd1\ +\x00\x00\x01\x83\xb1\xb2\x06\xa0\ \x00\x00\x05@\x00\x00\x00\x00\x00\x01\x00\x071X\ -\x00\x00\x01\x88\x04\xacr\xcf\ +\x00\x00\x01\x83\xb1\xb2\x06\xa0\ \x00\x00\x05l\x00\x00\x00\x00\x00\x01\x00\x07f/\ -\x00\x00\x01\x88\x04\xacr\xd0\ +\x00\x00\x01\x83\xb1\xb2\x06\xa0\ \x00\x00\x05\x98\x00\x00\x00\x00\x00\x01\x00\x06\xe1\xa9\ -\x00\x00\x01\x88\x04\xacr\xdd\ +\x00\x00\x01\x83\xb1\xb2\x06\xae\ \x00\x00\x04\xf6\x00\x00\x00\x00\x00\x01\x00\x06\xc90\ -\x00\x00\x01\x88\x04\xacr\xde\ +\x00\x00\x01\x83\xb1\xb2\x06\xae\ \x00\x00\x02\x80\x00\x00\x00\x00\x00\x01\x00\x06\xc5\x1e\ -\x00\x00\x01\x88\x04\xacr\xdd\ +\x00\x00\x01\x83\xb1\xb2\x06\xae\ \x00\x00\x04\xb6\x00\x00\x00\x00\x00\x01\x00\x06\xc3\x0b\ -\x00\x00\x01\x88\x04\xacr\xdb\ +\x00\x00\x01\x83\xb1\xb2\x06\xa8\ \x00\x00\x05\xca\x00\x00\x00\x00\x00\x01\x00\x06\xe3{\ -\x00\x00\x01\x88\x04\xacr\xdc\ +\x00\x00\x01\x83\xb1\xb2\x06\xa8\ \x00\x00\x05\x10\x00\x00\x00\x00\x00\x01\x00\x06\xcb\xba\ -\x00\x00\x01\x88\x04\xacr\xde\ +\x00\x00\x01\x83\xb1\xb2\x06\xae\ \x00\x00\x04\xd8\x00\x00\x00\x00\x00\x01\x00\x06\xc6\xff\ -\x00\x00\x01\x88\x04\xacr\xdd\ +\x00\x00\x01\x83\xb1\xb2\x06\xae\ \x00\x00\x05@\x00\x00\x00\x00\x00\x01\x00\x06\xcem\ -\x00\x00\x01\x89\x02*\x10\xe9\ +\x00\x00\x01\x89\xd8\xc60/\ \x00\x00\x05l\x00\x00\x00\x00\x00\x01\x00\x06\xd8'\ -\x00\x00\x01\x89\x02*\x10\xed\ +\x00\x00\x01\x89\xd8\xc60/\ \x00\x00\x01&\x00\x01\x00\x00\x00\x01\x00\x03\x04\x82\ -\x00\x00\x01\x88\x04\xacr\xc8\ +\x00\x00\x01\x83\xb1\xb2\x06\x9a\ \x00\x00\x00\xe6\x00\x01\x00\x00\x00\x01\x00\x02\xbaN\ -\x00\x00\x01\x88\x04\xacr\xc8\ +\x00\x00\x01\x83\xb1\xb2\x06\x9b\ \x00\x00\x01d\x00\x00\x00\x00\x00\x01\x00\x03\x10\xa8\ -\x00\x00\x01\x88\x04\xacr\xcb\ +\x00\x00\x01\x83\xb1\xb2\x06\x9d\ " def qInitResources(): diff --git a/spinetoolbox/ui/mainwindow.py b/spinetoolbox/ui/mainwindow.py index e366d3f87..58c31c411 100644 --- a/spinetoolbox/ui/mainwindow.py +++ b/spinetoolbox/ui/mainwindow.py @@ -13,7 +13,7 @@ ################################################################################ ## Form generated from reading UI file 'mainwindow.ui' ## -## Created by: Qt User Interface Compiler version 6.4.3 +## Created by: Qt User Interface Compiler version 6.5.2 ## ## WARNING! All changes made in this file will be lost when recompiling UI file! ################################################################################ @@ -599,14 +599,23 @@ def retranslateUi(self, MainWindow): self.actionSet_description.setToolTip(QCoreApplication.translate("MainWindow", u"Modify or set project description", None)) #endif // QT_CONFIG(tooltip) self.actionExecute_project.setText(QCoreApplication.translate("MainWindow", u"Project", None)) +#if QT_CONFIG(tooltip) + self.actionExecute_project.setToolTip(QCoreApplication.translate("MainWindow", u"Execute all items in project.", None)) +#endif // QT_CONFIG(tooltip) #if QT_CONFIG(shortcut) self.actionExecute_project.setShortcut(QCoreApplication.translate("MainWindow", u"F5", None)) #endif // QT_CONFIG(shortcut) self.actionExecute_selection.setText(QCoreApplication.translate("MainWindow", u"Selection", None)) +#if QT_CONFIG(tooltip) + self.actionExecute_selection.setToolTip(QCoreApplication.translate("MainWindow", u"Execute selected items.", None)) +#endif // QT_CONFIG(tooltip) #if QT_CONFIG(shortcut) self.actionExecute_selection.setShortcut(QCoreApplication.translate("MainWindow", u"F6", None)) #endif // QT_CONFIG(shortcut) self.actionStop_execution.setText(QCoreApplication.translate("MainWindow", u"Stop", None)) +#if QT_CONFIG(tooltip) + self.actionStop_execution.setToolTip(QCoreApplication.translate("MainWindow", u"Stop execution.", None)) +#endif // QT_CONFIG(tooltip) #if QT_CONFIG(shortcut) self.actionStop_execution.setShortcut(QCoreApplication.translate("MainWindow", u"F7", None)) #endif // QT_CONFIG(shortcut) diff --git a/spinetoolbox/ui/mainwindow.ui b/spinetoolbox/ui/mainwindow.ui index 3f60d75bf..080bf2be8 100644 --- a/spinetoolbox/ui/mainwindow.ui +++ b/spinetoolbox/ui/mainwindow.ui @@ -894,6 +894,9 @@ Project + + Execute all items in project. + F5 @@ -906,6 +909,9 @@ Selection + + Execute selected items. + F6 @@ -918,6 +924,9 @@ Stop + + Stop execution. + F7 diff --git a/spinetoolbox/ui_main.py b/spinetoolbox/ui_main.py index 0c5258097..704430827 100644 --- a/spinetoolbox/ui_main.py +++ b/spinetoolbox/ui_main.py @@ -60,6 +60,7 @@ from .mvcmodels.project_item_model import ProjectItemModel from .mvcmodels.project_item_specification_models import ProjectItemSpecificationModel, FilteredSpecificationModel from .mvcmodels.filter_execution_model import FilterExecutionModel +from .project_settings import ProjectSettings from .widgets.set_description_dialog import SetDescriptionDialog from .widgets.multi_tab_spec_editor import MultiTabSpecEditor from .widgets.about_widget import AboutWidget @@ -184,6 +185,7 @@ def __init__(self): self.ui.actionExecute_project, self.ui.actionExecute_selection, self.ui.actionStop_execution, self ) self.addToolBar(Qt.TopToolBarArea, self.main_toolbar) + self._original_execute_project_action_tooltip = self.ui.actionExecute_project.toolTip() self.setStatusBar(None) # Additional consoles for item execution self._item_consoles = {} # Mapping of ProjectItem to console @@ -365,7 +367,14 @@ def _update_qsettings(self): def _update_execute_enabled(self): first_index = next(self.project_item_model.leaf_indexes(), None) - self.ui.actionExecute_project.setEnabled(first_index is not None and not self.execution_in_progress) + enabled_by_project = self._project.settings.enable_execute_all if self._project is not None else False + self.ui.actionExecute_project.setEnabled( + enabled_by_project and first_index is not None and not self.execution_in_progress + ) + if not enabled_by_project: + self.ui.actionExecute_project.setToolTip("Executing entire project disabled by project settings.") + else: + self.ui.actionExecute_project.setToolTip(self._original_execute_project_action_tooltip) def _update_execute_selected_enabled(self): has_selection = bool(self._selected_item_names) @@ -513,7 +522,12 @@ def create_project(self, proj_dir): return self.undo_stack.clear() self._project = SpineToolboxProject( - self, proj_dir, self._plugin_manager.plugin_specs, app_settings=self._qsettings, logger=self + self, + proj_dir, + self._plugin_manager.plugin_specs, + app_settings=self._qsettings, + settings=ProjectSettings(), + logger=self, ) self.project_item_model.connect_to_project(self._project) self.specification_model.connect_to_project(self._project) @@ -575,7 +589,12 @@ def restore_project(self, project_dir, ask_confirmation=True): # Create project self.undo_stack.clear() self._project = SpineToolboxProject( - self, project_dir, self._plugin_manager.plugin_specs, app_settings=self._qsettings, logger=self + self, + project_dir, + self._plugin_manager.plugin_specs, + app_settings=self._qsettings, + settings=ProjectSettings(), + logger=self, ) self.project_item_model.connect_to_project(self._project) self.specification_model.connect_to_project(self._project) diff --git a/tests/test_ProjectUpgrader.py b/tests/test_ProjectUpgrader.py index 9e6146692..be566c6aa 100644 --- a/tests/test_ProjectUpgrader.py +++ b/tests/test_ProjectUpgrader.py @@ -22,6 +22,8 @@ from pathlib import Path from tempfile import TemporaryDirectory from PySide6.QtWidgets import QApplication + +from spinetoolbox.project_settings import ProjectSettings from spinetoolbox.project_upgrader import ProjectUpgrader from spinetoolbox.resources_icons_rc import qInitResources from spinetoolbox.config import LATEST_PROJECT_VERSION @@ -172,17 +174,17 @@ def test_upgrade_v2_to_v3(self): with open(spec_file_path, "w", encoding="utf-8") as tmp_spec_file: tmp_spec_file.write("hello") # Upgrade to version 3 - proj_v3 = pu.upgrade(proj_v2, project_dir) - mock_backup.assert_called_once() - mock_force_save.assert_called_once() - self.assertTrue(pu.is_valid(3, proj_v3)) - # Check that items were transferred successfully by checking that item names are found in new - # 'items' dict and that they contain a dict - v2_items = proj_v2["items"] - v3_items = proj_v3["items"] - for name in v2_items.keys(): - self.assertTrue(name in v3_items.keys()) - self.assertIsInstance(v3_items[name], dict) + proj_v3 = pu.upgrade(proj_v2, project_dir) + mock_backup.assert_called_once() + mock_force_save.assert_called_once() + self.assertTrue(pu.is_valid(3, proj_v3)) + # Check that items were transferred successfully by checking that item names are found in new + # 'items' dict and that they contain a dict + v2_items = proj_v2["items"] + v3_items = proj_v3["items"] + for name in v2_items.keys(): + self.assertTrue(name in v3_items.keys()) + self.assertIsInstance(v3_items[name], dict) def test_upgrade_v3_to_v4(self): pu = ProjectUpgrader(self.toolbox) @@ -201,18 +203,18 @@ def test_upgrade_v3_to_v4(self): spec_file_path = os.path.join(project_dir, "tool_specs", "preprocessing_tool.json") with open(spec_file_path, "w", encoding="utf-8") as tmp_spec_file: tmp_spec_file.write("hello") - # Upgrade to version 4 - proj_v4 = pu.upgrade(proj_v3, project_dir) - mock_backup.assert_called_once() - mock_force_save.assert_called_once() - self.assertTrue(pu.is_valid(4, proj_v4)) - # Check that items were transferred successfully by checking that item names are found in new - # 'items' dict and that they contain a dict - v3_items = proj_v3["items"] - v4_items = proj_v4["items"] - for name in v3_items.keys(): - self.assertTrue(name in v4_items.keys()) - self.assertIsInstance(v4_items[name], dict) + # Upgrade to version 4 + proj_v4 = pu.upgrade(proj_v3, project_dir) + mock_backup.assert_called_once() + mock_force_save.assert_called_once() + self.assertTrue(pu.is_valid(4, proj_v4)) + # Check that items were transferred successfully by checking that item names are found in new + # 'items' dict and that they contain a dict + v3_items = proj_v3["items"] + v4_items = proj_v4["items"] + for name in v3_items.keys(): + self.assertTrue(name in v4_items.keys()) + self.assertIsInstance(v4_items[name], dict) def test_upgrade_v4_to_v5(self): pu = ProjectUpgrader(self.toolbox) @@ -231,27 +233,27 @@ def test_upgrade_v4_to_v5(self): spec_file_path = os.path.join(project_dir, "tool_specs", "preprocessing_tool.json") with open(spec_file_path, "w", encoding="utf-8") as tmp_spec_file: tmp_spec_file.write("hello") - # Upgrade to version 5 - proj_v5 = pu.upgrade(proj_v4, project_dir) - mock_backup.assert_called_once() - mock_force_save.assert_called_once() - self.assertTrue(pu.is_valid(5, proj_v5)) - # Check that items were transferred successfully by checking that item names are found in new - # 'items' dict and that they contain a dict. Combiners should be gone in v5 - v4_items = proj_v4["items"] - # Make a list of Combiner names - combiners = list() - for name, d in v4_items.items(): - if d["type"] == "Combiner": - combiners.append(name) - v5_items = proj_v5["items"] - for name in v4_items.keys(): - if name in combiners: - # v5 should not have Combiners anymore - self.assertFalse(name in v5_items.keys()) - else: - self.assertTrue(name in v5_items.keys()) - self.assertIsInstance(v5_items[name], dict) + # Upgrade to version 5 + proj_v5 = pu.upgrade(proj_v4, project_dir) + mock_backup.assert_called_once() + mock_force_save.assert_called_once() + self.assertTrue(pu.is_valid(5, proj_v5)) + # Check that items were transferred successfully by checking that item names are found in new + # 'items' dict and that they contain a dict. Combiners should be gone in v5 + v4_items = proj_v4["items"] + # Make a list of Combiner names + combiners = list() + for name, d in v4_items.items(): + if d["type"] == "Combiner": + combiners.append(name) + v5_items = proj_v5["items"] + for name in v4_items.keys(): + if name in combiners: + # v5 should not have Combiners anymore + self.assertFalse(name in v5_items.keys()) + else: + self.assertTrue(name in v5_items.keys()) + self.assertIsInstance(v5_items[name], dict) def test_upgrade_v9_to_v10(self): pu = ProjectUpgrader(self.toolbox) @@ -270,28 +272,52 @@ def test_upgrade_v9_to_v10(self): spec_file_path = os.path.join(project_dir, "tool_specs", "preprocessing_tool.json") with open(spec_file_path, "w", encoding="utf-8") as tmp_spec_file: tmp_spec_file.write("hello") - # Upgrade to version 10 - proj_v10 = pu.upgrade(proj_v9, project_dir) - mock_backup.assert_called_once() - mock_force_save.assert_called_once() - self.assertTrue(pu.is_valid(10, proj_v10)) - v10_items = proj_v10["items"] - # Make a list of Gimlet and GdxExporter names in v9 - names = list() - for name, d in proj_v9["items"].items(): - if d["type"] in ["Gimlet", "GdxExporter"]: - names.append(name) - self.assertEqual(4, len(names)) # Old should have 3 Gimlets, 1 GdxExporter - # Check that connections have been removed - for conn in proj_v10["project"]["connections"]: - for name in names: - self.assertTrue(name not in conn["from"] and name not in conn["to"]) - # Check that gimlet and GdxExporter dicts are gone from items - for item_name in v10_items.keys(): - self.assertTrue(item_name not in names) - # Check number of connections - self.assertEqual(8, len(proj_v9["project"]["connections"])) - self.assertEqual(1, len(proj_v10["project"]["connections"])) + # Upgrade to version 10 + proj_v10 = pu.upgrade(proj_v9, project_dir) + mock_backup.assert_called_once() + mock_force_save.assert_called_once() + self.assertTrue(pu.is_valid(10, proj_v10)) + v10_items = proj_v10["items"] + # Make a list of Gimlet and GdxExporter names in v9 + names = list() + for name, d in proj_v9["items"].items(): + if d["type"] in ["Gimlet", "GdxExporter"]: + names.append(name) + self.assertEqual(4, len(names)) # Old should have 3 Gimlets, 1 GdxExporter + # Check that connections have been removed + for conn in proj_v10["project"]["connections"]: + for name in names: + self.assertTrue(name not in conn["from"] and name not in conn["to"]) + # Check that gimlet and GdxExporter dicts are gone from items + for item_name in v10_items.keys(): + self.assertTrue(item_name not in names) + # Check number of connections + self.assertEqual(8, len(proj_v9["project"]["connections"])) + self.assertEqual(1, len(proj_v10["project"]["connections"])) + + def test_upgrade_v10_to_v11(self): + pu = ProjectUpgrader(self.toolbox) + proj_v10 = make_v10_project_dict() + self.assertTrue(pu.is_valid(10, proj_v10)) + with TemporaryDirectory() as project_dir: + with mock.patch( + "spinetoolbox.project_upgrader.ProjectUpgrader.backup_project_file" + ) as mock_backup, mock.patch( + "spinetoolbox.project_upgrader.ProjectUpgrader.force_save" + ) as mock_force_save, mock.patch( + 'spinetoolbox.project_upgrader.LATEST_PROJECT_VERSION', 11 + ): + os.mkdir(os.path.join(project_dir, "tool_specs")) # Make /tool_specs dir + proj_v11 = pu.upgrade(proj_v10, project_dir) + mock_backup.assert_called_once() + mock_force_save.assert_called_once() + self.assertTrue(pu.is_valid(11, proj_v11)) + self.assertEqual(proj_v11["project"]["version"], 11) + self.assertIn("settings", proj_v11["project"]) + try: + ProjectSettings.from_dict(proj_v11["project"]["settings"]) + except: + self.fail("project settings cannot be deserialized") def test_upgrade_v1_to_latest(self): pu = ProjectUpgrader(self.toolbox) @@ -306,21 +332,22 @@ def test_upgrade_v1_to_latest(self): spec_file_path = os.path.join(project_dir, "tool_specs", "preprocessing_tool.json") with open(spec_file_path, "w", encoding="utf-8") as tmp_spec_file: tmp_spec_file.write("hello") - # Upgrade to latest version - proj_latest = pu.upgrade(proj_v1, project_dir) - mock_backup.assert_called_once() - mock_force_save.assert_called_once() - self.assertTrue(pu.is_valid(LATEST_PROJECT_VERSION, proj_latest)) - # Check that items were transferred successfully by checking that item names are found in new - # 'items' dict and that they contain a dict. Combiners should be gone in v5 - v1_items = proj_v1["objects"] - latest_items = proj_latest["items"] - # v1 project items were categorized under a dict which were inside an 'objects' dict - for item_category in v1_items.keys(): - for name in v1_items[item_category]: - self.assertTrue(name in latest_items.keys()) - self.assertIsInstance(latest_items[name], dict) - self.assertTrue(latest_items[name]["type"] == item_category[:-1]) + # Upgrade to latest version + proj_latest = pu.upgrade(proj_v1, project_dir) + mock_backup.assert_called_once() + mock_force_save.assert_called_once() + self.assertTrue(pu.is_valid(LATEST_PROJECT_VERSION, proj_latest)) + self.assertEqual(proj_latest["project"]["version"], LATEST_PROJECT_VERSION) + # Check that items were transferred successfully by checking that item names are found in new + # 'items' dict and that they contain a dict. Combiners should be gone in v5 + v1_items = proj_v1["objects"] + latest_items = proj_latest["items"] + # v1 project items were categorized under a dict which were inside an 'objects' dict + for item_category in v1_items.keys(): + for name in v1_items[item_category]: + self.assertTrue(name in latest_items.keys()) + self.assertIsInstance(latest_items[name], dict) + self.assertTrue(latest_items[name]["type"] == item_category[:-1]) def test_upgrade_with_too_recent_project_version(self): """Tests that projects with too recent versions are not opened.""" @@ -358,6 +385,10 @@ def make_v10_project_dict(): return _get_project_dict(10) +def make_v11_project_dict(): + return _get_project_dict(11) + + def _get_project_dict(v): """Returns a project dict read from a file according to given version.""" project_json_versions_dir = os.path.join(str(Path(__file__).parent), "test_resources", "project_json_versions") diff --git a/tests/test_SpineToolboxProject.py b/tests/test_SpineToolboxProject.py index f7c8705fa..28391f6a3 100644 --- a/tests/test_SpineToolboxProject.py +++ b/tests/test_SpineToolboxProject.py @@ -543,7 +543,14 @@ def test_save_when_storing_item_local_data(self): project_dict, { "items": {"test item": {"type": "Tester", "a": {"c": 2}}}, - "project": {"connections": [], "description": "", "jumps": [], "specifications": {}, "version": 10}, + "project": { + "connections": [], + "description": "", + "jumps": [], + "settings": {"enable_execute_all": True}, + "specifications": {}, + "version": 11, + }, }, ) with Path(project.config_dir, PROJECT_LOCAL_DATA_DIR_NAME, PROJECT_LOCAL_DATA_FILENAME).open() as fp: diff --git a/tests/test_resources/Project Directory/.spinetoolbox/project.json b/tests/test_resources/Project Directory/.spinetoolbox/project.json index 59ed29ed8..41e1ba08e 100644 --- a/tests/test_resources/Project Directory/.spinetoolbox/project.json +++ b/tests/test_resources/Project Directory/.spinetoolbox/project.json @@ -1,6 +1,6 @@ { "project": { - "version": 10, + "version": 11, "description": "Project for unit tests.", "specifications": { "Tool": [], @@ -38,7 +38,10 @@ "left" ] } - ] + ], + "settings": { + "enable_execute_all": true + } }, "items": { "a": { diff --git a/tests/test_resources/project_json_versions/proj_v11.json b/tests/test_resources/project_json_versions/proj_v11.json new file mode 100644 index 000000000..29c5ca97d --- /dev/null +++ b/tests/test_resources/project_json_versions/proj_v11.json @@ -0,0 +1,293 @@ +{ + "project": { + "version": 11, + "description": "Import and Export", + "settings": {"enable_execute_all": true}, + "specifications": { + "Importer": [ + { + "type": "path", + "relative": true, + "path": "Importer 1 - units.xlsx.json" + } + ], + "Exporter": [ + { + "type": "path", + "relative": true, + "path": ".spinetoolbox/specifications/Exporter/pekka.json" + }, + { + "type": "path", + "relative": true, + "path": ".spinetoolbox/specifications/Exporter/gdx_export_mapping.json" + } + ], + "Tool": [ + { + "type": "path", + "relative": true, + "path": ".spinetoolbox/specifications/Tool/testeri.json" + } + ] + }, + "connections": [ + { + "name": "from Raw data to Importer 1", + "from": [ + "Raw data", + "right" + ], + "to": [ + "Importer 1", + "left" + ] + }, + { + "name": "from Importer 1 to DS1", + "from": [ + "Importer 1", + "right" + ], + "to": [ + "DS1", + "left" + ], + "options": { + "purge_before_writing": true, + "purge_settings": null + } + }, + { + "name": "from DS2 to Merger 1", + "from": [ + "DS2", + "right" + ], + "to": [ + "Merger 1", + "left" + ] + }, + { + "name": "from Merger 1 to Output Db", + "from": [ + "Merger 1", + "right" + ], + "to": [ + "Output Db", + "left" + ], + "options": { + "purge_before_writing": true, + "purge_settings": { + "object_class": true, + "relationship_class": true, + "parameter_value_list": true, + "list_value": true, + "parameter_definition": true, + "object": true, + "relationship": true, + "entity_group": true, + "parameter_value": true, + "alternative": true, + "scenario": true, + "scenario_alternative": true, + "feature": true, + "tool": true, + "tool_feature": true, + "tool_feature_method": true, + "metadata": true, + "entity_metadata": true, + "parameter_value_metadata": true + } + } + }, + { + "name": "from GDX file to GDX Exporter", + "from": [ + "GDX file", + "right" + ], + "to": [ + "GDX Exporter", + "left" + ] + }, + { + "name": "from DS1 to Exporter 1", + "from": [ + "DS1", + "right" + ], + "to": [ + "Exporter 1", + "left" + ] + }, + { + "name": "from DS1 to Merger 1", + "from": [ + "DS1", + "right" + ], + "to": [ + "Merger 1", + "left" + ] + } + ], + "jumps": [] + }, + "items": { + "Importer 1": { + "type": "Importer", + "description": "", + "x": 37.00929801385436, + "y": -50.831770740600405, + "specification": "Importer 1 - units.xlsx", + "cancel_on_error": true, + "on_conflict": "replace", + "file_selection": [ + [ + "/a.csv", + false + ], + [ + "/c.ini", + false + ], + [ + "/d.txt", + false + ], + [ + "/units.xlsx", + true + ], + [ + "/data.txt", + false + ] + ] + }, + "DS1": { + "type": "Data Store", + "description": "", + "x": 161.72875313326617, + "y": -141.85480886591952, + "url": { + "dialect": "sqlite", + "host": "", + "port": "", + "database": { + "type": "path", + "relative": true, + "path": ".spinetoolbox/items/ds1/DS1.sqlite" + } + } + }, + "Raw data": { + "type": "Data Connection", + "description": "", + "x": -92.35946011852081, + "y": -139.9349488970861, + "file_references": [ + { + "type": "path", + "relative": true, + "path": "data.txt" + } + ], + "db_references": [] + }, + "Exporter 1": { + "type": "Exporter", + "description": "", + "x": 327.28798970484826, + "y": -34.157876811488, + "output_time_stamps": true, + "cancel_on_error": true, + "output_labels": [ + { + "in_label": "db_url@DS1", + "out_label": "output_file" + } + ], + "specification": "SpineOptToTable" + }, + "Tool 1": { + "type": "Tool", + "description": "", + "x": 8.781957645503311, + "y": -261.72457943295257, + "specification": "testeri", + "execute_in_work": true, + "cmd_line_args": [] + }, + "Merger 1": { + "type": "Merger", + "description": "", + "x": 318.01113350038577, + "y": -194.14196047822415, + "cancel_on_error": false + }, + "DS2": { + "type": "Data Store", + "description": "", + "x": 164.00244309606893, + "y": -266.32829810435675, + "url": { + "dialect": "sqlite", + "host": "", + "port": "", + "database": { + "type": "path", + "relative": true, + "path": ".spinetoolbox/items/ds2/DS2.sqlite" + } + } + }, + "Output Db": { + "type": "Data Store", + "description": "", + "x": 448.8029423394426, + "y": -215.88120679697633, + "url": { + "dialect": "sqlite", + "host": "", + "port": "", + "database": { + "type": "path", + "relative": true, + "path": ".spinetoolbox/items/output_db/Output Db.sqlite" + } + } + }, + "GDX Exporter": { + "type": "Exporter", + "description": "", + "x": 180.76090893795083, + "y": 36.76493063144763, + "output_time_stamps": false, + "cancel_on_error": true, + "output_labels": [], + "specification": "gdx export mapping" + }, + "GDX file": { + "type": "Data Connection", + "description": "", + "x": -69.44486897051219, + "y": 35.74368255835186, + "file_references": [ + { + "type": "path", + "relative": false, + "path": "C:/Users/ttepsa/OneDrive - Teknologian Tutkimuskeskus VTT/Documents/SpineToolboxProjects/Gdx Export Test/.spinetoolbox/items/gdx_exporter/file.gdx" + } + ], + "db_references": [] + } + } +} From e0820f7f80fd42b1eba02ca678984c6046bb5b7a Mon Sep 17 00:00:00 2001 From: Antti Soininen Date: Thu, 10 Aug 2023 09:37:42 +0300 Subject: [PATCH 16/19] Use PySide6 enum Re #1981 --- spinetoolbox/widgets/multi_tab_window.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spinetoolbox/widgets/multi_tab_window.py b/spinetoolbox/widgets/multi_tab_window.py index 51fba6f5a..826adc5ba 100644 --- a/spinetoolbox/widgets/multi_tab_window.py +++ b/spinetoolbox/widgets/multi_tab_window.py @@ -474,7 +474,7 @@ def __init__(self, parent): self._plus_button.setIcon(QIcon(CharIconEngine("\uf067"))) self._plus_button.clicked.connect(lambda _=False: self.plus_clicked.emit()) self._move_plus_button() - self.setShape(QTabBar.RoundedNorth) + self.setShape(QTabBar.Shape.RoundedNorth) self.setTabsClosable(True) self.setMovable(True) self.setElideMode(Qt.ElideLeft) From 11a7fe4389ee762e688f6ea98384ac1a84dc52a9 Mon Sep 17 00:00:00 2001 From: Antti Soininen Date: Thu, 10 Aug 2023 09:38:13 +0300 Subject: [PATCH 17/19] Clear current class information on reset We must clear current (selected) entity class information when initializing model in TabularViewMixin. Otherwise, the view may point to non-existing entity class after Database editor's database has been changed by user. Re #1981 --- spinetoolbox/spine_db_editor/widgets/tabular_view_mixin.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/spinetoolbox/spine_db_editor/widgets/tabular_view_mixin.py b/spinetoolbox/spine_db_editor/widgets/tabular_view_mixin.py index 6f62aca2f..4e6b44c8b 100644 --- a/spinetoolbox/spine_db_editor/widgets/tabular_view_mixin.py +++ b/spinetoolbox/spine_db_editor/widgets/tabular_view_mixin.py @@ -174,6 +174,9 @@ def _connect_pivot_table_header_signals(self): def init_models(self): """Initializes models.""" super().init_models() + self.current_class_id.clear() + self.current_class_type = None + self.current_class_name = None self.clear_pivot_table() @Slot(QModelIndex, object) From c4657d57ec698c52634eab165f45ab73c49e1cb8 Mon Sep 17 00:00:00 2001 From: Henrik Koski <98282892+PiispaH@users.noreply.github.com> Date: Thu, 10 Aug 2023 12:46:27 +0300 Subject: [PATCH 18/19] Fix import file dialog in db editor filter set as sqlite automatically (#2242) --- spinetoolbox/spine_db_editor/widgets/spine_db_editor.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spinetoolbox/spine_db_editor/widgets/spine_db_editor.py b/spinetoolbox/spine_db_editor/widgets/spine_db_editor.py index ee8e19bcf..48f56e8ef 100644 --- a/spinetoolbox/spine_db_editor/widgets/spine_db_editor.py +++ b/spinetoolbox/spine_db_editor/widgets/spine_db_editor.py @@ -470,7 +470,7 @@ def import_file(self, checked=False): self, "Import file", self._get_base_dir(), - "SQLite (*.sqlite);; JSON file (*.json);; Excel file (*.xlsx)", + "All files (*);; SQLite (*.sqlite);; JSON file (*.json);; Excel file (*.xlsx)", ) self.qsettings.endGroup() if not file_path: # File selection cancelled From 3b8cc7e2e4188794cb1bd285e7a61c2dbb0799d3 Mon Sep 17 00:00:00 2001 From: Henrik Koski <98282892+PiispaH@users.noreply.github.com> Date: Thu, 10 Aug 2023 13:50:37 +0300 Subject: [PATCH 19/19] Fix fully collapsable widgets (#2244) --- spinetoolbox/ui/array_editor.py | 1 + spinetoolbox/ui/array_editor.ui | 3 +++ spinetoolbox/ui/mini_kernel_editor_dialog.py | 1 + spinetoolbox/ui/mini_kernel_editor_dialog.ui | 3 +++ spinetoolbox/ui/settings.py | 1 + spinetoolbox/ui/settings.ui | 3 +++ spinetoolbox/ui/time_series_fixed_resolution_editor.py | 1 + spinetoolbox/ui/time_series_fixed_resolution_editor.ui | 3 +++ spinetoolbox/ui/time_series_variable_resolution_editor.py | 1 + spinetoolbox/ui/time_series_variable_resolution_editor.ui | 3 +++ 10 files changed, 20 insertions(+) diff --git a/spinetoolbox/ui/array_editor.py b/spinetoolbox/ui/array_editor.py index 3c5b97a0d..be8ece5af 100644 --- a/spinetoolbox/ui/array_editor.py +++ b/spinetoolbox/ui/array_editor.py @@ -42,6 +42,7 @@ def setupUi(self, Form): self.splitter = QSplitter(Form) self.splitter.setObjectName(u"splitter") self.splitter.setOrientation(Qt.Horizontal) + self.splitter.setChildrenCollapsible(False) self.verticalLayoutWidget = QWidget(self.splitter) self.verticalLayoutWidget.setObjectName(u"verticalLayoutWidget") self.verticalLayout_3 = QVBoxLayout(self.verticalLayoutWidget) diff --git a/spinetoolbox/ui/array_editor.ui b/spinetoolbox/ui/array_editor.ui index a21eec26f..92b9dd92a 100644 --- a/spinetoolbox/ui/array_editor.ui +++ b/spinetoolbox/ui/array_editor.ui @@ -31,6 +31,9 @@ Qt::Horizontal + + false + diff --git a/spinetoolbox/ui/mini_kernel_editor_dialog.py b/spinetoolbox/ui/mini_kernel_editor_dialog.py index 68e2020a3..16869fb17 100644 --- a/spinetoolbox/ui/mini_kernel_editor_dialog.py +++ b/spinetoolbox/ui/mini_kernel_editor_dialog.py @@ -41,6 +41,7 @@ def setupUi(self, Dialog): self.splitter = QSplitter(Dialog) self.splitter.setObjectName(u"splitter") self.splitter.setOrientation(Qt.Vertical) + self.splitter.setChildrenCollapsible(False) self.widget = QWidget(self.splitter) self.widget.setObjectName(u"widget") self.verticalLayout = QVBoxLayout(self.widget) diff --git a/spinetoolbox/ui/mini_kernel_editor_dialog.ui b/spinetoolbox/ui/mini_kernel_editor_dialog.ui index b8d9cba6d..75299a3c2 100644 --- a/spinetoolbox/ui/mini_kernel_editor_dialog.ui +++ b/spinetoolbox/ui/mini_kernel_editor_dialog.ui @@ -31,6 +31,9 @@ Qt::Vertical + + false + diff --git a/spinetoolbox/ui/settings.py b/spinetoolbox/ui/settings.py index 004f4956a..2312caceb 100644 --- a/spinetoolbox/ui/settings.py +++ b/spinetoolbox/ui/settings.py @@ -59,6 +59,7 @@ def setupUi(self, SettingsForm): self.splitter = QSplitter(SettingsForm) self.splitter.setObjectName(u"splitter") self.splitter.setOrientation(Qt.Horizontal) + self.splitter.setChildrenCollapsible(False) self.listWidget = QListWidget(self.splitter) icon = QIcon() icon.addFile(u":/icons/sliders-h.svg", QSize(), QIcon.Normal, QIcon.Off) diff --git a/spinetoolbox/ui/settings.ui b/spinetoolbox/ui/settings.ui index 29624cd63..044e12796 100644 --- a/spinetoolbox/ui/settings.ui +++ b/spinetoolbox/ui/settings.ui @@ -64,6 +64,9 @@ Qt::Horizontal + + false + diff --git a/spinetoolbox/ui/time_series_fixed_resolution_editor.py b/spinetoolbox/ui/time_series_fixed_resolution_editor.py index 218aae4d8..dd97a6d6c 100644 --- a/spinetoolbox/ui/time_series_fixed_resolution_editor.py +++ b/spinetoolbox/ui/time_series_fixed_resolution_editor.py @@ -41,6 +41,7 @@ def setupUi(self, TimeSeriesFixedResolutionEditor): self.verticalLayout = QVBoxLayout(TimeSeriesFixedResolutionEditor) self.verticalLayout.setObjectName(u"verticalLayout") self.splitter = QSplitter(TimeSeriesFixedResolutionEditor) + self.splitter.setChildrenCollapsible(False) self.splitter.setObjectName(u"splitter") self.splitter.setOrientation(Qt.Horizontal) self.verticalLayoutWidget = QWidget(self.splitter) diff --git a/spinetoolbox/ui/time_series_fixed_resolution_editor.ui b/spinetoolbox/ui/time_series_fixed_resolution_editor.ui index 5d26a8c2d..ffe80dce4 100644 --- a/spinetoolbox/ui/time_series_fixed_resolution_editor.ui +++ b/spinetoolbox/ui/time_series_fixed_resolution_editor.ui @@ -31,6 +31,9 @@ Qt::Horizontal + + false + diff --git a/spinetoolbox/ui/time_series_variable_resolution_editor.py b/spinetoolbox/ui/time_series_variable_resolution_editor.py index 6f3009bbc..f1447cb53 100644 --- a/spinetoolbox/ui/time_series_variable_resolution_editor.py +++ b/spinetoolbox/ui/time_series_variable_resolution_editor.py @@ -42,6 +42,7 @@ def setupUi(self, TimeSeriesVariableResolutionEditor): self.splitter = QSplitter(TimeSeriesVariableResolutionEditor) self.splitter.setObjectName(u"splitter") self.splitter.setOrientation(Qt.Horizontal) + self.splitter.setChildrenCollapsible(False) self.verticalLayoutWidget = QWidget(self.splitter) self.verticalLayoutWidget.setObjectName(u"verticalLayoutWidget") self.left_layout = QVBoxLayout(self.verticalLayoutWidget) diff --git a/spinetoolbox/ui/time_series_variable_resolution_editor.ui b/spinetoolbox/ui/time_series_variable_resolution_editor.ui index 9c890de5d..2751fda00 100644 --- a/spinetoolbox/ui/time_series_variable_resolution_editor.ui +++ b/spinetoolbox/ui/time_series_variable_resolution_editor.ui @@ -31,6 +31,9 @@ Qt::Horizontal + + false +