After testing a simulation on Colab, our FEUP users tried to test running things through Visual Studio Code with a simple python script.
He processed the installation with pip install .... our api package, which imports the various inductiva packages:
inductiva
; inductiva-sph
; inductiva-data
... etc
After this, he tried to run a simulation of swash with the low-level approach, which is fully embedded inside inductiva
. However, he was not capable of running a swash simulation, because there was a python module that he could not install. The error followed:
ModuleNotFoundError: No module named 'resource'
This module only is compatible with the linux ecosystems and is being imported through the inductiva-sph
package. It is used in the function run
of splishsplash for the purpose of running a simulation locally. Therefore, this function is not used in the API at all, but is still imported to the client side and brings this problem with it.
There is a quick fix, which I already implemented by creating a branch win_version
that does not use this module at all, thus there is no conflict when the user installs this branch instead. The purpose of this quick fix is to not break the feedback loop with users, while we fix this on the background, my decision was based on him not even using splishplash now.
This hides the true problem which we need to fix: should things that are not necessary for running simulations via API (or used at all on the API) be imported by the client? See #Resources for an inital part of the discussion and the quick fix.
Moreover, as we are implementing stuff we should be careful with portability issues of some packages (mostly hardware related).