Python Bindings

Other than time, are there any other significant hurdles or obstacles (e.g. API and Library design) in the way of implementing Python bindings for the MDL SDK?

Not that we are aware of. From some (limited) internal experiences though, we can share a few points you might want to look out for:

  • Garbage collection versus the reference counting and order dependencies of clearing up things in the MDL SDK.
  • The MDL SDK makes use of structure-of-structure types, e.g., the mi::math::Bbox_struct template.
  • The interface class hierarchy makes use of some more advanced template mixin classes that could confuse tools like swig.

With Python 2 End of Life date coming up soon, curious as to whether there are plans to support Python 3, or maybe I missed something and Python 3 support is already built in? It looks like the main reason for the python 2.7 dependency is the LLVM bindings? Also looks like there’s a requirement for generating headers and modules for the JIT and compilercore.

We have just some limited internal experiments done. So far we have not investigated whether python3 would change the picture, i asume not.