About FMPy which is a python package for FMU simulation. I need one clarification : What is the purpose of cswrapper code, sundials solver or functions? Is it only required for ModelExchange type FMU simulation and not for Co-simulation type FMU simulation? https://github.com/CATIA-Systems/FMPy
With the cswrapper code you can "wrap" a ME FMU as a CS FMU by adding a (sundials) solver, see https://github.com/CATIA-Systems/FMPy/issues/127. So you get from a ME a CS FMU. Additionally, the CVODE solver can be used to simulate ME FMUs in fmpy.