Hey @MartinDDDD,
It is really cool to see that you are building an extension that wants to interface our AI Extension! But by doing so, you notice the boundaries of what is currently possible in KNIME from Python ![]()
Using port objects defined in other extensions is something that we do not support yet.
There are a few complications why that is the case.
Assume extension A defines port object type PA. It uses library LA in its code and that is also used for serialization of some internals of the port object PA. Note that port objects are always passed between nodes in serialized form.
Importing the Port Object definition
To be able to use the port object PA defined in A in another extension B, we’d have to be able to import the module defining PA in A in our extension B. We currently didn’t build a means of module discoverability between extension yet, also because whatever libraries imported in the module defining PA need to be available in B, which brings us to…
Environment Compatibility
We don’t know yet how to ensure compatibility of the Python environments:
Now extension B wants to use PA. It will only be able to call the deserialization of PA if it also has library LA in its Python environment. There’s no way to enforce that. But we’d like to be able to at least check that this library is available when B depends on PA.
If you have input around how we could nicely resolve these issues, I’m all ears ![]()
Best,
Carsten