spine-tools / spine-items

Project items for Spine Toolbox.
https://www.tools-for-energy-system-modelling.org/
GNU Lesser General Public License v3.0
4 stars 4 forks source link

Make executable items spinetoolbox-free #28

Closed spine-o-bot closed 3 years ago

spine-o-bot commented 3 years ago

In GitLab by @manuelma on Oct 31, 2020, 17:47

In #3, we made the executable part of the items qt-free, so we could load them from a remote engine environment that doesn't require PySide2.

But the executable parts still import some stuff from spinetoolbox, which means spinetoolbox (and thus PySide2) still needs to be installed in the remote engine machine.

So I think we need to make the executable parts 'spinetoolbox-free' now. I propose to do this by moving some of the base project item classes from toolbox to engine, notably executable_item_base, project_item_resource, helpers_qt_free, project_item_specification_factory, project_item_info, project_item_specification, some constants from config (e.g. TOOL_OUTPUT_DIR, GIMLET_OUTPUT_DIR), and part of spine_io.

Eventually we may need to split project_item_specification_factory into qt-free and qt-bound.

Any comments? @PekkaSavolainen @soininen @ererkka ?

spine-o-bot commented 3 years ago

In GitLab by @manuelma on Oct 31, 2020, 17:48

changed the description

spine-o-bot commented 3 years ago

In GitLab by @manuelma on Oct 31, 2020, 21:37

changed the description

spine-o-bot commented 3 years ago

In GitLab by @manuelma on Oct 31, 2020, 21:38

changed the description

spine-o-bot commented 3 years ago

In GitLab by @manuelma on Nov 1, 2020, 21:23

changed the description

spine-o-bot commented 3 years ago

In GitLab by @soininen on Nov 2, 2020, 08:28

project_item_info and specification stuff may need to be moved to Engine as well.

spine-o-bot commented 3 years ago

In GitLab by @PekkaSavolainen on Nov 2, 2020, 10:12

Sounds like a lot of refactoring again. Any chance of making 'dummy' spinetoolbox independent base classes just for the engine?

spine-o-bot commented 3 years ago

In GitLab by @manuelma on Nov 2, 2020, 10:16

I'm not sure what you mean. Sounds like duplicating code which means maintaining it in both sides?

spine-o-bot commented 3 years ago

In GitLab by @manuelma on Nov 2, 2020, 14:17

changed the description

spine-o-bot commented 3 years ago

In GitLab by @manuelma on Nov 2, 2020, 14:18

changed the description

spine-o-bot commented 3 years ago

In GitLab by @manuelma on Nov 2, 2020, 19:20

mentioned in commit 63f8ff6e703bf84e10a516888e068b21e7f32eeb

spine-o-bot commented 3 years ago

In GitLab by @manuelma on Nov 2, 2020, 19:58

mentioned in commit 7074f6abd1eb1ac2a7bdd0a42feedd88acbc1fea

spine-o-bot commented 3 years ago

In GitLab by @manuelma on Nov 2, 2020, 20:21

Done by above commits. Here is a summary of what has been moved from toolbox to engine

spinetoolbox.project_item.executable_item_base
spinetoolbox.project_item.project_item_info
spinetoolbox.project_item.project_item_resource
spinetoolbox.project_item.project_item_specification_factory
spinetoolbox.project_item.project_item_specification

spinetoolbox.config: GAMS_EXECUTABLE, GAMSIDE_EXECUTABLE, JULIA_EXECUTABLE, GIMLET_WORK_DIR_NAME, TOOL_OUTPUT_DIR

spinetoolbox.spine_io.gdx_utils
spinetoolbox.spine_io.type_conversion
spinetoolbox.spine_io.exporters.gdx
spinetoolbox.spine_io.exporters.excel
spinetoolbox.spine_io.importers.csv_reader
spinetoolbox.spine_io.importers.excel_reader
spinetoolbox.spine_io.importers.gdx_connector
spinetoolbox.spine_io.importers.json_reader

spinetoolbox.helpers_qt_free

with all the corresponding unit tests.

spine-o-bot commented 3 years ago

In GitLab by @manuelma on Nov 2, 2020, 20:26

mentioned in commit 10fc04016690006d8821bab6f5ca3cf887cc99be