S3000 Python support

Our commercial offering for environmental laboratories, S3000, now has official support for custom Python models. Being a Java application, S3000 historically relied on Weka for its modeling. However, with the integration of Jep (Java Embedded Python) in ADAMS, it is now possible to use scikit-learn or deep learning libraries for training models and making predictions.

In order to make this work, ADAMS needs to launch from the context of an activated virtual Python environment that contains all the required Python libraries and then use the JepRegressor Weka meta-classifier to define the relevant code for training and making predictions. Due to Java serialization not being applicable to Python objects, these scripts must implement the relevant serialization/deserialization themselves, e.g., via pickle.